摘要
- RFC 5143 是通过 MPLS 承载 SONET/SDH 电路信号的历史规范,新实现必须采用标准轨 RFC 4842。
- 32 位 CEM 报头记录动态带宽分配、远端缺陷、序列号、结构指针、指针调整状态和 ECC-6。
- ECC-6 只保护报头,可纠正一位错误、检测最多两位错误,并不保护电路负载。
- 合法或修复后的报头不能重建丢包、消除乱序、补充抖动缓冲,也不能取得分组同步。
- 接收端到播放时刻才最终判定丢包,因为此时才能确认所需数据是否赶上电路输出。
- 序列号揭示缺口和乱序;若实现不重排乱序包,就必须丢弃,并用配置好的字节模式替代。
- 分组同步丢失会向分组网发送 CEM-RDI,结构化业务则向电路侧输出 AIS-P。
- 动态带宽分配可以有意删除负载而保持发包节奏,因此“仍有分组”不能证明“仍有用户数据”。
- 时钟恢复是独立职能;报头正确不能证明输出频率、相位、抖动和漂移合格。
- 旧报头可能被误认成 IPv4 并触发按负载 ECMP,造成 ECC 无法解决的时延差和乱序。
- 规范指出安全性不会强于底层分组网,甚至可能弱于原生 TDM;ECC 也不是身份或来源证明。
- 管理层应分别保存报头、顺序、缓冲、时钟、告警和最终电路输出的证据,拒绝用一盏绿灯代替全部事实。
最干净的报头可能赶上最坏的播放时刻
接收端拿到一个 CEM 分组,发现报头有一位在途中翻转。ECC-6 计算出综合校验结果,把这一位纠正。序列号重新可读,结构指针恢复一致,控制位也能解释。若监控只看解析器,这一次处理完全成功。
但电路输出不会因为解析器成功而暂停。前一个分组可能丢失,也可能被另一条等价路径拖到播放期限之后。抖动缓冲里没有当前时隙需要的字节,连续缺失达到配置阈值,解包器宣布分组同步丢失。对结构化业务,正确动作不是伪装成正常数据,而是向 SONET/SDH 一侧播放 AIS-P。
两件事可以同时为真:纠错码完成了自己的任务,电路业务却没有通过连续性测试。RFC 5143 虽然已经是 Historic 文档,仍然值得研究,正因为它把这种边界写得清楚。它提醒运营者,最容易采集的成功回执往往只属于最窄的一层。
如果系统把“ECC 已纠正”提升成“分组健康”,再把“分组健康”提升成“伪线健康”,最后把“伪线健康”提升成“客户电路连续”,每一步都跨越了一个自己并未观察的现实层。
三十二位只承担共同层必须承担的工作
CEM 报头只有 32 位。D 位说明是否处于 Dynamic Bandwidth Allocation 状态,R 位传递 CEM 远端缺陷,十位序列号从 0 循环到 1023,结构指针定位同步负载包络的起点,N/P 位表示指针调整或告警,最后六位用于 ECC-6。
这些字段是互操作所需的共同事实。两端可以据此解释下一个工作单元,却不能据此复制对方的全部运行状态。报头没有记录远端抖动缓冲深度,没有记录此前每个分组的到达历史,没有测量恢复时钟,也不知道连接在接口另一端的设备是否得到有效数据。
薄的共同层不是缺陷。共享格式本来就应只容纳独立实现必须一致理解的内容。真正的风险,是资产台账或运维看板把这条薄记录当成电路的完整数字孪生。
ECC-6 让边界无法含糊。附录 B 以校验矩阵覆盖 32 位报头,接收端根据综合结果纠正单比特错误,并检测最多两比特错误。该功能还能在配置时关闭;关闭后字段发零。它保护的对象从定义上就是 CEM 报头,不含 SONET/SDH 负载,也没有能力创造未曾到达的字节。
序列号告诉你缺了什么,却不会替你补回来
序列号的价值是可见性。接收端知道下一包应该是什么,因此能识别缺口、重复和倒序。但“发现”不是“恢复”。RFC 5143 要求解包器检测丢失和乱序。实现可以在缓冲允许时重排;如果不重排,就必须丢弃乱序包。对丢失或丢弃的负载,设备播放预先配置的替代字节模式。
这种替代维持接口形态与节奏,不能把客户数据变成正确。只测量端口是否持续出光、是否持续出时钟,很容易错过规范主动暴露的事实:接口之所以仍在运行,可能正是因为它在发送维护模式,而不是业务内容。
分组同步还需要一段时间状态。接收端启动时默认不同步,必须连续收到配置数量的正确序列,才能宣布取得同步;连续缺失或空包达到另一阈值,才宣布同步丢失。单个漂亮的报头无法证明这两个状态中的任何一个。
丢失判定发生在播放时刻尤其重要。在那之前,未出现的分组也许只是迟到。等到电路必须输出相应字节时,接收端才知道它究竟能不能使用。这一瞬间是“网络看到了什么”转化为“业务得到了什么”的界面。只保留到达计数而不保留播放决定,结论就不完整。
抖动缓冲不是内部细节,而是证据的一部分
电路仿真的基本矛盾,是用到达时间不规则的分组网喂给必须匀速输出的电路。CEM 抖动缓冲吸收路径时延变化,再按所需速率释放字节。缓冲深度可以调整,因为不同路径和负载下的时延变化并不固定。在与缓冲深度相应的时间区间里,平均到达速率必须与固定播放速率相平衡。
同样数量的已收分组,在不同顺序、时刻和缓冲配置下会产生完全不同的结果。迟到的突发流可能压满浅缓冲,短暂的空窗可能让它见底。一个分组可以被网络遥测记作“收到”,却因为错过播放期限而对电路毫无用处。更深的缓冲也许保住业务,但会增加时延。
因此,packets_received 不能单独代表结果。至少还要知道 packets_played、迟到包、缓冲欠载、缓冲溢出以及同步状态。RFC 4842 后来的性能模型也保留了这一分层:缺失或丢弃是一类,缓冲欠载、溢出与分组同步丢失是另一类。替代规范改变了格式,却没有消除系统事实。
有分组流动,也可能正好没有业务负载
Dynamic Bandwidth Allocation 为表面健康检查设置了另一道陷阱。出现 AIS-P 或未装备的 SONET/SDH 负载时,打包器可以抑制电路负载,只继续发送报头、标签和分组网封装。发包频率仍与正常模式相当,目的是避免远端缓冲突然欠载或溢出,也让对端能区分“有意线路调理”和“分组网断了”。
因此,流量曲线可以稳定,客户负载却为零。稳定节奏很有价值,它保持状态并准确传达维护条件;但它表达的意义与正常业务恰好不同。规范还要求 DBA 触发来自 SONET/SDH 开销状态,而不是扫描负载图样后猜测。这样才能保留决定的来源。
正确的做法不是怀疑每一条分组流,而是保存语义:stream_present、payload_present、maintenance_condition、packet_sync 和 valid_user_data_played 是五个不同问题。把它们压成 up=true,会让安全机制看起来像业务成果。
报头奇偶校验无法修正时间
输出接口必须重新生成输入业务时钟。RFC 5143 支持同步和异步两种模式,由配置选择,且两端必须一致。结构化同步业务可以利用 N/P 指针调整信息,序列号则避免重复或乱序导致同一次调整被多次执行。
这仍然不是完整时钟证明。异步场景可以采用自适应恢复,关键算法细节留给实现。RFC 4842 同样把自适应算法放在规范范围之外,只要求最后结果满足适用的 SONET/SDH 抖动与漂移限制。
序列完全正确,输出频率仍可能偏差过大;平均分组速率稳定,短时抖动仍可能超标;时钟算法保持锁定,负载也可能已经被告警图样替代。时钟质量必须在重建接口上测量,不能从报头合法性反推。
这也体现“未来决策本地化”的工程意义。共同格式提供兼容观察,实现选择缓冲与时钟策略,运营者选择适用于其业务的限制和目标。ECC 成功不能替这些本地决定发出一张全球有效的健康证明。
旧式 ECMP 风险说明语法不能控制路径
RFC 5143 还记录了旧封装的一个具体问题。某些 D/R 控制位组合会让报头第一半字节看起来像 IPv4。若中间设备猜测负载类型,再按它认为的 IP 字段进行等价多路径哈希,同一条伪线的分组就可能走不同路径。RFC 4928 说明这种做法会带来抖动与乱序。标准轨 RFC 4842 的格式避免了这个违反 RFC 4385 的问题。
即便如此,报头本身仍可能完好到达,ECC 也可能正确宣布“可恢复”。问题发生在周围转发系统对顺序和时刻的改变。记录的完整性没有权力约束承载它的路径。
这里也必须保留生命周期边界:RFC 5143 已被列为 Historic,新实现应使用 RFC 4842。本文讨论的是遗留互操作中可复用的证据纪律,而不是复活旧协议。状态标签本身就是迁移证据,不能被怀旧或既有设备锁定掩盖。
六张回执,而不是一盏绿灯
电路仿真保障系统至少应保存六张独立回执。
第一张是报头完整性:原始合法、已纠正、不可纠正,还是根本未启用 ECC。第二张是分组连续性:是否出现缺口、重复、倒序,以及倒序是否被修复。第三张是缓冲结果:哪些包真正赶上播放,是否发生欠载或溢出。第四张是时钟结果:恢复后的频率、相位、抖动和漂移是否合格。第五张是维护状态:AIS-P、CEM-RDI、未装备状态或 DBA 是否激活,最初由哪一侧观察。第六张才是业务输出:有效客户数据是否离开接口,所连接系统是否得到预期连续性。
每张回执都能要求下一项核验,没有一张能冒充其余五张。
分开保存还能改善故障定位。报头纠错率上升指向链路或设备的一类问题;序列正常但缓冲欠载,指向节奏或路径时延变化;分组和缓冲均正常而输出时钟超标,指向时钟恢复;DBA 分组规律到达并伴随 AIS-P,指向线路条件,而不是传输静默。一盏综合红绿灯会把这四种诊断全部抹平。
来源
- RFC 5143 HTML
- RFC 5143 文本
- RFC Editor 记录
- IETF Datatracker
- 文档历史
- RFC 5143 勘误查询
- IANA 伪线参数
- RFC 4842:分组网上的电路仿真
- RFC 4553:与结构无关的 TDM 分组承载
- RFC 5086:结构感知 TDM 电路仿真
- RFC 4447:使用 LDP 建立和维护伪线
- RFC 4385:伪线控制字
- RFC 4928:避免 MPLS 中的 ECMP 误处理
- RFC 3985:端到端伪线仿真架构
- RFC 4023:在 IP 或 GRE 中封装 MPLS
- RFC 5085:伪线虚电路连通性验证
- RFC 6374:MPLS 分组丢失和时延测量
- 最小初始规范、本地化未来决策与自愿采用
- 论现实层、符号权力以及清晰为何令人不适
- 运行代码优先
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
