乐趣区

关于tcp:TCP如何保证可靠传输

TCP 如何保障牢靠传输?

1. 确认应答和序列号
2. 超时重传
3. 流量管制
4. 拥塞管制

1. 确认应答和序列号

TCP 传输时将每个字节的数据都进行了编号,这就是序列号。tcp 按序号发送报文,接收端收到报文后,会给发送端一个 ACK 确认报文,用来示意曾经胜利接管到报文,报文中还带有 ack,示意下一次发送端应该从哪里开始发送报文。

2. 超时重传

如果发送端发送的数据没有收到 ACK 确认,可能是:(1)发送给接收端的报文失落了(2)接收端发送的 ACK 确认报文失落了。不论是哪种起因,超过肯定工夫后,没有收到 ACK 确认,TCP 启动超时重传机制,发送端从新发数据,如果接收端曾经有了该数据,只是因为 ACK 确认失落导致超时重传,会将刚刚发送过去的数据包抛弃。超时重传保障报文即便失落能再传输,晓得传输胜利为止,从而实现牢靠传输。

3. 流量管制

发送端如果数据发送过快,导致接收端的缓冲区很快就满了,如果继续上来,数据溢出缓冲区,就会呈现数据失落。这时须要在发送端和接收端有一个窗口,窗口的作用为:在发送缓冲区,只有在窗口外面的数据,能力被发送,在接收缓冲区,只有在窗口里的数据能力被接管,接收端收到数据之后,会回复 ack,发送端会依据 ack 的值来判断接管能力,从而动静调整窗口大小,实现流量管制。

4. 拥塞管制

如果网络呈现拥塞,TCP 会依据不同状况,采纳不同的算法:慢开始,拥塞防止,快重传,快复原来对窗口大小 cwnd 和慢开始门限值 ssthresh 进行调整,从而升高网络拥塞的可能性。

退出移动版