无线局域网的一些笔记
基础结构
OSI 参考模型
| 层级 | 数据形式 | 协议举例 | 作用 | 地址 |
|---|---|---|---|---|
| 物理层 | 比特流 | IEEE802.3, | 电气属性 | / |
| 数据链路层 | 帧 | ATM, IEEE 802.2 | 数据在线缆上的传输 | MAC 地址 |
| 网络层 | 分组、数据报 | IP, X.25 | 两个终端系统之间的传输 | IP 地址 |
| 传输层 | 段、消息 | TCP, UDP, SCTP | 向上层提供数据通讯服务 | 端口号 |
| 会话层 | 应用数据 | SSL, TLS, X.225 | 规定通讯形式内容 | / |
| 表示层 | 应用数据 | ASCII, ISO 3359-1 | 数据的编码解码 | / |
| 应用层 | 应用数据 | FTP, HTTP, DNS | 实际应用 | / |
TCP/IP 参考模型(ARPANET 模型)
| TCP/IP 层名称 | 对应的 OSI 层级 |
|---|---|
| 数据链路层 | 物理层 + 数据链路层 |
| 网络层 | 网络层 |
| 传输层 | 传输层 |
| 应用层 | 会话层 + 表示层 + 应用层 |
端口号相关
端口号是 16-bit 数据,范围 0-65535,其中 IANA 规定:
- 0-1023 为知名端口(well-known)
- 1024-49151 为注册端口(registered)
- 49152-65535 为动态/私有端口(dynamic/private)
常见的端口(well-known)如下
| 名称 | 端口号 | 作用 |
|---|---|---|
| Secure Shell Protocol - SSH | 22 | 远程登录 |
| File Transfer Protocol - FTP | 20, 21 | 文件传输 |
| Telnet | 23 | 远程登录 |
| DNS | 53 | 域名服务 |
| HTTP | 80 | 万维网 |
| HTTPS | 443 | TLS 加密的 HTTPS |
| IMAP | 143 | 邮件服务 |
| SMTP | 25 | 邮件服务 |
| SNMP | 161, 162 | 网络管理协议 |
无线保真,又称为 Wi-Fi,是无线版本的以太网。其标准为 IEEE 802.11 系列。其基础构建为:

其中包含若干个部分,如工作站(Stations,STAs),它们连接到各自的接入点(Access Points,APs)组成基础服务集(Basic Service Set,BSS),而 AP 则通过分布式服务(Distributed Service,DS)连接并组成一个更大的扩展服务集(Extended Service Set,ESS)。
无线网络构建有两种方式: - Infrastructure:无线网与有线网通过一接入点来进行通讯 - Ad-hoc:Ad-hoc模式--带有无线设备的计算机之间直接进行通讯
多个组成 Ad-hoc 网络的 STAs 组成一个独立基本工作集(Independent Basic Service Set,IBSS)。多个 BSS 或者 IBSS 组成一个服务集(Service Set),其标识符为Service Set IDentifier 即 SSID。
帧结构

IEEE802.11 帧有多种,但都有同样的结构。如上图,其中: - Preamble:前导段,用于同步和分隔 - PLCP Header:物理层会聚过程子层(Physical Layer Convergence Procedures)头部,包含物理层的数据和参数 - Frame Control Word / Frame Ctrl:定义帧的类别,共三大类:管理帧(Management Frames)、控制帧(Control Frames)和数据帧(Data Frames)

管理帧
控制帧用于创建,管理和结束 STA 与 AP 之间的通讯,用来交换诸如 SSID、加密方式、信道等参数信息。「扫描网络」就需要用到控制帧。扫描网络有被动和主动之分,被动扫描是指 STA 监听 AP 发出的 beacon 帧,为了保证每个信道都能监听到会不断切换信道。主动扫描还会发送特殊的管理帧即探测帧(probe request),在一个信道上进行广播,广播完成后,等待一段时间,收到帧反馈,做记录,超时就切换到下个信道广播。
控制帧 RTS / CTS
有两个特殊的控制帧: request-to-send (RTS) 和 clear-to-send (CTS),分别是请求发送和许可发送。顾名思义,用于在站点之间请求发送数据。这样做的目的有两个: - 流控,用于控制流量; - 解决隐藏终端问题:「隐藏终端」是指,A 向 B 发送信息,C 未侦测到 A 向 B 发送,故 A 和 C 同时将信号发送至 B,引起信号冲突,导致发送至B的信号都丢失。通过 RTS/CTS 机制,完成了「握手」,使得大数据包的传输更可靠。通常,AP 有一个叫作 packet size threshold 的配置项,超过此数值的数据就会激发 RTS/CTS 机制。

