您的位置:首页 > 理论基础 > 计算机网络

TCP如何处理失序数据包

2012-06-29 19:06 991 查看
在使用TCP协议的网络中,接收端运输层如何处理失序到达的数据包,是丢弃还是等待所有数据包接收完毕后再重新排序?比如接收编号从1到10的10个数据包,如果数据包3先于数据包2到达接收端,那么接收端如何处理数据包3 呢?是先把它丢弃然后等待数据包2正确接收后再向发送端发命令让发送端重传数据包3?或者是先把失序到达的数据包3收下,等所有数据包接收完毕后再重新排序?这个问题困扰我好长时间了,资料也看了不少就是没有彻底搞明白,忘高人指点指点!

1 TCP具有乱序重组的功能。

(1)TCP具有缓冲区

(2)TCP报文具有序列号

所以,对于你说的问题,一种常见的处理方式是:TCP会先将报文段3缓存下来,当报文段2到达时,再根据序列号进行拼接。

2 当然缓冲区也有满的时候,这时接收端会直接丢弃报文,不做任何其他处理;发送方的定时器发现迟迟收不到接收方丢弃报文的确认号(ack number),就会重传该报文。这就是TCP的超时重传功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: