摘要

  • RFC 9957 解释 DOCSIS Queue Protection(QProt):它位于 Low-Latency 队列入口,结合共享队列时延与会随时间衰减的逐流评分,在条件满足时把当前报文送往 Classic 队列。
  • 该评分是在某一配置和某个实用流标识下计算出的局部排队贡献,不是对个人、应用、订户意图、恶意行为或端到端根因的认定。
  • 可审计的做法是把分类规则、活跃参数、队列观测、评分条件和报文动作保存为同一条本地证据链;任何服务或商业结论另需独立证据。

它处理的是一个入口,而不是一个被告

RFC 9957 说明 DOCSIS 3.1 中的 Queue Protection 算法。该架构并列设置 Low-Latency(LL)和 Classic 队列。LL 队列之所以能为共享流量维持较低时延,是因为进入它的流量通常不持续堆积队列。它可以承载响应 ECN 的 L4S 流量,也可以承载经本地规则判定适合低时延的流量。

先要分清两个近似却不同的词。RFC 中小写的 non-queue-building 描述的是流的行为;大写的 NQB 是 RFC 9956 定义的 Diffserv 标记。带有 NQB 标记并不能保证流量实际不形成队列。相反,一次被 QProt 改送的报文也不能证明发送者有意滥用优先路径。

QProt 位于 LL 队列入队之前:上行在 cable modem, 下行在 CMTS。它在分类和相关 AQM 处理之后,面对刚到达的报文作判断。若策略条件成立,当前报文被重分类到 Classic。算法并不从已经排队的报文里搜寻“最坏者”,不终止订户,也不篡改端到端 ECN 以替下游网络作决定。它只拥有一个窄而真实的权限:在自己负责的瓶颈上处理一个报文。

评分说的是局部拥塞中的贡献

算法通常以四层五元组维护逐流状态。排队评分会随时间老化;每当一个报文到达,评分按报文大小和 probNative 增加。后者是 LL 队列 Native AQM 在该时刻得到的 ECN 标记概率。因此它不是“速率越高、责任越大”的简单表。报文在本地拥塞更明显时到达,才会累积更快的分数。

RFC 9957 把这称为对排队的 blame。这里的词是算法语言,而非道德或商业指控:模型把到达速率与当时拥塞程度相乘,并以恒定老化留出正常动态所需的余量。随后策略还需同时满足两个条件:共享队列时延跨过配置阈值,且到达流的评分按超出程度放大后也跨过阈值。

所以记录真正能说的是:“在这个队列、这套参数、这个时间点,该流标识状态满足条件,当前报文被改送。”它不能直接说:“这个客户导致了事故”“这个应用具有恶意”“整个路径因此拥塞”,更不能说“所有后续网络都应拒绝它的低时延待遇”。

流标识是实现把手,不是责任主体

RFC 9957 自己指出,所选流标识没有普适科学依据,只是务实选择。一个 VPN 可将控制、媒体和数据聚合在同一外层五元组内;一个应用也可使用多个端口、连接和路径。遇到加密封装或不可见首部时,设备可能只能采用更粗的三元组。标识的粒度越粗,允许的推断就越窄。

因此 QProt 记录可以归因于被选择的标识符,却不能自动归因于人、客户、应用进程或商业行为。若要触及这些对象,必须另行具备经过授权的身份映射、时间对应关系和审查机制。若要说明服务根因,还要加入容量、路由、应用交易和独立探针的证据。

RFC 还特别说明,偶发重分类可能来自某一个瓶颈的暂态高负载,并不等于流量在其他瓶颈也有不良行为。这正是为何不应通过更改端到端 ECN 来预先排除下游的 L4S 处理。使用本地标识和本地策略,才能让每个运营者对自己真正观察到、能够解释并能撤回的动作负责。共同信号可以传播,未来决定仍应本地化。

重分类保护队列,并不结案

在所述 DOCSIS 动作中,被移出的报文进入 Classic 队列,通常会经历更长等待,也可能在自身流内重新排序。这一点轻微代价是有意设计的:若所有流量都可以无成本声称低时延,再让 QProt 事后筛选,LL 队列便失去约束。

但这种代价不是永久惩罚。当前描述的 DOCSIS 规范并没有把整个流量长期制裁作为既定动作;全流重定向或修改 DSCP 被 RFC 列为超出当前范围的设想。资源限制也不能被忽视:状态桶耗尽、处理压力和刻意构造的流量,可能提高无辜流被改送的机会。RFC 的安全分析是对失败模式的讨论,并不是对某个厂商平台的无条件担保。

让证据链与动作尺度相称

每个重要 QProt 事件都应保留五类资料:第一,分类器版本、入口和选择 LL 的字段;第二,流键取得方式、队列时延、AQM 概率、评分状态及生效参数;第三,触发的确切策略条件和报文动作;第四,隧道聚合、首部缺失、状态压力或版本变化等不确定性;第五,若要谈及业务后果,则另外保存与有关路径匹配的交易、合成探针或应用测量。

这体现了运行代码优先。第一层事实属于实际执行的分类器、队列和报文路径。容量承诺、客户影响、供应商问责或补救决定则属于另一条证据链,不能用一张评分图代替。将两层拆开并不会拖慢网络:逐报文控制循环本应廉价而迅速;服务影响判断本来就需要一个可复核时间窗口和承担后果的责任主体。

Sources