定义
    控制发送方的发送速率(发送过快),防止分组丢失

    实现
    滑动窗口机制
    发送方:根据rwnd来确定是否发送
    接收方:应答时会带接收窗口大小rwnd
    持续计时器:零窗口处理

    场景
    注:rwnd会由于未及时处理接收数据而变小直至为0时停止接收
    Q:流量控制引发的死锁是什么?
    A:当发送者收到了一个窗口为0的应答,发送者便停止发送,等待接收者的下一个应答。但是如果这个窗口不为0的应答在传输过程丢失,发送者一直等待下去,而接收者以为发送者已经收到该应答,等待接收新数据,这样双方就相互等待,从而产生死锁。
    而不是:当rwnd为0时,不发送;不发送,又无法获取新rwnd
    Q:当接收方返回rwnd为零后,如何感知接收窗口空闲(rwnd不为0)再继续发送数据,解除死锁状态?
    A:持续计时器(定时器),TCP为每个连接设有一个持续计时器。只要其中一方接收零窗口通知则启动。到期发送一个零窗口探测报文段(仅1字节数据),对方确认后返回新的窗口值。若该窗口值仍为0,则重新设置计数器。

    示例
    image.png