介质访问控制(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)告知其他设备信道占用时间。
工作流程 :
发送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次)。
关键特点
仅适用于有线网络:冲突检测依赖电压变化,无线环境难以实现。
半双工模式:同一时间只能发送或接收,不能同时进行。
效率问题:高负载时冲突频繁,吞吐量下降。
示例(以太网冲突处理)
复制代码
设备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 "先预约,避免冲突"。
两种协议均体现了 "先监听,再发送" 的基本原则,但根据有线/无线的物理差异采用了不同的优化策略。