【问题标题】:Queue Length really affect Latency in DCTCP?队列长度真的会影响 DCTCP 中的延迟吗?
【发布时间】:2014-04-26 22:04:10
【问题描述】:

DCTCP 是用于数据中心环境的 TCP 变体。 The source is here

DCTCP 使用商品交换机中的 ECN 功能将交换机中缓冲区的队列长度限制在阈值 K 左右。这样做,很少发生丢包,因为 K 远小于缓冲区的容量,因此缓冲区几乎没有满。

DCTCP 为小流量实现低延迟,同时为大流量保持高吞吐量。原因是当队列长度超过阈值 K 时,将向发送者反馈拥塞通知。在发送方,随着时间的推移计算拥塞概率值,因此发送方将根据拥塞程度相应地降低发送速率。

DCTCP 指出,小队列长度将减少延迟或流的传输时间。我对此表示怀疑。因为除非丢包导致重传等高延迟。在 DCTCP 中,丢包的情况很少发生。

  • 交换机上的小队列会强制发送方降低发送速率,从而强制数据包在发送方的 TX 缓冲区中排队。

  • 交换机上更大的队列使发送方具有更高的发送速率,并且数据包在发送方的 TX 缓冲区中排队,现在它在交换机的缓冲区中排队。

所以我认为大小队列的延迟还是一样的。

你怎么看?

【问题讨论】:

    标签: networking tcp queue switch-statement congestion-control


    【解决方案1】:

    交换机中的缓冲区不会增加网络容量,它只会在流量突发时帮助不丢失太多数据包。但是,TCP可以通过发送较慢来处理丢包,这正是它在网络容量达到时需要做的。

    如果你连续在极限运行网络,交换机的队列将一直满或几乎满,所以如果队列满了你仍然会丢失数据包。但是,您也会增加延迟,因为数据包需要一些时间才能从它到达的队列末尾到达将被转发的开头。这种延迟再次导致 TCP 堆栈对拥塞的反应较慢,这再次增加了拥塞、丢包等情况。

    因此,理想的交换机就像网线一样,例如根本没有任何缓冲区。 您可以通过搜索“bufferbloat”来了解更多关于大缓冲区引起的问题,例如http://en.wikipedia.org/wiki/Bufferbloat.

    如果有疑问,请对自己进行基准测试。

    【讨论】:

      【解决方案2】:

      这取决于队列占用率。 DCTCP 旨在保持较小的队列占用率,因为作者认为队列延迟是长延迟的原因。

      因此,队列的最大大小无关紧要。在最大队列大小为 16Mb 或最大队列大小仅为 32kb 的情况下,如果我们可以将队列占用率始终保持在 8kb 左右或较小的大小,排队延迟将是相同的。

      阅读 DCTCP 的第一作者 M. Alizadeh 的论文 HULL from NSDI 2012。 HULL 还旨在保持较短的队列占用率。

      他们所说的小缓冲区是因为数据中心交换机的趋势从“存储和转发”缓冲区转变为“直通”缓冲区。只需谷歌它,你可以找到一些来自 CISCO 或其他相关网页的文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-30
        • 2023-03-16
        • 2023-03-10
        • 2012-11-22
        • 2011-06-01
        • 1970-01-01
        • 2011-09-13
        • 2010-12-05
        相关资源
        最近更新 更多