TCP 可靠性

可靠性是指 接收方收到的数据是完整、有序、无差错的;

UDP 不可靠是指 接收到的数据可能存在部分丢失,顺序也不一定能保证。

https://blog.csdn.net/qq_46423166/article/details/113622650

  1. 序列号、确认应答、超时重传:

l 数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接受的数据序列号。

l 如果发送方迟迟未收到确认应答,那有可能是发送数据丢失,也可能是确认应答丢失,这时发送方在等待一段时间后会进行重传,超时重传。

l 这个时间是 2*RTT(Round-Trip time)往返时间+偏移量

  1. 窗口控制、高速重发、快速重传(重复确认应答)

正常情况下收到应答才能发送下一段数据

而窗口的作用就是,在窗口大小内可以无需等待确认 而 连续发送数据,利用窗口控制来提升传输速度。

快重传:

当某个数据段丢失后,接收方会连续传输三个一样的序列号的应答,当接收方收到三次一样的应答之后,会立即进行重传,而不必等待过期时间。

  1. 拥塞控制:

如果网络延时增加,不能TCP只会重传数据,但是这样会增加网络负担,所以需要拥塞控制。

https://blog.csdn.net/shuxnhs/article/details/80644531

https://blog.csdn.net/qq_46423166/article/details/113447268

https://www.cnblogs.com/tuyang1129/p/12439862.html

拥塞窗口:以字节为单位 发送方的发送窗口,每次可以发送的数据量大小,取决于网络的拥塞程度,最开始为1 MSS(最大报文段长度, Maximum Segment Size)

慢开始门限:起一个界定作用,当拥塞窗口大于慢开始门限后,停止慢开始算法,大部分设置为16.

传输轮次:一个往返时间 RTT,一个拥塞窗口大小的数据 一次发送接收的总共时间。

l 慢开始,一开始一次发送数据量为1,逐次增加(每经过一个 RTT,增加 1),直至达到慢开始门限。这里 每收到一个 ACK 就增加1,但是每次发送的数据量随着 cwnd 而变化,所以其实是指数增长。

l 拥塞避免,拥塞窗口 线性增加,每经过一个 RTT, 增加 1MSS。出现拥塞之后,慢开始门限(ssthresh)值调整为 当前拥塞窗口(cwnd)的一半。然后将拥塞窗口再次变为 1.(判断网络出现拥塞,根据就是没有收到确认)

l 快重传

l 快恢复,(收到三个重复确认, 考虑能收到三个重复确认,说明网络没有出现拥塞)发送方直到只是丢失了个别的报文段,不是执行慢开始,而是执行快速回复算法。 调整新的慢开始门限值为 拥塞窗口的一半,新的拥塞窗口改为和新的慢开始门限值一样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 保证可靠性的机制: 校验和序列号确认应答超时重传连接管理流量控制拥塞控制 提高性能机制: 滑动窗口快速重传延迟应答...
    我的技术学习小站阅读 452评论 0 0
  • 说起TCP协议,可能这句话很多人都听过,那就是TCP的定义: TCP(Transmission Control P...
    苏糊阅读 3,063评论 1 1
  • 1、确认应答(ACK)机制 TCP 将每个字节的数据都进行了编号,即为序列号。确认序号 = 序号 + 1 每个 A...
    杰哥长得帅阅读 1,469评论 0 0
  • [TOC] 参考 1. TCP可靠性的保证机制总结[https://blog.csdn.net/xuzhangze...
    GOGOYAO阅读 24,372评论 2 18
  • TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。 通过序列号与确认应答提高...
    MzDavid阅读 1,878评论 0 0

友情链接更多精彩内容