Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
本页内容
 

丢弃拥塞通知

丢弃拥塞通知 (DCN) 是一种基于数据包修整的拥塞管理技术。遇到拥塞的设备不会在发生拥塞时丢弃数据包,而是将数据包的有效负载削减到更小的大小。然后,设备通过高优先级队列将修整后的数据包传输到其目的地。终端主机识别因拥塞而丢弃的特定 DCN 数据包,并快速请求重新传输丢失的数据包。原始发送方主机在收到 DCN 反馈后,会立即重新传输确切的数据包并调整流速。

概述

在典型的基于以太网的网络中,当缓冲区因拥塞而已满时,数据包将从出口队列中删除。对于像 TCP 这样的协议,这会导致需要重新传输数据包。要实现重传,终端主机必须管理复杂的状态机,这可能会对整体网络吞吐量产生负面影响。

另一种方法是让交换机实施拥塞通知机制,例如显式拥塞通知 (ECN)。ECN 允许网络在数据包丢失之前向接收方发出拥塞信号。但是,ECN 也会降低吞吐量,因为在缓冲区完全填满之前,必须检测并标记拥塞。

无损网络采用优先流控制 (PFC) 等功能,以防止拥塞期间数据包丢失。PFC 向对等设备发出信令以降低其传输速率。然而,PFC 也带来了挑战,包括线头 (HOL) 阻塞、PFC 死锁和拥塞传播等问题。

丢弃拥塞通知 (DCN) 是一种基于数据包修整的拥塞管理技术。遇到拥塞的设备不会在发生拥塞时丢弃数据包,而是将数据包的有效负载缩减到更小的大小(仅显示数据包标头和一小部分有效负载)。然后,设备通过高优先级队列将修整后的数据包传输到其目的地。网络中的后续跃点可识别带有 DCN 标记的数据包,并将它们定向到高优先级队列。终端主机必须能够处理修整后的 DCN 数据包,识别由于拥塞而丢弃的特定数据包,并快速请求重新传输丢失的数据包。原始发送方主机在收到 DCN 反馈后,会立即重新传输确切的数据包并调整流速。

启用 DCN 后,设备会将丢弃的数据包修整为单个信元的大小。当应用于大型数据包(例如4KB)时,修整是最有效的,因为它会显著降低数据速率。相反,如果剪裁的数据包仅略大于单个信元(206 字节),则几乎不会减少数据,如果修剪后的数据包使用了很大一部分带宽,则数据缩减甚至会造成不利影响。

好处

  • 使用常规以太网结构提供更低的端到端延迟。

  • 在发起重传请求之前,终端主机无需长时间维护状态机来检测丢失的数据包。

  • 借助 DCN,终端主机可以及时请求重新传输丢失的确切数据包,从而更快地完成流量。

配置

DCN 仅适用于 UDP 单播流量。要使设备能够提供 DCN 传输,您需要将 UDP 端口号设置为 DCN 协议号,并为 DCN 修整的数据包设置严格高优先级转发类和队列。

要使设备在拥塞时也能创建 DCN 修整的数据包,还需要您在一个或多个入口接口上启用 DCN。

  1. 将客户定义的 L4 UDP 端口号设置为 DCN 协议号。设备使用它来识别 DCN 数据包。
  2. 为所有 DCN 修整的数据包设置严格-高优先级的转发类。转发类必须映射到单播队列。
    注意:

    建议仅为 DCN 保留严格-高优先级队列。没有用于 DCN 修整数据包的硬件计数器。但是,如果对 DCN 修整数据包使用专用队列,则现有队列统计信息命令可以显示 DCN 统计信息。

  3. (可选)要使设备能够在拥塞时创建 DCN 修整的数据包,请在各个端口上启用 DCN。
    注意:

    例如 et-*,您可以使用通配符在设备上的所有端口上启用 DCN。

    如果您只需要设备提供 DCN 传输,则不需要此步骤。

下面是一个配置示例:

运行以下命令以验证是否已启用 DCN: