☰
【408计算机网络】数据链路层:介质访问控制MAC(信道划分/随机访问/轮询 CSMA/CD计算)
2026/10/13 7:04:23 网站建设 项目流程

408 计算机网络 · 数据链路层 · 介质访问控制(MAC)

范围:信道划分、随机访问、轮询访问三大类介质访问控制协议;重点是CSMA/CD 的争用期与最小帧长、截断二进制指数退避,以及各类协议的性能对比。
附带:CSMA/CA(作为2.5 节,紧跟 CSMA/CD,属随机访问的最后一块)与碰撞域(第七节,属局域网小节),按各自"定位"标注。


〇、本节在讲什么:为什么需要 MAC

介质访问控制(Medium Access Control)要解决一个根本矛盾:

广播共享链路(比如老式以太网、WiFi)多个结点共享同一传输介质(总线、无线信道),而同一时刻、同一频段上只允许一个结点发送,否则信号叠加、互相破坏 —— 这就是碰撞(冲突)。

于是需要一个规则来决定"谁能在什么时候用信道"。这套规则就叫介质访问控制协议。它属于数据链路层的介质访问控制子层(MAC 子层)。

三大类思路(408 的骨架,必须背下来):

大类核心思想代表协议特点
信道划分把信道切开,各用一份,互不干扰FDM、TDM、STDM、WDM、CDM静态分配,无碰撞,但不灵活、易浪费
随机访问谁有数据谁就争用,碰撞了再想办法ALOHA、CSMA、CSMA/CD动态、灵活,轻负载效率高,重负载碰撞多
轮询访问按次序轮流授予发送权轮询(polling)、令牌传递无碰撞、可保证时延,重负载效率高,有令牌/轮询开销

一句话记忆:信道划分是"分地",随机访问是"抢地",轮询访问是"排队"。
对比主线:轻负载 → 随机访问最好;重负载 → 轮询(令牌)最好;信道划分两头不讨好。


一、信道划分介质访问控制

把一条物理信道在频率、时间、波长或编码四个维度上分割,划分成多条互不干扰的逻辑子信道,每对结点独占一条。

1.1 频分多路复用 FDM

  • 把总带宽划分为若干频段,每个用户始终占一个频段,同时发送。

  • 所有用户在时间上重叠、在频率上分离。

  • 优点:充分利用带宽、技术成熟。缺点:需要保护频带(guard band)防串扰,造成浪费;用户空闲时其频段也闲置。

1.2 时分多路复用 TDM

  • 把时间划分为等长的 TDM 帧,每帧再分成若干时隙,每个用户固定占一个时隙,轮流发送。(不管ABC有没有数据,都固定分配时隙),天然适配于数字信号直接传输比特流。

  • 所有用户在频率上重叠、在时间上分离。

  • 关键缺点:某用户无数据时,其固定时隙仍被空占(时隙闲置),带宽浪费。

1.3 统计时分复用 STDM(异步 TDM)

  • TDM 的改进:不预先固定分配时隙,而是按需动态分配,只给有数据的用户分配时隙。(图中就是前面只给用户A分配时隙)

  • 需要地址信息标识每个时隙属于谁。

  • 效率高于 TDM,但可能产生冲突(本质已接近随机访问的思想)。

TDM vs STDM 考点:TDM 的时隙是"固定分配、无论有无数据";STDM 是"动态按需、须带地址"。STDM 提高了信道利用率。

1.4 波分多路复用 WDM

  • 本质是光的频分多路复用:在一根光纤中同时传输**多个不同波长(频率)**的光载波。
  • 常用1310 nm和1550 nm两个低损耗窗口;密集波分复用 DWDM 可在一根光纤上复用几十上百个波长。

1.5 码分多路复用 CDM / 码分多址 CDMA

  • 每个用户分到一个正交的码片序列(chip sequence),用户同时同频发送,靠编码的正交性区分。

  • 每个比特时间再划分为m个码片(chip),m通常为 64 或 128。发送比特1就发自己的码片序列S,发比特0就发S的反码S̄。(为简化,图上的m等于4)

  • 正交性条件(必须记住):设两个不同用户的码片序列为S、T,其规格化内积

1m S⋅T=0(正交)1m S⋅S=11m S⋅Sˉ=−1\frac{1}{m}\,S\cdot T=0\qquad\text{(正交)}\qquad \frac{1}{m}\,S\cdot S=1\qquad \frac{1}{m}\,S\cdot \bar{S}=-1m1​S⋅T=0(正交)m1​S⋅S=1m1​S⋅Sˉ=−1

  • 接收方解码:把收到的信号分别与各用户的码片序列做规格化内积,得到+1就是比特1,-1就是比特0,0表示该用户没发。(接收端在收到叠加信号的时候,会遍历所有发送方用户的码片,分别做规格化内积,该题就是只有A和B)

考点小结:若两个序列内积为0,则正交;题目常给一个混合信号,要求算出某用户发了什么(累加多个用户信号后与目标码片序列求内积)。


二、随机访问介质访问控制

核心思想:不预先划分,所有用户平等争用信道。发生碰撞就退避重发。是一种"用不确定性换灵活性"的方案。

2.1 ALOHA 协议

纯 ALOHA(Pure ALOHA)
  • 想发就发,完全不监听信道。

  • 发出后等待确认;若超时未收到确认,认为碰撞,随机等待一段时间后重发。

  • 危险区:一个帧与前后各一个帧时间都可能碰撞 ⇒易受碰撞的时间是 2 个帧长(2T)。

  • 吞吐量公式:设一个帧时T内网络平均产生G个帧(含重传),则

S=G e−2G⇒Smax=0.184 (G=0.5)S=G\,e^{-2G}\qquad\Rightarrow\qquad \boxed{S_{max}=0.184\ (G=0.5)}S=Ge−2G⇒Smax​=0.184(G=0.5)​

  • 即纯 ALOHA 的最大信道利用率仅 18.4%。
时隙 ALOHA(Slotted ALOHA)
  • 把时间划分为等长时隙(时隙 = 一个帧时T),用户只能在时隙开始时发送。

  • 碰撞危险区从2T缩短为1T,只能与同一时隙内的帧碰撞。

  • 代价:需要全网时钟同步。

S=G e−G⇒Smax=0.368 (G=1)S=G\,e^{-G}\qquad\Rightarrow\qquad \boxed{S_{max}=0.368\ (G=1)}S=Ge−G⇒Smax​=0.368(G=1)​

  • 即时隙 ALOHA 最大利用率 36.8%,恰好是纯 ALOHA 的2 倍。

2.2 CSMA 协议(载波监听多路访问)

相对 ALOHA 的改进:发送前先监听信道(“先听后说”)。

  • 载波监听:用硬件检测信道上是否有其他结点在发送。
  • 1-坚持 CSMA:监听到忙就继续听,一旦空闲立即发送(发送概率为 1)。
    • 优点:信道一空闲就利用,利用率高。
    • 缺点:多个站点同时监听到空闲会同时发送,必然碰撞——传播时延越大,碰撞概率越大。
  • 非坚持 CSMA:监听到忙就随机等待一段时间再重新监听。
    • 优点:减少了碰撞(不会扎堆抢)。
    • 缺点:信道空闲后可能没人马上发,造成信道利用率降低、时延增大。
  • p-坚持 CSMA:适用于时分信道。监听到空闲时,以概率p立即发送,以概率1-p推迟到下一个时隙再判断;监听到忙就等到下一个时隙再听。
    • 是 1-坚持与非坚持的折中,p可调。

根本缺陷:CSMA 只能"先听后说",一旦发送就无法停。若两个站点在传播时延内几乎同时开始发送,双方都"听"的时候信道是空闲的,于是都发出去 ——碰撞不可避免。解决之道是在发送过程中继续监听⇒ CSMA/CD。

2.3 CSMA/CD 协议(载波监听多路访问 / 碰撞检测)★核心

关键改进:“边听边发”(碰撞检测,Collision Detection)——发送过程中持续监听信道,一旦发现信号失真(碰撞),立即停止发送,并发送**人为干扰信号(jamming signal)**通知所有站点。

工作流程(“先听后发、边听边发、冲突停发、随机重发”)

  1. 先听后发:发送前监听,忙则等待。
  2. 边听边发:边发边检测,若检测到碰撞,立即停止发送,改为发干扰信号。
  3. 随机重发:执行截断二进制指数退避,等待后重试。
