🌐 第五章 以太网与无线局域网
📄 一句话概括

CSMA/CA 的完整时序=先听(信道忙就等)→ 空闲后付一段 DIFS → 抽随机倒计时、边等边让(信道忙就把表按停)→ 计到 0 才发 → SIFS 内等 ACK,没等到就当丢了、加倍重来;RTS/CTS 再加一道"先申请发言权",专治隐蔽站。

📝 本节和前面几节的关系

5.16 给了 CSMA/CA 的四步框架和三条物理理由(半双工、假空闲、隐蔽站);5.8 的 CSMA/CD 一直作为对照组出现。本节把无线这套规矩展开到帧级细节:帧间隔的礼仪分级(SIFS/DIFS)、退避计数器的冻结机制、"没撞也先让"与 CD 的根本区别、RTS/CTS 怎么替隐蔽站点名。5.19 说的"实际速率永远低于标称",本节给出第一笔明细账——每帧固定付出的听、等、退避、等回执。

一、从"检测冲突"到"避免冲突":前提就不同

5.8 讲过 CSMA/CD 的三步:先听、边说边听、撞了就停。无线把"边说边听"废了——自己发射的信号盖住接收(半双工),听到的空闲可能是假的(信号衰减),隐蔽站互相听不见(撞车发生在接收方,发送方全程不知)。检测的前提塌了,策略只能反过来:既然撞了也发现不了,就在撞之前把撞车概率压下去——这就是"避免(Avoidance)"的全部含义。

一句话记住分工:CD 是"事后止血",CA 是"事前排队"。

二、帧间隔:空气里的礼仪分级

无线里的"先听后说"不是听到空闲就立刻说,还得按帧的类型先付一段静默时间:

这套分级的妙处:谁等得短谁先说,优先级不是靠喊,是靠"付的静默时间短"。ACK 永远赢过新数据,所以回执链不会被打断。

三、随机退避的完整细节:没撞也先让,忙就把表按停

空闲并付完 DIFS 之后,还不能直接发——先在 0~CW(竞争窗口)里抽一个随机数当倒计时,信道每空闲一个时隙就减 1,计到 0 才发送。两个关键细节:

这是与 CD 退避最深的区别:CD 是撞了才退(赌输了赔钱),CA 是每帧都先退(进场先买保险)。代价也随之转移:CD 亏在撞车浪费的帧,CA 亏在每帧固定付出的听、DIFS、退避、等 ACK——人少时这笔开销白白付,人多时它换来秩序。

四、等 ACK:无线唯一的送达凭据

有线以太网发完就算成功(冲突检测就是凭证);无线每帧都必须等 ACK,没回执就当丢了。三个推论:

五、RTS/CTS:给隐蔽站点名

5.16 留的问题:A、B 互相听不见但都能到 AP,同时开口就在 AP 处撞,双方还都以为信道空闲。解法是让 AP 当裁判:

A 先发一个很小的 RTS(申请发言,附"我要占线多久")→ AP 回 CTS 广播("批准,全场闭嘴这一段时间")→ B 听不见 A,但听得见 AP 的 CTS,于是闭嘴 → A 放心发数据、等 ACK。隐蔽站被 CTS 点名,撞车从机制上消失。

代价:每次通信多付 RTS + CTS 两回合。所以它默认关闭,只在长帧、高干扰、隐蔽站确实存在的场合启用——用两回合小帧的确定性开销,换一整帧大数据的零冲突。

六、动手 Demo(Demo69:亲手量出"排队税")

  1. 只留一台设备联网,ping 192.168.1.1 -n 20,记下平均延迟和抖动(Windows 会给你"最长/最短/平均")。
  2. 让第二台设备(家人手机)连同一个 2.4G 信道,开始刷视频,再跑一遍同样的 ping。观察点:平均延迟和抖动明显上涨——这就是退避排队在被实时支付。
  3. 两台设备同时下载大文件,看各自速度加起来还不如一台独跑——同信道就是一条空气总线(5.19),排队税人人要交。
  4. 把你的设备切到 5G 同名网络(或另一个信道),再对比延迟——同信道排队被换成了另一块地。
  5. 对比"信号格数":此时你信号可能仍满格,但延迟翻倍——满格衡量的是①扫描能听见,排队发生在后面的机制里(收 5.18 分诊)。
  6. (条件允许)打开微波炉,2.4G 延迟立刻飙升——2.4G 频段里微波炉也是"抢话的",它不遵守 Wi-Fi 的礼仪。
  7. 收尾:把第 1 步和第 2 步的延迟差÷2,估算"每台设备的排队税",写进 30 秒实验。

七、30 秒实验

ping 网关看"平均延迟"这一个数字就够了:单设备时的延迟 ≈ 无线机制本身的固定开销;人多时延迟的涨幅 ≈ 排队税。记住这两个基线,以后判断"卡是人多还是信号差"就有了尺子。

八、常见误区

九、折叠自测

📌 自测(点开对答案)
  1. 无线为什么只能"避免"不能"检测"冲突?三条物理理由各是什么?
  2. SIFS 和 DIFS 各留给谁?这套分级保证了什么?
  3. 退避"冻结"是什么?它与 CD 退避的根本区别一句话?
  4. SIFS 内没等到 ACK 的处理流程?重传无限次吗?
  5. RTS/CTS 治隐蔽站的关键一环是什么?为什么默认关闭?
  6. 实际速率低于标称的第一笔账是哪笔?

答案:① 半双工(自发自收盖住接收)·假空闲(衰减)·隐蔽站(撞在接收方)。② SIFS 给 ACK/CTS,DIFS 给普通数据帧;回执永远优先于新发言。③ 别人开口就按停倒计时、空闲后从断点继续;CD 撞了才退、CA 没撞也先让。④ 当作丢了 → CW 翻倍重新抽签重传;有次数上限。⑤ B 听不见 A 但听得见 AP 的 CTS(被点名闭嘴);多两回合控制帧,只在长帧/高干扰启用。⑥ 每帧固定付的"先听 + DIFS + 退避 + 等 ACK"。

十、下一步学什么

相关笔记