关于TCP的重传机制

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:45:37
假设主机A给主机B发送消息,序号分别为1,2,3,4,5
其中3号丢包了。
那么主机B就会给主机A发送序号为3的ACK。
这时,主机A会向主机B进行重传。
我的问题是:主机A是仅仅重传3,还是3,4,5都要重传?

呵呵,主机A仅仅重传3

为什么呢,原因很简单,TCP的通信是以数据包为单位的

1.一个数据包发送之后,只有收到对方的ACK包,才会认为该数据包被正确接收了

2.如果超时后还没有收到ACK那么就进行重传,并且只对该数据包重传,因为
它已经收到了其它数据包的ACK,所以无需对其它数据包进行重传!!!!

3.还有一种情况,如果数据包在传输过程中损坏了,那么接收方会产生一个NCK报文,发送给发送方,发送方也会进行重传,并且仅仅重传这一个数据包。