多节点网络的冲突处理算法——从 ALOHA 到 PLCA
引言
在共享介质的网络中,多个节点同时发送数据会导致冲突(Collision)。如何高效地协调多个节点对共享信道的访问,是数据链路层的核心问题之一。本章系统梳理从 ALOHA 到 CSMA/CD、CSMA/CA 再到 PLCA(Physical Layer Collision Avoidance) 的演进过程,对比传统带冲突检测的方案与物理层防碰撞的确定性方案,并基于经纬恒润的实测数据,分析 10BASE-T1S 在多节点场景下的负载率、时延与抖动表现。
本文素材来源:
- 讲义
Chapt-06.ppt(Multiple Radio Access, Chapter 6)— ALOHA、Slotted ALOHA、CSMA 系列- 用户提供的 Markdown:
C:\ai-projects\minerU\Chapt-06-CSMA\office\Chapt-06-CSMA.md- Zhihu 专栏《深度解析 10BASE-T1S PLCA 的多节点通信效率》— https://zhuanlan.zhihu.com/p/1995067444474159482 (因 Zhihu 反爬限制,内容从同源博客园版本获取:https://www.cnblogs.com/hirain123/p/19033489)
一、介质共享与多址接入概述
1.1 多址接入信道模型

在多址接入(Multiple Access)系统中,每个节点通过发射/接收设备与一条被多个节点共享的信道相连,任何一个节点的发射信号都会被其他节点接收。
1.2 多址接入的核心问题
- 当超过一个节点同时向 BS(基站)的控制信道发送数据时,冲突(collision)就会发生
- 因此多址接入协议必须解决:由哪个节点来发送?
1.3 多址接入协议的分类

两大类协议:
| 类型 | 思路 | 典型协议 |
|---|---|---|
| Contention protocols(竞争协议) | 允许冲突发生,事后解决 | ALOHA、CSMA、BTMA、ISMA |
| Conflict-free protocols(无冲突协议) | 从协议上杜绝冲突发生 | Bit-map、Binary Countdown、Token Bus、DQDB |
此外还有Collision Resolution 子类(基于 TREE、WINDOW 等算法对已发生的冲突做协商解决),也可归为冲突型协议。
1.4 信道共享技术总览
信道共享技术分为三大类:
- Static Channelization(静态信道化):固定分配资源,无冲突。典型:FDMA、TDMA、CDMA
- Scheduling(调度):中心或令牌调度,无冲突。典型:Token Bus、DQDB
- Dynamic Medium Access(动态介质访问):按需竞争,处理冲突。典型:ALOHA、CSMA
1.5 本章大纲

本章聚焦于竞争协议的演进史:ALOHA → Slotted ALOHA → CSMA → CSMA/CD → CSMA/CA(含 ACK/RTS-CTS),并在最后一节引入PLCA 这一来自 10BASE-T1S 的物理层防碰撞机制。
二、ALOHA 协议——最原始的竞争协议
2.1 协议特性

- 由夏威夷大学在 1970 年代为分组无线网设计
- 有数据就发:节点产生数据后立即发送
- 监听确认:发送方监听来自目的站的广播信号,判断是否成功
- 冲突重传:若发生冲突,等待随机时间后重传
2.2 吞吐量分析
设业务负载为 $G$(平均每两个分组时间内尝试发送的分组数),则在两个分组时间内到达 $n$ 个分组的概率为:
$$
P_n = \frac{(2G)^n e^{-2G}}{n!}
$$
无冲突成功的概率($n=0$):
$$
P_0 = e^{-2G}
$$
吞吐量为:
$$
S = G \cdot e^{-2G}
$$
ALOHA 的最大吞吐率为 18.4%(当 $G = 0.5$ 时)。
三、Slotted ALOHA——引入时槽,提升一倍效率
3.1 改进点

- 将时间划分为等长的时槽(Slot)
- 节点只能在时槽开始时刻发送分组
- 冲突窗口从「两个分组时间」压缩到「一个分组时间」
3.2 性能公式
无冲突成功的概率(恰好 1 个分组到达):
$$
P_1 = G e^{-G}
$$
吞吐量为:
$$
S = G \cdot e^{-G}
$$
Slotted ALOHA 最大吞吐率为 36.8%(当 $G = 1$ 时),是 Pure ALOHA 的两倍。
3.3 两种 ALOHA 的吞吐率对比

| 协议 | 最大吞吐率 |
|---|---|
| Pure ALOHA | 18.4% |
| Slotted ALOHA | 36.8% |
即便时槽化后,ALOHA 系列的吞吐率仍不足以支撑高负载场景,需要进一步提升。
四、CSMA——先听后发
4.1 核心改进
Slotted ALOHA 的最大吞吐率 0.368 已到瓶颈,CSMA(Carrier Sense Multiple Access) 通过先听后发进一步降低不必要的冲突:
在发送分组之前先监听信道是否空闲,避免可避免的冲突。
4.2 冲突机制示意

