本文主要是介绍初探802.11协议(0)——PCF/DCF与CSMA/CA机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上篇《初探802.11协议(0)——开篇(IEEE802.11历史与Wi-Fi速率计算)》已经简介了IEEE802.11的发版史和Wi-Fi速率如何计算。本篇介绍Wi-Fi传输的常见工作模式与机制。
1. 传统的媒介访问机制
为了避免多个无线设备同时访问共享媒介而产生碰撞,早期的802.11(802.11-2007)中指定了DCF和PCF两种媒介的访问机制。
- DCF(distributed coordination function ):分布式协调功能。
DCF: A class of coordination function where the same coordination function logic is active in every station (STA) in the basic service set (BSS) whenever the network is in operation.
DCF通过CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)机制,为异步数据传输提供分布式的基于竞争的信道访问,使得AP下的各个STA对于无线资源的使用机会是均等的; 目前大多数AP/STA都是采用这种模式,是一种强制标准。为了对实时业务提供 QoS,标准在 DCF 基础上做了许多基于优先级区分机制的改进(即HCF,混合协调功能)。
- PCF(point coordination function):点协调功能,有的地方也称之为集中协调功能。怎么翻译也不重要了,在《802.11-2016》的spec里就说要弃用了,在后面的spec版本里可能会直接移除。
《802.11-2016》:The PCF mechanism is obsolete. Consequently, this subclause might be removed in a later revision of the standard.
PCF 是一种可选标准,大多数的无线网络产品不支持 PCF。PCF开始引入无竞争服务来试着对实时业务提供QoS支持,虽然 PCF 具有面向连接的特点,更适于为交互式实时应用提供严格的参数化的 QoS 保证,但PCF不能区分业务类型和业务源,因此它不知道哪个站点有长的实时业务队列,哪个站点只是非实时业务队列,而且其实现起来效率过低且过于复杂,故在实际产品中一般不被使用
- 为了提升QoS能力,802.11e中将传统的DCF和PCF更替为EDCA和HCCA,后面在专门介绍802.11e QoS部分再来分析,作为开篇只介绍DCF。HCF 结合了DCF和PCF的一些功能特性,同时还将 DCF 和 PCF 的功能与一些增强的、特定于 QoS 的功能相结合。
2. DCF与CSMA/CA
CSMA协议引入了LBT(Listen Before Talk)机制。在LBT机制下CSMA的思想就是:“CSMA节点在每一次发送之前先监听信道是否是空闲的,如果信道不是空闲的话,那么就不发送数据,等待一会再进行尝试。只有确保是空闲的情况下,才可以发送数据,从而避免打断其他节点正在进行的传输过程"。
《CWNA®Certified Wireless Network Administrator Official Study Guide Third Edition》:
CS(Carrier Sense):载波侦听,用来检测传输媒介是否繁忙;
MA(Multiple Access):多路访问,用来确保每一个无线终端可以进行公平的媒介访问,但每次只能有一个终端传输;
CA(Collision Avoidance):冲突避免,在指定时间内只有一个无线终端可以得到媒介访问能力,希望借此避免冲突
本篇不对CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测)和CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)做详细说明,可自行搜索。
先通过如下问题来引入"DCF与CSMA/CA的存在意义"。
Q:为什么以太网用CSMA/CD,而Wi-Fi却要使用CSMA/CA呢?
A:通过对比这两种方式的异同点即可得知原因。
1.相同点:通信终端在开始传输前必须先侦听是否有其他设备在传输,如果有,则会先等其他设备传输,直到传输媒介空闲;
2.差异点:以太网的终端在传输时发生了冲突是可以检测到的,检测冲突并暂停传输;而Wi-Fi终端采用的射频媒介是半双工的,即没有同时进行传输和接收的能力,所以无法在传输时检测冲突,进而就只能CA(冲突避免)。CSMA/CA机制减少了冲突,DCF利用其多重制衡机制又做了进一步的减少。
为什么说Wi-Fi或者说Wi-Fi使用的射频媒介是半双工的?
如上图所示,在Tx Chain/Rx Chain链路和Antenna之间连接着一个RF Switch设备。这是一个高速的天线开关,用于切换当时天线是连接到发送链路,还是接收链路上。Wi-Fi设备在同一个时间只能处于一个状态下,要么是只发送,要么是只进行接收(或信道监听)。
实际上接收和信道监听本质上都是对接收过来的信号进行处理,信道监听的CCA过程和接收的preamble detection有很高的重合度,所以我们可以把两件事理解成一个功能。
2.1 CSMA/CA机制
2.1.1 IFS
SIFS/DIFS/EIFS/PIFS
- 在CSMA/CA中,发一个帧之前,都需要 “等待” 一个相应的帧间间隔,比如发送数据之前至少要等待DIFS时间,发送ACK之前需要等待SIFS时间;
- 只有在帧传输出现错误时才会用到 EIFS,但EIFS 并非固定的时间间隔;
- PISF 主要被 PCF 使用在免竞争过程,有时被误解为优先性帧间隔。在免竞争时期,有数据传输的工作站可以等待 PISF 期间过后加以传送,其优先程度高于任何竞争式传输。
2.2 DCF与CSMA/CA
上面已经说过DCF主要是依赖CSMA/CA机制,这里介绍CSMA/CA机制。
- CW:Contention window,竞争窗口是用来让节点选择随机回退计数值(backoff counter)的范围。
- Backoff:随机回退过程是指每一个节点在竞争信道时,所经历的随机退避过程。在这一过程开始时,节点首先在竞争窗口中选择一个随机数为基准的随机回退计数值(backoff counter),然后每一个slot time(时隙),节点会 “监听” 信道是否空闲,若信道空闲,那么进行一次倒数,即计数值减1,若信道忙,则不进行相应倒数。当该随机回退计数值回退到0时,节点可以发送数据。
以两个STA要发送数据为例,CSMA/CA的过程如下:
- 当STA 1与STA 2存在数据,需要在竞争信道进行发送时,其首先需要 “等待” DIFS时间,若DIFS时间内,信道保持空闲状态,那么就可以进行backoff过程;
- 若STA 1与STA 2进入backoff过程时,首先需要从竞争窗口(Contention window)选择一个随机数,
在802.11协议中,默认的初始竞争窗口为31,即随机回退计数值的范围即是[0,31]; - 在backoff过程中,每经过一个slot time,STA会 “监听” 一次信道,若信道空闲,则相应的随机回退计数器的值减1。当STA的随机倒数计数器倒数至0时,STA竞争获得信道,从而可以发送数据;
- 在AP接收到数据后,会采用CRC机制对数据进行校验,若校验通过,AP会在SIFS后,反馈ACK确认帧。
- 当STA成功发送完数据, “等待” 了SIFS的时间之后,AP会向节点反馈ACK确认帧。当STA 成功接收到ACK帧之后,这一次传输完成;
- 当这个STA传输完成后,该STA需要再次 “等待” DIFS的时间后,重新开始backoff过程;
- 重新开始backoff时,为了保证网络传输的公平性:
(1) 若STA刚刚发送完数据,那么在backoff过程开始时,需要重新从竞争窗口中选择一个随机数进行倒数;
(2) 若STA没有发送数据,那么直接从上一次的倒数结果继续倒数 。
如果两个STA选取的backoff counter冲突了,怎么办?
-> 会进行BEB(二进制指数退避),即发生一次冲突后,STA1和STA2的CW范围就会从[0,31]变化到[0,63],然后两个STA再重新在CW中选择。在802.11中,一共允许回退6次,第7次不倍增窗口,再次尝试重发,若再次失败,则丢包。(下图取自《CWNA®Certified Wireless Network Administrator Official Study Guide Fourth Edition》)
如果两个STA发送的数据冲突了,会如何?
-> 由于AP处于两个节点的信号互相干扰中,从而都无法正确解码,从而CRC校验错误。
在冲突之后,即若AP处CRC校验失败,则不会给任意节点反馈ACK数据包,故两节点在ACK timeout之后,准备进入下一次竞争。
[参考]
1.《IEEE 802.11-2016
IEEE Standard for Information technology–Telecommunications and information exchange between systems Local and metropolitan area networks–Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications》
2. 《 CWNA®Certified Wireless Network Administrator Official Study Guide Third Edition》
3. 《OReilly-802.11_Definitive Guide》802.11无线权威指南
4. https://www.zhihu.com/people/edward_xu
这篇关于初探802.11协议(0)——PCF/DCF与CSMA/CA机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!