摘要

  • 在实验性的共享 Ethernet 上,碰撞只证明多个站点在同一争用窗口内发送;它不会透露竞争者身份,不会形成排队次序,也不会预留下一时隙。
  • 源控制器停止受损发送,更新自己的碰撞次数,再独立抽取随机重传间隔。连续碰撞会扩大平均等待范围;若中途听到别的帧,还要继续让行。
  • Robert Metcalfe 与 David Boggs 描述的是既依靠概率、也依靠合作的分布式机制。随机退避降低再次同步碰撞的机会,却不自动保证公平、交付或现代交换式全双工 Ethernet 的行为。

两个“空闲”如何同时失效

设想两台站点分处同轴电缆两端。第一台监听时没有载波,于是开始发送。它的信号尚未抵达另一端,第二台也在自己的位置听到空闲并开始发送。波形相遇后,各控制器发现电缆上的信号与自身输出不符,认定发生干扰并终止这次报文。

介质给出的共同事实很窄:发送在传播窗口内重叠,这次尝试已经损坏。碰撞本身不带另一台站点的名字,不说明谁在某个全局时钟上“先到”,更不包含一张把下一轮交给某人的凭证。电缆是冲突的见证者,不是未来的裁判。

Metcalfe 与 Boggs 在 1976 年论文中,把 Ethernet 描述为广播、多点接入而又由各站分布式控制的网络。所谓分布式并非没有规则:站点要侦听、检测碰撞、停止发送并进入重试程序。区别在于,共同介质只负责暴露冲突,后续时间选择留给本地控制器。

因此,一项碰撞计数不是按次序排列的失败者名单。十次碰撞未必对应十台不同设备,较少的碰撞也不能证明某台设备受到了优待。若缺少拓扑、传播边界与逐次记录,这个数字不能独自承担公平性结论。

一个时隙的三种结果

原始分析用“开始发送到最迟发现碰撞”的上限界定时隙,即共享介质端到端的一次往返传播时间。在有负载的模型中,没有站点尝试,时隙为空;多个站点尝试,发生碰撞;恰有一个站点尝试,它便为当前报文取得 Ether。

取得介质不等于获得下一轮所有权。帧结束后,竞争重新开始。它也不等于接收方已经验收,更不等于应用完成处理。论文明确称 Ethernet 具有概率性,并列出干扰、噪声、接收器未工作和主动丢弃等丢包来源。上层协议只能以高概率正确接收为前提,不能把链路发送当成业务回执。

操作记录至少应拆成三层:源端完成发送;接收端验证并交付帧;应用确认预期动作。把第一层的绿色状态提升为第三层的成功,会制造没有证据支持的确定性。

重试的关键是各自选择

检测到碰撞后,源控制器更新碰撞计数,并据此生成新的随机重传间隔。Metcalfe 与 Boggs 写道,每发生一次碰撞,平均延迟加倍;若等待中有其他报文通过,站点还要先让行再尝试。他们把这称为 Binary Exponential Backoff 的启发式近似。

机制的重点并非笼统的“多等一会儿”,而是扩大相互独立的未来选择空间。若两台站点每次都等待同一个固定间隔,它们很可能保持同步,再次相撞。独立随机选择通常会拆开这种相关性;竞争越持久,可选范围越大,多个参与者再次选中同一时刻的概率越低。

1997 年 IEEE 802.3 解释文件给出了后来的截断二进制指数退避:碰撞并发送 jam 后,站点从整数个时隙中均匀抽取等待值,指数随尝试次数增长到上限,最后成功或达到尝试限制。文件还要求尽量降低不同站点随机数之间的相关性。这是后续标准的明确参数,不能倒推为 1973 年原型的每个常数都完全相同。

Metcalfe 在口述史中回忆,碰撞检测部分落在硬件上,指数退避则由微码和硬件协助实现。这段第一人称材料有助于理解决策位于何处,但不能代替正式论文或独立性能测量。

公平并不藏在随机数里

1976 年论文没有把公平分享写成概率算法的自动产物。它直言需要一定合作:站点若在高负载下拒绝扩大重传间隔,便可能霸占 Ether;站点若发送过大的报文,也会压缩其他设备获得机会的空间。实验系统的规则禁止这两种行为。

这条限制揭示了真正的控制面。电缆可以检测波形重叠,却无法检查随机数发生器是否诚实,也无法强迫控制器克制。公平性来自共同规则、报文长度约束、实现合规和长期结果观测,而不是来自“去中心化”这个标签。

贡献归属也应避免中心化叙事。1976 年论文由 Metcalfe 与 Boggs 合著;专利列出 Robert M. Metcalfe、David R. Boggs、Charles P. Thacker 与 Butler W. Lampson。技术谱系还包括 ALOHAnet、PARC 的其他建设者以及后续标准社群。ACM 图灵奖肯定 Metcalfe 对发明、标准化和商业化的贡献,同时明确 Boggs 是 PARC Ethernet 的共同发明人。

证据链应该止步于它真正证明的地方

复盘时,先确认现场确实是一个共享半双工碰撞域,并记录其传播距离与时隙假设。随后记录源端看到的载波、开始时刻、碰撞与终止、当前尝试次数、抽中的退避值,以及是否因经过的报文再次让行。最后把介质取得情况与接收方验帧、应用层确认分别关联。

这条链可以证明某站点遵循争用程序,却不能仅凭一次记录证明所有节点的随机源互相独立、等待时间相等或永不饥饿。分布性主张需要跨站点、跨时间的统计;交付主张需要接收端和应用端回执。

还要守住历史边界。今天的 Ethernet 大多经交换机连接点到点链路,并以全双工运行,不再有论文所述的共享同轴电缆争用。若一条被认为是全双工的链路出现碰撞计数,应优先检查介质、计数器含义和双工不匹配,而不是把它当作经典机制仍在正常工作的证据。

来源