【深入理解计算机网络06】数据链路层:详解信道划分与介质访问控制
信道划分与介质访问控制
在计算机网络中,信道是数据传输的核心载体,如何高效、公平地分配信道资源,避免数据传输冲突,是介质访问控制(MAC)技术的核心目标。根据资源分配逻辑的不同,介质访问控制技术可分为信道划分、随机访问和轮询访问三大类,各类技术针对不同场景设计,在信道利用率、冲突概率、实现复杂度等维度各有优劣。
信道划分
信道划分技术的核心思想是将物理信道的资源(时间、频率、波长、编码等)预先分割为多个独立子信道,每个子信道分配给一对通信节点专用。这种方式能从根本上避免冲突,但需面临 “资源预分配可能导致闲置” 的问题。常见技术包括时分复用、频分复用、波分复用和码分复用。
时分复用(Time Division Multiplexing, TDM)
将时间分为登场的TDM帧,每个TDM帧又被分为登场的m个时隙分配给m对节点使用。系统为每对节点分配一个固定时隙,节点只能在属于自己的时隙内发送数据,时隙之外即使无数据也需 “空等”,避免占用其他节点的时间资源。
例如:若信道总时长为 10ms,划分为 5 个 TDM 帧(每帧 2ms),每个帧再分 4 个时隙(每时隙 0.5ms),则 4 对节点可同时通信,每对节点每 10ms 获得 0.5ms 的发送时间。
缺点:
- 每个节点最多分到信道总带宽的1/m,即使某节点有大量数据待发,也无法占用其他空闲时隙,灵活性差。
- 如果某节点暂时不发送数据,导致信道资源闲置浪费。尤其在节点发送频率低、数据量不均衡的场景下,信道利用率极低。
频分复用(FDM)
将信道的总频带划分为多个子频带作为子信道,每对用户使用一个子信道进行通信。为避免子信道间的信号干扰,相邻子频带之间会预留一段 “隔离频带”(Guard Band),过滤信号串扰。由于各子信道频率独立,所有节点可在同一时间并行发送数据。
例如:某无线信道总频带为 800-900MHz,划分为 5 个子信道(每个子信道 15MHz),相邻子信道间留 5MHz 保护频带,则 5 对节点可同时在各自子频带内发送信号。
- 各节点可以同时发送信号,充分利用了信号带宽,在模拟信号传输场景下效率较高。
- 但只能用于模拟信号的运输。若需传输数字信号,需先通过调制技术将数字信号转换为模拟信号(如 ASK、FSK 调制),增加了信号处理的复杂度。
- 隔离频带虽能减少干扰,但会占用部分总频带资源,导致实际可用带宽低于理论总带宽。
波分复用(WDM)
波分复用是光信号领域的频分复用,核心逻辑与 FDM 一致,但针对光纤信道的特性优化:光纤可传输不同波长(对应不同频率)的光信号,且不同波长的光信号在光纤中传输时互不干扰。
- 超大容量:单根光纤通过 DWDM 可同时传输数百路光信号,传输速率可达 Tbps 级别(如 100Gbps×40 通道 = 4Tbps),是骨干网长距离传输的核心技术。
- 低成本扩展:无需铺设新的光纤,仅需在现有光纤两端增加 WDM 收发设备(如光合波器、光分波器),即可扩展信道数量,降低网络扩容成本。
- 抗干扰性强:不同波长的光信号在光纤中独立传输,受电磁干扰(EMI)影响极小,传输稳定性远高于铜缆信道。
码分复用(CDM)
两个节点同时发送信号给接受方,接受方可以通过CDM计数将相互干扰的信号分离出来。
- 给各节点分配专属 “码片序列”
- “码片序列” 包含 m 个码片(信号值),可看作 “m 维向量”(m 维向量的分量通常取 1 或 - 1)
- 要求:各节点的 “m 维向量” 必须相互正交
- 相互通信的各节点知道彼此的 “码片序列”
- 发送方如何发送数据
- 节点发出 m 个信号值与 “码片序列” 相同,表示比特 1
- 节点发出 m 个信号值与 “码片序列” 相反,表示比特 0
- 信号在传输过程中 “叠加”
- 当多个发送方同时发送数据时,信号值会叠加(注:本质是多个 m 维向量的加法)
- 接收方如何接收数据
- 接收方收到的是 “叠加” 信号,需要从中 “分离” 出各发送方的数据
- 叠加信号与发送方的码片序列作 “规格化内积”
- 结果为 1,表示比特 1
- 结果为 - 1,表示比特 0
优点:
- 抗干扰能力强:正交码片序列可有效过滤其他节点的信号干扰,即使存在部分噪声,也能通过内积计算准确提取目标数据,适用于无线通信等干扰复杂的场景。
- 灵活性高:无需预先分配时间或频率资源,节点可按需发送数据,信道利用率随节点数量增加而平缓下降(而非骤降)。
随机访问
随机访问技术的核心思想是节点无需预先申请信道资源,当有数据待发时可 “随机” 尝试发送;若多个节点同时发送导致冲突,则通过特定机制解决冲突。这种方式灵活性高,适用于节点发送频率低、数据量突发的场景,但需平衡 “冲突概率” 与 “信道利用率”。常见协议包括 ALOHA、CSMA、CSMA/CD、CSMA/CA。
ALOHA协议
纯ALOHA协议:
- 节点无需监听信道,只要有数据帧准备好就立即发送
- 发送后等待一段 “确认超时时间”,若收到接收方的 ACK 则发送成功,否则判定为冲突,等待一段随机时间后重发
- 存在冲突问题:用户可在任意时刻发送数据,若两个用户的数据包在信道中 “部分重叠”(即使只有一小段时间重叠),就会导致冲突,数据包全部失效
时隙ALOHA协议:
- 只有在每个时隙开始时才能发送帧,时隙大小固定为传输一个最长帧所需要的时间
- 若用户在非时隙起始时刻产生数据,必须等待下一个时隙开始才能发送
- 仅当两个节点在 “同一时隙” 内发送数据时才会冲突,避免了 “部分重叠” 的冲突场景,冲突概率显著降低
CSMA(Carrier Sense Multiple Access)协议
- 在发送数据之前,先监听信道是否空闲,只有信道空闲时才会尝试发送
- 通过节点的网络适配器安装载波监听装置
1-坚持CSMA协议:
- 节点的数据准备好后,会一直监听信道直到信道空闲
- 传输失败后会随即推迟一段时间后尝试重传
优缺点:
- 信道利用率高
- 当多个节点都已经准备好数据,信道空闲之后会有多个节点同时发送数据,冲突概率高
非坚持CSMA协议:
- 节点的数据准备好后,如果信道不空闲,则会过一段时间再尝试监听信道
- 传输失败后会随即推迟一段时间后尝试重传
优缺点:
- 随意推迟一段时间再监听,可以减少冲突概率
- 信道空闲时可能不会被立即使用,降低信道利用率
p-坚持CSMA协议:
- 节点的数据准备好后,会一直监听信道直到信道空闲
- 如果发现信道空闲,有p概率立刻把数据帧发送到信道上,1-p概率推迟一段时间再发送
优缺点:
- 1-坚持CSMA,非坚持CSMA的折中方案,降低冲突概率的同时提升信道利用率
- 同时也一定程度有1-坚持CSMA,非坚持CSMA两个方案的缺点
协议类型 | 核心逻辑(补充细节) | 优点(补充场景适配) | 缺点(补充影响) |
---|---|---|---|
1 - 坚持 CSMA | 1. 数据准备好后,持续监听信道;2. 信道空闲时立即发送;3. 发送失败后随机退避重发。 | 信道空闲时无延迟,适用于高负载、低延迟需求场景(如工业控制)。 | 多节点同时监听时,信道一空闲会 “争抢发送”,冲突概率高。 |
非坚持 CSMA | 1. 数据准备好后,监听信道;2. 信道忙则随机推迟一段时间后重新监听;3. 信道空闲时立即发送。 | 避免 “争抢发送”,冲突概率低,适用于低负载、低冲突需求场景。 | 信道空闲时可能因 “随机推迟” 导致资源闲置,信道利用率低。 |
p - 坚持 CSMA | 1. 数据准备好后,持续监听信道;2. 信道空闲时,以概率 p 立即发送,概率 (1-p) 推迟 1 个时隙后重新判断。 | 折中方案,平衡冲突概率与利用率,适用于中等负载、对延迟不敏感场景(如校园网)。 | p 值难优化:p 过大易冲突,p 过小易闲置。 |
CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection)
- 先听后发、边发边听、冲突停发、随机重发
- 若信道不空闲,则持续侦听,直到信道变为空闲后再发送
- 设备在发送数据的同时,会持续侦听信道状态,检测是否有冲突发生。一旦检测到冲突停止发送数据,并发送 “冲突强化信号”(Jamming Signal),避免部分设备未检测到冲突而继续发送
- 冲突后,设备不会立即重新发送,而是通过 “随机退避算法” 等待一段随机时间,再重新发送
- 没有ACK机制,若传播过程中没有发生冲突,则认为发送成功
限制:
- 最小帧长限制:为确保发送端在发送完一帧前能检测到冲突,以太网帧的最小长度需满足 “帧传输时间 ≥ 2× 信道最大传播时延”(即 “往返时延”)。例如:10Mbps 以太网的最小帧长为 64 字节(传输时间约 51.2μs,对应最大传输距离 2500 米)。
- 半双工限制:由于 “边发边听” 需要发送端同时接收冲突信号,CSMA/CD 仅支持半双工通信(同一时间不能收发并行),无法用于全双工以太网。
CSMA/CA 协议(Carrier Sense Multiple Access with Collision Avoidance)
- 先听后发、空闲等待、预约避让、确认接收
- 若信道不空闲(物理侦听忙或 NAV 未归 0),则持续侦听,直到信道空闲并等待 DIFS 后,进入随机退避阶段
- 设备发送数据前,可先发送 RTS 帧请求预约信道;接收方收到 RTS 后,发送 CTS 帧确认预约,所有设备通过 CTS 设置 NAV,避免在预约时段发送数据,从源头避让冲突
- 冲突后(未收到 ACK),设备不会立即重新发送,而是通过 “二进制指数退避算法”(CW 随冲突次数加倍)等待一段随机时间,再重新进入侦听 - 等待流程
轮询访问
令牌传递协议
令牌帧
- 需指明当前获得令牌的节点编号
- 只有获得令牌(Token)的节点才能往信道上发送数据帧
- 如果获得令牌的节点没有数据要发送,就将令牌传递下一个节点
数据帧
- 需指明数据帧的源地址 / 目的地址、是否已被接收、获得令牌的节点编号
- 数据帧从源结点发出,“传递一圈” 后回到源节点
- 数据帧 “传递一圈” 的过程中,会被目的节点复制一份数据,并将数据帧标记为 “已接收”
- 数据帧回到源结点后,如果发现异常状况,就尝试重发;若无异常就将令牌传递下一个节点
- 无论是令牌帧还是数据帧,都只能沿单向传递
- 获得令牌的节点,每次只能发一帧,发完就释放令牌
- 需要用专门的网络设备(MAU)实现集中控制
- 令牌传递协议很适用于负载高的网络(不会发生冲突,效率高)