了解分段数据包队列
分段多链路 PPP (MLPPP) 数据包具有包含多链路序列号的多链路标头。必须保留这些分片上的序列号,以便接收这些分片的远程设备可以正确地将其重组为完整数据包。为了满足此要求,默认情况下,Junos OS 会将带有 MLPPP 标头的多链路捆绑包的成员链路上的所有数据包排队到单个队列 (q0) 中。
-
配置了 MLPPP 分段的转发类的流量按照轮询方法从内联服务
si捆绑接口队列分配到成员链路队列(队列 0)。 -
根据根据数据包的目标地址、源地址和 IP 协议计算出的散列算法,没有 MLPPP 分段的转发类流量从捆绑接口队列分配
si到成员链路队列。如果 IP 有效负载包含 TCP 或 UDP 流量,则散列算法还包括源端口和目标端口。因此,属于一个流量流的所有流量都会排队到一个成员链路。
图 1 显示了流量如何在 MLPPP 多链路捆绑包及其成员链路上排队。图中的数据包流使用符号 P,Fxx;例如,P1,F1 表示数据包 1,分片 1。
-
有四个队列。
-
转发类 be、af 和 nc 分别映射到多链路捆绑包上的队列 q0、q1 和 q3。这些都是分散的。
-
转发类 ef 包含语音流量,映射到 q2,不会分段。
-
接口
si-1/0/0.1是捆绑包,pp0.1并且pp0.2是该捆绑包的成员链路。
的队列
成员链路上的队列过程如下:
-
多链路捆绑包上转发类 be、af 和 nc 的数据包分片映射到成员链路 1 和 2 上的 q0。这些数据包使用轮询方法从队列分发
si到成员链路。 -
来自多链路捆绑包的转发类 ef(语音)的数据包映射到成员链路上的 q2。此转发类不会分段。数据包根据散列算法从队列分发
si到成员链路。 -
来自多链路捆绑包的网络控制数据包映射到成员链路上的 q0。捆绑网络控制流量与成员链路上的数据流一起排队。但是,成员链路上的 q3 传输的网络控制数据包,用于交换与成员链路相关的协议信息,如在成员链路上交换 hello 消息的数据包。
本节包含以下主题:
将分段数据包排队到成员链路
在多链路捆绑包上,来自启用了分段的所有转发类的数据包分片将传输到成员链路上的 q0。在成员链路的 q0 队列上,使用轮询方法对数据包进行排队,以实现按分段的负载平衡。
图 2 显示了如何在成员链路上执行分段数据包队列。图中的数据包流使用符号 P,Fxx;例如,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 接口后,微码向 MLPPP 数据包添加一个大约 40 字节的标头。配置服务等级整形时,您可能需要调整字节数来考虑到这一点。
将 LFI 数据包排队到成员链路
在多链路捆绑包上,来自多链路捆绑包的所有非 MLPPP 封装流量 [链路分片和交织 (LFI) 流量] 都将排队到该数据包的转发类定义的队列中。
图 3 显示了如何在成员链路上执行 LFI 数据包队列。
的 LFI 数据包排队
数据包根据数据包的源地址、目标地址和 IP 协议计算出的散列算法,从接口分发 si 到成员链路。
如果 IP 有效负载包含 TCP 或 UDP 流量,则散列算法还包括源端口和目标端口。因此,属于一个流量流的所有流量都会排队到一个成员链路。