介质访问控制
介质访问控制概述
当多个站点共享同一条广播信道时(如传统以太网的总线拓扑、无线局域网),就会出现”谁可以使用信道”的问题。介质访问控制(Medium Access Control, MAC)就是解决这个问题的机制。
介质访问控制是数据链路层的一个子层,负责在共享信道的多个站点之间协调信道的使用权,避免或解决冲突,使多个站点能够高效、公平地共享信道资源。
介质访问控制协议分为三大类:
- 信道划分协议:将信道资源划分为固定的小块分配给各站点(FDM、TDM、WDM、CDM)
- 随机访问协议:站点随机访问信道,可能发生冲突,通过冲突检测或避免来解决(ALOHA、CSMA/CD、CSMA/CA)
- 轮询访问协议:通过中心控制或令牌传递来协调访问(令牌环、轮询)
信道划分协议
频分多路复用(FDM)
将信道的总带宽划分为若干个互不重叠的子频段,每个站点固定占用一个子频段进行通信。各站点可以同时传输,互不干扰。
- 优点:无冲突,各站点可同时通信
- 缺点:信道利用率低(站点不发送时其频段也空闲),不灵活(新站点需要分配新频段)
- 应用:广播电台、有线电视、ADSL
时分多路复用(TDM)
将时间划分为固定长度的帧,每个帧再划分为若干个时隙,每个站点固定占用一个时隙。各站点按时间顺序轮流使用信道的全部带宽。
- 优点:无冲突,各站点公平
- 缺点:站点不发送时其时隙也浪费,不灵活
- 应用:E1/T1 数字载波、ISDN
波分多路复用(WDM)
在光纤通信中,使用不同波长(颜色)的光载波承载不同的信号,通过棱镜或衍射光栅进行合波和分波。本质上是光域的频分复用。
- 应用:光纤通信主干网,单根光纤可同时传输几十甚至上百个波长
码分多路复用(CDM)
每个站点使用一个唯一的码片序列(Chip Sequence),各站点可以同时使用相同的频率发送数据。发送方将数据比特与码片序列进行异或运算,接收方通过码片序列的正交性恢复出原始数据。
- 优点:各站点可同时通信,抗干扰能力强
- 缺点:需要码片同步,实现复杂
- 应用:3G 移动通信(CDMA)
随机访问协议
ALOHA 协议
ALOHA 是最早的随机访问协议,由夏威夷大学 Norman Abramson 于 1970 年提出。
纯 ALOHA(Pure ALOHA)
- 站点有数据就立即发送,不监听信道
- 如果发生冲突(两个或多个站点同时发送),所有冲突帧都损坏
- 发送方在一段时间内未收到确认,则等待一段随机时间后重传
- 信道利用率(吞吐量):,最大值约为 18.4%(当 时)
其中 是单位时间内所有站点发送的总帧数(包括新帧和重传帧)。
时隙 ALOHA(Slotted ALOHA)
- 将时间划分为固定长度的时隙,站点只能在时隙的开始时刻发送
- 冲突只可能发生在同一个时隙内,冲突窗口缩小了一半
- 信道利用率:,最大值约为 36.8%(当 时)
时隙 ALOHA 的吞吐量是纯 ALOHA 的两倍。
CSMA 协议
CSMA(Carrier Sense Multiple Access,载波监听多路访问)的核心思想是:发送前先监听信道,如果信道空闲才发送。
根据信道忙时的处理策略和发送后的冲突处理方式,CSMA 分为:
1-坚持 CSMA
- 信道空闲:立即发送
- 信道忙:继续监听,一旦空闲立即发送(坚持发送)
- 冲突概率高(多个站点同时等待,信道一空闲就同时发送)
非坚持 CSMA
- 信道空闲:立即发送
- 信道忙:等待一段随机时间后再监听(不坚持)
- 冲突概率低,但信道利用率可能较低(等待期间信道可能空闲)
p-坚持 CSMA
- 信道空闲:以概率 发送,以概率 延迟到下一个时隙
- 信道忙:继续监听
- 平衡了冲突概率和信道利用率
CSMA/CD 协议
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/冲突检测)是传统以太网使用的介质访问控制协议。
工作原理
CSMA/CD 的工作过程可以概括为”先听后发,边发边听,冲突停发,随机重发”:
- 载波监听:发送前先监听信道,如果信道忙则等待
- 发送数据:信道空闲时开始发送
- 冲突检测:发送过程中继续监听信道,检测是否发生冲突
- 冲突处理:如果检测到冲突,立即停止发送,并发送一个阻塞信号(Jamming Signal),通知所有站点发生了冲突
- 随机重传:等待一段随机时间后,重新尝试发送
争用期与最小帧长
冲突检测的关键问题是:发送方需要多长时间才能检测到冲突?
设信号在信道上的单程传播时延为 。最坏情况下,发送方在发送后经过 (往返传播时延)才能检测到冲突。这个 称为争用期(Contention Period)或冲突窗口。
为了确保发送方在帧发送完毕之前能够检测到冲突,帧的传输时延必须大于等于争用期 。否则,如果帧太短,发送方在检测到冲突之前就已经发送完毕,会错误地认为发送成功。
因此,最小帧长必须满足:
其中 是数据率, 是争用期。
对于传统以太网(10 Mbps,最大电缆长度 2500 m,信号传播速度约 m/s):
- 争用期
- 最小帧长 bit = 64 字节
这就是以太网最小帧长为 64 字节的由来。
二进制指数退避算法
发生冲突后,发送方需要等待一段随机时间再重传。CSMA/CD 使用二进制指数退避算法(Binary Exponential Backoff):
- 确定基本退避时间 (争用期)
- 第 次冲突后,从整数集合 中随机选取一个数 ,等待时间为
- ,即最多到 个争用期
- 重传 16 次仍失败,则放弃并报告错误
这个算法的特点是:冲突次数越多,等待时间的范围越大(退避),从而减少再次冲突的概率。这是一种自适应的退避策略。
现代以太网(全双工交换式以太网)不再使用 CSMA/CD,因为交换机的每个端口都是独立的冲突域,全双工模式下发送和接收使用不同的线路,不会发生冲突。CSMA/CD 只在半双工模式下使用。
CSMA/CA 协议
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波监听多路访问/冲突避免)是无线局域网(IEEE 802.11/WiFi)使用的介质访问控制协议。
为什么无线网络不能用 CSMA/CD?
- 隐藏终端问题(Hidden Terminal Problem):A 和 C 都在 B 的通信范围内,但 A 和 C 互相听不到。A 向 B 发送时,C 监听信道以为空闲,也向 B 发送,导致冲突。A 和 C 都无法检测到这个冲突。
- 信号强度差异大:无线信号衰减快,发送方的信号强度远大于接收方的,发送方无法在发送的同时监听冲突(“远-近”问题)。
- 无线信道误码率高:冲突检测的成本高,不如尽量避免冲突。
因此,无线网络使用 CSMA/CA——在发送前尽量避免冲突,而不是发送后检测冲突。
工作原理
CSMA/CA 的核心机制包括:
- 载波监听:发送前监听信道,如果信道忙则等待
- IFS(InterFrame Space,帧间间隔):
- DIFS(DCF IFS):最长,用于数据帧和管理帧。信道空闲后需等待 DIFS 才能发送
- SIFS(Short IFS):最短,用于 ACK、CTS 等响应帧。接收方收到数据后等待 SIFS 就回复 ACK,确保响应帧优先级高
- 随机退避:如果信道在 DIFS 后仍忙,或多个站点同时等待,站点选择一个随机退避时间(时隙数),在退避时间内信道保持空闲才发送。退避计时器递减,信道忙时暂停
- RTS/CTS 机制(可选):
- 发送方先发送一个短的 **RTS(Request To Send,请求发送)**帧,包含数据帧的长度信息
- 接收方回复 **CTS(Clear To Send,清除发送)**帧,也包含长度信息
- 所有听到 RTS 或 CTS 的站点都知道即将有数据传输,在指定时间内(NAV,网络分配向量)不发送
- RTS/CTS 有效解决了隐藏终端问题
CSMA/CA 通过”先听后发 + 等待IFS + 随机退避 + RTS/CTS”的组合机制,在发送前尽量避免冲突。虽然不能完全消除冲突,但大大降低了冲突概率,适合无线环境。
轮询访问协议
令牌环协议(Token Ring)
- 一个特殊的帧(令牌,Token)在环形拓扑中循环传递
- 只有持有令牌的站点才能发送数据
- 发送方发送数据后,数据帧在环中传递,接收方复制数据并设置响应位,数据帧最终回到发送方被清除
- 发送方释放令牌,传递给下一个站点
- 优点:无冲突,公平,确定性好(可计算最大等待时间)
- 缺点:令牌丢失或损坏会导致网络瘫痪,需要复杂的令牌管理;环形拓扑可靠性差
- 应用:IEEE 802.5 令牌环(已基本淘汰)
轮询协议(Polling)
- 一个主站(Primary)轮流询问各个从站(Secondary)是否有数据要发送
- 从站只能在被询问时才能发送
- 优点:无冲突,控制简单
- 缺点:轮询开销大,延迟高(从站必须等待被轮询),主站故障导致全网瘫痪
- 应用:IBM 大型机的 3270 终端网络、蓝牙(主从模式)
典型例题
例题1:以太网最小帧长计算
一个 100 Mbps 的以太网,最大电缆长度为 200 m,信号在电缆中的传播速度为 m/s。求该网络的争用期和最小帧长。
- 单程传播时延:
- 争用期:
- 最小帧长: bit = 25 字节
但实际以太网标准规定最小帧长为 64 字节(基于 10 Mbps 以太网 2500 m 电缆的参数),100 Mbps 以太网保持了相同的最小帧长,但最大电缆长度缩短到了 100 m(争用期仍为 ,,满足要求)。
答案:争用期为 ,理论最小帧长为 25 字节(实际标准为 64 字节)。
例题2:CSMA/CD 冲突检测时间
在一个 CSMA/CD 网络中,A 和 B 两个站点相距 1 km,信号传播速度为 m/s。A 在时刻 开始发送一帧,B 在时刻 也开始发送一帧。请问: (1) A 在什么时刻检测到冲突? (2) B 在什么时刻检测到冲突?
- 单程传播时延:
- A 在 开始发送,B 在 开始发送。
- A 的信号到达 B 的时间:。但 B 在 就已经开始发送了,所以 B 在 检测到冲突(A 的信号到达 B,与 B 自己的信号叠加)。
- B 的信号到达 A 的时间:。A 在 检测到冲突(B 的信号到达 A,与 A 自己的信号叠加)。
答案:(1) A 在 检测到冲突;(2) B 在 检测到冲突。
注意:A 检测到冲突的时间()小于争用期 ,符合 CSMA/CD 的设计要求。
例题3:ALOHA 吞吐量
在一个纯 ALOHA 网络中,单位时间内所有站点发送的总帧数(包括新帧和重传帧)为 。求该网络的吞吐量。如果改用时隙 ALOHA,吞吐量是多少?
-
纯 ALOHA 吞吐量公式: 当 时:
-
时隙 ALOHA 吞吐量公式: 当 时:
注意:纯 ALOHA 的最大吞吐量为 (当 时),时隙 ALOHA 的最大吞吐量为 (当 时)。当 时,纯 ALOHA 不在最优工作点。
答案:纯 ALOHA 吞吐量约为 13.5%;时隙 ALOHA 吞吐量约为 36.8%。
练习题
练习1
CSMA/CD 和 CSMA/CA 的主要区别是什么?为什么无线网络使用 CSMA/CA 而不是 CSMA/CD?
主要区别:
-
冲突处理方式:
- CSMA/CD:发送过程中检测冲突,检测到冲突后停止发送并重传
- CSMA/CA:发送前通过各种机制尽量避免冲突,不检测冲突
-
适用环境:
- CSMA/CD:有线网络(传统以太网),信号强度稳定,可同时发送和监听
- CSMA/CA:无线网络(WiFi),信号衰减大,存在隐藏终端问题
-
关键机制:
- CSMA/CD:边发边听、阻塞信号、二进制指数退避
- CSMA/CA:IFS等待、随机退避、RTS/CTS、NAV
无线网络不能用 CSMA/CD 的原因:
- 隐藏终端问题:两个站点互相听不到,但都能听到接收方,可能同时发送导致冲突,且都无法检测到
- 信号强度差异:无线信号衰减快,发送方的信号远强于接收方的,无法在发送的同时监听冲突(远-近问题)
- 无线信道误码率高:冲突检测成本高,不如尽量避免冲突
练习2
简述二进制指数退避算法的工作过程,并说明为什么要使用指数退避而不是固定时间退避。
工作过程:
- 发生冲突后,确定基本退避时间 (争用期)
- 第 次冲突后,从 中随机选一个数 ,等待
- ,重传16次失败则放弃
为什么用指数退避:
- 自适应网络负载:冲突次数多说明网络负载重,需要更大的等待范围来减少再次冲突的概率;冲突少说明负载轻,可以快速重传
- 避免持续冲突:如果使用固定时间退避,多个冲突站点可能选择相同的等待时间,导致再次冲突。指数退避随着冲突次数增加而扩大随机范围,大大降低了再次冲突的概率
- 公平性:多次冲突的站点等待时间更长,让新站点有更多机会发送,避免”饥饿”
术语对照表
| 中文术语 | 英文术语 | 缩写 | 说明 |
|---|---|---|---|
| 介质访问控制 | Medium Access Control | MAC | 共享信道的访问协调 |
| 载波监听多路访问 | Carrier Sense Multiple Access | CSMA | 发送前监听信道 |
| 冲突检测 | Collision Detection | CD | 发送中检测冲突 |
| 冲突避免 | Collision Avoidance | CA | 发送前避免冲突 |
| 争用期 | Contention Period | - | 往返传播时延2τ |
| 二进制指数退避 | Binary Exponential Backoff | BEB | 冲突后随机等待算法 |
| 请求发送 | Request To Send | RTS | CSMA/CA控制帧 |
| 清除发送 | Clear To Send | CTS | CSMA/CA控制帧 |
| 网络分配向量 | Network Allocation Vector | NAV | 预约信道时间 |
| 帧间间隔 | InterFrame Space | IFS | 帧之间的等待时间 |
| 隐藏终端 | Hidden Terminal | - | 互相听不到的站点 |
| 频分多路复用 | Frequency Division Multiplexing | FDM | 按频率划分信道 |
| 时分多路复用 | Time Division Multiplexing | TDM | 按时隙划分信道 |
| 码分多路复用 | Code Division Multiplexing | CDM | 按码片划分信道 |
| 令牌环 | Token Ring | - | 令牌传递的环形网络 |
| 阻塞信号 | Jamming Signal | - | 冲突后通知所有站点 |