注意:CSMA 仍然存在冲突,因为存在传播延迟(Propagation Delay)。如上图,Node 1 和 Node 2 可能在同一时刻都检测到信道空闲,但实际上信号尚未到达对方,从而产生冲突。
4.3 CSMA 分类树

| 大类 | 子类 |
|---|---|
| Nonpersistent CSMA(非坚持) | Unslotted Nonpersistent、Slotted Nonpersistent |
| Persistent CSMA(坚持) | 1-persistent、p-persistent |
4.4 Nonpersistent CSMA
算法步骤:
- 若信道空闲,立即发送
- 若信道忙碌,等待一段随机时间后回到步骤 1
- 随机退避降低了冲突概率
- 若退避时间过长,会浪费信道空闲时间
4.5 1-persistent CSMA
算法步骤:
- 若信道空闲,立即发送
- 若信道忙碌,持续监听直到信道空闲后立即发送
- 若两个节点都想重传,必然会发生冲突
- 实际系统一般会设置尝试上限
4.6 p-persistent CSMA(折中方案)
适用于时槽化信道:
- 若信道空闲,以概率 $p$ 发送;以概率 $1-p$ 在最坏传播延迟(一个分组时间)后重新检查
- 若信道忙碌,持续监听直到空闲,回到步骤 1
- 若本次被推迟一个时槽,回到步骤 1 继续
在 Nonpersistent 和 1-persistent 之间提供了良好的折中。
4.7 如何选取 $p$?
- 假设有 $N$ 个节点都有分组要发送,且信道从忙变闲
- 那么 $Np$ 是信道空闲后期望尝试发送的节点数
- 若 $Np > 1$,冲突必然会发生
因此网络必须确保 $Np < 1$ 以避免冲突,其中 $N$ 是最大可能的活动节点数。
4.8 CSMA 系列吞吐率对比

| 协议 | 吞吐率大小(同一负载下) |
|---|---|
| 0.01-persistent CSMA | 接近 1(理论极限) |
| Nonpersistent CSMA | 中等 |
| 0.1-persistent CSMA | 中高 |
| 0.5-persistent CSMA | 中 |
| 1-persistent CSMA | 中低 |
| Slotted ALOHA | 低 |
| Pure ALOHA | 最低 |
五、CSMA/CD——带冲突检测的有线以太网
5.1 改进:边发边听
在 CSMA 基础上增加冲突检测(Collision Detection):
- 若信道空闲,立即发送
- 若信道忙碌,持续监听直到空闲后发送
- 若在发送过程中检测到冲突,立即停止发送
- 等待随机时间后再次尝试
5.2 为什么需要冲突检测?
在 CSMA 中,若两个终端同时开始发送分组,每个终端都会完整地发完整个分组(尽管冲突正在发生),这会浪费一整个分组时间的信道。CSMA/CD 通过尽早停止冲突分组的发送来提升效率。
5.3 冲突时序

| 时刻 | 事件 |
|---|---|
| $T_0$ | 节点 A 开始发送 |
| $T_0 + \tau - \epsilon$ | 节点 B 因没听到 A 的信号也开始发送(实际冲突) |
| $T_0 + \tau$ | B 检测到冲突 |
| $T_0 + 2\tau - \epsilon$ | A 即将发完时检测到冲突 |
其中 $\tau$ 是单程传播延迟。
该时序解释了以太网为何有最小帧长限制:要确保在最坏情况下也能可靠检测到冲突。CSMA/CD 是有线半双工以太网的成功关键。
六、CSMA/CA——冲突避免,无线场景的主流
6.1 为何不能”检测”?
无线场景下存在隐蔽站问题(Hidden Terminal Problem)且信号衰减快,难以可靠检测冲突。因此改为避免冲突(Collision Avoidance):在发送前主动回避可能的冲突。
6.2 算法要点
- 所有终端都监听同一信道(同 CSMA/CD)
- 准备发送的终端先感知信道
- 若信道忙碌,等到当前传输结束
- 再额外等待一个 DIFS(Distributed Inter Frame Space) 时间
- 在竞争窗口(Contention Window) 内选取一个随机数的时槽数作为退避计数
- 若其他终端在此期间开始传输,冻结自身计数器
- 其他终端结束后 + DIFS,继续倒计数;归零时立即发送
6.3 多节点退避示意

Node B、C 同时侦听到信道空闲并各自选取一个随机退避:
- C 选到较小的退避值,先到达零,开始发送
- B 在 C 传输期间冻结自身计数器
- C 结束后 + DIFS,B 解冻继续倒计数
6.4 CSMA/CA 时序

