《计算机网络》深入学:随机访问

在计算机网络的数据链路层中,如何协调多个站点共享同一个通信信道是一个核心问题。这就好比在一个喧闹的会议室里,如果每个人都想发言,必须有一套规则来决定谁先说、谁后说,否则就会乱成一锅粥。这种规则被称为介质访问控制(Medium Access Control, MAC)

介质访问控制主要分为静态划分(如频分、时分复用)和动态划分。动态划分中,最重要的一类便是随机访问(Random Access)。在随机访问协议中,站点争用信道,胜利者获得发送权。本文将按照历史发展脉络,深入讲解从 ALOHA 到 CSMA/CA 的演变过程、基本原理及实际应用。

4.1 随机访问的起源:ALOHA 协议

4.1.1 历史背景

20 世纪 70 年代初,夏威夷大学的 Norman Abramson 教授面临一个难题:夏威夷群岛地形复杂,岛屿之间铺设电缆成本极高。为了实现各岛屿主机与中心计算机的无线通信,他们开发了世界上最早的无线分组交换网------ALOHA 网络。这一开创性的工作奠定了后来以太网(Ethernet)的基础。

4.1.2 纯 ALOHA 协议(Pure ALOHA)

纯 ALOHA 的思想非常简单粗暴:"想发就发"

  • 基本原理 :任何一个站点只要有数据帧要发送,就立即发送。如果两个或更多的站点同时发送,信号就会在信道上叠加,导致数据错乱,这被称为冲突(Collision)。发送方通过监听信道或等待确认信号(ACK)来判断是否发生冲突。如果发生冲突,发送方会随机等待一段时间后重传。

  • 性能分析 :由于完全没有规则限制,冲突概率极高。

    假设帧的传输时间为 T0T_0T0 ,吞吐量为 SSS (归一化吞吐量),网络负载为 GGG 。数学推导表明,纯 ALOHA 协议的最大利用率仅为:
    Smax=12e≈0.184 S_{max} = \frac{1}{2e} \approx 0.184 Smax=2e1≈0.184

    这意味着,信道只有约 18.4% 的时间在有效传输数据,其余时间大都在处理冲突。

4.1.3 时隙 ALOHA 协议(Slotted ALOHA)

为了提高效率,研究人员对协议进行了改进,引入了"时间片"的概念。

  • 基本原理 :将时间划分为等长的时隙(Slot),规定只能在每个时隙的开始时刻发送帧。这样,冲突只可能发生在完全重叠的情况下,消除了部分重叠的可能性。
  • 性能提升 :这一改进将最大利用率提升了一倍:
    Smax=1e≈0.368 S_{max} = \frac{1}{e} \approx 0.368 Smax=e1≈0.368
    虽然效率提升到了 36.8%,但在高负载下仍然不够理想。然而,ALOHA 协议的"冲突检测与重传"思想为后续协议指明了方向。

4.2 礼貌的侦听者:CSMA 协议

ALOHA 的主要问题在于太"鲁莽",不观察信道状态就发送。为了解决这个问题,载波监听多点接入(Carrier Sense Multiple Access, CSMA) 协议应运而生。其核心思想是:"先听后说"

4.2.1 基本原理

在发送数据前,站点先监听信道(Carrier Sense)。如果信道忙,则暂时不发;如果信道空闲,则根据策略决定是否发送。根据监听后的策略不同,CSMA 分为三种类型:

  1. 1-坚持 CSMA (1-persistent CSMA)

    • 如果信道空闲,立即发送(概率为 1)。
    • 如果信道忙,持续监听,直到信道空闲立即发送。
    • 缺点:如果有两个站点同时在等待信道变为空闲,一旦空闲它们会同时发送,必然导致冲突。
  2. 非坚持 CSMA (Non-persistent CSMA)

    • 如果信道空闲,立即发送。
    • 如果信道忙,不再持续监听,而是随机等待一段时间后再来监听。
    • 缺点:减少了冲突,但增加了数据传输的延迟,信道利用率可能降低。
  3. p-坚持 CSMA (p-persistent CSMA)

    • 适用于时隙信道。如果信道空闲,以概率 ppp 发送,以概率 1−p1-p1−p 推迟到下一个时隙。
    • 这是一个折中方案,试图在减少冲突和降低延迟之间寻找平衡。

尽管 CSMA 引入了监听机制,但由于传播时延(Propagation Delay) 的存在,当一个站点刚开始发送数据时,信号尚未到达远端,远端站点可能误认为信道空闲而发送数据,从而导致冲突。

4.3 边发边听:CSMA/CD 协议

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)是 CSMA 的改进版,意为**"载波监听多点接入/碰撞检测"**。它是早期总线型以太网(IEEE 802.3)的核心协议。

4.3.1 协议流程

