TCP保证可靠性
一,序列号,确认应答,超时重传
- 数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接受的数据序列号。
- 如果发送方迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这是发送方在等待一定事件后会进行重传,超时重传。
- 这个时间一般是2*RTT(报文段往返时间+一个偏差值)
二,窗口控制与高速重发控制/快速重传(重复确认应答)
- 正常情况下收到应答才能发送下一段数据。
- 而窗口作用就是:窗口大小无需等待确认而可以继续发送数据的最大值。利用窗口控制来提升传输速度
- 如果不使用窗口控制,每一个没收到确认应答的数据都要重发
快重传:
- 就是当某个数据段丢失后,接收方会连续传输三个一样序列号的应答,当接收方收到三次一样应答之后,就会立即进行重发
- 还有一种情况是数据收到了,但是应答丢失了,这种情况也不会进行重发,因为一旦某个丢失,则接收方会一直发消息
三,拥塞控制
就是四种方法:
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
后面两种方法的具体介绍博客链接:
一张图了解TCP利用滑动窗口实现流量控制:https://blog.csdn.net/qq_46423166/article/details/113539847
六张图带你深刻理解TCP的拥塞避免控制,建议收藏本文:https://blog.csdn.net/qq_46423166/article/details/113447268