几个特殊TCP报文及TCP

几个特殊TCP报文及TCP_第1张图片

TCP Window Full:

接收方接收缓冲区满了后,导致发送方的发送缓冲区装满待确认数据,此时发送方会发送一个TCP Window Full消息。

TCP ZeroWindow:

接收方应用没有及时recv消息,导致接收缓冲满,即滑动窗口为0,接收方发送TCP Zero Window告知发送方不能继续发送消息。

TCP ZeroWindowProbe:

零窗口探测报文---滑动窗口降为0后,发送方会停止发送数据,但此时如果发送有数据待发送,发送方发送TCP ZeroWindowProbe包,主动获取接收方滑动窗口的最新值。

TCP Window Update:

滑动窗口为0后,发送方停止发送数据,如果接收方滑动窗口出现空闲空间,则接收方主动发送TCP Window Update来更新发送方的滑动窗口。

MSS:

TCP层支持的最大分包字节数,以太网的电气性能决定了该值为1460字节,ethernet层的MTU值最大1500字节,除去IP头20字节、TCP头20字节。

大量重复ACK问题:

此报文是TCP的快速重传机制,TCP接收端在收到乱序到达包时就会立即发送一个重复ACK,TCP发送端利用3个相同的ACK来判定数据包的丢失,此时进行快速重传丢失包,Fast Retransmit and Recover。数据包没有连续到达,就ack最后第一个可能丢失的包,如果发送方连续收到3次相同的ack,就重传该报文。Fast Retransmit的好处是不用等timeout了再重传。比如:发送方发出了1,2,3,4,5份数据,第一份先到送了,于是就ack回2,结果2因为某些原因没收到,3到达了,于是还是ack回2,后面的4和5都到了,但是还是ack回2,因为2还是没有收到,于是发送端收到了三个ack=2的确认,知道了2还没有到,于是就马上重转2。然后,接收端收到了2,此时因为3,4,5都收到了,于是ack回6。

参考链接:

http://coolshell.cn/articles/11564.html

 

你可能感兴趣的:(几个特殊TCP报文及TCP)