0

假设我们谈论许多发送者向接收者发送数据包的情况。
通常,发送者会通过使用限制发送速率的滑动窗口来控制拥塞。

我们有:

 snd_cwnd = min(cwnd,rwnd) 

使用来自网络(路由器、交换机)的显式或隐式反馈信息,发送方将cwnd控制发送速率。

通常,rwnd总是足够大,发件人只关心cwnd。但是如果我们考虑rwnd,用它来限制snd_cwnd,它会使拥塞控制更有效。

rwnd是接收器能够接收的数据包(或字节)数。我关心的是发件人的能力。

问题:
1. 那么接收方如何知道有多少流向它发送数据包?
2. 接收方是否知道发送方的 snd_cwnd?

4

1 回答 1

1

这一切都非常混乱。

  1. 进入接收器的流数与任何特定流的 rwnd 无关。rwnd 只是该流在接收缓冲区中剩余的空间量。

  2. 接收者不需要知道发送者的 cwnd。那是发件人的问题。

您关于“通常 rwnd 总是足够大以至于发件人只关心 cwnd”的说法是不真实的。接收窗口随每次接收而变化;每次 ACK 都会重新通告它;它经常下降到零。

您的以下陈述“如果我们考虑 rwnd,使用它来限制 cwnd ...”只是对已经发生的事情的描述,根据“snd_cwnd = min(cwnd, rwnd)”。

否则,它可能构成一个完全无法解释的提议,不必要地修改已经工作了 25 年的 TCP 流量控制,并且在此之前几年都没有工作:我记得在 1980 年代中期有几次 Arpanet 冻结。

于 2014-04-25T01:31:05.277 回答