【优质信源】计划09 — 浅谈无线局域网下的单用户MAC层接入协议(基于CSMA/CA框架) - 知乎每日精选

【优质信源】计划09 — 浅谈无线局域网下的单用户MAC层接入协议(基于CSMA/CA框架) - 知乎每日精选

知乎每日精选
序言

我们先大体总结下目前802.11协议这一块的科研现状,也就是Wi-Fi科研这一块,其实大致两种思路,1)顺着标准来,优化或者重新设计802.11的PHY或者MAC,2)开辟新战场,利用Wi-Fi技术本身做别的功能,比如说CSI感知,CTC通信,Backscatter无源传感器通信等等。目前我们看到的大部分基于802.11协议的无线局域网感觉上无疑是以上两种思路。

第一种思路其实科研做的比较多,而且时间比较久,也就是顺着802.11协议的主框架,做修改或者优化。第二种思路主要是随着现在SDR发展速率比较快,而且价格相对便宜一多,大大方便了原型验证,所以好做了很多。

本文我们主要关注在802.11网络,也就是无线局域网下的单用户MAC层接入协议。

Remark:其实我一般都偏重写标准的解读,而很少谈科研的内容。一方面是自己的科研实际上和标准的gap比较大,标准更多是专利,成本,硬件难度和稳定性,技术创新综合博弈的结果,而我做的科研实际上偏重于技术创新一方面,实际被应用基本上没什么可能,另外一方面在于,围绕802.11的协议优化实际上比较有局限性,也就是脱离了802.11协议,其不具备很强的泛化能力,不像物理层编码技术之类,可以多个无线通信协议中都可以应用。所以我大致就罗列下目前看到过的一些研究思路,做一个简单的讲解,可以当做一些启发。

单用户MAC层接入协议

我们目前的802.11场景主要分成两种传输场景:

  • 传统的单用户传输。
  • 基于MU-MIMO或者OFDMA的多用户传输,科研里面还多了一个SIC。

概括而言,多用户传输相对于单用户传输实际上是多了一个user-selection的过程,在通信问题里面往往呈现是一个最优化问题。而单用户传输关注点的在于如何最快的竞争到信道,并且避免冲突。因为所有用户起码会满足一种公平性,所以大家都有抢占的信道发送数据的可能,所以关注整个竞争过程更多一些,而少关注一些节点间的搭配传输和参数优化。

单用户MAC最典型的代表-CSMA/CA

以上图为例,单用户传输的场景,简单而言就是STA1和STA2如何竞争,然后避免两个节点同时传输所造成的冲突。这种场景的最典型代表就是CSMA协议(Carrier Sense Multiple Access)

CSMA:“节点在每一次发送之前先监听信道是否是空闲的,如果信道不是空闲的话,那么就不发送数据,等待一会再进行尝试。只有确保是空闲的情况下,才可以发送数据,从而避免打断其他节点正在进行的传输过程"。

其中CSMA还分成三种机制,1-persistentes CSMA0-persistentes CSMAp-persistentes CSMA。我们这里展开说明下p-persistentes CSMA:

p-persistentes CSMA:“节点需要持续监听信道,一旦发现信道空闲后,节点以p的概率立刻发送数据,以1-p的概率不发送数据。若节点该时刻不发送数据,那么等待一段时间后,再次进行监听,并以p概率再次发送”。

CSMA/CA的思路实际上是延续了p-persistentes CSMA,其用back-off过程代替了p概率。

back-off:“节点首先需要从一个范围([0,CW])中选择一个随机数,该随机数称为back-off counter。在发送数据之前,节点需要逐个时隙(Slot)监听信道,如果该信道空闲,那么back-off counter会减1。如果该信道忙,则意味着可能有别的节点正在传输,从而要接收数据,当接收结束后,节点继续进行逐个时隙的监听。当节点的back-off counter逐次递减直到0之后,其才可以进行数据传输)

所以back-off实际上是一种p-persistentes CSMA的实现,而其在时域slot上执行的这种back-off的机制,从而让我们更多的称之为“时域竞争”

Remark:这里简化说明了下CSMA/CA的过程,细节点的可以参考-802.11协议精读2:DCF与CSMA/CA

无线局域网下的单用户MAC的优化

我们主要讨论无线局域网下的单用户MAC的优化,这里其实也可以分成两个门类:

  • 基于CSMA/CA机制做优化
  • 更替“时域竞争”的竞争模式

前者实际上还是在802.11的框架内,也就是不动CSMA/CA的机制,那么能够优化的参数实际上就是包含了CW值,Back-off counter值等一系列参数,同时也包含了slot之类的时间参数,这一系列的优化足以有很多研究内容。

后者实际上是从CSMA/CA竞争的本质,也就是时域竞争入手,希望能够引入一些更有效率的竞争模式,通常后者的研究需要搭配上更新的PHY技术,所以跨层设计居多。

本文我们主要还是探讨前者,也就是还在CSMA/CA框架内做优化。

基于CSMA/CA的单用户MAC的优化(基于CSMA/CA框架)

