计算机网络原理
第七章 第1节
第七章:无线与移动网络(一)
1. 这一章到底在讲什么?
前面我们默认通信链路大多是有线的,比如:
主机 —— 网线 —— 交换机 —— 路由器
但是无线网络变成了:
手机 / 笔记本 ))) 空气 ))) AP / 基站
所以问题变了。
有线网络里,线缆比较稳定;无线网络里,信号在空气中传播,会遇到:
距离变远,信号变弱;
墙、桌子、人、车会阻挡;
多个设备同时发,会互相干扰;
主机可能移动;
不同位置听到的信号不一样。
所以第七章前半部分重点是:
无线链路为什么难?WiFi 是怎么解决共享信道问题的?
2. 无线网络中的基本组件
无线网络主要有三个东西。
2.1 无线主机
无线主机就是:
手机;
笔记本;
平板;
IoT 设备;
车载设备。
它们运行应用,也有协议栈。
注意:
无线主机不一定是移动的。
比如家里的台式机插了无线网卡,它是无线主机,但不移动。
2.2 基站 / AP
基站可以理解成:
无线设备连接到有线网络的入口。
在不同场景下叫法不同:
场景 | 名字 WiFi | AP,Access Point 蜂窝网络 | 基站,base station 4G/5G | eNodeB / gNodeB
它负责和无线主机通信,同时连接到有线网络基础设施。
比如你手机连 WiFi:
手机 ))) AP —— 交换机 —— 路由器 —— Internet
AP 就像无线世界和有线世界之间的桥。
2.3 无线链路
无线链路就是:无线主机 ))) AP / 基站
或者:无线主机 ))) 无线主机
无线链路的特点是:
速率不同;
距离不同;
频段不同;
抗干扰能力不同。
比如:
技术 | 大致特点 Bluetooth | 距离短,速率低 WiFi | 中短距离,速率较高 4G/5G | 覆盖范围大,移动性强 卫星 | 范围很大,延迟高
3. 无线网络分类
单跳 多跳 有基础设施 WiFi / 蜂窝网络 mesh network 无基础设施 Bluetooth / ad hoc MANET / VANET

我们用朴素话解释。
3.1 有基础设施 + 单跳
这是最常见的。
比如 WiFi:
手机 ))) AP —— Internet
手机只需要无线连接到 AP,后面就走有线网络。
蜂窝网络也是类似:
手机 ))) 基站 —— 运营商核心网 —— Internet
这种模式特点:
有中心节点,主机通过 AP 或基站接入网络。
3.2 有基础设施 + 多跳
比如无线 mesh 网络。
有一些节点既可以接入主机,也可以帮其他节点中继。
主机 ))) 节点A ))) 节点B ))) Internet
比单跳复杂,因为中间节点还要帮别人转发。
3.3 无基础设施 + 单跳
比如蓝牙。
两个设备直接通信:
耳机 ))) 手机
没有 AP,也没有基站。
3.4 无基础设施 + 多跳
比如 MANET、VANET。
MANET:移动自组织网络;
VANET:车载自组织网络。
节点之间自己组成网络,还要相互转发。
比如车和车之间通信:
车A ))) 车B ))) 车C
这种最复杂,因为:
没有中心;
节点还会移动;
路由经常变化。
4. 基础设施模式和自组织模式
4.1 基础设施模式
基础设施模式就是:有 AP 或基站。
比如 WiFi 里面:
笔记本 ))) AP —— 有线网络
特点:
主机之间通常不直接通信;
都通过 AP 或基站中转;
移动时可能要切换 AP 或基站;
AP / 基站负责接入控制和资源管理。
4.2 自组织模式
自组织模式就是:
没有 AP 或基站,节点自己组网。
比如几个笔记本直接无线互联。
特点:
节点之间直接通信;
节点可能帮别人转发;
网络拓扑容易变化;
路由更难。
5. 无线链路为什么难?
这是第七章前半部分的核心。
有线链路里,信号沿着线走。
无线链路里,信号在空气中传播,所以问题很多。
5.1 信号衰减
距离越远,信号越弱。
可以理解:离 AP 越远,WiFi 越差
原因是无线电磁波传播时能量会扩散,还会被墙、人体、家具吸收。
所以:距离增加,接收信号强度下降。

