【问题标题】:Benefit of small TCP receive window?小 TCP 接收窗口的好处?
【发布时间】:2013-04-18 01:02:48
【问题描述】:

当我遇到接收窗口的概念时,我正在尝试了解 TCP 流控制的工作原理。

我的问题是,为什么 TCP 接收窗口可以缩放?实现小接收窗口大小有什么好处吗?

因为据我了解,接收窗口大小越大,吞吐量越高。而接收窗口越小,吞吐量越低,因为 TCP 总是等到分配的缓冲区未满再发送更多数据。那么,让接收窗口始终处于最大值以获得最大传输速率是否有意义?

【问题讨论】:

    标签: networking tcp buffer flow-control


    【解决方案1】:

    我的问题是,为什么 TCP 接收窗口可以缩放?

    这里有两个问题。窗口缩放是将比例乘以 2 的幂的能力,因此您可以拥有 > 64k 的窗口大小。然而,您问题的其余部分表明您确实在问为什么它可调整大小,答案是“因此应用程序可以选择自己的接收窗口大小”。

    实现小接收窗口大小有什么好处吗?

    不是真的。

    因为据我了解,接收窗口越大,吞吐量越高。

    正确,直到带宽延迟乘积。除此之外,增加它没有任何效果。

    虽然接收窗口越小,吞吐量就越低,因为 TCP 会一直等到分配的缓冲区未满再发送更多数据。那么,让接收窗口始终处于最大值以获得最大传输速率是否有意义?

    是的,直到带宽延迟乘积(见上文)。

    一个小的接收窗口确保当检测到数据包丢失时(在高冲突网络上经常发生),

    不,它没有。模拟表明,如果丢包率超过几个 %,TCP 就会变得不可用。

    发送方不需要重新发送大量数据包。

    它不会那样发生。除了降低内存占用之外,小窗口大小没有任何优势。

    【讨论】:

      【解决方案2】:

      经过大量阅读,我想我可能刚刚找到了答案。

      吞吐量不仅仅是接收窗口的功能。小接收窗口和大接收窗口各有利弊。

      一个小的接收窗口确保当检测到数据包丢失(在高冲突网络上经常发生)时,发送方不需要重新发送大量数据包。

      较大的接收窗口可确保发送方在等待接收方确认已收到数据包时大部分时间不会处于空闲状态。

      需要调整接收窗口,以获得任何给定网络的最佳吞吐量。

      【讨论】:

      • 一个大的接收窗口确保网络本身容量的最佳使用,这是由带宽延迟产品定义的。接收窗口需要可调节,以便能够限制发送方,以免无法传递的数据包淹没网络。你的消息来源似乎很可疑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多