这里的目标实际上是做CSMA/CA的优化,那么维度实际上有很多。目的只有一个,就是提升吞吐量。那么维度很多,其实就是影响吞吐量的参数有很多。所以略微要对802.11的吞吐量模型有所了解。典型的802.11吞吐量模型就是bianchi模型(细节参考:802.11协议精读13:协议理论性能(Bianchi模型)),最后的吞吐量式子可以写成下面这样:

这里吞吐量(归一化吞吐量)被定义为传输真实数据(Data)的时间占总传输时间(Overhead + Data)的比例(在一个标准的slot内),具体写成参数的式子如下:

其中Ptr和Ps两个概率如下,里面的 是发送概率:

其他还有一些是时间参数 ,Ts,TC,E[P]之类 , 是协议固定值,E[p]实际上是平均的数据包长度,Ts和Tc如下。

我们首先将吞吐量的式子放在上面,我们这里的优化实际上是偏重于纯MAC层的设计优化,所以优化的思路一般都是通过设计机制,而不是直接求数学优化,我们大致举一举例子:

1. 直接优化时隙,上面的式子中我们看到有 (也就是slot时隙),SIFS,DIFS之类的时隙参数,直接优化这一系列参数就可以缩短协议的时隙开销,直观而言,就是优化了back-off的单位时隙。这个研究的典型代表就是wifi-nano[1],其是基于802.11a的STF结构进行了优化,把时间从slot的几us,缩减到了1us内。

2. 直接优化控制帧,上面式子中ACK就是一个典型的控制帧,其余在802.11协议面还有RTS/CTS这样类型的控制帧,所以控制帧时间优化同时能够提升效率,那么典型的研究就是802.11ec[2],其实际上是一个PN序列代替了帧结构,从而物理层上相关到了该PN序列就识别到哪种控制帧,PN序列相比帧结构更短,所以能够优化时间,在RTS/CTS相关的场景中更有意义。

上面两个是直接进行的参数优化,我们关注吞吐量公式的分母和分子,分子实际上是真实数据传输的时间,分母是三部分,空闲slot开销,传输整个PPDU时间,也就是物理层整个帧,以及冲突所造成的时间。从这一块而言,可以下述优化:

3. 增大payload数据传输的比重,实际上就是增加单次竞争传输的数据量,比较简单粗暴。这一快实际上协议已经做了很多内容,包含TXOP发送机制以及帧聚合[3]。

4. 优化竞争窗口CW以及回退次数m等参数(基于活跃节点数目优化参数),我们在上面可以看到分母影响的主要是ptr和ps两个参数,这两个参数展开实际上都是关联到 的。 的具体展开如下:

实际上关联到参数包含了活跃节点数目n竞争窗口CW回退次数m。在802.11标准中,CW值和回退次数限制m,都是标准给定的,如果节点比较多的情况下,那么造成冲突后,会通过BEB算法,增加CW竞争窗口降低冲突概率后,重新进行发送。如果节点数较少的情况下,即使当前信道空闲,传输不会发生冲突,但是还需要等待多个slot倒数,直到back-off counter到0才可以发送,所以存在浪费。

所以思路就变成了 - 如何感知当前节点数目n,然后进行CW优化

4.1 可以通过wifi探针,获知当前周边的节点数目,从而带入优化。

上述的方法由于很多设备目前是启用了随机MAC,所以简单的WiFi探针会失效,所以更进一步的方法就是:

4.2 基于CSI这种物理指纹做wifi探针,识别周边的节点数目,从而优化MAC层参数。

实际情况下,随便可以得知周边的节点数目,但是不一定很多节点是有内容要发送的,有很多节点是“非活跃”的,也就是网络是工作在非饱和状态下,最好的情况是根据当前“活跃”的节点数目做优化,那么问题就转变为,如何得知活跃的节点数目:

4.3 通过一些PHY/MAC参数反推(比如基于空闲时隙数目),比如idle-sense[4],其是通过监听在竞争过程中,空闲的idle时隙数目,也就是仅仅回退,没有发送的slot间隙数目,来推断当前的网络环境,从而进一步对CW之类的参数优化。这里是举个例子,还要比如用卡尔曼滤波的来估计活跃节点数目的设计也有,目的都是相同的。

4.4 AP直接获取节点缓存情况,这个是802.11ax中引入的特性了,实际上也是从移动通信里面来的。由于802.11ax中引入了BSRP过程,AP可以获取节点的缓存情况,从而可以对全局参数进行一个优化。

5. 优化竞争窗口CW以及回退次数m等参数(基于修改CW和BEB机制优化)。5和4实际上很接近,但是方法的偏重点不同,802.11的当前CW参数调节实际上是基于BEB算法的。

BEB机制指的是:“如果发送者没有成功接收到ACK反馈,那么其会认为当前传输造成了冲突,从而要增大CW值(即CW*2),从而减少冲突概率。只有成功传输或者丢包时,才会将CW重置回CWmin”。

那么实际上优化思路是从修改CW值的选择,也就是改进BEB机制,或者用新的冲突解决方法,或者直接控制CW值的选择方法。具体如下:

