• 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,这称为接收窗口rwnd, 即调整TCP报文段首部中的“窗口”字段值,来限制发送方向网络注入报文的速率。
    • 同时,发送方根据其对当前网络拥塞程序的估计而确定的窗口值,这称为拥塞窗口cwnd,其大小与网络的带宽和时延密切相关。
      5.3.3 TCP流量控制 - 图1
    • 例如,在通信中,有效数据只从A发往B,而B仅向A发送确认报文,这时B可以通过设置确认报文段首部的窗口字段来将rwnd通知给A。
    • rwnd 即接收方允许连续接收的最大能力,单位是字节。
    • 发送方A总是根据最新收到的rwnd值来限制自己发送窗口的大小,从而将未确认的数据量控制在rwnd大小之内,保证A不会使B的接收缓存溢出。
    • 当然,A的发送窗口的实际大小取rwnd和cwnd中的最小值。
    • 5.3.3 TCP流量控制 - 图2
      5.3.3 TCP流量控制 - 图3

    传输层和数据链路层的流量控制的区别是:

    • 传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。
    • 另外,数据链路层的滑动窗口协议的窗口大小不能动态变化传输层的则可以动态变化