用vue-cli做的网站,网站什么时候做解析,网站建设介绍会发言稿,公众号怎么弄好看的模板目录
前言#xff1a;
TCP报头
TCP核心机制
一、确认应答
二、超时重传
小结#xff1a; 前言#xff1a; 这篇文章详细介绍了TCP报头中的一些核心数据#xff0c;及两种TCP核心机制。其他的一些机制会在后面文章中详细介绍。
TCP报头 解释#xff1a;
1#xff…目录
前言
TCP报头
TCP核心机制
一、确认应答
二、超时重传
小结 前言 这篇文章详细介绍了TCP报头中的一些核心数据及两种TCP核心机制。其他的一些机制会在后面文章中详细介绍。
TCP报头 解释
1源端口号目的端口号 源端口号目的端口号就是在网络通信中五元组之二。由于是16位那么就存在数据的取值范围。0 -- 1023为知名端口号和UDP这里是一样的上篇文章中有详细介绍。
232位序号 TCP为了实现可靠性提出了确认应答和超时重传来主要保证TCP的可靠性。32位序号就是针对TCP发送的数据按照字节进行编号累加进行编号。 因此只需要确定第一个字节的序号根据数据长度就可以推算出其他字节的序号。那么在数据传输时只需要将第一个字节序号传输过去即可。 由于数据传输存在 “后发先至” 的问题那么接收方回复的数据就不知道是针对那一条。因此在应答报文中就可以利用序号确定对哪一条数据进行应答回复时针对编号进行回复。
332位确认序号 当接收方接收到数据后按照接收到的数据最后一个字节序号 1 作为确认序号。如果返回的应答报文这个确认序号是上一条数据最后一字节序号加1就证明这个序号以前的数据发送成功了。
44位首部长度 描述了TCP报头的长度单位4字节4位最大就是15即报头长度最大就是60字节。 报头除过选项其他长度是固定的20个字节。
5保留六位 为以后的扩展提供位置便于TCP扩展。
6六位标志位 – URG: 紧急指针是否有效。 – ACK: 确认号是否有效应答报文有效。 – PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走。 – RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段。 – SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段。 – FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段。 ACK这位如果为1证明就是应答报文如果为0就不是。确认序号只有在应答报文中才有意义。其他几位后续的十种核心机制中会提到。 六位标志位就是为了确定了这个报文是哪一类。
716位窗口大小 后面的滑动窗口中详细介绍。
816位校验和 这里和UDP原理一样。根据一些算法计算出校验和在接收的数据再计算一遍然后对比是否相等来确定数据是否准确。UDP这里有详细介绍。
916位紧急指针 标识了那部分数据为紧急数据。
10选项 TCP报头除过选项其他固定20位即首部长度 - 20 选项长度。TCP报头大小是可变的就是因为选项的存在选项对TCP报文一些属性进行解释说明。
TCP核心机制
一、确认应答 问题 网络中后发先至这个现象是客观存在的无法避免。因此报文到达的顺序也是会有变化的。
解决方案 针对数据进行编号按照字节为单位进行编号。字节序号进行累加因此只需要标注起始字节序号其他字节序号就可以推断出来。对于后一条数据起始序号就是前一条数据最后字节序号加1。在响应数据时只需要针对序号进行响应即可。 当客户端接收到响应后按照应答报文中的确认序号就可以确定这个序号之前的数据已经发送成功了。
确认序号取值 针对收到数据后最后一个字节序号 1。返回的ACK如果这个确认序号是上一条数据最后一字节序号加1就证明数据发送成功了。接下来发送方就从上一条数据最后一字节序号 1 为下一条 数据的起始序号进行发送。
小结 TCP可靠传输能力最主要就是通过确认应答和超时重传体现的。通过应答报文就可以让发送方清楚知道数据传输是否成功。进一步引入序号和确认序号针对多组数据进行区分。
二、超时重传
问题 丢包分为两种情况1.发送的数据包丢了。2.返回的应答数据包丢了。发送方看到的结果就是没有响应那么一致认为丢包了。丢包的概率非常小但是存在
TCP重传机制 引入一个时间阈值。发送方发送数据后开始计时。如果时间阈值内没有收到响应就认为是丢包了。然后就进行重新传输。超时重传超过一定的时间没有响应就重新传输 如果重传多次都失败时间间隔会增大非常小概率事件TCP会认为网路出现故障。TCP就会断开重新连接。如果重置还是失败就彻底断开连接了。
问题 如果返回的应答数据报丢了重传就会使接收方收到多个一样的数据。
解决方案 TCP存在接收缓冲区内核中的一块内存每个socket对象都有一个接收缓冲区也有发送缓冲区。缓冲区可以认为是一个阻塞的优先级队列利用序号针对重复数据进行去重丢包重传产生的利用序号对数据进行排序。然后接收端从缓冲区接收的数据就是有序且去重的。
小结 可靠传输是TCP的最核心部分。TCP的可靠传输就是通过 确认应答 超时重传 来体现的。确认应答描述的是传输顺利的情况超时重传描述的是传输出现问题的情况。两种相互配合共同体现TCP的可靠性。