802.11--802.11协议
一、概述&背景
随着无线协议的发展,无线功能变得更加强大,内容越来越多,学习的成本越来越高,为了更好的理解802.11协议,选择从最初更加简单的协议开始学习,循序渐进的方式进行了解、学习,最初协议定义的内容或者技术可能有些已经过时,有些技术可能已经废弃,本系列的文章仅仅是做一个学习记录,以便更好地理解802.11。
二、专业术语
本小节对一些专业术语进行一个简要的说明,如下:
1. DCF:Distributed Coordination Function;
2. PCF:Point Coordination Function;
3. CSMA/CA:Carrier sense multiple access with collision avoidance;
4. PC:point coordinator;
5. PCF:Contention-Free Period;
6. CF:Contention Period;
7. FHSS:Frequency-Hopping spread spectrum;
8. DSSS:Direct sequence spread spectrum;
9. GFSK:Gaussian frequency shift keying;
10. SFD:The Start Frame Delimiter;
11. PLW:The PSDU length word;
12. PSF:PLCP Signaling field;
13. HEC:Header Error Check;
三、MAC层
802.11的mac曾定义了两种信道接入方式,分别称为DCF和PCF,他们的关系如下图所示:

1. DCF
DCF模式以CSMA/CA机制被我们熟知,作为一个基本的接入机制,802.11规定所有的节点均需要实现、支持DCF,包括独立式基本服务组合(independent BSS,简称 IBSS)和基础型基本服务组合(infrastructure BSS)。
DCF模式下,如果一个节点需要发送数据,首先需要检测当前信道是否有其他的节点正在发送数据,即需要判断信道是否忙碌,信道空闲的情况下,就可以进行数据发送,否则,这个节点需要等到信道空闲才能发送。
多用户接入的情况下,为了减少冲突的可能行,DCF通过CSMA/CA机制来规定如何进行信道竞争,比如:
1) 载波监听:物理载波监听和虚拟载波监听;
2) 为了防止在信道空闲时所有的节点同时发送数据,增加了随机数退避机制;
3) 规定单播的数据报文,接收节点需要立即回复ack表明自己已经正确收到数据,如果发送节点未收到ack,需要触发重传机制;
更加详细的内容请参考《802.11–CSMA/CA机制简述》。
2. PCF
PCF在DCF之上,他们可以同时使用(实际微观上是交替使用),是一个可选的信道接入方式。PCF的核心思想:
1) 采用协调的方式(无竞争)接入信道,该模式下的各节点使用信道是协调控制器(PC)分配的;
2) 协调控制器可以是一个专用电脑,也可以是AP自己,协调控制器依次轮询与之连接的节点,询问是否有数据需要传输,节点自己无法主动发送数据;
3) PC通过虚拟载波监听(NAV)的机制进行信道接入分配,NAV在Beacon帧中进行设置,并用CF-END帧来终止;
这里特别提一下PCF模式下的NAV,和DCF中的不一样:
1) DCF中的RTS/CTS中,NAV是通过倒数到0结束的;
2) PCF中的duration(NAV)仅表示最大时间,可以重复设置,实际释放是CF-END帧,只有CF-END帧的duration才会被设置为0;
如果多个使用PCF模式的AP在相同环境下使用,需要更加复杂的额外控制,来实现重叠信道接入控制,这使得在复杂的环境下,控制信道接入将非常复杂。
四、物理层(PHY)
802.11定义两种类型的物理层,分别是FHSS和DSSS,他们在运行机制上是完全不同的,所以采用这两种技术的设备是不能相互兼容的。
1. FHSS
工作频道和基本原理:FHSS工作在2.4G频段,以某种随机样式在频率问不断跳换,每个子频道只作瞬间的传输。为了避免两个发送端同时采用同一个子频段而造成相互干扰,每个在802.11网络上进行的会话都可能采用了不同的跳频模式。
信道划分:FHSS将频道划分成75个1MHz的子频道,接受方和发送方协商同一个调频的模式,即相同的跳频序列,数据则按照这个序列在各个子频道上进行传送。协议规定不同的区域使用的信道也不相同,如下所示:

编码调制:FHSS采用高斯频移键控(GFSK)编码,将数据编码成载波中一系列的频率变动,即用不同的频率来表示不同的符号,比如2KHz表示0,3KHz表示1。FHSS共支持两种GFSK:2级GFSK和4级GFSK,2GFSK只用两个频率来表示0和1,而4GFSK则用4个频率来表示00、01、10、11,如下所示:

数据速率:2GFSK能够带来1Mbps的速率,而4GFSK则能实现2Mbps的速率。(Note:协议文档上说明FHSS可以支持1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5共8个速率,但网络上的文章普遍认为只有1,2两个速率)
PPDU帧结构:由3部分组成,包括PLCP Preamble、PLCP Header、PSDU,如下图示:

1) PLCP Preamble:包括两部分,主要是为了让phy电路稳定调解的状态–时钟同步与帧同步:
a) SYNC field:长80 bit,0-1交替模型,以0开始,以1结束,phy子层可以通过这个序列来判断是否有潜在信号需要接收,同时也进行频偏校正和时钟同步;
b) SFD:长16 bit,用于进行帧同步,以便phy可以找到帧开始的地方,序列是固定的:0000 1100 1011 1101
2) PLCP Header:
a) PLW:长12 bit,用于表示PSDU的长度,以便接收方可以找到帧的尾部,该字段的范围为1~4095;
b) PSF:长4 bit,实际只使用bit1~bit3,用于表示PSDU使用的发送速率,如下图所示:

c) HEC:长16 bit,用于校验PLCP Header,如果PLCP Header出现错误,后边接收的PSDU可能就完全是错误的;
PHY特性参数:包括SlotTime、SIFSTime等参数,如下所示:

2. DSSS
工作频道和基本原理:DSSS工作在2.4G频段,通过精确地控制将RF能量分散至某个宽频带,然后利用这个较宽的频段信号传输;
信道划分:DSSS在2.4GHz上划分14个22MHz的信道(channel),相邻的信道互相重叠,在这14个信道中,只有3个频段是相互不重叠的(1,6,11),每个地区使用的信道也是不同的,如下所示:

Note:FCC:US,IC:Canada,ETSI:Europe,MKK:Japan;
编码调制:DSSS使用两种调试方式:差分二进制相移键控(DBPSK)、差分正交相移键控(DQPSK),这两种都是通过DPSK(差分相移键控):利用调制信号前后码元之间载波相对相位的变化来传递信息,而不看绝对相位,所以不需要传送参考相位.
1) DBPSK:只要相位发生180°变化,就表示1,如果相位无变化则表示0,如下所示:

2) DQPSK:可以看作是GBPSK的加强版,能区分识别的相位更小,所以可以编码更多的信息,如下所示:

数据速率:使用DBPSK编码调制可以得到1Mbps的速率,而DQPSK则可以实现2Mbps的速率;
Note:就算使用2Mbps的速率,PLCP Preamble和PLCP Header也是使用1Mbps的速率编码发送的。
PPDU帧结构:由3部分组成,包括PLCP Preamble、PLCP Header、MPDU,如下图示:

1) PLCP Preamble:长144 bit,包括两部分,主要是为了让phy电路稳定调解的状态–时钟同步与帧同步:
a) SYNC:长128 bit,每个bit值均为1,与FHSS不同的是,sync发送前会经过扰频处理;
b) SFD:长16 bit,用于进行帧同步,以便phy可以找到帧开始的地方,16进制值:F3A0,序列为:1111 0011 1010 0000;
2) PLCP Header:长48 bit,由4部分组成:
a) SIGNAL:长8 bit,用于表示MPDU使用的发送速率,只使用了两个:0x0A表示1 Mbit/s DBPSK,0x14表示2 Mbit/s DQPSK;
b) SERVICE:长8 bit,这个字段并为在当前协议使用,处于保留状态,0x00表示符合IEEE 802.11标准;
c) LENGTH:长16 bit,无符号整型,用于表示MPDU发送所需要的时间us,使用时间单位来表示MPDU有多长;(虽然在TXVECTOR中长度是以byte为单位,但会根据发送速率转换为时间填充到PLCP LENGTH field)
d) CRC:长16 bit,用于校验PLCP Header;
信道评估CS/CCA:DSSS的信道评估支持3种模式:
1) CCA Mode 1:仅能量检测,检测到的能量超过阈值,就认为信道忙;
2) CCA Mode 2:仅载波监听,检测到DSSS信号就认为信道忙,而不管信号强度高低;
3) CCA Mode 3:能量检测和载波监听相结合,两者需要同时满足才认为信道忙;
PHY特性参数:SlotTime、SIFSTime等参数如下所示:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
