摘要

  • RFC 9893 是 IETF Standards Track 文档,定义两种 DLEP 消息和五个可复用 Data Item,用于信用窗口流量控制。
  • 调制解调器授予信用;路由器报告自己看到的窗口状态并可请求信用,但每个发送方在响应返回前只能有一个未完成的 Credit Control Message。
  • 信用单位是八位组,并包括 MAC 开销;没有匹配分类器、没有可用信用,或完整数据包超过关联窗口时,路由器不得发送。

DLEP 的基础会话和 Data Item 错误语义来自 RFC 8175。RFC 9893 的闭环从调制解调器初始化开始:调制解调器建立会话所需的初始条件,随后把路由器与目标关联,并通过授权提供窗口信用。路由器不能把“链路已建立”理解为任意流量都已获准;它必须把每个待发包送入 RFC 9892 提供的 TID/FID 分类结构,找到对应的目的地和信用窗口。

TID 将分类与目的地关联,FID 标识信用窗口。TID 和 FID 的数值只在签发它们的调制解调器范围内有意义,重叠的 TID 无效,不能把另一条会话或另一台调制解调器的编号直接套用。分类结果因此是控制环的输入:匹配决定使用哪个窗口,窗口剩余信用决定包是否有资格继续。若不存在通配符分类器,未匹配的数据包必须丢弃;这是协议后果,不是某种实际部署策略的证据。

路由器持续报告窗口状态,并可提出信用请求。调制解调器决定授予多少信用。Credit Control Message 的请求与响应必须保持一个关键不变量:每个发送方只能有一个未完成消息,直到相应响应到达。实现不能用并行请求制造“信用已经增加”的假象,也不能把迟到响应当成当前状态而不核对关联关系。

每次扣减都按八位组计算,且计入 MAC 开销。只用网络层长度会高估可发送数量,从而越过窗口。窗口达到最大值时继续饱和;它不能被实现自行推高。若最大窗口收缩,调制解调器应继续处理已经在途且符合条件的数据包,同时在受影响窗口排空到低于新最大值之前暂不授予新信用。收缩不是把已在途数据凭空取消,也不是立即发放一轮新的满额信用。

这些规则没有说明部署普及率、测得的性能改善,或逻辑窗口与物理队列之间的普遍映射。实现特定的授权节奏、队列几何、回滚阈值和遥测仍由运营者选择;来源也没有确立跨域 DSCP、VLAN 或其他分类标记的信任。

核验夹具与操作员路径

可用一个最小测试夹具逐项验证:先建立会话并记录调制解调器发出的初始化、关联和授权;再构造一个能匹配 TID/FID 的包,令其含 MAC 开销的长度恰好等于剩余信用,确认允许发送并准确扣减;随后构造大一个八位组的包,确认不发送。提交两个并行信用请求,确认第二个违反单一未决消息不变量;收到响应后才提交下一项。将最大窗口从较大值改为较小值,保持一个合格包在途,确认不取消该包,并在窗口低于新上限前不获得新信用。将窗口置于最大值,确认进一步请求不越过上限;移除通配符后发送未匹配包,确认丢弃。

操作员决策路径是:先核对分类器、TID/FID 本地范围和八位组计数;再核对授权是否来自调制解调器、状态与请求是否按顺序、是否只有一个未决消息;然后观察收缩、饱和及未匹配包的日志;最后才决定启用扩展。上线前应要求可审计记录,能显示每个事件的单调顺序、窗口版本、包长和 MAC 开销。以下是 Theo March 的分析而非 RFC 强制要求:为陈旧授权设置检测与回滚,为遥测保留可追溯事件链,并在跨域标记未经建立信任时采取保守路径。来源并未规定这些阈值或信任模型。

来源