争用期(碰撞窗口)与最小帧长推导 ★必考

场景:设总线端到端传播时延为τ(单程),ε无限趋近于0。最坏情况是:

  • 在t = 0时 A 开始发送,信号需经τ才到达最远端的 B;
  • B 在t = τ − ε(信号即将到达 B 之前)监听到信道空闲,开始发送,立刻发生碰撞;
  • 碰撞信号再从 B 传回 A,又需要τ;
  • 于是 A 要在t = 2τ − ε才能检测到碰撞。

结论:一个站点最多需要2τ时间才能确知自己是否遭遇碰撞。因此:

2τ称为争用期(contention period),也叫碰撞窗口(collision window)。只有经过争用期还没有检测到碰撞,才能肯定这次发送不会碰撞。

由此推出最小帧长:如果 A 在检测到碰撞之前就已经把整个帧发完了,它永远不会知道发生了碰撞,也就不会重传。所以要求站点在整个争用期内都必须仍在发送:

Td=LminC ≥ 2τ⟹Lmin ≥ 2τ⋅CT_d=\frac{L_{min}}{C}\ \ge\ 2\tau\qquad\Longrightarrow\qquad \boxed{L_{min}\ \ge\ 2\tau\cdot C}Td​=CLmin​​≥2τ⟹Lmin​≥2τ⋅C​

即最小帧长 = 争用期 × 数据率 = 往返传播时延 × 数据率。

以太网实例(必背数字)

  • 10 Mb/s以太网,取2τ = 51.2 μs:
    L_min = 51.2×10^-6 s × 10×10^6 b/s = 512 bit = 64 B
  • 故以太网规定最小帧长 64 字节(不足则填充到 64 B),512 bit也称为一个"slot time"(争用期对应的时间单位)。
  • 反过来:数据率越高,最小帧长越大(因为同样时间能发更多比特);10 Mb/s → 64 B,100 Mb/s → 512 B。

两个对称的结论:

  • 若帧太短(< 最小帧长):可能在检测到碰撞前就发完 ⇒ 检测不到碰撞 ⇒ 必须填充。
  • 若帧太长:会长时间占住信道,别的站点等待过久 ⇒ 以太网规定最大帧长 1518 字节。
截断二进制指数退避算法(Truncated Binary Exponential Backoff)★

发生碰撞后,站点不能立即重发(否则再次碰撞),需随机退避:

  1. 取基本退避时间 = 争用期2τ(即一个 slot time)。
  2. 从整数集合{0, 1, …, 2^k − 1}中随机取一个数r,退避时间为r × 2τ。
  3. 参数k = min{重传次数, 10},即:
    • 第 1 次碰撞:从{0,1}中取(k=1);
    • 第 2 次碰撞:从{0,1,2,3}中取(k=2);
    • ……
    • 第 10 次及以后:k固定为 10,退避窗口不再增大,上限为{0,…,1023}。
  4. 当重传 16 次仍不成功时,丢弃该帧并向高层报告。

为什么叫"截断":k到10就封顶,不随碰撞次数继续指数增长(否则窗口会无限变大、时延失控)。
设计要点:退避窗口随碰撞次数增大(平均等待变长,缓解拥塞),但有上限(避免时延无界);同时窗口从小到大能让少量站点快速恢复发送。

考点变形:

  • “第i次碰撞后可选的退避时间有几种?” ⇒2^i种(i ≤ 10);i > 10时固定2^10 = 1024种。
  • “平均退避多少?” ⇒ 均匀分布期望(2^k − 1)/2个争用期。
  • “最多重传几次?” ⇒16 次。

2.4 CSMA/CA 协议(碰撞避免,无线)★

CSMA/CD 在有线总线上很有效,但无线不能照搬。CSMA/CA 就是"无线版"的随机访问协议,它与 CSMA/CD 是直接对照的一对:

比较项CSMA/CD(有线)CSMA/CA(无线)
中文名载波监听多路访问/碰撞检测载波监听多路访问/碰撞避免
发送中做什么边发边听,检测到碰撞立即停发只发不听,无法检测碰撞
碰撞处理检测到碰撞 → 停发 → 退避重发尽量提前避免碰撞
如何知道发送成功没检测到碰撞就认为成功必须等接收方回 ACK,收不到就重传
退避时机仅在检测到碰撞后即使没检测到碰撞也要退避
用于有线以太网(802.3)无线局域网(802.11)

