通过 Junos OS CoS 流程的数据包流概述
了解 Junos OS CoS 的最佳方式或许是检查数据包在 CoS 流程过程中如何处理数据包。本主题包括每个步骤的描述以及说明此过程的图表。
以下步骤介绍了 CoS 流程:
逻辑接口会应用一个或多个不同类型的分类器(在
[edit class-of-service interfaces]
层次结构级别)。分类器的类型基于分类器检查的传入数据包的哪一部分(例如 EXP 位、IEEE 802.1p 位或 DSCP 位)。您可以使用转换表重写入口上这些位的值。注意:您只能通过 IQE PIC 重写瞻博网络 M40e、M120、M320 多服务边缘路由器以及 T 系列核心路由器上的入口位值。有关重写入口中这些位值的更多信息,请参阅 配置 ToS 转换表。
分类器将数据包分配给转发类和丢失优先级(在
[edit class-of-service classifiers]
层次结构级别)。每个转发类都分配给一个队列(在
[edit class-of-service forwarding-classes]
层次结构级别)。如果流量流超过服务级别,输入(和输出)监管器会计量流量,并可能会更改转发等级和丢失优先级。
物理接口或逻辑接口会应用一个调度器图(在
[edit class-of-service interfaces]
层次结构级别)。在
[edit class-of-service interfaces]
层次结构级别,scheduler-map
andrewrite-rules
语句影响传出数据包,语句classifiers
影响传入数据包。调度器定义了如何在输出队列中处理流量,例如传输速率、缓冲区大小、优先级和丢弃配置文件(在
[edit class-of-service schedulers]
层次结构级别)。调度器图会将一个调度器分配给每个转发类(在
[edit class-of-service scheduler-maps]
层次结构级别)。丢弃配置文件定义了(在
[edit class-of-service drop-profiles]
层次结构级别)如何积极丢弃使用特定调度器的数据包。重写规则将随着数据包离开配置了重写规则的逻辑接口(在
[edit class-of-service rewrite-rules]
层次结构级别)生效。重写规则根据数据包的转发类和丢失优先级将信息写入数据包(例如 EXP 或 DSCP 位)。
图 1 和 图 2 显示了 Junos OS CoS 功能的组件,展示了它们交互的顺序。
图 2 中的每个外部框都表示一个流程组件。上行中的组件适用于入站数据包,下行中的组件适用于出站数据包。带有实线的箭头指向数据包流的方向。
中间框(转发类和丢失优先级)表示两个数据值,可以是流程组件的输入或输出。虚线箭头表示输入和输出(或基于设置的设置和操作)。例如,多域分类器设置传入数据包的转发类和丢失优先级。这意味着转发类和丢失优先级是分类器的输出;因此,箭头会远离分类器计划程序接收转发类和丢失优先级设置,并根据这些设置对传出数据包进行队列。这意味着转发类和丢失优先级是向调度器输入的;因此,箭头指向计划程序。
通常,只有部分组件(并非全部)的组合用于定义 CoS 服务产品。
路由器内的数据包流概述
尽管瞻博网络路由器的架构细节不同,但路由器内数据包的整体流保持一致。
当数据包进入瞻博网络路由器时,接收数据包的 PIC 或其他接口类型将从网络检索该数据包,并验证链路层信息是否有效。然后,该数据包被传递到集中器设备,如灵活 PIC 集中器 (FPC),以便验证数据链路和网络层信息。此外,FPC 还负责将数据包分段为 64 字节单元,称为 J 单元。然后,这些信元被写入数据包存储内存中,同时将通知信元发送至路由查找引擎。通知信元中列出的目标地址位于转发表,数据包的下一跃点将被写入结果信元中。此结果信元将列在相应的出站 FPC 上,直到传出接口准备好传输数据包。然后,FPC 从内存中读取 J 单元,重新形成原始数据包,并将数据包发送至传出 PIC,在那里该 PIC 将其传输回网络。