1. 无线媒介控制
同以太网一样,802.11使用载波监听多路访问(CSMA)机制来控制对传输媒介的访问;但802.11使用冲突避免(CSMA/CA),而以太网使用冲突检测(CSMA/CD)。
2. 隐藏节点
为了避免隐藏节点引起的冲突,采用RTS/CTS帧来清空传送区域。 具体过程如下:
如果节点1有帧要传,先发出一个RTS帧(两个目的:预约无线链路;要求接收到这一帧的其它工作站保持沉默),收到RTS后,接收端发出CTS帧(CTS也会让附近工作站沉默)应答。收到CTS后,节点1可开始传输数据帧了。
由于开启RTS/CTS功能,会消耗一定带宽,所以可以调整RTS阀值,只有帧大于该值时才进行RTS/CTS交换过程,小于则直接传送帧。(hostapd.conf中的 rts_threshold 指定该值,默认2347;也可用 “iwconfig wlan0 rts ” 设置)
3. 协调功能
协调功能分为3种,如下:
- DCF(分布式协调功能)
传输数据前先检查链路是否空闲,不空闲则STA会随机为每个帧待定一个退避时间。可用RTS/CTS清空技术进一步减少冲突的发生。
- PCF(点协调功能)
提供无竞争服务,点协调都位于AP,故只有基础结构性BSS中才可使用PCF。PCF允许STA经过一段较短时间后即可传送帧。
- HCF(混合协调功能)
4. 载波监听
两各载波监听方式:
- 物理载波监听:由物理层提供,昂贵;
- 虚拟载波监听:由网络分配矢量(NAV)提供,帧中有一个Duration字段,用来预约一段媒介使用时间(微秒)。其它STA会将NAV的值倒数至0,在不为0前,媒介忙碌。
NAV由RTS和CTS帧载送。
利用NAV进行虚拟载波监听过程如下:
其中发送端发送的RTS中有Duration字段[NAV(RTS)],表示要占用链路的时间,在该时间内其它STA只能等待,由于可能有的STA不能收到该RTS,所以接收端发出的CTS中也有个时间值[NAV(CTS)],当时间到达时(ACK发送完成),进行一段退避时间(DIFS:分布式帧间间隔)后,重新进入竞争窗口。
注:处于相同信道上的STA(即使在不同网络中)均会收到NAV,因而会适当地延迟对媒介的访问。
5. 帧间间隔
帧间间隔是固定的,与传输率无关,但不同物理层可以指定不同的帧间间隔。802.11有四种帧间间隔,如下:
- 短帧间间隔(SIFS) —— 用于高优先级的传输,如RTS/CTS/ACK。
- PCF帧间间隔(PIFS) —— 用于无竞争操作中,其优先级高于任何竞争式传输。
- DCF帧间间隔(DIFS) —— 竞争服务中最短的媒介闲置时间
- 扩展帧间间隔(EIFS) —— 帧传输出错时使用。
6. 利用DCF进行基于竞争的访问
- DCF不用中心控制节点,所以可用于IBSS网络和基础结构型网络;
- 传送数据前,工作站必须检查媒介状态,如果忙碌则工作站必须延迟并利用指数退避算法来避免冲突;
- DCF传输中的规则:
1. 如果媒介闲置时间长于DIFS,则可立即传输。如果之前的帧接收无误,则媒介必须至少空出一段DIFS;如果出错,则至少空出EIFS。
2. 如果忙碌,则必须等待到信道闲置,工作站必须等待媒介闲置一段DIFS,同时准备指数退避过程。 - 工作站有两个重试计数器,短/长帧计数器 (长度小于RTS阀值的帧为短帧),同时每个帧片段有个最长的生存时间,一旦超过该时间,该帧被丢弃,其它帧片段也不会重试。
- DCF退避算法
DIFS后为竞争窗口(退避窗口),将其进一步分割为时隙。如DSSS中,竞争窗口大小通常为2的指数倍减1(如31,63,127,…),每当重试计数器累计,竞争窗口移到下一个值(DSSS物理层最多为1023),如果到达重试计数器上限,则丢弃该帧。
7. 帧的分段与重组
通过设置分段阀值来确定好长的帧需要分段发送。每个帧片段有相同帧序号和一个递增的帧片段编号。还有帧控制信息用来指示是否还有其它帧片段待发。其过程如下:
8. 帧格式
一般帧格式如下:
- Frame Control (帧控制字段)
1. protocol (协议版本)
目前只有1个版本(0)
2. Type/Subtype
指定帧类型,其中b7位(QoS subfield)为1,则该帧中有QoS Control字段,如下:
3. To DS/From DS 字段
指定帧的目的地是否为分布式系统(DS),如下:
aaa | To DS=0 | To DS=1 |
---|---|---|
From DS=0 | 无DS(所有管理、控制帧及IBSS中的数据帧) | 基础型网络中STA发出的帧(STA -> AP) |
From DS=1 | 基础型网络中STA收到的帧(AP -> STA) | 无线桥接器上的帧(DS之间) |
4. More Fragments
是否之后还有帧片段,除最后一个帧片段,其它都为1。
5. Retry位
重传帧该位为1
6. Power Management
为1,表示STA传送完该帧后将进行省电模式(PS)(AP不能进行省电模式,所以都为0)
7. More Data
AP发出的帧中该位若为1,表示缓存中有要发到处于PS模式的STA的帧。
8. Protected Frame
设为1,表示帧受链路层安全协议保护
9. Order位
设为1,对于no-QoS数据帧,表示所有帧片段严格依次传送
对于QoS数据帧和管理帧设为1,且带有HT_GF或者HT_MF,表示该帧包含HT控制字段。
- Duration/ID 字段
该字段有三种形式,如下:
- 设置NAV值(微秒),工作站必须监视任何帧头并据此更新NAV;(0 - 32767)
- 无竞争周期(CFP)中,该值被解读为NAV,它让没收到beacon的所有工作站都得以公告无竞争周期;(32768)
- 用于PS-Poll帧,PS中的工作站会定期醒来,此时会发送一个PS-Poss,其中有关联标识符(AID),以表示其所属的BSS。(1 - 2007)
Address字段
MAC地址格式- 目的地地址(DA)
- 来源地址(SA)
- 接收端地址(RA)
- 发送端地址(TA)
Address1:接收端;Address2:发送端;Address3:被接收端拿过滤地址,如下:
功能 | ToDs | FromDS | Addr1 | Addr2 | Addr3 | Addr4 |
---|---|---|---|---|---|---|
IBSS | 0 | 0 | DA(AP) | SA(AP) | BSSID | 未使用 |
To AP(基础型) | 1 | 0 | BSSID(AP) | SA(STA) | DA(Server) | 未使用 |
From AP(基础型) | 0 | 1 | DA(STA) | BSSID(AP) | SA(Server) | 未使用 |
WDS(桥接器) | 1 | 1 | RA | TA | DA | SA |
To AP:STA(SA/TA) -> AP(RA) -> DS -> Server(www.xxxx.com)(DA)
From AP:Server(www.xxxx.com)(SA) -> DS -> AP(TA) -> STA(DA/RA)
WDS : STA <-> AP <-> DS <-> Server(www.xxxx.com)(DA)
在基础型网络中,BSSID即为AP的MAC地址;而独立型(ad hoc)网络中则产生一个随机的BSSID,并将Univeral/Local位(Mac中第46位,见:MAC地址格式)设为1,以防止与官方指定的MAC地址冲突。
- 顺序控制字段(Sequence Control)
其由4位片段编号和12位顺序编号组成,如下:
控制帧未使用顺序编号,所以无顺序控制字段。
所有帧片段有相同的顺序编号,重传帧的顺序编号不改变;片段编号从0开始,依序加1。
- QoS Control字段
有该字段,则Type/SubType中的b7必为1。QoS控制字段如下: