摘要

  • RFC 1926 完整列出了十六种四位值到字母的映射,规定起始字符、莫尔斯调制与七个载波频率,却没有规定一帧如何结束。
  • “反向执行发送过程”只能反演已经正确识别的字符,不能自行产生字符边界、帧边界、时序容差、错误处置或重传责任。
  • 最小规范并不等于含糊规范;凡是会改变另一端接受结果的选择,都需要进入共同、可测试的契约,或成为明确标记的可选配置。

接收端面对的不是字母,而是时间

发送端知道自己要发送多少比特,也知道最后一个字母何时结束。接收端没有这种先验。它先听到作为帧起点的 b,再听到由长音、短音和停顿组成的字符序列。随后,声音消失。

如果规范没有结束字符或长度字段,接收程序只能给沉默赋义。等一秒还是两秒?某个较长停顿是莫尔斯字符间隔,还是数据包已经结束?如果噪声吞掉最后几拍,现有内容应当交给 IP,还是整帧丢弃?下一次 b 出现时,前一帧算截断,还是它只是刚才字母流的一部分?

RFC 1926 原文在发送侧写得相当具体。它把 IP 数据报按四位切分,称之为“network beep order”;十六个四位值分别映射到十六个字母;序列前添加 b;字符再以普通莫尔斯电码开关一个稳定音调。发送者的频率被称为“Acoustical Signature”,也就是另一重双关里的“AS number”。文档提出七个频率,从 440 Hz 到 784 Hz,并建议不同“Local Acoustical Network”使用不同音高。

接收部分却只有一句:把上述过程简单地反向执行。

如果已经得到完整且无误的字母串,映射表当然可以反向查回四位值。但空气传来的是随时间变化的波形,不是一张已经切好的字母数组。反演回答“这个字母对应哪四位”;它不回答“刚才是否构成一个字母”“这些字母是否属于同一帧”,也不回答“接收失败时状态如何复位”。

RFC 编号保存了文本,没有替它完成实验

RFC 1926 发布于 1996 年 4 月 1 日,类别是 Informational,状态声明明确说它不规定任何互联网标准。RFC Editor 现行信息页把它列在 Independent Stream。这里必须守住时间边界:今天的目录分类是可核实事实,但不能据此宣称 1996 年已经以完全相同的制度安排处理这份文档。

RFC 8700后来回顾 RFC 系列时,把愚人节 RFC 描述为 Independent Stream 的特殊传统:它们是幽默作品,不经过正式的技术审查与批准程序。ATM、LAN 与 AS 的连续双关正属于这种体裁。笑点并不妨碍严肃阅读,反而提醒我们,不要把档案身份偷换成标准身份。

同样,现有九项来源没有给出 RFC 1926 的独立实现、互操作测试或现场测量,并不等于可以断言“从来没有人做过”。证据只允许较窄的结论:仅凭这两页文本,独立团队无法推唯一确定全部接收规则。

小规范也能把边界说清楚

RFC 1055对 SLIP 的描述刻意朴素:它只是串行线上的 IP 分帧方法,不提供寻址、包类型识别、纠错或压缩。可即使如此,它仍定义 END 字符,规定数据中的 END 和 ESC 如何转义,建议在包头先发 END 以清掉线路噪声造成的残留字节,给出收发算法,并提出实际可接受的数据报尺寸。

它的“最小”不是让接收者猜,而是把做什么、不做什么都写清楚。

RFC 1662展示了更完整的 PPP 成帧纪律。标志序列识别帧首或帧尾;转义或位填充防止负载伪装成标志;FCS 检测损坏;无效帧与帧间填充有明确处置。声学实验未必需要照搬这些机制,但每一项都对应一个无法由“反着做”合并掉的接收问题。

标题中的 ATM 还有一份现实对照。RFC 1577讨论的是真正的 Asynchronous Transfer Mode 上的 Classical IP 与 ARP。它说明 AAL5、虚连接、默认 LLC/SNAP 封装、9180 字节 IP MTU、地址解析以及最后一个 cell 如何指示 PDU 结束;它也明确把重传留给高层协议。完整不是把责任全部揽在一层,而是让责任边界可见。

从映射到运行,需要六种不同证据

第一层是表示:四位值与字母可逆。第二层是调制:字母能变成音调的开与关。第三层是成帧:接收端能确定一个数据报的边界。第四层是完整性与恢复:截断、损坏、丢失和重复产生可预期结果。第五层是互操作:独立实现能交换正常与受损测试向量。第六层才是运行:吞吐、时延、丢包、距离、噪声与共存行为得到测量。

RFC 1926 明确覆盖前两层,并给第三层一个开头提示。它没有给点划时长、容差、再同步、最大尺寸、冲突处理或无效帧规则。七种音高能区分潜在频道,却没有决定同一频率上的多个发送者如何竞争。“拥挤区域自行采取预防措施”是风险提示,不是执行机制。

后来的 Running-Code Primacy让证据顺序保持清醒:发表不是运行现实,实现、验证、部署与使用必须分别举证。Minimum Initial Specification进一步指出,最小初始规范不是模糊规范;共同互操作所需的少数规则必须严格。Reality Layers则把 RFC 编号与双关的符号耐久性,同波形被定帧、校验并交付的可执行事实分开。

这三篇文章是后来的分析工具,不是 RFC 作者意图的史料。更准确的历史判断是:RFC 1926 在我们掌握的证据里没有经历失败的运行试验;它在定义试验通过条件之前就停下了。