WIFI通信
WIFi是以IEEE 802.11(一种无线局域网标准)为标准的一种实现。随着标准的不断修订,其传输速度在不断增加。现今第六代的传输速率可达9.6Gbit/s。下表为第一代到第六代的相关信息。对每一代仅列出了比较常见的标准,另外也有一些不常见的标准。在多个厂商兼容802.11b后,802.11网络才开始大规模流行。
网络成员和结构
- 站点(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个字段构成。
802.11帧结构
Frame Control
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,表示接收端需要严格按照顺序处理该帧。
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)