Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-8-19 标准定义的 QoS 丢弃器服务为 UPnP QoS 架构 v3 提供了一种基于 QoS 策略选择性丢弃网络数据包的标准化机制。数据包丢弃是一种基础的拥塞管理技术——当网络设备的缓冲区已满或流量流超过其分配带宽时,丢弃器根据配置的丢弃策略丢弃数据包。该服务实现了尾部丢弃和主动队列管理(AQM)丢弃策略。
该服务暴露了用于按流量类别配置丢弃策略的动作。每个丢弃策略指定了数据包应被丢弃的条件,包括缓冲区占用阈值、丢弃概率曲线以及是使用尾部丢弃还是随机早期检测。
| 策略参数 | 类型 | 描述 |
|---|---|---|
| TrafficClassID | string | 丢弃策略应用的流量类别 |
| DropAlgorithm | string | TailDrop | RED | WRED(加权 RED) |
| MinThreshold | ui4 | 开始丢弃前的最小队列占用(RED/WRED) |
| MaxThreshold | ui4 | 最大队列占用——超过此阈值丢弃所有数据包 |
| DropProbability | float | MaxThreshold 处的最大丢弃概率(0.0 到 1.0) |
实现 QoS 丢弃器服务需要与设备的排队子系统深度集成。丢弃器必须位于出口队列的尾部,在分类和标记之后。在基于 Linux 的系统中,这自然地映射到 qdisc(排队规则)层,其中通过 ‘red’ 和 ‘pfifo_fast’ 调度器原生支持 RED 和尾部丢弃。
一个关键的设计决策是 AQM 参数的选择。RED 算法的 min_threshold、max_threshold 和 max_drop_probability 必须根据具体的链路速度和流量模式进行调整。标准建议从 RFC 7567(主动队列管理建议)中的参数开始,并根据观察到的性能进行调整。
加权 RED(WRED)在 UPnP QoS 环境中特别有价值,因为它允许共享同一物理队列的不同流量类别具有不同的丢弃概率。例如,BestEffort 流量可以配置比 AssuredForwarding 流量更低的丢弃阈值,确保重要流在拥塞期间被优先保留。
尾部丢弃是最简单的丢弃策略——当队列满时,新到达的数据包被丢弃直到有空间可用。RED(随机早期检测)在队列完全满之前主动丢弃数据包,丢弃概率随队列占用增加而增加。RED 通过随机化丢弃而非丢弃整个突发来防止 TCP 全局同步。
可以。将丢弃策略设置为空或禁用状态可有效禁用该流量类别的主动丢弃。在这种情况下,设备的默认缓冲区管理适用——通常是队列完全满时的尾部丢弃。
典型的处理流水线是:分类器 → 标记器 → 丢弃器 → 队列。分类器识别流量类别,标记器设置数据包的优先级标记,丢弃器根据流量类别和当前队列占用应用丢弃决策,存活的数据包被排队等待传输。
RFC 7567 建议 RED 配置的 BestEffort 队列的最大丢弃概率为 0.1(10%)。这为 TCP 发送方提供有效的拥塞信号,而不会导致过多的重传。对于高级流量类别,建议使用较低的最大丢弃概率(例如 0.02 到 0.05)。