5.1 改进BEB的机制。实际上BEB的机制是最简化的机制,甚至比TCP的AIMD还直接。标准工的CW增加是按照2倍递增,然后减少策略是成功传输后重置。因此,很多研究借鉴TCP的AIMD,加性增,乘性减的思路来优化这一块,比如MILD,MIMD,MIMLD等等,这一系列的研究都是很早期的了,所以就不多加探讨了。

5.2 解析冲突。传统802.11中,冲突发生以后是调节CW值,然后重传,直到传输成功。还有一种新的方式就是在传输的时候,给每一个节点对应的帧做一个PN序列标记,让AP可以识别到哪些人冲突了。然后AP就以轮询的方式,代替节点的主动竞争,逐个轮询冲突节点,把冲突解析掉。这个方式的代表就是Semi-backoff[5]。

5.3 Backoff-counter保持上一轮数值,实现无冲突。这种方法实际上有一些凑运气,但是如果成功的话,并且参数合理的话,确实能够实现一个无冲突的传输。在802.11中,冲突的本质实际上是两个及两个以上节点选择了相同的back-off counter,所以如果大家选择的back-off都不一样,那么只要保持这个状态,重复传输,那么就意味着不会有冲突发生了。一个典型的设计就是CSMA/ECA[6]。不过这个实际上有一些碰运气,不一定网络每次收敛的参数一样,很有可能出现虽然无冲突,但是back-off的时间周期很长。

上述实际上是优化BEB和CW选择机制。

6. 优化传输速率从而优化E[P]时间。这点实际上是和5.1类似的,当冲突发生后,不仅仅会影响CW参数的选择,还会影响传输速率的适配。这一块由于标准是将权限下放给厂家,所以不好明确说对什么进行了优化。主要还是两种思路:

6.1 类似5.1,采用类似优化AIMD的机制,优化速率调节机制。跟5.1一样实际上是一个速率适配,所以还是一个如何调节的问题。

6.2 基于CSI调节速率。其实802.11这一块比移动通信要简单点,移动通信是要求速率和功率两个都优化,顺序是先调速率,然后TPC控制功率。而802.11直接控制速率即可。在802.11ac协议引入NDP过程测量CSI以后,协议设计了一种Fast link adaption,实际上就是移动通信中,将CSI和CQI挂钩,然后CQI直接对应到MCS的思路。

7 识别冲突和SNR差导致的传输错误。在标准的802.11中,传输错误是通过ACK Timeout造成的。而造成错误的原因一般而言包含了冲突,和传输错误这两种。按照目前的协议而言,节点是无法识别当前的错误到底是冲突产生的,还是错误产生的,所以在发生错误以后,CW窗口和物理层传输速率,两者都要进行调整。那么如何识别冲突和物理层错误,有一篇文章提出了一种post-CCA[7]机制,由于无线传输时,不同节点的数据包大小是不同的。所以如果冲突节点在传输完当下这个冲突的数据包后,其如果还检测信道是CCA,那么就意味着是冲突发生了,如果传输完成后,信道会出现idle,但是还是ACK Timeout,那么就是传输错误造成的。这种在传输结束后继续检测CCA的方式就是post-CCA了。

8. 控制CW实现吞吐量的分配最优化。根据一开始bianchi的吞吐量式子, 当节点数n,时隙的参数,数据包大小,回退次数m之类全部固定的情况下,实际上吞吐量是直接和CW值关联的。那么意味着控制CW,就可以控制吞吐量。这里我们从全局的角度换到每一个节点的角度,也就是通过控制每一个节点的CW值选取,可以控制其单个的吞吐量。进而可以做吞吐量优化,比如按比例分配,固定分配一部分,然后剩余的按照某种规则分配(其实是让固定流量的QoS得以保障)等等,这也包含诸多研究。

9. 基于机器学习修改CW之类的配置参数,这里实际上是目前机器学习带动起来的一个坑,本文目前还不怎么打算扩展,我目前做的一些研究也比较偏重于这个方向了。其实802.11的环境配机器学习还是挺适合的,因为很多东西其实都是未知,且机制上不可知的,比如没有通信的专用控制信道可以定期反馈信息。所以本身优化就是有些盲调的感觉,比较黑盒。所以配上适合解决黑盒问题的机器学习方法也是可以的。

结语

本文给出了一些关于基于无线局域网,也就是802.11协议框架下的一些科研做过的优化思路,可以做一个简单参考。另外还存在的一种思路就是更替掉802.11当下的CSMA/CA机制,也就是更替掉“时域竞争”,引入更多的资源平面做竞争,从而提升MAC层的效率,之后可以再进行补充探讨。



来源:知乎 www.zhihu.com
作者:知乎用户(登录查看详情)

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 点击下载

本文章由 flowerss 抓取自RSS,版权归源站点所有。

查看原文:【优质信源】计划09 — 浅谈无线局域网下的单用户MAC层接入协议(基于CSMA/CA框架) - 知乎每日精选

Report Page