TCP的重传机制是怎样的?

TCP是一种面向连接、可靠的传输层协议。

为了保证数据的可靠传输,TCP采用数据包重传的机制来应对网络传输过程中可能出现的丢包、错包和乱序等问题。

TCP的重传包括超时重传、快速重传、带选择确认SACK的重传和重复SACK重传四种。

图片[1]-TCP的重传机制是怎样的?-不念博客

1、超时重传

当发送方发送数据包后,会启动一个重传计时器,等待接收方返回确认报文。

如果在超时重传时间RTO到达之前仍未收到确认报文,发送方会认为数据包丢失,触发超时重传。

超时重传的时间阈值会根据网络状况进行动态调整,应该略大于报文往返时间RTT的值。

如果超时重发的数据,再次超时又需要重传的时候,TCP 的策略是超时间隔加倍。

超时触发重传存在的问题是,超时周期可能相对较长。

图片[2]-TCP的重传机制是怎样的?-不念博客
图片[3]-TCP的重传机制是怎样的?-不念博客
图片[4]-TCP的重传机制是怎样的?-不念博客

2、快速重传

快速重传是一种提高TCP性能的重传策略。当接收方连续收到三个相同序号的ACK确认报文时,发送方会认为对应的数据包发生了丢失。

为了尽快补发丢失的数据包,发送方会立即进行重传,而不再等待重传计时器超时。

这种方法可以减小因数据包丢失导致的延迟。

图片[5]-TCP的重传机制是怎样的?-不念博客

3、带选择确认SACK的重传

选择性确认是一种TCP扩展,需要在TCP头部选项字段里加一个SACK的东西,它允许接收方通知发送方哪些数据包已经被成功接收,哪些数据包需要重传。

SACK可以提高TCP性能,因为发送方可以更精确地知道哪些数据包需要重传,从而避免不必要的全量重传。

图片[6]-TCP的重传机制是怎样的?-不念博客
图片[7]-TCP的重传机制是怎样的?-不念博客
图片[8]-TCP的重传机制是怎样的?-不念博客

4、重复SACK

SACK重传对于接收到重复数据段怎样运作没有明确规定,通过重复SACK重传可以让发送方知道哪些数据被重复接收了,而且明确是什么原因造成的。

图片[9]-TCP的重传机制是怎样的?-不念博客
图片[10]-TCP的重传机制是怎样的?-不念博客
© 版权声明
THE END