ACK 应答帧
无线局域网中丢包的情况更普遍,为此发展了重传/应答(re-transmission/acknowledgment)模式。ACK 帧应当在特定的时间内为每一个发出的单播帧或一组帧发回。多播和广播帧无须 ACK。若在特定时间内没有收到 ACK,重传之。
为了防止重传的帧重复,重传的帧的 Frame Control 区设置了 Retry 标志。这样若收到多份,只需要保留一个即可。为此,接收设备需要保留最近帧的一些信息。
协调方式
802.11 的协调方式有点协调(PCF)、分布式协调(DCF)和混合协调(HCF)。其中点协调已废弃。
DCF
DCF 是一种 CSMA/CA 机制,即 Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免。工作站在发送之前检测信道是否可用,若不能则等待一段时间。
DIFS与SIFS
都属于Inter-frame Spacing(IFS),即帧间间隙。DIFS全称为Distributed Inter-frame Spacing,即分布式帧间间隙,SIFS称为Short inter-frame space,即短帧间间隔。在CSMA/CA中,发一个帧之前,都需要 "等待" 一个相应的帧间间隔,比如发送数据之前至少要等待DIFS时间,发送ACK之前需要等待SIFS时间。
分段与聚合
分段
对于大的帧,可以进行分段(fragmentation)。分段只用于单播帧,若要重传,只需要重传一段即可。为了分段,Seq Ctrl 段将包含 4 bits 段编号和 12 bits 序列号,因此,帧可以分为 15 个段,对于需要更多分段的帧,Frame Ctrl 将会包含一个设置为 1 的 More Frag 标准,提示接下来还有更多段。所有的段的序列号相同。接受者在收到 More Flag 为 0 的段后恢复整个帧。
分段需要调谐,分段可以减少出现比特错误的几率。AP 会设置一个值,超过者触发分段。一般为 2437 bytes
聚合
所谓聚合(aggregation),就是把一大堆帧塞在一个帧里面。802.11 提供两种聚合方式,分别为 A-MSDU(aggregated MAC service data unit) 和 A-MPDU(aggregated MAC protocol data unit): - A-MSDU:把若干个完整的 802.3 以太网帧塞在一个 802.11 帧里面,共有一个 FCS,理论效率更高,一旦错误,全要重传; - A-MPDU:把若干个参数(来源、目标、QoS 等)相同的 MPDU 塞在一起,各自有 FCS,结合 ACK 可以只重传错误的;

节能模式和时间同步
802.11 提供节能模式(power save mode),从节能模式恢复等操作需要时间同步,每一个站点与网络中的其他站点同步时间,精度达到 4 微秒 + 物理层延迟。
| 标准 | 年代 | 物理层技术 | 速率 (Mbit/s) | 频段 | 兼容性 |
|---|---|---|---|---|---|
| 802.11 | 1997 | FHSS / DSSS | 1 - 2 | 2.4 | / |
| 802.11b | 1999 | DSSS | 1 - 11 | 2.4 | / |
| 802.11a | 1999 | OFDM | 6 - 54 | 5 | / |
| 802.11g | 2003 | DSSS / OFDM | 6 - 54 | 2.4 | 802.11b |
| 802.11n | 2009 | OFDM / MIMO | Max 600 | 2.4, 5 | 802.11a, b, g |
| 802.11ac | 2013 | OFDM / MIMO | Max 1300 | 5 | 802.11a, n |
| 802.11ax | 2020 | OFDMA | Max 9600 | 2.4, 5 | / |