为什么无线不能用 CSMA/CD 做碰撞检测(高频简答):

  1. 无法边发边收:无线网卡发送时自身信号强度远大于接收信号,难以同时有效接收并检测微弱信号,硬件代价极高。
  2. 隐蔽站问题(hidden station):A、C都能与B通信,但A、C相距远、互相听不到。于是A发给B与C发给B会在B处碰撞,而A、C都检测不到。
  3. 暴露站问题(exposed station):B正在发给A,C想发给D(与A无关),C监听到信道忙而误以为不能发,其实它的发送并不会干扰B→A,造成不必要的等待。
  4. 信号强度随距离衰减快,且存在多径衰落,碰撞检测不可靠。

因此 CSMA/CA 采用"碰撞避免(Avoidance)":尽量在碰撞发生前就避开,靠以下手段:

  • 先听后发(载波监听)——与 CSMA 相同。
  • 帧间间隔 IFS(InterFrame Space):不同优先级的帧等待不同长度的空闲时间才能发。
    • SIFS(最短):用于ACK、CTS、以及已持有信道的数据帧的后续帧(优先级最高)。

    • PIFS:用于PCF(点协调功能)。

    • DIFS(最长):用于普通的异步数据帧(DCF)。

    • 关系:SIFS < PIFS < DIFS。因为 ACK 只等 SIFS,所以ACK 总比别人的新数据帧先抢到信道,从而保证确认不被撞。

  • 随机退避:信道空闲后仍需退避一段随机时间(与 CSMA/CD 类似,但即使没检测到碰撞也要退避,以主动避免碰撞)。
  • 确认机制 ACK:CSMA/CA 无法检测碰撞,只能靠接收方显式回 ACK来推断帧是否成功;收不到 ACK 就重传。
RTS/CTS 信道预约机制(虚拟载波监听机制)
  • 可选 RTS/CTS 握手:发送方先发RTS(请求发送),接收方回CTS(允许发送),二者都携带"本次通信将持续多久",听到的其他站点据此设置网络分配向量 NAV并保持沉默 —— 有效缓解隐蔽站问题。
  • 具体流程:①发送方广播 RTS 控制帧(先听后发,忙则退避)
    ②AP 广播 CTS 控制帧(需在 RTS、CTS 中指明预约时长)
    ③其他无关节点收到 CTS 后自觉 “禁言” 一段时间;发送方收到 CTS 后,就可以发送数据帧
    ④AP 收到数据帧后,进行 CRC 校验,若无差错就返回 ACK 帧

两点访问方式:DCF(分布式协调功能,用 CSMA/CA,必须实现)与PCF(点协调功能,由 AP 集中轮询,可选)。

2.6 随机访问各协议对比

协议是否监听是否检测碰撞最大信道利用率关键缺点
纯 ALOHA否否18.4%碰撞危险区 2T,效率最低
时隙 ALOHA否(只在时隙起点发)否36.8%需全网时钟同步
1-坚持 CSMA是否高于 ALOHA空闲瞬间多站齐发,必然碰撞
非坚持 CSMA是否较高空闲后可能无人发,时延大
p-坚持 CSMA是否较高参数p需整定
CSMA/CD是是接近 1(高负载下仍可很高)碰撞后仍需退避;不适用于无线
CSMA/CA是否(改为避免 + ACK 确认)低于 CSMA/CD退避开销大、需 ACK,吞吐量低于有线

三、轮询访问介质访问控制

核心思想:不争用,而是由一个中心控制者或令牌来顺序授予发送权。无碰撞,可保证最大时延。

3.1 轮询(Polling)

  • 一个**主结点(primary)轮流"邀请"各从结点(secondary)**发送:主结点发轮询帧 → 从结点有数据就发、无数据就回 NAK → 主结点问下一个。
  • 优点:无碰撞,可按优先级/公平性调度。
  • 缺点:轮询开销大(空闲站点也要被询问);主结点是单点故障;引入额外轮询时延。
  • 适用:低负载时效率反而低(大量无效轮询),高负载时效率高。

