通过 Junos OS CoS 进程的数据包流概述
了解 Junos OS CoS 的最佳方式可能是检查数据包如何通过 CoS 进程进行处理。本主题包括说明此过程的每一步和数字的说明。
以下步骤介绍 CoS 流程:
逻辑接口有一个或多个不同类型的分类器(在
[edit class-of-service interfaces]
层次结构级别)。分类器的类型基于分类器检查的传入数据包的哪个部分(例如 EXP 位、IEEE 802.1p 位或 DSCP 位)。您可以使用转换表在入口重写这些位的值。注意:您只能在 Juniper Networks M40e、M120、M320 多服务边缘路由器和带 IQE PIC 的 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
,和rewrite-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,然后将其传回网络中。