WIFi是以IEEE 802.11(一种无线局域网标准)为标准的一种实现。随着标准的不断修订,其传输速度在不断增加。现今第六代的传输速率可达9.6Gbit/s。下表为第一代到第六代的相关信息。对每一代仅列出了比较常见的标准,另外也有一些不常见的标准。在多个厂商兼容802.11b后,802.11网络才开始大规模流行。
世代 | 时间 | 标准 | 工作频段 | 速率 | 调制 | 高级天线技术 | 带宽 |
第一代 | 1997 | IEEE 802.11 | 2.4GHz | 2Mbit/s | DSSS | – | 20MHz |
第二代 | 2000 | IEEE 802.11b | 2.4GHz | 11Mbit/s | DSSS | – | 20MHz |
第三代 | 1999 | IEEE 802.11a | 5GHz | 54Mbit/s | OFDM | – | 20MHz |
第三代 | 2003 | IEEE 802.11g | 2.4GHz | 54Mbit/s | DSSS, OFDM | – | 20MHz |
第四代 | 2009 | IEEE 802.11n | 2.4GHz 、5GHz | 600Mbit/s | MIMO-OFDM | 最多4条空间流 | 20/40MHz |
第五代 | 2013 | IEEE 802.11ac | 5GHz | 6.9Gbit/s | MIMO-OFDM | 最多8条空间流 | 20/40/80/160MHz |
第六代 | 2020 | IEEE 802.11ax | 5GHz | 9.6Gbiy/s | OFDMA | 最多8条空间流 | 20/40/80/160MHz |
网络成员和结构
- 站点(Station),网络最基本的组成部分。
- 基本服务单元(Basic Service Set,BSS)。网络最基本的服务单元。最简单的服务单元可以只由两个站点组成。站点可动态连结(associate)到基本服务单元中。
- 分配系统(Distribution System,DS)。分配系统用于连结不同的基本服务单元。逻辑上,分配系统使用的介质(Medium)和基本服务单元使用的介质完全不同,尽管物理上它们可能会是同一个介质,例如同一个无线频段。
- 接入点(Access Point,AP)。接入点即有普通站点的身份,又有连接到分配系统的功能。
- 扩展服务单元(Extended Service Set,ESS)。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上。不同的基本服务单元物有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。
- 关口(Portal)。也是一个逻辑成分,用于将无线局域网和有线局域网或其它网络联系起来。
这里有3种介质,站点使用的无线介质,分配系统使用的介质,以及和无线局域网集成一起的其它局域网使用的介质。物理上它们可能互相重叠。IEEE 802.11只负责在站点使用的无线的介质上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。
IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service)。整个无线局域网定义了9种服务:
- 5种服务属于分配系统的任务,分别为,连接(Association)、结束连接(Diassociation)、分配(Distribution)、集成(Integration)、再连接(Reassociation)。
- 4种服务属于站点的任务,分别为,鉴权(Authentication)、结束鉴权(Deauthentication)、隐私(Privacy)、MAC数据传输(MSDU delivery)。
帧结构
一般802.11的帧结构由9个字段构成。

Frame Control

