介质访问控制(MAC)详解
介质访问控制(Medium Access Control, MAC)是数据链路层的核心子层,负责解决多个设备共享同一通信介质时的冲突问题。它的核心目标是:在广播或多路访问网络中,确保数据有序、高效、公平地传输。
1. MAC层的作用
MAC层主要解决以下问题:
- 冲突避免:多个设备同时发送数据时,如何避免信号碰撞(如以太网的CSMA/CD)。
- 信道分配:如何公平、高效地分配信道资源(如Wi-Fi的CSMA/CA)。
- 寻址:通过MAC地址(如
00:1A:2B:3C:4D:5E
)唯一标识设备。 - 帧封装:将上层数据封装成帧(如以太网帧、Wi-Fi帧)。
2. 常见的MAC协议
MAC协议主要分为两大类:
(1) 竞争式(Contention-Based)
设备竞争信道,可能发生冲突,适用于动态负载环境。
CSMA/CD(载波监听多路访问/冲突检测)
- 用于有线以太网(Ethernet)。
- 工作原理:
- 载波监听(Listen):发送前先检测信道是否空闲。
- 发送数据(Transmit):如果空闲,立即发送;否则等待。
- 冲突检测(Detect):如果检测到冲突(信号叠加),立即停止发送。
- 退避重传(Backoff):随机等待一段时间后重试(如指数退避算法)。
- 缺点:不适用于无线网络(冲突检测困难)。
CSMA/CA(载波监听多路访问/冲突避免)
- 用于Wi-Fi(IEEE 802.11)。
- 与CSMA/CD的区别:
- 冲突避免(CA):通过
RTS/CTS
机制预约信道,减少冲突。 - 虚拟载波监听:使用
NAV(Network Allocation Vector)
告知其他设备信道占用时间。
- 冲突避免(CA):通过
- 工作流程:
- 发送
RTS(Request to Send)
请求信道。 - 接收方回复
CTS(Clear to Send)
确认。 - 发送数据,接收方回复
ACK
确认。
- 发送
(2) 分配式(Scheduled)
预先分配信道资源,避免冲突,适用于高负载、实时性要求高的场景。
- TDMA(时分多址)
- 将时间划分为固定时隙,每个设备在指定时隙发送数据。
- 应用:2G/3G移动通信、卫星通信。
- FDMA(频分多址)
- 将频带划分为多个子信道,每个设备占用固定频段。
- 应用:广播、早期蜂窝网络。
- CDMA(码分多址)
- 所有设备同时发送,但使用不同编码区分数据。
- 应用:3G/4G移动通信。
3. MAC地址(物理地址)
- 格式:
48位
十六进制(如00:1A:2B:3C:4D:5E
)。 - 作用:唯一标识网络设备(网卡、手机、路由器等)。
- 分类:
- 单播地址(Unicast):目标设备唯一。
- 多播地址(Multicast):一组设备接收(如
01:00:5E:xx:xx:xx
)。 - 广播地址(Broadcast):
FF:FF:FF:FF:FF:FF
,所有设备接收。
4. MAC帧格式(以以太网为例)
字段 | 大小(字节) | 说明 |
---|---|---|
前导码(Preamble) | 7 | 同步时钟(10101010... ) |
SFD(Start Frame Delimiter) | 1 | 帧开始标志(10101011 ) |
目标MAC地址 | 6 | 接收方地址 |
源MAC地址 | 6 | 发送方地址 |
类型/长度(EtherType) | 2 | 上层协议(如0x0800 =IPv4) |
数据(Payload) | 46-1500 | 传输的数据(IP包等) |
FCS(帧校验序列) | 4 | CRC-32校验,检测传输错误 |
5. MAC层的典型应用
技术 | MAC协议 | 特点 |
---|---|---|
以太网(Ethernet) | CSMA/CD | 有线网络,冲突检测 |
Wi-Fi(802.11) | CSMA/CA | 无线网络,冲突避免(RTS/CTS) |
6. 总结
- MAC层核心问题:多设备共享信道时的冲突管理。
- 竞争式协议(CSMA/CD、CSMA/CA)适用于动态环境(如以太网、Wi-Fi)。
- 分配式协议(TDMA、FDMA、CDMA)适用于高负载、实时通信(如蜂窝网络)。
- MAC地址唯一标识设备,MAC帧封装数据供物理层传输。
介质访问控制(MAC)详解:CSMA/CD 与 CSMA/CA
介质访问控制(MAC)的核心任务是解决多个设备共享同一通信介质时的冲突问题。其中,CSMA/CD(载波监听多路访问/冲突检测)和 CSMA/CA(载波监听多路访问/冲突避免)是最典型的两种协议,分别用于 有线以太网 和 无线Wi-Fi。以下是它们的详细对比与解析。
1. CSMA/CD(载波监听多路访问/冲突检测)
适用场景
- 有线以太网(Ethernet,IEEE 802.3),如早期的10BASE5、10BASE2,以及半双工模式的现代以太网。
核心思想
通过 “先监听,再发送;冲突则退避” 的方式减少冲突。
工作流程
载波监听(Carrier Sense)
- 发送数据前,设备检测信道是否空闲(是否有信号传输)。
- 如果信道忙,则等待;如果空闲,进入下一步。
发送数据(Transmit)
- 设备开始发送数据帧。
- 边发送边检测冲突(Collision Detection)。
冲突检测(Collision Detection)
- 如果两个设备同时发送数据,信号会叠加(冲突)。
- 设备通过检测电压变化或信号畸变发现冲突。
- 冲突发生后:
- 立即停止发送。
- 发送一个 “冲突强化信号”(Jamming Signal),确保所有设备感知冲突。
退避重传(Backoff & Retry)
- 采用 二进制指数退避算法(BEB):
- 冲突次数越多,退避时间越长(避免连续冲突)。
- 退避时间 = 随机数 × 时隙时间(Slot Time)。
- 重试发送,直到成功或超过最大重试次数(通常16次)。
- 采用 二进制指数退避算法(BEB):
关键特点
- 仅适用于有线网络:冲突检测依赖电压变化,无线环境难以实现。
- 半双工模式:同一时间只能发送或接收,不能同时进行。
- 效率问题:高负载时冲突频繁,吞吐量下降。
示例(以太网冲突处理)
设备A和B同时检测到信道空闲 → 同时发送数据 → 信号冲突 →
检测到冲突 → 停止发送 → 发送Jamming信号 →
随机退避后重传。
2. CSMA/CA(载波监听多路访问/冲突避免)
适用场景
- 无线网络(Wi-Fi,IEEE 802.11),因无线信号无法可靠检测冲突。
核心思想
通过 “预约信道 + 随机退避” 避免冲突。
工作流程
载波监听(Carrier Sense)
- 物理层监听:检测无线信号强度(如RSSI)。
- 虚拟层监听:检查 NAV(Network Allocation Vector)(其他设备宣告的信道占用时间)。
随机退避(Random Backoff)
- 如果信道空闲,设备仍需等待一个随机退避时间(减少冲突概率)。
- 退避时间 = 随机数 × 时隙时间(Slot Time)。
可选RTS/CTS握手(预约信道)
- RTS(Request to Send):发送方请求信道使用权。
- CTS(Clear to Send):接收方确认信道可用。
- 其他设备收到CTS后,会更新NAV,避免在此期间发送数据。
发送数据 & 确认(ACK)
- 发送数据帧。
- 接收方必须回复 ACK,否则发送方认为传输失败并重试。
关键特点
- 冲突避免(CA):通过RTS/CTS和NAV减少冲突。
- ACK机制:确保数据可靠传输。
- 适用于无线环境:不依赖冲突检测,解决“隐蔽终端问题”。
示例(Wi-Fi数据传输)
设备A想发送数据 → 监听信道(物理+虚拟)→
如果空闲,等待退避时间 → 发送RTS →
接收方B回复CTS → 其他设备(如C)收到CTS后静默 →
A发送数据 → B回复ACK。
3. CSMA/CD vs CSMA/CA 对比
特性 | CSMA/CD | CSMA/CA |
---|---|---|
适用网络 | 有线以太网(半双工) | 无线Wi-Fi(IEEE 802.11) |
冲突处理 | 检测冲突后重传 | 通过RTS/CTS和退避避免冲突 |
是否需要ACK | 否(依赖冲突检测) | 是(确保数据到达) |
典型场景 | 早期共享式Hub网络 | 现代Wi-Fi、Ad-hoc网络 |
效率 | 高负载时冲突频繁 | 高负载时退避增加延迟 |
5. 总结
- CSMA/CD:用于有线网络,检测冲突,效率高但依赖物理层特性。
- CSMA/CA:用于无线网络,避免冲突,通过RTS/CTS和ACK提高可靠性。
- 核心区别:
- CSMA/CD “先发送,冲突再处理”。
- CSMA/CA “先预约,避免冲突”。
两种协议均体现了 “先监听,再发送” 的基本原则,但根据有线/无线的物理差异采用了不同的优化策略。