共享介质访问控制这一块,主线到底是什么
本文最后更新于4 天前,其中的信息可能已经过时,如有错误请发送邮件到184874483@qq.com

这一部分在 408 里很容易学散。表面上看,前面在讲“复用”,后面又在讲“随机访问”“轮询访问”,再后面还会冒出 ALOHA、CSMA、CDMA,好像都是一堆并列知识点。其实把主线抓住之后,这一章并不乱。

核心问题只有一个:一条共享的广播信道,多个站点到底怎么合理地用,才能尽量少冲突、少浪费、还能传得快。

围绕这个问题,教材通常分成三大类办法:

第一类是信道划分。思路是提前把一条大信道切开,大家各用各的一份,尽量不碰撞。
第二类是随机访问。思路是不预先固定划分,谁想发谁就尝试发,冲突了再处理。
第三类是轮流访问。思路是不让大家抢,而是按次序一个一个来发。

所以这一章最适合的记忆方式不是死记协议名字,而是按这条线来背:

固定分着用,是信道划分;抢着用,是随机访问;排队轮着用,是轮流访问。

这里还要顺手澄清一个很容易混淆的说法:
介质访问控制的目标,是协调多个结点对共享广播信道的占用。它并不是把广播信道真的“物理上改造成点到点信道”,而是在逻辑效果上尽量让某一时刻只有一个结点有效占用信道,从而避免互相干扰。也就是说,本质还是共享介质,只是通过协议让它“看起来像有序使用”。


几种复用方法的区别,最常考的就是“按什么资源来分”

复用本质上也是“共享一条链路”的办法,只不过它更强调“怎么切资源”。

复用方式划分依据典型特点常见考法
频分复用 FDM按频率分各用户占不同频带,同时传输适合模拟信号;带保护频带
时分复用 TDM按时间分各用户占不同时间片,轮流传输同步时分、统计时分常考区别
波分复用 WDM按光波波长分本质上是光纤中的频分复用常和光纤联系在一起
码分复用 CDM/CDMA按码型分所有人可“同时同频同时间”发送,靠不同码片区分最爱出计算题

这四种里,408 最容易出计算题、也最容易混乱的,就是码分复用

可以用一句极简口诀记:

频分看频带,时分看时隙,波分看波长,码分看码字。


码分复用为什么最容易乱

码分复用最反直觉的地方在于:
它不是把时间分开,也不是把频率分开,而是大家同时发,只是每个人带着自己独有的“码片序列”去发。接收方只要拿某个站点的码去和总信号做相关运算,就能把那个站点的数据“捞出来”。

所以 CDMA 的核心不在“分时”或“分频”,而在码片序列互相正交

1. 两个最基本的条件

设某站的码片序列为 S,长度为 m

它必须满足两个条件:

第一,自己和自己点乘:
S · S = m

第二,不同站之间要正交:
Sᵢ · Sⱼ = 0(i ≠ j)

这就是为什么题目里经常给出由 +1-1 组成的码片序列,而不是 0 和 1。因为用 ±1 做点乘特别方便。


码分复用怎么发、怎么收

发送规则

这块是高频陷阱。

若某站的码片序列是 S,则通常规定:

  • 发送比特 1,发 S
  • 发送比特 0,发 -S

注意,发送 0 不是发全 0 序列,而是发送反码 -S
这是 CDMA 计算题最常见的坑。

接收规则

若多个站同时发送,总信号就是它们发出的码片序列的代数和:

R = d₁S₁ + d₂S₂ + ... + dₙSₙ

其中每个 dᵢ+1-1,分别表示该站发送 1 或 0。

想恢复第 k 个站的数据,就用总信号 R 去点乘该站的码片 Sₖ

R · Sₖ = dₖ(Sₖ · Sₖ) = dₖm

所以:

dₖ = (R · Sₖ) / m

最后判断正负即可:

  • 结果为 +1,说明发送的是 1
  • 结果为 -1,说明发送的是 0

码分复用计算题的极简口诀

这一类题最适合用一句非常机械的口诀来做:

先分段,再点乘,后除长,看正负。

再展开一点就是:

  1. 看总接收序列有多长
  2. 如果超过一个码片长度,就按每 m 位一组切开
  3. 每一组分别与目标站的码片序列点乘
  4. 再除以码片长度 m
  5. 结果正就是 1,负就是 0

这是做 CDMA 题最快、最稳的方法。


信道划分、随机访问、轮流访问,到底怎么区分

这一块也是很容易混。可以直接按“负载高低”和“是否冲突”来理解。

信道划分

信道划分的思路是:先切好,再使用
每个站点拿到固定资源,大家原则上不冲突。

优点是冲突少,规则稳定。
缺点是当某些站点没数据时,分给它的资源就浪费了。

所以它更适合站点都比较活跃、流量比较平稳的场景。

随机访问

随机访问的思路是:不预留,谁要发谁就发
因此资源利用在低负载时往往不错,但高负载时冲突会明显变多。

优点是灵活,低负载下效率高。
缺点是有冲突,需要重传和退避机制。

所以它更适合突发式业务、站点发送不均匀的场景。

轮流访问

轮流访问的思路是:不抢,按次序来
例如轮询、令牌传递。

优点是基本不会冲突,适合负载较高时维持秩序。
缺点是控制开销大,而且会有等待延迟。

所以它更适合对冲突敏感、需要公平性的场景。

一句话速记就是:

信道划分是“固定分”,随机访问是“大家抢”,轮流访问是“排队发”。


两个 ALOHA 协议,最关键就是“是否按时隙发送”

ALOHA 是最原始的随机访问协议,思路非常粗暴:想发就发,撞了再说。

纯 ALOHA

纯 ALOHA 的特点是:任何时刻想发就直接发
因为不对齐时隙,所以碰撞概率很高。

最常考的结论有两个:

  • 易发生冲突
  • 最大吞吐量只有 18.4%

还有一个经典考点叫易受冲突时间

  • 纯 ALOHA 的易受冲突时间是 2T
  • 其中 T 是一帧发送时间

时隙 ALOHA

时隙 ALOHA 比纯 ALOHA 多了一个约束:
只能在时隙开始处发送。

这样一来,碰撞窗口缩小了,所以性能更好。

最常考结论:

  • 只能在离散时隙边界发送
  • 最大吞吐量是 36.8%
  • 易受冲突时间变成 T

所以二者对比一定要记住:

纯 ALOHA:随时发,冲突大,最大 18.4%
时隙 ALOHA:按时隙发,冲突小,最大 36.8%

极简口诀:

纯 ALOHA 乱着发,时隙 ALOHA 卡点发。


三个 CSMA 协议,关键不在“名字”,而在“听到忙时怎么做”

CSMA 的本质比 ALOHA 更聪明一点:
先监听信道,再决定发不发。

因此它的核心差异其实就是一句话:

信道忙时,站点到底是“等着听”“过会再来”还是“按概率发”。

1-坚持 CSMA

规则是:

  • 若信道空闲,立即发送
  • 若信道忙,就持续监听
  • 一旦空闲,立刻发送

优点是空闲信道一出现就能抓住。
缺点是多个站点一起等着,一旦空闲会同时冲上去,容易碰撞。

所以它的特点可以概括成:

积极,冲得快,也最容易扎堆碰撞。

非坚持 CSMA

规则是:

  • 若信道空闲,发送
  • 若信道忙,不持续守着听,而是随机等待一段时间后再监听

这样做可以减少扎堆冲突。

所以它的特点是:

更保守,碰撞少,但等待时间可能更长。

p-坚持 CSMA

这个一般建立在时隙信道基础上。规则是:

  • 若信道空闲,以概率 p 发送
  • 以概率 1-p 推迟到下一时隙
  • 若信道忙,则等待

它介于前两者之间,想在“利用率”和“冲突率”之间折中。

所以一句话理解:

1-坚持最激进,非坚持最保守,p-坚持是概率折中。

这三者最适合背成一组:

  • 1-坚持:空闲就立刻发
  • 非坚持:忙了就先躲开
  • p-坚持:空闲也不一定发,按概率来

这里还要注意一个考试陷阱:
CSMA 已经能减少碰撞,但不能彻底避免碰撞。因为即使监听到空闲,也可能由于传播时延存在,另一个站点也在几乎同一时刻开始发送。

所以做判断题时,若题目说“CSMA 能完全消除冲突”,那就是错的。


轮询访问的重点,真正常考的是“优点和致命缺点”

轮询访问属于受控访问。核心思想是有一个“主站”或者“中心控制者”依次询问各从站:你有没有数据要发?

轮询访问的优点

最重要的一点是:不会发生随机冲突
因为是否发送是由主站授权的,不是大家抢着发。

其次,公平性比较好,谁都能轮到。
在高负载情况下,秩序会比随机访问稳定。

轮询访问的缺点

最致命的缺点有两个:

第一,轮询开销
哪怕某个站没有数据,也可能被轮询一次,浪费控制时间。

第二,单点故障问题
若主站出问题,整个轮询体系就可能瘫痪。

此外,随着站点变多,轮一圈的时间会变长,等待时延也会上升。

所以轮询访问最典型的结论就是:

无冲突,但有开销;有秩序,但依赖主站。

顺手也可以和令牌传递对比一下:

  • 轮询:中心控制
  • 令牌:分布式控制

408 里如果题干提到“主站依次询问各站”,那基本就是轮询。
如果题干提到“持有令牌者才可发送”,那就是令牌传递。


这一章最容易错的几个点

这一部分实际上比死记定义更重要,因为命题人很喜欢在这些地方设陷阱。

第一,复用和介质访问控制不要完全混成一件事
复用强调的是一条链路如何被多个信号共享;介质访问控制强调的是共享介质上多个站点如何协调占用。
但在“信道划分介质访问控制”里,两者又确实会发生交叉,所以容易混。

第二,CDMA 发送 0 不是发 0 序列,而是发反码
这是码分复用计算题里最常见的错法。

第三,正交条件不是看序列长得像不像,而是看点乘是否为 0
很多题目故意给几个看起来“差不多”的序列,真正判断标准只有点乘。

第四,CSMA 不能完全避免冲突
它只是“先听再发”,不是“绝对无碰撞”。

第五,随机访问不等于效率一定低
低负载下,随机访问其实很灵活;真正低效的是高负载下冲突严重时。


例题 1:已知 A 的码片序列,求 B 和 C 的码片序列可以是什么

题目:
一条广播信道上连有 4 个站点 A、B、C、D,采用码分复用技术。当 A、B、C 要向 D 发送数据时,设 A 的码片序列为 (1,-1,1,-1),则 B 和 C 的码片序列可以为?

本题结论

答案不唯一。只要满足:

  • BA 正交
  • CA 正交
  • BC 正交

即可。

例如可以取:

B = (1,1,-1,-1)
C = (1,-1,-1,1)

为什么这样选

先看 A:

A = (1,-1,1,-1)

检查 B 是否与 A 正交:

A · B = 1×1 + (-1)×1 + 1×(-1) + (-1)×(-1)
= 1 - 1 - 1 + 1 = 0

检查 C 是否与 A 正交:

A · C = 1×1 + (-1)×(-1) + 1×(-1) + (-1)×1
= 1 + 1 - 1 - 1 = 0

检查 B 与 C 是否正交:

B · C = 1×1 + 1×(-1) + (-1)×(-1) + (-1)×1
= 1 - 1 + 1 - 1 = 0

所以这组可用。

这类题怎么快速做

本题本质不是“求唯一答案”,而是“找一组互相正交的序列”。
所以以后见到“可以为”三个字,就要立刻想到:答案可能不唯一,只需验证正交即可。


例题 2:收到总序列,判断 A、B、C 分别发送了什么

题目:
站 A、B、C、D 通过 CDMA 共享链路,A、B、C 要向 D 发送数据。
A、B、C 的码片序列分别是:

  • A = (+1,-1,-1,+1)
  • B = (-1,+1,-1,+1)
  • C = (+1,+1,+1,+1)

