流量控制

TCP利用滑动窗口实现流量控制。
通信过程中,接收方根据自己接收缓存的大小,动态调整发送方的发送窗口大小。
image.png
image.png

滑动窗口和流速控制是怎么回事?

滑动窗口是TCP协议控制可靠性的核心,发送方将数据拆包,变成多个分组然后将数据放入一个拥有滑动窗口的数组,依次发出,仍然遵循先入先出的顺序。 但是窗口中的分组会一次性发送。窗口中序号最小的分组如果收到ACK,窗口就会发生滑动,如果最小序号的分组长时间没有收到ACK,就会触发整个窗口的数据重新发

拥塞控制

拥塞控制的作用是防止过多的数据注入到网络中,避免出现网络负载过大的情况。

慢开始

不要一开始就发送大量的数据,先探测一下网络的拥塞程度,由小到大逐渐增加拥塞窗口的大小。
在每次经过一个往返时间,也就是每次传输一次之后,拥塞窗口就会加倍。

拥塞避免

让拥塞窗口缓慢增长,就是经过一个往返时间,就把拥塞窗口大小加1,不是加倍,按照线性增长。
image.png

快重传

发送方连续收到三个重复确认就应该立即重传报文段,不必继续等待重传计时器。

快恢复

image.png
当发现网络拥堵的时候,就把阈值减半,就开启快恢复(不再慢开始)
注意:在采用快恢复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才使用