摘要

  • RFC 2067 删除 RFC 1374 允许的三种包格式变化,因为规范报告称在用实现没有依赖它们。
  • 新规则比 ANSI 封装标准更窄;一个包可以符合 ANSI,却不属于 RFC 2067 要求的互操作集合。
  • 互操作保证止于单台 HIPPI-SC 交换机或简单点对点链路,多交换机阻塞拓扑仍属于实现问题。

把两份标准摊在桌上,最醒目的不是 RFC 2067 多画了什么,而是三条旧路径被划掉了。

RFC 1374 把 IP 封装和地址解析一起带到 HIPPI。HIPPI 本来是一条单向高速数据通道,成对连接后才可以同时收发。到 1997 年 1 月,后继文档报告已有至少十种 IP 封装与交换纪律实现,主干无需大改;但 ARP 没有积累同等经验。于是成熟度不是整份文件共享的荣誉,而要逐个机制结算。

三个“可以”变成一个固定语法

旧规范允许包开头出现可选短 burst,允许 D1 区域带填充,也允许 D2 offset 非零。RFC 2067 逐项禁止:短 burst 若出现只能位于包尾;D1 区域固定为三个 64 位字,不能填充;D2 offset 必须为零。RFC 1374 只是推荐的头部形态,由此成为必须执行的形态。

字段很小,组合成本却不小。每增加一种合法布局,接收端就要增加解析分支,测试者要验证分支交叉,故障现场还要先判断双方究竟采用哪个选项。如果一种自由度没有服务任何运行实现,它仍会向所有独立实现征收兼容成本。

RFC 2067 给出的删减依据是观察,而不是抽象偏好:在用 RFC 1374 实现没有使用这三项,因此作者相信现有实现已经满足新要求,不会因删减出现互操作问题。这个判断不能扩大成“历史上绝不存在相关代码”。文档没有列出十个产品、代码谱系或完整两两测试矩阵。它能证明的是当时标准制定者如何使用部署经验,而非一个关于所有私有实现的全知结论。

符合 ANSI,不等于落在互联网互操作集合里

HIPPI-FP 与 HIPPI-LE 给出的封装空间更宽。RFC 2067 没有掩盖这种差异:一个封装 IP 数据报可以符合 ANSI 标准,却违反这份 RFC。目的端面对这样的包,可以接收,也可以忽略。

所以“符合标准”必须附带标准名称与证明对象。ANSI 合规说明底层帧可被硬件标准接受;它不要求依照 RFC 2067 的互联网节点支持 ANSI 允许的每一种变化。RFC 所做的,是从较大空间里切出一个独立实现可以共同依赖的更小 profile。

1996 年 10 月发布的 RFC 2026 提供了当时的制度背景。Draft Standard 要有至少两个独立、可互操作的实现和充分的成功运行经验;这项要求还覆盖选项与特性,缺少相应证明时通常就应删除。RFC 2067 的三项删减正体现这种次序:不是文档宣布以后代码就会兼容,而是代码已经走过的路径反过来约束文档。

IP 的证据不能替 ARP 晋级

RFC 1374 同时描述 IP 与 ARP。RFC 2067 报告 IP 封装和交换纪律已有至少十个实现,却明确说 ARP 经验不足。ARP 因此被移出标准轨道文本,放入单独的 Informational 文档;如果后来兴趣与实现足够,再讨论返回。

这种拆分阻止一部分系统的成功为另一部分“代刷成熟度”。IP 包能够通过交换机,不代表地址解析、网络配置或广播模拟也有同样的实现证据。2000 年的 RFC 2834 又专门澄清并扩展 HIPPI-800 上的 ARP 与 IP broadcast,说明未完成的工作确实需要自己的证据链,而不是藏在封装标准背后。

单交换机是一条证明边界

RFC 2067 相信,符合规范的主机在单台 HIPPI-SC 交换机组成的网络中能够互操作;没有交换机的简单双向点对点连接也在保证内。更复杂的网络“可能”互操作,但取决于交换机内部与互连方式,超出文档范围。

边界来自物理拓扑。单台 HIPPI-SC 交换机被视为 non-blocking,任一源到任一目的都有路径。多台交换机之间若共用链路,就可能发生阻塞:另一对通信者占用共享链路时,某个源暂时到不了自己的目的。此时连接策略不再只是端点遵循固定包头就能解决的问题。

标准没有拿一个成功机柜冒充整个网络世界。它把已理解的主机行为和未解决的 fabric 行为分开。这种克制不是降低标准价值,而是让读者知道一次互操作测试究竟覆盖了什么。

固定包头只证明固定包头

抓到一个 RFC 2067 形态的包,可以验证 D1 大小、D2 offset、填充与短 burst 位置。它不能单独证明目的端接收、IP 层处理完成、应用取得数据,也不能证明多交换机网络没有阻塞。一次成功连接更不证明身份、授权或路由正确。

安全声明同样有限。RFC 2067 说没有引入已知安全问题,不等于它提供认证、机密性、完整性或访问许可。减少语法歧义可以改善互操作,却不会自动把高速链路变成可信链路。

从 Lu Heng 后来的 Minimum Initial Specification 框架看,这段历史可被理解为:共同层只保留被实现证明需要的互操作规则,非共同的拓扑选择留在本地。这是后来的编辑性对照,不是对 John Renwick 意图的归因。历史材料本身已经足够清楚:运行代码为删减提供授权,而诚实的标准要在证据结束处停止承诺。

来源