今天谈一谈我对于tcp流量控制的看法
在网络拓扑中如果发送方节点的发送速率大于接受方节点的接受速率,数据会不断在接受方的缓冲区累积,直到接受方的缓冲区满的时候,发送方继续发送数据,这时候接受方无法存放这些数据,就只能将数据包丢掉,这样就消耗了网络资源,那么有没有一种机制来尽量这种情况的发生
当然有,这就是我们今天的主角,鼎鼎大名的流量控制,流量控制通过滑动窗口机制来实现的,它提供了一种类似负反馈的机制,发送方获得接受方的反馈,根据接受的接受能力来动态调整发送速率,确保不会发送过多的数据导致接收方无法及时处理
流量控制的大概流程:当发送方发送数据后,接受方回复的确认包会携带当前接受窗口的大小,如果接受窗口变大了,那么发送方可以适量增加发送的数据,如果接受窗口变小了,那么发送方可以适量减少发送的数据,通过不断根据接受方的窗口大小来调整发送的数据量,保证了网络的稳定性