目的:
控制发送方发送的速率
概念:
主机双方在通信的时候,发送方的速率与接收方的速率不一定相等,如果发送方的发送速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里。
如果缓存区满了发送方还在发送数据,接收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源,因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡。
对发送方发送速率的控制,称为流量控制。
策略原理:
接收方每次收到数据包,可以在发送确定报文的时候,同时告诉发送方自己的缓存区的剩余空间,把缓存区的剩余大小称为接收窗口大小(win)。
发送方收到之后,便会调整自己的发送速率,也就是调整自己发送窗口的大小,当发送方收到接收窗口的大小为0时,发送方就会停止发送数据,防止出现大量丢包情况的发生,并且同时开启一个定时器,每隔一段时间就发个测试报文去询问接收方,打听是否可以继续发送数据了,如果可以,接收方就告诉他此时接受窗口的大小;如果接受窗口大小还是为0,则发送方再次刷新启动定时器。