了解分段数据包队列
分片多链路 PPP (MLPPP) 数据包具有包含多链路序列号的多链路标头。必须保留这些分片上的序列号,以便接收这些分片的远程设备能够正确地将它们重组为一个完整的数据包。为了满足此要求,Junos OS 默认将具有 MLPPP 报头的多链路捆绑包的成员链路上的所有数据包列入一个队列 (q0)。
配置了 MLPPP 分片的转发类的流量会采用轮循方法从内联服务
si
捆绑接口队列分发到成员链路队列 (队列 0)。不带 MLPPP 分片的转发类的流量根据从数据包的目标地址、源地址和 IP 协议计算的散列算法,从
si
捆绑接口队列分发到成员链路队列。如果 IP 有效负载包含 TCP 或 UDP 流量,则散列算法还包括源端口和目标端口。因此,属于一个流量流的所有流量都会排队到一个成员链路。
图 1 显示了流量如何在 MLPPP 多链路捆绑包及其成员链路上排队。图中的数据包流使用表示法 Px,Fx;例如,P1,F1 表示数据包 1、分片 1。
一共四个队列。
转发类是、af 和 nc 分别映射到多链路捆绑包上的队列 q0、q1 和 q3。这些是零碎的。
转发类 ef 包含语音流量,并映射到第 2 季度,并且不会分片。
接口
si-1/0/0.1
是捆绑包,pp0.1
pp0.2
也是该捆绑包的成员链路。

在成员链路上排队,如下所示:
多链路捆绑包上的转发类、af 和 nc 数据包分片映射到成员链路 1 和 2 上的 q0。这些数据包使用轮询方法从
si
队列分发到成员链路。来自多链路捆绑包的转发类 ef (语音) 数据包将映射到成员链路上的第 2 季度。此转发类不是分段的。数据包根据散列算法从
si
队列分发到成员链路。来自多链路捆绑包的网络控制数据包映射到成员链路上的 q0。捆绑网络控制流量与成员链路上的数据流一起排队。但是,成员链路上的 q3 会传输交换与成员链路相关的协议信息的网络控制数据包,例如在成员链路上交换 hello 消息的数据包。
本节包含以下主题:
将分片数据包排队到成员链路
在多链路捆绑包上,来自所有启用分片的转发类的数据包分片将传输到成员链路上的 q0。在成员链路的 q0 队列中,使用轮循方法对数据包进行排队,以启用按分片负载平衡。
图 2 显示了如何在成员链路上执行分片数据包队列。图中的数据包流使用表示法 Px,Fx;例如,P1,F1 表示数据包 1、分片 1。

来自多链路捆绑包的数据包分片使用轮循方法逐个排队到成员链路:
多链路捆绑包上 q0 中的数据包 P1、F1 将排队至成员链路 1 上的 q0。
多链路捆绑包上 q0 中的数据包 P1、F2 将排队至成员链路 2 上的 q0。
多链路捆绑包上 q0 中的数据包 P1、F3 将排队至成员链路 1 上的 q0。
多链路捆绑包上 q1 中的数据包 P2、F1 将排队至成员链路 2 上的 q0,以之至此。
属于分片转发类但未分片的数据包,请遵循相同的过程。
退出 si
接口后,Microcode 会将约 40 字节的标头添加到 MLPPP 数据包中。配置服务等级整形时,可能需要调整字节来考虑这一点。
将 LFI 数据包排队到成员链路
在多链路捆绑包上,来自该多链路捆绑包的所有非 MLPPP 封装流量 [链路分片和交错 (LFI) 流量] 将按照该数据包的转发类进行排队。
图 3 显示了如何在成员链路上执行 LFI 数据包队列。

数据包根据从数据包的 si
源地址、目标地址和 IP 协议计算的散列算法,从接口分发到成员链路。
如果 IP 有效负载包含 TCP 或 UDP 流量,则散列算法还包括源端口和目标端口。因此,属于一个流量流的所有流量都会排队到一个成员链路。