可以将 CSMA/CD 的工作过程概括为四句话:先听后发,边发边听,冲突停止,延迟重发

  1. 载波监听:准备发送前,先检测信道是否空闲。
  2. 碰撞检测:在发送过程中,继续监听信道。如果检测到信号电压摆动值超过阈值,说明发生了冲突。
  3. 停止发送 :一旦发现冲突,立即停止发送当前帧,并发送一个人为干扰信号(Jamming Signal),强化冲突,确保护所有站点都知道发生了冲突。
  4. 二进制指数退避算法 :冲突后,站点需要等待一段时间再尝试发送。等待的时间 TTT 是随机的:
    T=r×τ T = r \times \tau T=r×τ
    其中 τ\tauτ 是争用期, rrr 是从离散整数集合 [0,1,...,2k−1][0, 1, \dots, 2^k - 1][0,1,...,2k−1] 中随机取出的数。重传次数 kkk 越多,等待时间的范围就越大,从而动态适应网络负载。

4.3.2 最短帧长限制

这是 CSMA/CD 最关键的考点之一。

为了确保发送方在数据发送完毕之前就能检测到是否发生了冲突,数据帧的传输时延必须大于两倍的传播时延(往返时间 2τ2\tau2τ)。
LminC≥2τ \frac{L_{min}}{C} \ge 2\tau CLmin≥2τ

其中 LminL_{min}Lmin 是最小帧长, CCC 是数据传输率。

  • 实际应用 :在 10Mbps 的传统以太网中,规定最小帧长为 64 字节(512 bit)。如果接收到的帧小于 64 字节,会被直接认定为冲突碎片而丢弃。

4.3.3 现状与发展

虽然 CSMA/CD 是计算机网络的经典理论,但在现代网络中,随着交换机(Switch)全双工技术的普及,冲突域被隔离,有线网络中实际上已经不再需要 CSMA/CD 协议来处理冲突了。但它依然是理解网络原理的基石。

4.4 避免冲突:CSMA/CA 协议

当网络从有线走向无线(Wi-Fi, IEEE 802.11)时,CSMA/CD 变得不再适用。于是,CSMA/CA(Collision Avoidance,碰撞避免)应运而生。

4.4.1 为什么无线网络不用 CSMA/CD?

  1. 检测困难:无线信号在传输过程中衰减非常快。发送方的发射信号强度远大于接收到的信号强度,导致设备在发送时很难"听"到微弱的远程冲突信号("灯下黑")。
  2. 隐蔽站问题(Hidden Terminal Problem)

4.4.2 CSMA/CA 的工作原理

既然无法有效"检测"冲突,那就尽量"避免"冲突。

  1. 帧间间隔(IFS):为了避免所有站点一等到信道空闲就同时发送,协议规定在发送前必须等待一段空闲时间(DIFS)。
  2. 预约机制(RTS/CTS)
    • 发送方先发一个短控制帧 RTS(请求发送),包含源地址、目的地址和预计占用时间。
    • 接收方收到后,广播一个 CTS(允许发送)
    • 作用:CTS 会被发送方收到,也会被"隐蔽站"收到。隐蔽站收到 CTS 后,知道信道将被占用,会自动"闭嘴"一段时间(设置网络分配向量 NAV)。
  3. 链路层确认(ACK):无线环境干扰大,丢包率高。因此接收方收到数据后,必须回复一个 ACK 帧。如果在规定时间内未收到 ACK,发送方通过重传机制进行重发。

4.4.3 实际应用

CSMA/CA 是现代 Wi-Fi(802.11 系列标准)的核心机制。虽然它牺牲了一定的传输效率(因为有 RTS/CTS 和 ACK 的开销),但有效保证了在不可靠的无线介质中的通信质量。

4.5 本章小结

本章介绍的四种协议展示了网络技术解决"共享资源争用"问题的演进逻辑:

协议 核心思想 关键机制 适用场景
ALOHA 想发就发 随机重传 早期无线网,卫星通信
CSMA 先听后发 载波监听 理论基础
CSMA/CD 边发边听,冲突停发 碰撞检测,最短帧长限制 早期有线以太网(总线型)
CSMA/CA 碰撞避免 RTS/CTS预约,ACK确认 无线局域网(Wi-Fi)

对于初学者而言,理解 CSMA/CD 的最短帧长 计算和 CSMA/CA 的RTS/CTS 握手是掌握本章内容的重点。随着网络技术的发展,虽然部分老旧协议已不再在物理设备中广泛运行,但其背后的算法思想(如指数退避、载波监听)依然在分布式系统设计中闪烁着智慧的光芒。

相关推荐
君鼎2 小时前
计算机网络第六章:应用层详细学习总结
计算机网络
2401_865854882 小时前
ssl证书使用中可能会遇到的问题
网络·网络协议·ssl
星陨772 小时前
OpenStack私有云平台API接口练习
linux·运维·网络·openstack
InaT2 小时前
渗透第一次作业
网络
是娇娇公主~2 小时前
C++集群聊天服务器(1)—— muduo网络库服务器编程
服务器·网络·c++
捷米研发三部2 小时前
CANopen 转 Modbus TCP:智能机床控制器与上位机监控系统的无缝对接方案
网络·网络协议
宇宙帅猴3 小时前
Ubuntu网络问题解决方案
linux·网络·ubuntu
XiaoHu02073 小时前
Linux网络编程(第三弹)
linux·运维·网络
mmWave&THz3 小时前
柔性PZT压电薄膜在空间大型柔性反射面精准调控中的技术突破与应用
网络·人工智能·系统架构·信息与通信·智能硬件