计算机网络笔记3.7
Classic TCP Congestion Control
这种方法是当网络拥塞时,TCP减少发送的速率。当网络不拥塞时,TCP增加发送速率。
这样就带来三个问题
- 当遇到网络阻塞时,TCP如何限制发送的速率?
- TCP如何感知拥塞?
- 当发送方感知到了端对端的拥塞时,应当采用什么算法改变速率?
前提概念
$LastByteRead$ 应用进程从缓存中独处的数据流的最后一个字节的编号
$LastByteRcvd$ 从网络中到达的并且已放入主机接受缓存中的数据流最后一个字节的编号
$rwnd$为接受窗口,是表明当前缓存中还有多少剩余的空间
$$ rwnd = RcvBuffer -[LastByteRcvd - LastByteRead] $$
$ cwnd $ 为拥塞窗口,它对发送方向网络中发送流量的速率进行了限制
TCP发送方限制发送连接流量
$ cwnd $ 会对一个TCP发送方能向防落中发送流量的速率进行限制。在一个发送方中未被确认的数据流不会超过$cwnd$和$rwnd$中的最小值。
$$ LastByteSent - LastByteAcked \le min{cwd, rwnd}$$
如果rwnd足够大的时候,发送方能发送的未被确认的数据量取决于$cwdn$,所以通过调节$cwdn$的值,就可以调节发送方向它连接发送数据的速率。