802.11物理层PHY是介质访问控制层MAC与无线介质之间的接口,它传输和接收共享无线介质上的数据帧。
802.11将PHY进一步划分为两个组成元件:
一是物理层收敛程序(Physical Layer ConvergenceProcedure,简称PLCP),负责将MAC帧对映到传输介质;
另一是实际搭配介质Physical Medium Dependent,简称PMD),负责传送这些帧。
MSDU(MAC层业务数据单元。这是最原始的待发数据信息)经过封装变成MPDU(MAC层协议数据单元),MPDU传到PLCP子层变成PSDU(PLCP子层业务数据单元),PSUD经过封装变成PPDU(PLCP子层协议数据单元)。
802.11协议帧格式
802.11MPDU的帧格式
802.11 OFDM PPDU的帧格式
下来我们就逐层分析各个字段的含义:
一、MPDU(MAC层协议数据单元)
由上图我们知道802.11的MPDU共有以下几个字段:
1、Frame Control 2、Duration ID 3、Address1 4、Address2 5、Address3 6、Seqctl 7、Address4 8、FrameBody 9、FCS
先来看第一个字段Frame Control:
1. 帧控制结构(Frame Control)
1) Protocol Version: (协议版本)通常为0
2) Type: 帧类型
a)控制帧:用于竞争期间的握手通信和正向确认、结束非竞争期等;
b)管理帧:主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等;
c)数据帧:用于在竞争期和非竞争期传输数据。
3) Subtype: 进一步判断帧的子类型
4) To DS: 表明该帧是否是BSS向DS发送的帧
5) From DS: 表明该帧是否是DS向BSS发送的帧
6) More Fragment: 用于说明长帧被分段的情况,是否还有其它的帧,如果有则该值设置为1
7) Retry(重传域): 表示该分段是先前传输分段的重发帧。
8) Power Management: 表示传输帧以后,站所采用的电源管理模式
9) More Data: 表示有很多帧缓存到站中。即至少还有一个数据帧要发送给STA是设置为1。
10) Protected Frame: 表示根据WEP(Wired Equivalent Privacy)算法对帧主体进行加密。如果帧体部分包含被**套处理过的数据,则设置为1,否则设置为0
11) Order(序号域): 在长帧分段传送时,该域设置为1表示接受者应该严格按照顺序处理该帧,否则设置为0
2. Duration/ID(持续时间/标识)
表明该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算
3. Address Fields(地址域):
1) Destination Address
2) Source Address
3) BSS ID
4. Sequence Control(序列控制域): 用于过滤重复帧
1) MSDU(MAC Server Data Unit), 12位***(Sequence Number)
2) MMSDU(MAC Management Server Data Unit), 4位片段号(Fragment Number)组成
5. Frame Body(Data): 发送或接收的信息。对于不同类型的数据帧来说,这个域的格式差别较大
6. FCS(CRC): 包括32位的循环冗余校验(CRC),用于检错,注意是检错不是纠错
二、PPDU(PLCP子层协议数据单元)
2007里给出了5种PHY,也就是5种编码与调制方法,每种PHY对应的PHY帧格式都是不同的。也就是说,虽然这个wifi标准对外的接口(MAC) 是一样的,但是根据底层采用的不同PHY,底层的从帧格式到编码、调制都是不一样的。5种PHY分别是:直序扩频(DSSS)、跳频扩频(FHSS)、正交频分复用(OFDM)、高速率直序扩频(HR/DSSS)、红外(TR)。另外,还给出一个叫ERP的增强版本的PHY,改变了调制方法,增强了 DSSS和OFDM的速率。 2009里又多了一种:高吞吐(HT OFDM),就是在原来的OFDM基础上改进得来。最新的802.11ac里又多了一种:超高吞吐(VHT OFDM),还是改进OFDM得来。 两个改进的OFDM都支持MIMO,就是多天线。这玩意能提高不少速率,原理略过。
这里我们仅以OFDM的PHY为例对PPDU层的帧进行介绍
由之前的图我们知道802.11的PPDU共有以下几个字段:
1、前导码 2、Signal 3、Data
1、Preamble前导码
前导码持续了16us,它是由12个OFDM符号所组成,借以同步发送端与接收端的定时器。
前面10个符号是短训练序列,接收器会用它来锁定信号;如果使用多组天线,也可以用它来选用天线以及同步开始解码后续符号时所需要的大规模时序关系。短训练序列传输时并未使用防护间隔。在短训练序列后面紧跟着两个长训练序列。长训练序列主要用于微调timing acquisition,同时采用防护间隔来加以保护。
2、Signal字段
1)Rate(4个位)
以4个位编码的数据率。
2)Length(12个位)
所包含的MAC帧中的字节数,以12个位来加以记录。和大多数字段一样,此字段由最低位至最高位逐一被传送。Length(长度)字段会经过卷积编码以防止错误发生。
3)Reserved(1个位)与4)Parity(1个位)
位4保留供未来使用,必须设定为0.位17是前16个Signal位的even parity(偶同位)位,用来避免数据损毁。
5)Tail(6个位)
Sinal字段以6个值为0的结尾位结束以展开卷积码。因此,在定义上着6个位必须交由卷积编码处理。
3、Data字段
1)Service(16个比特位)
长度为16位的Service字段包含MAC帧的数据率通过协议单元的Data字段来传送。此字段前8位设定为0.和其他物理层一样,在传送之前,MAC帧必须经过扰频,前6位设定为0是为了启动扰频器。剩下的9位目前保留,在未来另有他用之前必须设定为0.
2)PSDU
PLCP子层业务数据单元
3)Tail(6个位)
和PLCP标头的结尾位一样,附加至MAC帧结尾的位主要是让卷积编码可以平顺结束。之所以需要6个位,是因为卷及编码的长度限制为7.
4)Pad(位数不定)
802.11a所使用的OFDM是以大小固定的位块来传送数据。Data字段之所以加上填充位,是为了使数据长度与位块的大小一致。位块的大小取决于数据所使用的调制方式与编码率。
附:802.11合法的类型与子类型组合
(注:其中有部分组合是802.11n特有的)