TCP协议如何保证可靠传输

TCP协议是如何保证可靠传输的

  1. 校验和

    发送的数据包的二进制相加再取反, 目的是检测数据在传输过程中的任何变化. 如果校验和有差错, TCP将丢弃这个报文段, 并不确认收到此报文段, 这时TCP发送数据端超时后会重发数据.

  2. 合理分片和排序

    TCP将数据报合理分片传输, 接收方会缓存未按序到达的数据, 重新排序后再交给应用层.

  3. TCP的接收端丢弃重复数据.

  4. 应答机制

    当接收方收到发送方传来的数据, 会回传一个确认, 这个确认不是立即发送, 通常推迟几分之一秒.

  5. 超时重传

    当TCP发出一个报文段后, 会启动一个定时器, 等待接收方确认收到这个报文段. 如果发送方不能及时收到一个确认, 会再重发这个报文段.

  6. 流量控制

    TCP连接的每一方都有固定大小的缓冲空间, TCP的接收方只允许发送方发送接收方缓冲区能接纳的数据. 当接收方来不及处理发送方的数据, 会提示发送方降低发送速率, 防止包丢失. 这样可以防止较快主机致使较慢主机的缓冲区溢出. TCP使用的流量控制协议是可变大小的滑动窗口协议. 接收方有滑动窗口, 会随ACK报文发送.

  7. 拥塞控制

    当网络拥塞时, 减少数据的发送. 发送方有拥塞窗口, 发送数据前, 比对接收方发过来的即时窗口, 取小. 拥塞控制: 慢启动, 拥塞避免, 快重传, 快恢复.

作者:凯旋.Lau
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/KX-Lau/p/12553625.html