索引
流量控制
TCP流量控制是通过滑动窗口算法来控制的,每次ACK时客户端会返回一个窗口大小给服务端,服务端根据窗口大小控制自己眼瞎该发送多少数据给客户端。
窗口将服务端的数据分为4部分:已发送已得到确认、已发送未得到确认、未发送但马上会发送、未发送也不打算发送。如下图:
TCP重传
有时候数据包没有得到ACK,那么发送端会等待一段时间后重传。但是这个等待的时间毕竟会增大网络延时,所以接收端可以通过重复发送已ACK过的ACK包来提示发送端有一个包丢了,你快点再发一次给我。
例如接收端收到了6号包和8号包,客户端就知道7号包可能已经丢了,所以重复发送对6号包的ACK消息给发送端,发送3次重复ACK后,发送端就知道6号包的下一个7号包丢了,会再次重传7号包。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2731