5.2 干扰
无线频段是共享资源。
比如 2.4GHz 频段里可能有:
WiFi;
蓝牙;
微波炉;
其他邻居家的 WiFi;
无线鼠标键盘。
这些都会产生干扰。
所以即使离 AP 不远,也可能因为旁边干扰太多,网络很差。
5.3 多径传播
无线信号不是只走一条直线。
它可能被墙壁、地面、桌子反射,形成多条路径。
例如:
AP 直接到手机 AP → 墙壁反射 → 手机 AP → 地面反射 → 手机
这些信号到达时间略有不同,会叠加在一起。
可能增强,也可能抵消。
所以会出现:明明只挪了一小步,信号突然变好或变差。
这就是多径带来的影响。
6. SNR 和 BER
6.1 SNR:信噪比

SNR 是:
S 是 signal,信号功率。
N 是 noise,噪声功率。
通常用 dB 表示:
可以这样理解:SNR 越大,信号比噪声强得越多,通信越可靠。
比如:
老师声音很大,教室很安静 → SNR高 老师声音很小,教室很吵 → SNR低
6.2 BER:误码率
BER 是:
误码率。
意思是:传输的 bit 里面,有多少比例出错。
SNR 和 BER 的关系大概是:
SNR 越高 → BER 越低 SNR 越低 → BER 越高
所以无线系统要根据当前 SNR 调整传输方案。
7. 无线通信中的控制手段
无线通信想提高性能,主要调几个东西:
信号强度 调制方式 传输速率 能耗 误码率
朴素理解:如果信道条件好:信号强,干扰少,那就可以用高速率、高阶调制。
如果信道条件差:信号弱,噪声大,那就要降低速率,换更稳的调制方式。
所以 WiFi 里面会看到:
离路由器近,速率高; 离路由器远,速率低。
是系统根据信道质量做自适应。
8. 隐藏终端问题