- DIFS:分布式帧间间隔,所有节点需等待的”决策窗口”
- 竞争窗口(CW):退避计数器在其中倒计
- 退避时槽(Slot):基本的退避时间单位
6.5 CSMA/CA + ACK——单向确认提高可靠性
接收端在收到数据帧后无需感知信道,直接等待 SIFS(Short Inter Frame Space) 后回送 ACK:

- SIFS < DIFS,确保 ACK 不会被其他节点”插队”
- 若 ACK 丢失则触发重传
DIFS 和 SIFS 的不同优先级是 IEEE 802.11 DCF 实现的关键魔法。
6.6 CSMA/CA + RTS/CTS——预留信道
为解决隐蔽站问题,引入 RTS(Request to Send)/ CTS(Clear to Send) 握手:
- 发送方在信道空闲 DIFS 后发送 RTS
- 接收方等待 SIFS 后回送 CTS
- 双方在 SIFS 后开始真正的数据帧传输,再 SIFS 后 ACK

RTS/CTS 只可能在小控制帧上发生冲突,业务数据帧几乎不会碰撞。
6.7 RTS/CTS 消息流

握手过程揭示了传播延迟在协议中的作用——这是为何需要 SIFS/DIFS 等时序参数的根本原因。
七、PLCA——物理层冲突避免(10BASE-T1S 的确定性方案)
7.1 设计哲学的切换
CSMA/CD 和 CSMA/CA 都属于”允许冲突发生,再用算法恢复“的设计思想。在汽车以太网 10BASE-T1S 场景下:
- 半双工、单对线、总线型拓扑(≥2 节点,可达 8 节点以上)
- 距离短(≤ 25 m / 15 m,节点数 ≤ 8 时)
- 对延迟确定性要求极高(实时控制)
传统 CSMA/CD 的”碰撞随机退避”无法满足实时性需求。10BASE-T1S 引入了 PLCA(Physical Layer Collision Avoidance)——在物理层就避免冲突,本质是”时分确定性调度”。
7.2 PLCA 简介
PLCA(Physical Layer Collision Avoidance)是 10BASE-T1S 实现多节点互联的核心机制。它通过指定总线唯一协调者(Node0)节点对当前总线时间进行划分和分时调度,协调各节点允许发送数据的时机:
- 只有当轮到某一节点的传输机会时,才可以发送数据
- 传输机会没有优先级的概念(采用 round robin 的方式分配传输时机)
- 每个新的传输周期,节点 0 都会发送一个 BEACON 帧
7.3 关键参数
| 参数 | 含义 | 备注 |
|---|---|---|
| Node ID | 网络中唯一标识,0 为协调者 | 全网必须唯一 |
| Node Count | PLCA 调度循环包含的节点总数 | 仅协调者设置有效 |
| TO Timer | 每个节点的发送窗口长度 | 全网所有节点必须相同 |
| Max Burst Count | 单次 TO 内允许连续发送的帧数 | 决定节点带宽占比 |
| Burst Timer | 连续发送时的总窗口限制 | 全网需一致 |
7.4 性能分析
7.4.1 测试场景
选取 10BASE-T1S 与 CANXL 进行横向对比,分别发送相同的应用数据:
场景一:长报文,慢周期
- 控制总线节点数量:4、6、8 个
- 每个节点发送:5 ms 周期报文
- Payload 长度:600 字节

场景二:短报文,快周期
- 控制总线节点数量:4、6、8 个
- 每个节点发送:1 ms 周期报文
- Payload 长度:120 字节

针对以上两个场景中发送的数据长度,可以计算出每一帧报文的发送时间:

7.4.2 负载率分析
场景一下的负载率对比:

- 在 10M 速率下,由于 CANXL 报文中报头的速率较低,10BASE-T1S 的负载率大致是 CANXL 的 70% 左右
- 需注意:CANXL 是竞争型总线,测试场景一下 10M CANXL 的负载率过高,无法保证报文时延
- 在设置为 20M 后,CANXL 负载降低至可接收范围
- 结论:运行在同等速率下,10BASE-T1S 的报文效率比 CANXL 更高
场景二下的负载率对比:

- 10BASE-T1S 与 CANXL 的负载率均有所上涨
- 但 10BASE-T1S 负载率增长的幅度远小于 CANXL
- 结论:在短报文、短周期的场景下,10BASE-T1S 的负载率仍优于 CANXL
7.4.3 延时分析
对比相同报文长度和周期下的报文最坏延时。
场景一下的延时对比:

- 10BASE-T1S 由于 PLCA 机制的存在,需要排队等待其他节点报文报送完成后才可以发送,无法进行抢占
- 所有报文的最坏延时一致,且节点数量越多,最坏延时时间越长
- CANXL 可以根据 CANID 竞争发送机会,优先级高的报文可以优先发送
- 结论:对于尽快发送要求高的场景,CANXL 表现更优
场景二下的延时对比:

