摘要

  • RFC 1221 的 A/R 机制记录 Host 与本地 Wideband Packet Switch 之间一条编号消息的本地处置:接受表示从接入链路收到,且没有在这一端拒绝。
  • 规范明确否认更大的推论:WPS 的接受不是端到端确认,不保证目的主机收到,甚至不保证网络随后不会主动丢弃消息。
  • 整条接口可以关闭 A/R,编号为零的单条消息也可以不要求 A/R。因此,看不见接受或拒绝,并不能单独证明丢失或送达。

一张只在本地有效的收条

RFC 1221 是 W. Edmond 于 1991 年 4 月发表的《Host Access Protocol Specification — Version 2》。RFC Editor 记录把它列为 Informational,并说明它更新了 RFC 907 的大部分内容,但并非全部。IETF Datatracker则把它归入 Legacy stream,并注明它在 IETF 标准流程中没有正式地位。

这份文献仍然记录了真实的运行背景。正文称 HAP 已在 TWBNET 以及接入该网络的路由器和主机中实现,它的前身来自 WBNET、SATNET 一系的广带网络实验。这能证明协议并非纯粹纸面设想,却不能证明某个具体站点启用了 Version 2 的每项功能,更不能替代一条真实报文的日志。

HAP 位于 IP 等上层网络协议之下、Host 与本地 WPS 接入链路的链路协议之上。它是全双工但不可靠的协议;若接入段需要无错且有序的传输,必须由更低层提供。HAP 的数据报彼此独立、不排序,也不保证送达。stream 可以预留带宽,预留的是网络资源,不是给某条消息签发目的端回执。

A/R 的边界由此非常清楚。启用之后,Host–WPS 链路的两个方向分别用八位消息编号跟踪本地流控。接收方若从接入链路取得了这条消息,并且没有拒绝,就返回接受;若无法接受,则可以返回拒绝及原因,让发送方自行判断是否重试。

RFC 1221 把 A/R 称为接收方内部流量与拥塞控制算法的外部表现。这句话确定了信号的权力来源:它讲的是本地接收方的队列决定。规范紧接着指出,WPS 返回的接受不是端到端确认,不表示对目的主机送达的任何保证,甚至不保证网络之后不会有意丢弃消息。它首先服务于 Host 的缓冲区管理。

八位编号没有穿越全网

启用 A/R 时,消息编号按模 256 递增,跳过零;每个方向最多保留 127 条尚未得到接受或拒绝的消息。数据报与 stream 消息共用这一序列。这样的窗口足以在一段接入链路上区分新旧反馈,却没有产生一个能跨越多个交换机、最终对应到应用事务的全局身份。

反馈也不一定一条对一条。对编号 N 的明确接受,可以隐含接受窗口内更早的若干消息;原因相同的拒绝可以成组表达;不同 A/R 项还可以聚合进一个控制消息,或搭载在反向数据中。脱离方向、未决窗口和此前反馈,单看一个 A/R 字并不能恢复完整事件。

编号零更能说明沉默的歧义。零表示这条消息选择性关闭 A/R;整条接口也可以工作在 pure-discard 模式。协议保留了 Unnumbered Response 来传递某些关键反馈,但它并没有重新创造逐消息的目的端证据。没有 A/R,可能是功能没开,也可能是反馈尚未出现;不能直接写成“已丢”或“已到”。

GOPRI 是一条会过期的建议

GOPRI 告诉对端当前最低接受到什么优先级。信息足够及时,发送方就能少发那些注定会被拒绝的流量。但“当前”不是预约。下一条消息抵达前,本地缓存、站点间链路、目的 WPS 或目的 Host 的状态都可能变化。

拒绝码把一些局面分开:源 WPS 拥塞、目的 WPS 拥塞、目的主机不可用、优先级太低、地址或 stream 标识无效,需要不同的响应。原因更具体,能够改善重试策略;它仍然只是接入边界的处置记录,不是全路径各参与方共同签署的证明。

校验和与可靠性字段也只能回答自己的问题。头部校验和约束控制信息的一类损坏;可靠性等级选择网络中的差错保护;数据错误标志报告一个有界观察。它们都不证明目的应用理解了载荷,更不证明用户得到了预期结果。

链路恢复不等于资源恢复

RFC 1221 还把接入链路状态与 stream、group 等资源状态分开。WPS 重启后,Host 可能被告知双方认知已经不一致,并应查询哪些资源仍然存在。链路重新能传消息,只能证明链路又能传;它不能证明先前的资源归属自动延续。

这条次要机制和 A/R 指向同一种工程纪律:把每个状态变化写在它真正发生的层面。RFC 1221 没有削弱“接受”的价值,而是保护了它的含义。只有当人们拿这张本地收条去冒充目的端回执,证据链才会断裂。

来源