这是无线网络非常经典的问题。
假设有 A、B、C 三个节点:
A ))) B ))) C
A 能听到 B。
C 能听到 B。
但是 A 和 C 相距较远,互相听不到。
现在:
A 想给 B 发数据;
C 也想给 B 发数据;
A 听不到 C,所以以为信道空闲;
C 听不到 A,也以为信道空闲;
结果 A 和 C 同时发,B 处发生碰撞。
这叫:隐藏终端问题。
重点:
发送方听不到另一个发送方,但它们的信号会在接收方那里相撞。
也就是:A 和 C 彼此隐藏,但都能干扰 B。
9. 暴露终端问题
还有一个暴露终端问题。
假设:
A ))) B C ))) D
B 正在给 A 发数据。
C 听到了 B 的发送,于是 C 以为信道忙,不敢给 D 发。
但其实:
C 给 D 发;
B 给 A 发;
这两个通信可能不会互相干扰。
所以 C 本来可以发送,却因为听到了 B 而不敢发送。
这叫:暴露终端问题。
重点:节点以为自己会造成干扰,其实不会,于是白白不发送,降低效率。
10. CDMA:码分多址
CDMA 是:
码分多址。
它的核心思想是:
大家可以同时用同一个频段发送,但是每个人用不同的“码”来区分。
类比一下:
技术 | 类比 TDMA | 不同人分时说话 FDMA | 不同人去不同房间说话 CDMA | 大家同时说话,但每个人说不同语言
10.1 CDMA 的基本思想
每个站点分配一个码片序列。
比如站点 A 的码是:
如果 A 要发送 bit 1,就发送自己的码:
如果 A 要发送 bit 0,就发送自己码的反码:
也就是:
10.2 为什么能区分不同用户?
因为不同用户的码要满足正交性。
比如 A 和 B 的码正交:
自己的码和自己点乘:
这里里用了平均内积:
所以:
自己的码和自己算 → 1 自己的码和别人算 → 0 自己的码和自己反码算 → -1
这个就是 CDMA 能从混合信号里分离出目标用户数据的原因。
11. CDMA 解码例子
假设同时有三个用户 A、B、C 发送。
无线信道里收到的信号是叠加结果:
现在接收方想知道 C 发了什么。
就拿收到的总信号 S 和 C 的码做内积:
展开:
因为码之间正交:
所以:
这说明 C 发的是 bit 1。
如果算出来是:
说明 C 发的是 bit 0。
如果算出来接近 0,说明 C 没有发送。
12. CDMA 的理解
CDMA
它就是:
给每个用户一个互相正交的码。 发送时用码表示 bit。 接收时用对应码做内积,把目标用户信号提出来。
CDMA 如何让多个用户同时发送?
答:使用不同的正交码片序列。
为什么不同用户不会互相影响?
答:理想情况下码片序列正交,内积为 0。
如何恢复某个用户的数据?
答:接收混合信号与该用户码片序列做内积。
13. IEEE 802.11:WiFi
802.11 就是 WiFi 的标准族。
不同版本速率、频段、范围不同。
标准 | 常见名字 | 频段 | 特点 802.11b | WiFi 早期 | 2.4GHz | 11 Mbps 802.11g | WiFi 早期 | 2.4GHz | 54 Mbps 802.11n | WiFi 4 | 2.4/5GHz | 更高速 802.11ac | WiFi 5 | 5GHz | 更高吞吐 802.11ax | WiFi 6 | 2.4/5GHz | 高效率
重点是:
802.11 是无线局域网协议,链路层使用 CSMA/CA,而不是以太网的 CSMA/CD。
14. 802.11 LAN 结构
WiFi 有两种模式:
14.1 基础设施模式
这是最常见的。
无线主机 ))) AP —— switch/router —— Internet
一个 AP 加上它服务的一组无线主机,叫:
基本服务集。
比如:
BSS1:AP1 + 一些主机 BSS2:AP2 + 一些主机
14.2 自组织模式
没有 AP。
无线主机之间直接通信。
比如:笔记本A ))) 笔记本B
15. WiFi 连接 AP:关联 associate
手机或笔记本连 WiFi,本质是:
主机和某个 AP 建立关联。
关联之前,主机要先发现附近有哪些 AP。
15.1 被动扫描
被动扫描就是:AP 主动发信标帧 beacon,主机被动听。
过程:
AP 周期性发送 beacon frame;
beacon 里包含 SSID、AP MAC 地址等信息;
主机听到 beacon;
主机选择一个 AP;
主机发送关联请求;
AP 返回关联响应。
像打开手机 WiFi 列表,看到很多 WiFi 名字,本质上就是 AP 在广播自己的存在。
15.2 主动扫描
主动扫描就是:主机主动问:附近有哪些 AP?
过程:
主机广播 probe request;
AP 收到后返回 probe response;
主机选择 AP;
主机发送关联请求;
AP 发送关联响应。
对比:
扫描方式 | 谁先发 被动扫描 | AP 先发 beacon 主动扫描 | 主机先发 probe request
16. 802.11 为什么不用 CSMA/CD?
第六章讲以太网时,我们学过:
也就是:先听再发,边发边检测碰撞。
但是 WiFi 用的是:
也就是:先听再发,尽量避免碰撞。
为什么 WiFi 不用 CSMA/CD?
核心原因:无线中很难边发边检测碰撞。
16.1 原因一:发送信号太强,接收别人的信号太弱
无线网卡自己发送时,自己的信号对自己来说非常强。
别人的信号相对很弱。
所以发送时很难同时听清别人有没有也在发。
就像:
自己大喊的时候,很难听清远处别人是不是也在说话。
16.2 原因二:隐藏终端问题
A 听不到 C。
即使 A 发送时没检测到 C,也不代表 B 那里不会冲突。
所以无线里的碰撞判断更困难。
16.3 原因三:碰撞代价高
无线中一旦长数据帧碰撞,整段数据都浪费了。
所以 WiFi 的思想不是:
碰撞了再处理。
而是:尽量提前避免碰撞。
这就是 Collision Avoidance。
17. CSMA/CA 的基本流程
CSMA/CA 可以这样理解:
先听一会儿,没人说话再随机等一等,然后发送。 收到 ACK 才算成功。
流程如下。
17.1 发送方流程
如果主机要发送数据:
第一步,侦听信道。
如果信道空闲持续 DIFS 时间,就发送整个帧。
信道空闲 DIFS → 发送 data
第二步,如果信道忙,就随机选择一个回退值。
比如选择:
只有在信道空闲时,倒计时才减少。
如果信道又忙了,倒计时暂停。
等信道再次空闲,再继续倒计时。
倒计时到 0 后,发送数据帧。
17.2 接收方流程
接收方收到数据后,如果帧正确,就等一个更短的时间:
然后发送 ACK。
所以:发送方 data → 接收方 SIFS → ACK
注意:
这表示 ACK 的优先级更高。
因为别人要等 DIFS,而 ACK 只等 SIFS,所以 ACK 能抢先发出去。
18. 为什么需要 ACK?
以太网通常不在链路层 ACK。
但是 WiFi 需要 ACK。
原因:
无线链路不可靠,发送方不知道对方是否真的收到了。
可能的情况:
数据帧丢了;
数据帧碰撞了;
数据帧被干扰了;
接收方收到了但 ACK 丢了。
所以 WiFi 中:
收到 ACK → 认为成功 没收到 ACK → 认为失败,重传
19. 为什么要随机回退?
假设两个主机 A、B 都等到信道空闲。
如果都立刻发送:
A 发送 B 发送
那就又撞了。
所以大家要随机等一段时间。
比如:
A 随机等 3 个时隙 B 随机等 7 个时隙
那么 A 先发送,B 听到信道忙,就暂停。
这样就避免了同时发送。
这和第六章以太网的二进制指数退避有点像,但 WiFi 的目标更偏向:
事前避免碰撞。
20. CSMA/CA 大体流程
先听信道 空闲等DIFS 忙则随机退避 只在空闲时倒计时 倒计时到0发送 接收方等SIFS回ACK 没ACK则扩大窗口重传
21. CSMA/CA 仍然无法完全避免冲突
CA 是避免冲突,不是消灭冲突。
无线里仍然可能冲突。
比如隐藏终端:
A ))) AP ((( B
A 和 B 互相听不到。
A 觉得信道空闲,B 也觉得信道空闲。
它们可能都发给 AP,结果 AP 处冲突。
所以还需要 RTS/CTS。
22. RTS/CTS 机制
RTS/CTS 的核心思想是:
发送长数据之前,先用短控制帧预约信道。
RTS:
请求发送。
CTS:
允许发送。
22.1 RTS/CTS 流程
假设 A 要给 AP 发数据。
A 先发 RTS 给 AP;
AP 收到后广播 CTS;
周围节点听到 CTS 后,知道 AP 接下来要接收 A 的数据;
其他节点在预约时间内保持安静;
A 发送 DATA;
AP 返回 ACK。
流程:
A → AP:RTS AP → 所有人:CTS A → AP:DATA AP → A:ACK
22.2 RTS/CTS 解决什么问题?
主要解决隐藏终端问题。
比如:
A ))) AP ((( B
A 和 B 互相听不到,但都能听到 AP。
如果 A 发 RTS,AP 回 CTS。
B 虽然听不到 A 的 RTS,但能听到 AP 的 CTS。
于是 B 知道:
AP 现在要接收别人发来的数据,我先别发。
这样就减少了隐藏终端导致的数据帧冲突。
22.3 RTS 本身会不会冲突?
会。
比如 A 和 B 同时发 RTS。
但是 RTS 很短,就算冲突,浪费也小。
这比两个很长的数据帧撞掉更划算。
所以 RTS/CTS 的思想是:用短帧的小代价,保护长帧的大传输。
23. RTS/CTS 的代价
RTS/CTS 也不是永远都用。
因为它多了控制开销:
RTS + CTS + DATA + ACK
如果数据帧本来很短,用 RTS/CTS 反而不划算。
所以实际系统里通常是:
长帧更适合 RTS/CTS,短帧可以直接发。
24. 本部分核心对比:以太网 和 WiFi
对比 | 有线以太网 | WiFi 802.11 介质 | 网线 | 空气 共享信道问题 | 有,但现代交换机减少很多 | 明显存在 MAC 协议 | CSMA/CD | CSMA/CA 碰撞处理思想 | 检测碰撞后停止 | 尽量提前避免碰撞 是否容易检测碰撞 | 容易 | 很难 是否需要链路层 ACK | 通常不需要 | 需要 典型问题 | 碰撞域 | 隐藏终端、暴露终端、信号衰减
以太网是“边发边听,撞了就停”; WiFi 是“发之前多等等,尽量别撞,收不到 ACK 就重传”。
25. 这部分考试重点整理
25.1 无线链路特点
信号衰减 干扰 多径传播 SNR 和 BER 权衡 隐藏终端 暴露终端
25.2 CDMA
不同用户使用不同正交码 发送1:发送码片序列 发送0:发送反码 接收端用对应码做内积恢复数据
公式:
结果:
与自己的码点乘 = 1 与别人码点乘 = 0 与自己反码点乘 = -1
25.3 WiFi 802.11
AP BSS associate passive scanning被动扫描 active scanning 主动扫描 CSMA/CA ACK RTS/CTS
25.4 CSMA/CA
监听信道 空闲DIFS后发送 忙则随机回退 倒计时只在空闲时减少 发送整个帧 接收方SIFS后ACK 没收到ACK就重传
25.5 RTS/CTS
RTS:请求发送 CTS:允许发送 目的:缓解隐藏终端问题 思想:用短控制帧预约信道,避免长数据帧碰撞
26. 总结
无线网络最大的问题是“空气是共享的,而且每个人听到的空气状态还不一样”。 所以 WiFi 不能像有线以太网一样边发边检测碰撞,而是采用 CSMA/CA:先听、随机等、发完等 ACK。 为了解决隐藏终端问题,还可以用 RTS/CTS 先预约信道。 CDMA 则是另一种思路:大家同时发,但用不同正交码把用户区分开。
下一部分就可以继 802.11 帧结构、移动性、4G/5G 蜂窝网络、移动 IP 这些。