所有的802.11帧都是由2字节的帧控制字段开始的,包括如下的字段:
- Protocol([0:1]):表示该帧所使用的MAC版本,目前只有一个版本协议编号为0。
- Type([2:3]):表示帧类型。在802.11中定义了三种帧分别是:管理帧(Type=00b)、控制帧(Type=01b)、数据帧(Type=10b)。
- Subtype([4:7]):对于Type定义的三种帧,进行了进一步的细化,详细参见表1。
- ToDs([8]):表示该帧是BSS向DS发送的帧。
- FromDs([9]):表示该帧是DS向BSS发送的帧。
- More Frag([10]):说明了长帧分包发送的情况,为1表示该帧之后还有其它帧,为0表示该帧为最后一帧。
- Retry([11]):任何重传的帧都会将此位设定为1,以协助接收端剔除重复的帧。
- Pwr Mgmt([12]):只是该帧传送结束之后,Station应采用的电源管理模式。1表示Station即将进入省电(power-save)模式, 0表示将进入激活(active)模式。
- More Data([13]):针对处于省电模式的Station,AP会将从分布系统中接收来的帧加以缓存。AP将此位置1表示至少还有一帧需要传给休眠中的Station。
- Protected Frame([14]):如果该帧经过WEP(Wired Equivalent Privacy)加密处理则置1,否则置0。
- Order([15]):在分段传送长帧的时候,将该位置1,表示接收端需要严格按照顺序处理该帧。
Type和SubType描述了帧的具体类型,主要有管理帧,控制帧和数据帧三种类型:
Type | Subtype | 功能描述 |
---|---|---|
管理帧2b’00 | 4b’0000 | 关联请求(Association Request) |
4b’0001 | 关联响应(Association Response) | |
4b’0010 | 重新关联请求(Reassociation Request) | |
4b’0011 | 重新关联响应(Reassociation Response) | |
4b’0100 | 探测请求(Probe Request) | |
4b’0101 | 探测响应(Probe Response) | |
4b’1000 | 信标(Beacon) | |
4b’1001 | 通知传输指示消息(Announcement traffic indication message, ATIM) | |
4b’1010 | 取消关联(Disassociation) | |
4b’1011 | 身份验证(Authentication) | |
4b’1100 | 解除身份验证(Deauthentication) | |
控制帧2b’01 | 4b’1010 | 省电-轮询(Power Save(PS)-Poll) |
4b’1011 | 请求发送(Request to Send, RTS) | |
4b’1100 | 清除发送(Clear to Send, CTS) | |
4b’1101 | 确认接收(Acknowledgment, ACK) | |
4b’1110 | 无竞争周期结束(Contenion-Free-End, CF-End) | |
4b’1111 | CF-End + CF-ACK | |
数据帧2b’10 | 4b’0000 | 数据(Data) |
4b’0001 | Data + CF-ACK | |
4b’0010 | Data + CF-Poll | |
4b’0011 | Data + CF-ACK + CF-Poll | |
4b’0100 | 空数据(Null) | |
4b’0101 | CF-ACK(无数据传送) | |
4b’0110 | CF-Poll(无数据传送) | |
4b’0111 | Data + CF-ACK + CF-Poll | |
4b’1000 | Qos Data | |
4b’1001 | Qos Data + CF-ACK | |
4b’1010 | Qos Data + CF-Poll | |
4b’1011 | Qos Data + CF-ACK + CF-Poll | |
4b’1100 | Qos空数据(Null) | |
4b’1101 | Qos CF-ACK(无数据传送) | |
4b’1110 | Qos CF-Poll(无数据传送) | |
4b’1111 | Qos Data + CF-ACK + CF-Poll |
管理帧的主要作用是维护接入点和无线客户端之间的通信;控制帧主要负责客户端与接入点的数据交换;数据帧指携带传输的数据的帧。
Duration ID
Duration ID(持续时间)占2个字节,主要用来记载网络分配矢量NAC的值,用来限制访问介质的时间。

Address
address有五种类型:
- BSSID,基本服务集标识符
- DA,目的地址
- SA,源地址
- RA,接收端地址
- TA,发送端地址
根据Frame Control中的ToDS和FromDS来确定其具体功能:
功能 | To DS | From DS | Address1(接收端) | Address2(发送端) | Address3 | Address4 |
IBSS | 0 | 0 | DA | SA | BSSID | 未使用 |
To AP(基础结构型) | 1 | 0 | BSSID | SA | DA | 未使用 |
From AP(基础结构型) | 0 | 1 | DA | BSSID | SA | 未使用 |
WDS(无线分布式系统) | 1 | 1 | RA | TA | DA | SA |
Seq-crl
Seq-crl(Sequence Control)格式式如下,顺序编号4096的模数,从0开始,每处理一个上层封包就加1
若上层封包分片处理,所有帧分片采用相同顺序编号;对于重传帧,顺序编号不变

Frame Body字段
Frame Body字段中记录的是通信中实际的数据,所以该字段也是数据字段。它最多可以传送2304个字节的数据(为了能够支持WEP(无线加密协议), 各供应商在具体实现的时候通常是支持2312个字节的数据)。802.11的LLC(逻辑链路控制)需要占8个字节,因此最多可以承载2296个字节数据。
FCS字段
FCS字段叫做帧校验序列(Frame Check Sequence, FCS),主要用来进行校验数据,确保传输过程没有发生错误(如果发生错误,将进行重传)。通常使用循环冗余校验CSC(Cyclic Redundancy Check)校验位进行校验。
参考
- Wi-Fi – 维基百科,自由的百科全书 (wikipedia.org)
- IEEE 802.11 – 维基百科,自由的百科全书 (wikipedia.org)
- 无处不在的小土-802.11帧结构 (gaoyichao.com)
- 无线射频专题《协议类,IEEE 802.11/802.11b/802.11a/802.11g/802.11n/802.11ac标准简介》_物联网研究室-BBC的博客-程序员秘密 – 程序员秘密 (cxymm.net)
- 802.11 PHY层帧格式汇总 – 代码天地 (codetd.com)
- 802.11帧格式 – 代码天地 (codetd.com)
- 802.11 帧格式和分类详解 – 肉滚滚和代码 – 博客园 (cnblogs.com)
- 802.11 MAC层 – 北落不吉 – 博客园 (cnblogs.com)