3.2 令牌传递(Token Passing)

  • 一个称为令牌(token)的特殊帧在环上循环传递,只有持有令牌的站点才能发送数据。发完(或超时)后把令牌传给下一站。
  • 代表:令牌环(Token Ring,802.5)、令牌总线(Token Bus,802.4)。
  • 优点:无碰撞、重负载下效率高且稳定、可支持优先级、可计算最大等待时间(令牌绕环一周的时间有上界)。
  • 缺点:令牌维护复杂(令牌丢失要重新生成、多令牌要清除);轻负载时站点还得干等令牌绕过来,时延大、效率低。

轮询类 vs 随机访问的核心对比(高频简答):

  • 轻负载:随机访问好(几乎不碰撞,即发即走);轮询差(为没数据的站点白花开销)。
  • 重负载:轮询/令牌好(有序发送,几乎无碰撞,吞吐量稳定);随机访问差(碰撞剧增,吞吐量反而下降)。

四、三大类协议总对比 ★

比较项信道划分随机访问轮询访问
分配方式静态、预先划分动态、争用动态、按序授予
是否可能碰撞不会会不会
轻负载性能差(空闲也占资源)好差(轮询/令牌开销)
重负载性能一般差(碰撞剧增)好
时延保证有(固定分配)无有(可算上界)
典型场景电话干线、光纤骨干、蜂窝以太网、无线令牌环、实时工业网络

高频结论:随机访问的信道吞吐量随负载增大先升后降;轮询/令牌的吞吐量在高负载下趋于稳定(接近 1)。


五、碰撞域与广播域(与本节的"共享信道"直接相关)

设备所在层次碰撞域广播域说明
集线器 Hub物理层所有端口同属一个碰撞域一个本质是多端口中继器,共享带宽,必须用 CSMA/CD
网桥 / 交换机数据链路层每个端口一个独立碰撞域一个(不划分)按 MAC 地址转发,独享带宽,可全双工
路由器网络层每个接口一个每个接口一个隔离广播域
  • 碰撞域(冲突域):能互相碰撞的站点集合。CSMA/CD 只在同一碰撞域内有效。
  • 广播域:一个站点发出的广播帧能到达的范围。
  • 交换机全双工:端口全双工工作时不再需要 CSMA/CD(收发各占一对线,不会碰撞),所以"交换式以太网"里 CSMA/CD 实际上被"关掉"了。

记忆:Hub 不隔离任何域;交换机隔离碰撞域、不隔离广播域;路由器两者都隔离。


六、易错点清单

  1. ALOHA 数字:纯 ALOHA 最大18.4%,时隙 ALOHA36.8%,别记反;时隙 ALOHA 的收益来自缩短碰撞危险区(2T → 1T),代价是全网时钟同步。
  2. 1-坚持 CSMA 的致命缺陷是"监听到空闲立即发"⇒ 多站同时抢,必然碰撞;非坚持 CSMA 的缺陷是时延大(空闲可能无人发)。
  3. CSMA 与 CSMA/CD 的区别只有一条:CSMA/CD边发边听(碰撞检测),CSMA 只先听后说。
  4. 争用期是2τ(往返)不是τ(单程)。最小帧长公式是L_min = 2τ·C,写成τ·C是最常见错误。
  5. k = min{重传次数, 10},退避窗口2^k,封顶 1024 个争用期,最大重传 16 次。别把两个数字(10 和 16)记混。
  6. CSMA/CD 不能用于无线,原因是隐蔽站/暴露站 + 无法边发边收;无线用CSMA/CA(碰撞避免,靠 IFS + 退避 + ACK + 可选 RTS/CTS)。
  7. SIFS < PIFS < DIFS;ACK/CTS用SIFS,普通数据帧用DIFS。
  8. WDM 是光的 FDM;CDMA 靠码片序列正交性区分用户,内积+1/0/−1分别对应比特1/未发/比特0。
  9. 集线器所有端口是一个碰撞域;交换机每个端口是一个碰撞域但仍是一个广播域。
  10. 信道划分"不会碰撞"但不是"最优":因为静态分配在用户空闲时浪费信道,所以轻负载下反而不如随机访问。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询