若 D 从链路上收到的序列是 (3,-1,1,1),则 A、B、C 发送的数据分别是?

本题结论

  • A 发送 1
  • B 发送 0
  • C 发送 1

如果用 ±1 表示发送值,那就是:

  • A 发送 +1
  • B 发送 -1
  • C 发送 +1

解题过程

码片长度 m = 4

先解 A

R · A = (3,-1,1,1) · (1,-1,-1,1)

= 3×1 + (-1)×(-1) + 1×(-1) + 1×1
= 3 + 1 - 1 + 1 = 4

所以:

dA = 4 / 4 = +1

说明 A 发送的是 1

再解 B

R · B = (3,-1,1,1) · (-1,1,-1,1)

= 3×(-1) + (-1)×1 + 1×(-1) + 1×1
= -3 -1 -1 +1 = -4

所以:

dB = -4 / 4 = -1

说明 B 发送的是 0

再解 C

R · C = (3,-1,1,1) · (1,1,1,1)

= 3 -1 +1 +1 = 4

所以:

dC = 4 / 4 = +1

说明 C 发送的是 1

本题为什么容易错

最容易错在两点。

第一,算出 -1 之后,不知道它代表什么。
这里一定要记住:在 CDMA 题里,+1-1 通常分别对应数据位 10

第二,没有除以码片长度。
点乘结果先得到的是 d × m,不是最终数据值,必须再除以 m


例题 3:连续收到 12 个码片,求 A 发送的数据序列

题目:
站 A、B、C 通过 CDMA 共享链路,A、B、C 的码片序列分别是:

  • A = (1,1,1,1)
  • B = (1,-1,1,-1)
  • C = (1,1,-1,-1)

若 C 从链路上收到的序列是:

(2,0,2,0, 0,-2,0,-2, 0,2,0,2)

则 C 收到 A 发送的数据是?

本题结论

A 发送的数据是:

101

为什么是 3 位数据

A 的码片长度是 4。
总接收序列长度是 12。
所以说明总共收到了 12 / 4 = 3 个码元,也就是 A 发了 3 位数据。

按每 4 位分段:

  • 第 1 段:(2,0,2,0)
  • 第 2 段:(0,-2,0,-2)
  • 第 3 段:(0,2,0,2)

分别对 A 的码片做点乘

A 的码片是 (1,1,1,1),长度 m = 4

第 1 段

(2,0,2,0) · (1,1,1,1) = 2 + 0 + 2 + 0 = 4

4 / 4 = +1

所以第 1 位是 1

第 2 段

(0,-2,0,-2) · (1,1,1,1) = 0 -2 +0 -2 = -4

-4 / 4 = -1

所以第 2 位是 0

第 3 段

(0,2,0,2) · (1,1,1,1) = 0 +2 +0 +2 = 4

4 / 4 = +1

所以第 3 位是 1

因此 A 发送的是:

101

这类题的识别信号

题干一旦出现:

  • 码片长度是 4
  • 收到序列长度明显是 8、12、16……
  • 要求“发送的数据是什么”

就要立刻想到:不是只解 1 位,而是要按码片长度分段逐段解码。

这就是很多同学在 CDMA 题里丢分的原因:
方法知道,但忘了“分段”。


最后把这一块压成最适合考前回忆的版本

这一章最适合考前记成下面这组话:

1. 共享介质访问控制三大类

固定分着用:信道划分
抢着用:随机访问
轮着用:轮流访问

2. 复用方式速记

频分看频带,时分看时隙,波分看波长,码分看码字。

3. CDMA 计算速记

1 发原码,0 发反码;先分段,再点乘,后除长,看正负。

其中:

数据 = (接收序列 · 本站码片序列) / 码片长度

4. ALOHA 速记

纯 ALOHA 随时发,最大吞吐 18.4%
时隙 ALOHA 按格发,最大吞吐 36.8%

5. 三种 CSMA 速记

1-坚持:空闲就冲
非坚持:忙了先躲
p-坚持:按概率冲

6. 轮询访问速记

无冲突,但有开销;有主站,怕单点故障。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