Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 CoS WRED 丢弃配置文件

当排队的数据包数量大于设备清空输出队列的能力时,队列需要一种方法来确定丢弃哪些数据包以缓解拥塞。加权随机早期检测 (WRED) 丢弃配置文件定义输出队列填充时不同数据包丢失概率 (PLP)。在拥塞期间,随着输出队列的填满,设备将丢弃由丢弃配置文件确定的传入数据包,直至输出队列的拥塞减少。

根据丢弃概率,丢弃配置文件可在缓冲区充满之前很久丢弃许多数据包,或者即使缓冲区几乎已满,也只能丢弃几个数据包。

您可在服务等级 (CoS) 配置层次结构的丢弃配置文件部分配置丢弃配置文件。您可在队列时间表配置中使用丢弃配置文件映射应用丢弃配置文件。对于每个队列时间表,您可以使用 loss-priority 属性(低、中高和高)为每个 PLP 配置单独的丢弃配置文件。这使您能够在拥塞期间以不同方式处理不同PLP的流量。

注意:

不要将丢弃配置文件应用于无损流量(信息流属于具有丢弃属性的 no-loss 转发类。)。无损流量使用基于优先级的流量控制 (PFC) 来控制拥塞。

注意:

您无法将丢弃配置文件应用于支持这些配置文件的设备上的多排位队列。

丢弃配置文件参数

丢弃配置文件指定两个值,它们成对工作:

  • 填充级别 — 队列完整性值,表示用于存储数据包的内存百分比,与分配给队列的内存总量相关。

  • 丢弃概率 — 百分比值与单个数据包被丢弃的可能性对应。

定义交换机上(QFX10000 除外)上的丢弃配置文件

您在每个丢弃配置文件中设置两个队列填充级别和两个丢弃概率。第一个填充级别和第一个丢弃概率创建一个值对和第二个填充级别,第二个填充级别和第二个填充概率创建第二个值对。

第一个填充级别值指定了数据包开始丢弃的队列满度百分比,称为丢弃起点。在队列达到此饱满级别之前,不会丢弃数据包。第二个填充级别值指定了丢弃所有数据包的队列满度百分比,称为丢弃端点。

第一个丢弃概率值始终 0 为 (0)。此与丢弃启动点配对,并指定在队列满度级别达到第一个填充级别之前,不会丢弃数据包。当队列满度超过丢弃开始点时,数据包将开始下降,直到所有数据包均出现下降时队列超过第二个填充级别。第二次丢弃概率值(称为最大丢弃率)指定了当队列满度达到丢弃端点时丢弃数据包的可能性。当队列从丢弃开始点填充到丢弃端点时,数据包将以平滑的线性模式(称为中间图)丢弃,如 图 1 所示。丢弃端点之后,所有数据包都会丢弃。

图 1:WRED-Drop 配置文件数据包丢弃模式 WRED-Drop Profile Packet Drop Pattern

图 1 中的厚线显示了样本 WRED 配置文件的数据包丢弃特征。在丢弃开始点,队列达到 30% 的填充级别。在丢弃端点,队列填充级别达到 50%,最大丢弃率为 80%。

在队列填充级别达到 30% 的丢弃起点之前,不会丢包。当队列达到 30% 的填充级别时,数据包将开始下降。随着队列的填满,丢弃的数据包百分比以线性方式增加。当队列填充到 50% 的丢弃端点时,数据包丢弃率已提高到 80% 的最大丢弃率。当队列填充级别超过 50% 的丢弃端点时,所有数据包都会丢弃,直到队列填充级别下降到 50% 以下。

定义 QFX10000 交换机上的丢弃配置文件

每个队列都以丢弃概率填充级别对。当队列填充到不同级别时,每次达到在丢弃配置文件中配置的填充级别时,队列都会将与该填充级别成对的丢弃概率应用于超过填充级别的队列中的信息流。您可以配置多达 32 对填充级别和丢弃概率,以创建一个自定义的数据包丢弃概率曲线,最高 32 分的差异化。

数据包在达到第一个配置的队列填充级别之前不会丢弃。当队列达到第一个填充级别时,数据包开始按照与第一个填充级别成对的配置的丢弃概率率丢弃。当队列达到第二个填充级别时,数据包开始以与第二个填充级别成对的配置的丢弃概率率下降。对于您在丢弃配置文件中配置的填充级别/丢弃概率对数量,此进程将继续。

丢弃配置文件进行插叠,而不是分段。插值丢弃配置文件会在每个配置的填充级别之间沿着曲线逐渐增加丢弃概率。当队列达到下一个填充级别时,丢弃概率达到与填充级别成对的丢弃概率。分段丢弃配置文件从一个填充级别“跳跃”,并逐步将丢弃概率设置到另一个。在达到下一个填充级别之前,信息流的丢弃概率不会发生变化。

插值示例为具有三对填充级别/丢弃概率对的丢弃配置文件:

  • 25% 队列填充级别与 30% 丢弃概率成对

  • 50% 队列填充级别与 60% 丢弃概率成对

  • 75% 的队列填充级别与 100% 丢弃概率成对(所有超过 75% 队列填充级别的数据包都会被丢弃)

队列不会丢弃任何数据包,直到其填充级别达到 25%。在拥塞期间,当队列充满超过 25% 时,队列将开始以填充级别以上 30% 的数据包速率丢弃数据包。

但是,随着队列继续填充,它不会继续以 30% 的丢弃概率丢弃数据包。相反,随着队列填充到 50% 的完整性级别,丢弃概率逐渐增加。当队列达到 50% 填充级别时,丢弃概率增加至填充级别配置的丢弃概率对,即 60%。

随着队列继续填充,丢弃概率不会保持在 60%,而是随着队列填充而继续上升。当队列达到 75% 满的最终填充级别时,丢弃概率上升到 100%,超过 75% 填充级别的所有数据包都会被丢弃。

默认丢弃配置文件

如果不配置丢弃配置文件并将其应用到队列时间表,设备将默认丢弃配置文件用于丢失信息流类。在默认丢弃配置文件中,当填充级别为 0% 时,丢弃概率为 0%。当填充级别为 100%时,丢弃概率为 100%。在拥塞期间,一旦数据包到达队列,默认配置文件可能会开始丢弃数据包。

数据包丢弃方法

当数据包到达队列头时,设备计算随机编号在 0 到 100 之间。设备使用队列的当前填充级别根据丢弃配置文件绘制随机编号。当随机编号落在图形行上方时,队列会将数据包从出口接口中传输出来。当该编号低于图形线时,设备将丢弃数据包。

交换机(QFX10000 除外)的数据包丢弃示例

要创建从丢弃起跑点到丢弃端点的线性丢弃模式,丢弃概率使用具有八个部分的线性近似值(从最小队列填充级别到最大队列填充级别的步骤)派生。填充级别平均分为八个部分,从最低填充级别开始,到最大填充级别结束。随着队列的填满,丢弃的数据包百分比会增加。丢弃的数据包百分比基于最大丢弃率。

例如,在八节线性丢弃模式中,默认丢弃配置文件(指定最大丢弃率为 100%)在每个部分或步骤都有以下丢弃概率:

  • 第一节 — 最低丢弃概率为最大丢弃率的 6.25%。最大丢弃概率为最大丢弃率的 12.5%。

  • 第二节 — 最低丢弃概率为最大丢弃率的 18.75%。最大丢弃概率为最大丢弃率的 25%。

  • 第三节 — 最低丢弃概率为最大丢弃率的 30.25%。最大丢弃概率为最大丢弃率的 37.5%。

  • 第四节 — 最低丢弃概率为最大丢弃率的 43.75%。最大丢弃概率为最大丢弃率的 50%。

  • 第五节 — 最低丢弃概率为最大丢弃率的 56.25%。最大丢弃概率为最大丢弃率的 62%。

  • 第六节 — 最低丢弃概率为最大丢弃率的 68.75%。最大丢弃概率为最大丢弃率的 75.5%。

  • 第七节 — 最低丢弃概率为最大丢弃率的 81.25%。最大丢弃概率为最大丢弃率的 87.5%。

  • 第八节 — 最低丢弃概率为最大丢弃率的 92.75%。最大丢弃概率为最大丢弃率的 100%。

即使没有拥塞,数据包也会丢弃,因为数据包丢弃从丢弃起点开始,而不管端口上是否存在拥塞情况。默认丢弃配置文件示例表示最坏的情况,因为丢弃开始点填充级别为 0%,因此当队列开始接收数据包时,数据包丢弃将开始。

您可以通过在填充级别配置大于 0% 的丢弃起点来指定数据包何时开始丢弃。例如,如果配置的丢弃配置文件的丢弃启动点为 30%,则数据包不会丢弃,直到队列已满 30%。我们建议您配置适合网络流量条件的丢弃配置文件。

最低丢弃速率(始终为 0)与最大丢弃速率之间的间隙越小,线性丢弃模式各段(步骤)中最低丢弃概率与最大丢弃概率之间的间隙越小。默认丢弃配置文件在最低丢弃率 (0%) 和最大丢弃率 (100%) 之间存在最大间隙,在最低丢弃概率与每个步骤的最大丢弃概率之间具有最高间隙。为丢弃配置配置较低的最大丢弃速率可减少最小丢弃概率与最大丢弃概率之间的间隙。

丢弃配置文件地图

丢弃配置文件图是时间表配置的一部分。丢弃配置文件映射将丢弃配置文件映射到数据包丢失优先级。指定时间表中的丢弃配置文件映射将丢弃配置文件与您在时间表映射中映射到时间表的转发类(队列)相关联。

您可为 CoS 配置层次结构的分类器部分中的队列配置丢失优先级,并将丢失优先级应用于在入口接口分配至转发类的信息流。

每个时间表都可以有多个丢弃配置文件图。

拥塞防御

在输出队列上配置丢弃配置文件可让您控制拥塞如何影响端口上的其他队列。如果不配置丢弃配置文件并将其映射到输出队列,设备将使用队列上的默认丢弃配置文件来转发丢失的信息流。

例如,如果入口端口将流量转发至多个出口端口,并且至少有一个出口端口出现拥塞,则可能导致入口端口拥塞。入口端口拥塞(入口缓冲区超过其资源分配)可能导致入口端口而不是出口端口上的帧丢弃。入口端口帧丢弃会影响所有出向端口转发流量的出口端口,而不仅仅是拥塞的出口端口。

注意:

请勿为 fcoeno-loss 转发类配置丢弃配置文件。FCoE 和其他无损信息流队列需要无损行为(使用数据包丢弃属性配置的信息 no-loss 流队列)。使用基于优先级的流量控制 (PFC) 来防止无损优先级上的帧丢弃。

配置 WRED 丢弃配置文件并将其应用到输出队列

要配置 WRED 数据包丢弃配置文件并将其应用到输出队列:

  1. 配置丢弃配置文件:

    • 在交换机上(QFX10000 除外)使用 语句 set class-of-service drop-profiles profile-name interpolate fill-level drop-start-point fill-level drop-end-point drop-probability 0 drop-probability percentage

    • 在 QFX10000 交换机上使用 语句 set class-of-service drop-profiles profile-name interpolate fill-level level1 level2 ... level32 drop-probability probability1 probability2 ... probability32。您可以指定多达两对填充级别/丢弃概率对或多达 32 对。

  2. 使用 语句 set class-of-service schedulers scheduler-name drop-profile-map loss-priority (low | medium-high | high) protocol any drop-profile profile-name将丢弃配置文件映射到队列时间表。丢弃配置文件的名称是步骤 1 中配置的 WRED 配置文件的名称。

  3. 使用语句 set class-of-service scheduler-maps map-name forwarding-class forwarding-class-name scheduler scheduler-name将第 2 步与丢弃配置文件关联的时间表映射到输出队列。转发类标识输出队列。转发类默认映射到输出队列,可通过显式用户配置重新映射到不同的队列。时间表名称是在第 2 步中配置的时间表。

  4. 在交换机上(QFX10000 除外),请使用 该语句 set class-of-service traffic-control-profiles tcp-name scheduler-map map-name将时间表图与信息流控制配置文件相关联。时间表映射名称是步骤 3 中配置的名称。

  5. 在交换机上(QFX10000 除外),使用 语句 set class-of-service interfaces interface-name forwarding-class-set forwarding-class-set-name output-traffic-control-profile tcp-name将流量控制配置文件与接口相关联。输出信息流控制配置文件名称是步骤 4 中配置的信息流控制配置文件的名称。

    接口使用信息流控制配置文件中的时间表映射将丢弃配置文件(和其他属性)应用于该接口上的输出队列(转发类)。由于您可以使用不同的流量控制配置文件将不同的时间表映射到不同的接口,因此不同接口上的相同队列编号可以以不同的方式处理流量。

  6. 在 QFX10000 交换机上,使用 语句 set class-of-service interfaces interface-name scheduler-map scheduler-map-name 将时间表映射与接口相关联。

    接口使用时间表图将丢弃配置文件(及其他属性)应用于映射到该接口上转发类的输出队列。由于您可以在不同的接口上使用不同的时间表图,因此不同接口上的相同队列编号可以以不同的方式处理流量。

显式拥塞通知启用队列上的丢弃配置文件

您必须在为显式拥塞通知 (ECN) 启用的队列上配置 WRED 丢弃配置文件。在支持 ECN 的队列中,丢弃配置文件设置了队列何时应将数据包标记为出现拥塞的阈值(请参阅 了解 CoS 显式拥塞通知)。当队列填充到 WRED 丢弃配置文件的数据包丢弃概率大于零 (0) 的水平时,设备可能会将数据包标记为遇到拥塞。设备是否将数据包标记为出现拥塞情况与该填充级别上队列的丢弃概率相同。

在支持 ECN 的队列上,设备不会使用丢弃配置文件来控制在拥塞期间丢弃不支持 ECN 的数据包(标记为非 ECT 的数据包,ECN 代码位 00)。相反,设备使用尾部丢弃算法在拥塞期间丢弃不支持 ECN 的数据包。当队列填充到其最大饱度级别时,尾部丢弃只会丢弃所有随后到达的数据包,直至队列中存在缓冲更多数据包的空间。所有不支持 ECN 的数据包都以相同的方式处理。

要将 WRED 丢弃配置文件应用于非 ECT 信息流,请配置多域 (MF) 分类器以将非 ECT 流量分配至未启用 ECN 的不同输出队列,然后将 WRED 丢弃配置文件应用到该队列中。