- 得益于 PLCA 机制,10BASE-T1S 在缩短报文长度后,报文发送时间变短,发送周期循环加快,报文等待时间变短,最坏延时大幅度降低
- 在数值上与 CANXL 几乎相同
- 设计参考:在 10BASE-T1S 通信矩阵的设计上,较短的报文可有效降低延时
7.4.4 抖动对比
报文接收端最小延时和最坏延时表征了报文周期的变化范围。

- 表格中纵向数值为接收报文周期相对于发送报文周期的变化率
- 与延时测试类似:发送长报文时,10BASE-T1S 数据周期抖动较大,CANXL 比 10BASE-T1S 抖动情况小
- 发送短报文时,10BASE-T1S 数据周期抖动明显降低,且略微优于 CANXL
- 抖动验证同样印证了相同的结论:较短的报文可有效降低延时
7.5 PLCA vs CSMA 家族:核心对比
| 维度 | ALOHA / Slotted ALOHA | CSMA / CSMA-CD | CSMA-CA | PLCA |
|---|---|---|---|---|
| 冲突发生 | 是 | 是 | 减少冲突 | 物理层避免冲突 |
| 调度方式 | 随机发送 | 监听 + 退避 | 监听 + 随机退避 | 协调者 BEACON + 轮询 |
| 实时性 | 差 | 中 | 中 | 确定性 |
| 适用场景 | 早期无线分组网 | 有线以太网 | 无线 Wi-Fi | 汽车短距离总线 |
| 标准 | - | IEEE 802.3 早期 | IEEE 802.11 DCF | IEEE 802.3cg (10BASE-T1S) |
| 拓扑 | 总线/无线 | 总线 | 无线 | 总线/混合 |
| 是否需协调者 | 否 | 否 | 否 | 是(Node ID = 0) |
7.6 PLCA 的工程实践要点
以下实战经验来源于公开技术资料的整合,可作为调试时的检查清单。
- 全网必须使能 PLCA——总线中超过 2 个节点通信时,任何一个节点没开 PLCA 都会扰乱整条总线
- Node Count 仅协调者设置——跟随节点的 Node Count 设置被忽略
- TO Timer 必须全网一致——不一致会导致部分节点窗口被错过,引起通信异常
- Node ID 必须全网唯一——重复 ID 会造成数据冲突
- Node Count 过大——不会造成通信错误,但增加 cycle 长度中的”空转”开销,降低带宽利用率
- 通过 Max Burst Count 调节带宽占比——需要保证总带宽占比时,设置更高的 Max Burst Count
- 总线两端各需一个终端电阻(典型 100 Ω),是 10BASE-T1S 物理层稳定工作的前提
八、小结与选型建议
| 场景 | 推荐协议 |
|---|---|
| 高负载有线总线(半双工) | CSMA/CD(传统以太网) |
| 无线 LAN | CSMA/CA + ACK(802.11 DCF) |
| 无线 Mesh / 隐蔽站严重 | CSMA/CA + RTS/CTS |
| 汽车短距离实时控制总线 | PLCA(10BASE-T1S) |
| 多业务流混合实时网络 | PLCA + TSN 双层调度 |
| 已弃用演示(教学) | Pure ALOHA、Slotted ALOHA |
演进规律:从 ALOHA 的”放任冲突” → CSMA 的”先听后发” → CSMA/CD 的”边发边检” → CSMA/CA 的”主动避让” → PLCA 的”时分调度,从根本上无冲突”——本质都是在与传播延迟、节点数量、业务实时性需求这三者的对抗中不断升级。
经纬恒润的实测数据揭示了一个重要结论:在短报文、快周期场景下,10BASE-T1S + PLCA 的负载率、延时和抖动均可与 20M CANXL 持平甚至更优——这对汽车 E/E 架构从 CAN/CAN XL 向 10BASE-T1S 演进具有重要的工程参考价值。
参考资料
- Chapt-06.ppt — Multiple Radio Access, 第 6 章. 课程讲义,包含 ALOHA、Slotted ALOHA、CSMA、CSMA/CD、CSMA/CA 等算法的原始图示。
- IEEE Std 802.3-2022 — Clause 147 (10BASE-T1S). 工业以太网 MAC 与 PHY 标准.
- IEEE Std 802.3cg-2019 — 10BASE-T1S PHY 和 PLCA Reconciliation Sublayer 标准定义.
- 深度解析 10BASE-T1S PLCA 的多节点通信效率(经纬恒润) —
同源博客园版本:https://www.cnblogs.com/hirain123/p/19033489 - PLCA Parameter Interpretation — https://blog.csdn.net/2401_84369443/article/details/149642603 — PLCA 参数详解与实战测试.
- 10BASE-T1S 协议解读系列 — https://zhuanlan.zhihu.com/p/685108918 — 知乎相关文章.