假设我们谈论许多发送者向接收者发送数据包的情况 通常,发件人将通过使用限制发送速率的滑动窗口来控制拥塞。
我们有:
snd_cwnd = min(cwnd,rwnd)
使用来自网络(路由器,交换机)的显式或隐式反馈信息,发件人可以控制cwnd
来控制发送速率。
通常情况下,rwnd
总是很大,发件人只关心cwnd
。但是,如果我们考虑rwnd
,使用它来限制snd_cwnd
,就可以更有效地控制拥塞。
rwnd
是接收方能够接收的数据包(或字节数)。我关心的是发件人的能力。
问题:
那么接收器如何知道有多少流向它发送数据包呢?
2.无论如何,接收者是否知道发送者的snd_cwnd?
答案 0 :(得分:1)
这一切都很困惑。
进入接收器的流量与任何特定流量的rwnd无关。 rwnd只是该流的接收缓冲区中剩余的空间量。
收件人无需知道发件人的cwnd。这是发件人的问题。
你的陈述通常是rwnd总是很大,以至于发件人只关心cwnd'简直是不真实的。接收窗口随每次接收而变化;每次ACK都会重新公布;它经常降到零。
以下声明'如果我们考虑使用rwnd,使用它来限制cwnd ......'只是对已经发生的事情的描述,如&snd_cwnd = min(cwnd,rwnd)'。
否则它可能构成一个完全无法解释的提议,即不必要地修改已经工作了25年的TCP流量控制,并且之前没有工作了几年:我记得20世纪80年代中期的几次Arpanet冻结。