TCP协议是如何保证可靠传输的
- 校验和: 发送的数据包的二进制相加再取反, 目的是检测数据在传输过程中的任何变化. 如果校验和有差错, TCP将丢弃这个报文段, 并不确认收到此报文段, 这时TCP发送数据端超时后会重发数据.
- 合理分片和排序: TCP将数据报合理分片传输, 接收方会缓存未按序到达的数据, 重新排序后再交给应用层.
- TCP的接收端丢弃重复数据.
- 应答机制: 当接收方收到发送方传来的数据, 会回传一个确认, 这个确认不是立即发送, 通常推迟几分之一秒.
- 超时重传: 当TCP发出一个报文段后, 会启动一个定时器, 等待接收方确认收到这个报文段. 如果发送方不能及时收到一个确认, 会再重发这个报文段.
- 流量控制: TCP连接的每一方都有固定大小的缓冲空间, TCP的接收方只允许发送方发送接收方缓冲区能接纳的数据. 当接收方来不及处理发送方的数据, 会提示发送方降低发送速率, 防止包丢失. 这样可以防止较快主机致使较慢主机的缓冲区溢出. TCP使用的流量控制协议是可变大小的滑动窗口协议. 接收方有滑动窗口, 会随ACK报文发送.
- 拥塞控制: 当网络拥塞时, 减少数据的发送. 发送方有拥塞窗口, 发送数据前, 比对接收方发过来的即时窗口, 取小. 拥塞控制: 慢启动, 拥塞避免, 拥塞发送, 快速回复.
TCP协议如何保证可靠传输
原文:https://www.cnblogs.com/KX-Lau/p/12553625.html