Wi-Fi 6(802.11ax)解析19-22:再论802.11ax中的节能机制、TXOP时间设置和动态分片技术、Preamble Puncturing、SRP空间复用和Adaptive-CCA

序言

由于802.11ax提供了更高的传输速率,其实际功耗也会相应提高。为了节省功耗,在802.11ax协议中,引入了TWT机制,从整体上进行了一次节能优化。除了TWT以外,802.11ax中还引入了一些额外的节能机制,而且也都有明显的节能优势,本文就针对802.11ax中其他的节能机制做一个介绍。

本文参考自:

802.11ax中的其他节能机制

802.11ax协议对于功耗这一面是很关注的,除了TWT以外,还包含了一些其他的特殊设计,用以节能,并延长终端的电池寿命。这些在IoT场景中都是非常重要的。

  • 选择性的接收数据帧:在传统的802.11中,节点需要接收所有的数据帧,即使该数据帧不是自己的,那么也需要接收完成后,检查MAC地址(即BSSID),判断之后才可以丢包。接收无用的数据帧也是要耗费能量的,所以在802.11ax中,节点可以在数据帧的物理层头部就判断,该帧是不是要进行接收的,如果不是需要接收的,那么就可以停止接收,从而节约能量。

在802.11ax协议中,这一点的实现是基于新的物理层头部的:

如上图所示,为一个802.11ax的帧结构,我们红色标出的位置HE-SIG-A是其物理层头部的一部分。在节点接收过程中,节点需要首先接收物理层头部,并完成解调,获取了相应的信息后,才可以进行数据部分的解调。在物理层头部HE-SIG-A字段中,有两个字段我们需要关注:

Uplink/downlink字段(即UL/DL):终端可以通过物理层头部的UL/DL字段知道这个帧是由AP发送给节点的,还是由别的节点发送给AP的。由于当前的无线网络基本都是工作在基础架构模式,或者扩展服务集模式,总之该模式都是有中心节点AP的,任何的流量转发都需要经过AP,节点和节点直接无法直接交换数据。这种情况下,节点要不是向AP发送,要不是接收AP的数据帧。所以当一个节点通过HE-SIG-A中的UL/DL字段判断该数据帧是其他节点发送的话(即UL状态),那么其就不需要接收,反之如果是DL状态的话,那么就表示是AP发送的下行帧,所以需要接收。

Remark:由于下行数据帧有可能是广播或者组播,也有可能是单播,所以无论下行数据帧是不是自己的,节点都需要接收。节点只有在识别到是其他上行流量时,才会停止接收。

BSS Color字段:在多AP的场景下,节点仅仅会接收感兴趣的AP(比如本地关联的AP)信息,如果非感兴趣的下行信息,其是可以不接收,从而节能的。BSS Color字段也是在物理层头部HE-SIG-A中(如上图所示)。在802.11ax中,不同的AP可以通过BSS Color字段来进行识别,每一个AP都有预设的BSS Color,节点也知道不同AP对应的BSS Color。节点如果识别到非感兴趣的帧,那么会停止接收帧,并返回睡眠模式。

  • 发送功率限制:在OFDMA接入模式中,AP会通过发送Trigger帧通知不同节点,其上行传输所用的功率和MCS。一方面是为了优化接收信号的性能,即为了执行OFDMA,需要不同节点的信号到AP处近似相等,否则会出现远近效应。另外一方面,可以优化能耗,让部分节点不需要满功率发送,从而节能。

如上图所示,在Trigger帧中的User Info Field中,UL MCS指示了节点发送时候的速率,已经UL Target RSSI指示了AP端期望接收的功率,节点根据该位计算出合适自己的发送功率。由于这种功率调节机制,节点不会一直以满功率进行传输,从而进行节能。

  • OMI模式(Operating mode indication):我们之前介绍过OMI模式,该模式节点和AP之间会协定传输参数,以及是否采用OFDMA形式进行传输。OMI还分成“Receive operating mode”(ROM),“Transmit operating mode”(TOM)。

上图给出了OMI模式中可以控制的参数。通过OMI可以控制数据传输时的信道带宽,空间流数目,工作模式,OMI可以限定工作模式,对于IoT场景而言,节点可以用OMI来限定发送和接收数据时的带宽以及空间流的数目,从而实现节能的目的。

  • 20MHz-only工作模式:支持该模式的设备只能够以20MHz的方式,接入2.4GHz或者5GHz频段的AP,具体时接入主信道(即Primary Channel)。限定节点的工作带宽,可以减少大带宽信号所使用的功率,从而实现节能。

如上图所示,我们认为这里有4个20MHz的信道,对于接入者而言,只有1个主信道(即Primary Channel)是信道3,然后还有3个从信道(secondary Channel)。当节点启用20MHz-only时,其只会在Primary 20MHz信道上工作,该工作可以是采用OFDM技术,也可以使用OFDMA技术,即占据部分的子载波。在Secondary Channel上,节点不会进行工作。

我们前面已经介绍过了UL/DL-OFDMA的接入机制。下行接入是AP分配的,上行接入过程包含两种:(1) 允许竞争的UORA; (2) 无竞争,完全是由AP分配的模式。

无论在上行还是下行的OFDMA接入机制中,我们都可以简单概述成:先发送一个TF帧,AP会在这个TF帧中指定用户所占据的RU,或者指定特定的RU让用户做竞争接入。

该TF帧会启用TXOP机制,换言之,它会设置信道在一定时间内为NAV状态,从而让AP获得更高等级的调度权。然而,一个基本问题就引发了,这个TXOP时间是怎么设置的,有没有什么限定?因此,本文简单讨论了这个一个问题,以及该问题所需要引入的新技术,动态分片技术。

本文的内容是早前和群里面朋友讨论时候发现的,所以有部分内容还没有彻底研究清楚,目前仅仅是把理解到的内容做一个总结。如果有错误的地方,还请见谅。

UL/DL-OFDMA接入过程

我们首先回顾下在802.11ax中的UL-OFDMA过程,ax中的接入过程最简化可以为三个帧,TF,UP-OFDMA PPDU,MU-BlockACK,如下图所示:

在首先发送的Trigger帧中,会开启一个TXOP时间,该时间内,所有的节点都被强制设置为NAV,即虚拟载波监听状态,无法主动的竞争信道。Trigger帧是一个触发传输的帧,其包含了节点上行传输所需要的设置信息,包含了MCS和传输功率控制,如下图所示:

其中的User ID对应用户的AID,对应AID的用户会在该资源块RU上进行对应的上行传输,可以通过AID=STA来指定特定节点,也可通过AID=RA(具体可以是0,也可以是2045)来指定该RU用于随机接入。

每一个RU才还被指定了MCS以及其对应的数据流数目,即SS Allocation,以及MCS,这是802.11协议中首次引入的机制,AP可以控制节点的发送速率。

UL/DL-OFDMA的TXOP时间设置

在802.11协议中,TXOP机制是首次在802.11e中被引入,其允许“一次竞争,多次传输”。即在节点竞争胜利后,可以持续占用信道一段时间。标准的TXOP时间是和数据包的业务优先级AC有关的,并在802.11e中是给出了默认值的,下图我们能看到在dd-wrt下面初始给出的就是默认值(不同协议版本的TXOP时间设置还不同):

在802.11后期的发展中,TXOP成为一种机制。在一些其他用处下,比如802.11ax中的OFDMA接入过程,其TXOP的时间不是按照上图的默认机制,而是和传输数据包的大小有关。

参考:Draft 4.3 - 9.2.5.2 Setting for single and multiple protection under enhanced distributed channel access (EDCA)

我们可以看到协议上的描述,该TXOP时间(也就是Duration时间)被设置为TF本身的时间(MU-RTS本身就是一个TF帧)加上CTS反馈,对应传输的PPDU时间以及对应的ACK。

这里我们关注,该TXOP时间的核心设置为一次对应传输的PPDU时间(即HE_TB_PPDU)。

  • 下行的情况我们好理解,由于传输方是AP,所有AP知道待传输的数据包大小,并且所有的RU传输速率都是已经设定好的,所以该PPDU传输时间是一个固定值,可以设置。
  • 上行情况就比较难理解一些了,因为在传统的802.11中,AP是无法知道节点上行数据包的对应情况的。传统的802.11中,AP不仅预知节点的数据包情况(比如包大小之类),同时期物理层传输参数也是无法预知的(比如传输的速率)。

那么在802.11ax中,需要引入新的机制,已知一些信息才可以确定性的设置对应传输的TXOP时间。所以协议中有两个设置:

  1. 在OFDMA传输模式时,节点传输的速率实际上是AP指定的。如前面我们介绍的一样,AP初始发送的Trigger帧中就已经指定了各个RU对应的MCS和NSS,所以传输速率是确定确定的。
  2. 在802.11ax中,引入了BSR,BSRP机制。AP可以通过该机制获知节点对应的Buffer情况,进而可以获知大致对应的数据包情况。

基于以上两点,AP可以设置该传输所需要的PPDU时间。这一点是与传统的802.11有较大区别的。关于具体如何设置的,笔者还没有理解完全,如果有增加后期再补充。

上面我们简要说明了,AP是可以通过BSR机制以及确定MCS传输速率的方法,来预先计算TXOP时间,让节点可以完成上行传输。然而,我们知道除了基于BSR机制的上行传输机制外,还有一种基于随机接入的上行机制,UORA。在UORA情况下有没有什么额外的问题呢?

在UORA情况下,我们假设AP设置的时间为A。而节点上行传输所需要的时间为B。那么会分两种情况:

  • 如果A>B,那么实现上问题不大,仅仅是效率低下而已。在该情况下,节点传输完自己数据包之后,需要padding,充填一些冗余数据,将时间填充满A。
  • 如果A<B,那么这里有一个问题了。实际是AP给出的时间不够一个数据包传输的,在传统的TXOP中也出现过这种情况(也就是TXOP最后的时间片段,是否能够传输一个数据帧)。此时,通常802.11中的做法是不传输。但是在802.11ax中,这不仅仅是一个效率问题了,而是出现这种情况,一个上行帧都无法传输出去,造成的问题比较大。

所以在802.11ax中,为了解决该问题,引出了一个新的设计即为动态帧分片技术。

动态帧分片(Dynamic Fragmentation)

我们重新简单介绍下动态帧分片的场景。在802.11ax中,传输都是由AP同意调度的。无论上行还是下行,AP都会为节点分配好传输所用的RU数目,传输速率MCS之类。

然而,在OFDMA传输过程时,传输时间也是由AP设定的。标准情况下,AP可以通过BSR机制,基于节点的待传数据包大小设置。然而,在UORA传输时则无法准确设置。此时有可能会出现,节点待传数据所需时间会大于TXOP时间,比如节点传输需要30ms,但是txop时间只有20ms,此时我们就需要引入动态帧分片。动态帧分片是针对于传统的静态帧分片技术做个补充,静态帧分片之前我们有过介绍,可以直接参考:802.11协议精读25:静态帧分片(Frame Fragment)机制,在LTE中类似的分割/串接技术是在RLC机制下完成的,这里做一个记录。

其实除了上述这一个角度,我们可以理解动态帧分片技术的必要性。我们还可以换一个角度理解,也就是结合帧聚合技术理解动态帧分片。

参考:Resource Management for OFDMA based NextGeneration 802.11ax WLANs

如上图所示,如果TXOP时间较长,那么多余的部分是需要padding的。这一块padding能不能传输内容呢?在最传统的802.11中是不可以的,但是在帧聚合模式下,这是一个特例。

如果物理层传输的PPDU对应的是一个A-MPDU的话,也就是一个聚合帧的话。那么在传输过程前,节点可以决定我的聚合长度是多少。此时,如果节点一直传输的TXOP时间,并且剩余所需要的Padding的时间,那么此时节点可以利用动态帧分片技术,切出来一个短帧来补充这一块需要的Padding片段,从而提升效率。从这个角度而言,动态帧分片也是非常有价值的一个设计。

在协议中,动态帧分片一共包含3个等级:

参考:Draft4.3 - 26.3 Fragmentation and defragmentation

这三个实际上是针对不同场景的帧分片,比如说针对于非帧聚合模式下,以及针对于帧聚合模式下的帧分片。细节本文暂时先不展开,如果笔者有进一步理解,再补充了。

从802.11n开始引入的信道捆绑,可以将多个20MHz信道进行捆绑,从而实现更大的带宽,提供更高的传输速率。在802.11ac开始,已经可以提供160MHz带宽了。

在前段时间,华为的新路由把160MHz作为一个主要的技术优势。然而,在Wi-Fi 6(802.11ax)协议还不仅如此,相比802.11ac,Wi-Fi 6如果还仅仅支持160MHz或者仅仅是添加80MHz+80MHz带宽的模式,改进还不是很明显。

事实上,在Wi-Fi 6协议中,定义了一种新的多带宽接入方式,就是本文介绍带来Preamble Puncturing技术。基于Wi-Fi 6的核心OFDMA,Preamble Puncturing技术可以优化80MHz和160MHz的信道接入,有效提高信道捆绑的应用场景。

注:目前该技术在协议中应该是一种可选技术,非强制。所以目前产品可能还不支持Preamble Puncturing。

802.11ac中的信道捆绑

在Wi-Fi 6(802.11ax)中,引入了一个新技术Preamble Puncturing技术,目前这项技术还没有中文翻译,Puncturing的有穿刺的意思,这里实际上是删失,屏蔽的意思,类似的命名还有Punctured coding,删余编码,是一种利用冗余编码的改进技术。

Preamble Puncturing允许STA在进行80MHz或者160MHz传输时,删失部分的20MHz信道,也就是中间信道少了一部分,类似于一种Puncturing的操作。

参考:https://www.extremenetworks.com/extreme-networks-blog/will-802-11ax-make-80-mhz-and-160-mhz-channels-usable-in-the-enterprise/

如上图所示,通过捆绑4个20MHz的信道,如上图就是52,56,60,64,这四个信道。可以捆绑成一个80MHz信道,在802.11中,52信道作为主信道,其他信道作为次信道。

参考:https://www.extremenetworks.com/extreme-networks-blog/will-802-11ax-make-80-mhz-and-160-mhz-channels-usable-in-the-enterprise/

在802.11ac中,如果某一个次信道发现是忙的状态,比如上图中的56信道。那么802.11ac的节点只可以在主信道(Primary Channel)进行20MHz带宽的传输,从而没有太高的效率。

其实在802.11ac中已经添加了动态多信道接入的机制,但是,如果是紧邻着主信道的次信道是忙的,那么会导致整体信道只能够以最小的带宽工作。传统的信道绑定都是有连续信道的要求。所以,在Wi-Fi 6中,这一点还可以进行改进。

Preamble Puncturing技术

在Wi-Fi 6(802.11ax)中,首次引入了Preamble Puncturing技术,该技术是基于OFDMA传输技术的,能够有效优化多信道捆绑接入。

参考:https://www.extremenetworks.com/extreme-networks-blog/will-802-11ax-make-80-mhz-and-160-mhz-channels-usable-in-the-enterprise/

对比前面提到的802.11ac中的情况,如果信道56是忙的(如上图所示),那么在802.11ax中,AP和节点可以把56信道进行屏蔽,利用52+60+64信道进行通信。其虽然还是工作在80MHz的信道模式下,但是实际传输的时候,可以把部分信道至于Null状态,也就是空的状态,所以不会干扰到该信道上本来正在传输的节点。

在Preamble Puncturing中,主信道是不能够被屏蔽(删失),允许被屏蔽的信道是被协议规定过的,如下图所示,是协议给定的可以屏蔽的情况。

参考:IEEE 802.11ax: Highly Efficient WLANs forIntelligent Information Infrastructure

我们可以参考下图,从OFDMA RU的角度来看部分信道被屏蔽的情况。前面我们提到过,Preamble Puncturing技术是基于OFDMA的,实际上就是在OFDMA传输中,将部分子载波至于Null的状态,从而实现一个20MHz被设置为Null,进而兼容该信道上本来传输的节点。

参考Matlab文档: Build HE PPDU

我们可以从实际频谱图上进一步认知该技术,如下图。图中我们可以清晰的看到,在该160MHz带宽下,有一个20MHz信道被屏蔽(Puncturing),其频谱上我们可以看到有一个明显的缺失。

参考Matlab文档: Build HE PPDU

然而,在最后我们还需要说明,Preamble Puncturing目前在协议中还是一个可选的技术,应该还是属于技术成本比较高的原因,产品会不会实现该技术,我们还拭目以待。

BSS Coloring技术是802.11ax中引入,目的进一步优化空间复用(Spatial Reuse Parameter)。我们在之前的专栏中写过关于BSS Coloring技术(Wi-Fi 6(802.11ax)解析7:BSS Coloring技术)。但是关于如何基于BSS Coloring进行Spatial Reuse Parameter,我们还没有说明清楚,同时为了解释清楚,我们还要额外理解Adaptive-CCA机制。本文就关于这两个问题做一个阐述。

本文参考自:

  • Future Indoor Networks: The role of Wi-Fi and its evolution - nokia bell lab。
  • IEEE 802.11ax: Highly Efficient WLANs for Intelligent Information Infrastructure
  • IEEE 802.11ax draft 4.3

SRP空间复用(Spatial Reuse Parameter)

我们先介绍SRP空间复用技术。在802.11ax中,基于BSS Coloring,我们可以区分出Inter-BSS和Intra-BSS。如果现在一个Inter-BSS的节点检测到信道是忙的,但是其知道这个信道不是自己BSS正在进行传输,那么其可以认为信道是idle状态,进而继续backoff。如果backoff到0,那么其可以进行传输。

如上图所示,假设一个BSS的AP发送了一个SR-enable trigger frame(协议中称为SRP PPDU),代表当前的AP是允许一个SRP传输的。目前我理解的SRP仅仅支持AP上行接收的情况。AP发送完SRP TF帧后,其执行自己BSS内的一次传输,比如说一次上行传输。此时,如果一个支持SRP技术的Inter-BSS STA,也就是其他BSS Color下的节点,收到该SRP TF帧后。其会采用adaptive-CCA机制进行信道检测。如果其在adaptive-CCA的阈值下(即OBSS_PD阈值)检测信道是idle的,那么其可以继续执行backoff的操作。当backoff到0以后,其就可以执行一次数据的传输。

SR-enable的标志位应该是在PHY头部的HE-SIG-A1里面的Spatial Reuse field,这里面一共有4个field,可以设置disable SRP技术,也可以设置对应延迟或者具体的adaptive-CCA阈值等。

另外需要注意的是,这里允许传输的inter-BSS STA的数据帧大小也是有限制的。在一开始AP发送的TF帧中,实际上是包含了duration参数设置,代表其上行接收PPDU过程所需要的时间。inter-BSS需要在该Duration时间内完成SRP空间复用的传输,这里可能又会应用到动态帧分片技术了。

SRP技术实际上是一种利用捕获效应的空间复用技术,简单理解就是,如果当前AP的接收信号质量不错,不容易被干扰。那么此时就允许在该网络内,一个其他BSS的节点传输。由于本身我的信号强度够强,所以不会受到其他节点的干扰。该技术可以利用的核心机制就是adaptive-CCA机制,AP可以控制CCA的阈值,从而控制让部分节点(也就是不对自己产生干扰的节点)进行空间复用。

Adaptive-CCA(自适应CCA)

CCA技术是802.11协议用来检测信道是否有数据包在传输的物理载波监听技术,我们在之前的文章中写过关于CCA技术(802.11协议精读22:CCA (Clear Channel Assessment))。

802.11ax除了传统的ED_Threshold和CS_Threshold,进一步引入了OBSS_PD这个参数。

参考:NI的802.11ax白皮书

上面左图描述的是传统802.11的情况,其中CCA-Energy Detection对应到ED_Threshold(-62 dBm),CCA-Signal Detection对应到CS_Threshold(-82 dBm)。右边描述的是802.11ax中的情况,我们可以看到起CCA_SD实际上一个新的阈值(协议命名是OBSS_PD),其高于原来的CS_Threshold(-82 dBm),这个阈值是自适应调节的,所以被称为Adaptive-CCA。该阈值的目的就是用来区分,目前CCA检测到的数据帧是不是本BSS域内的。按照SRP的规则,如果STA检测到该数据帧不是本BSS的,而且STA的信号强度是小于该Adaptive-CCA的,那么可以认为信道是idle,可以继续backoff。

我们用下图解释。(注:由于参考了多份材料,其所用的概念命名有所区别。在下图中,CCA_SD对应的是-82dBm,也就是传统的CS_Threshold。而OBSS_SD对应的是Adaptive-CCA的阈值,也就是上图右的CCA-SD,协议的命名是OBSS_PD)

该图是描述一个inter-bss的STA如何做判断的。如上图,一开始STA会判断是否有数据帧在传输(也就是和CCA_SD比较)。如果大于,那么就意味着有数据在传输,那么说明信道忙,并且要开始接收数据,接收是从物理层头部PLCP开始的,这是一个独立的片段。

  • 如果PLCP失败,那么等待EIFS时间(这里笔者不是很认同上图,如果PLCP解调失败,那么EIFS等待完的结果实际上是挂起到当前数据帧的传输结束,而不仅仅是等待EIFS时间,这点记录下)。
  • 如果PLCP接收成功,那么判断该数据帧是不是同一个BSS的(在PLCP中会标识,该数据帧是哪一个BSS的,标识方法是BSS Coloring)。
    • 如果是相同的BSS,那么意味着该数据帧节点需要接收,所以反馈信道忙,并进入接收状态。
    • 如果是不同BSS,那么该节点需要与OBSS_SD的阈值比较,该阈值就是我们这里所说的Adaptive-CCA阈值(按协议应该是OBSS_PD阈值)。
      • 如果信号强度大于OBSS_SD阈值,那么意味着inter-BSS的节点和当前接收上行传输的AP干扰比较大。如果该节点传输,会影响AP的上行接收,所以无法执行SRP传输。因此信道还是busy的状态,不能够backoff。
      • 如果信号强度小于OBSS_SD阈值,那么意味着inter-BSS的节点不会干扰到AP的上行,其检测结果为idle,从而该节点可以执行backoff(这里竞争是为了多个inter-BSS的STA,同时检测到信道是idle的,从而发生冲突)。当节点backoff到0以后,那么可以进行传输。

在协议中,该OBSS_SD(本文命名有点杂,对应协议是OBSS_PD)是一个范围值,是AP根据网络情况自适应调节的,并且在Spatial Reuse field给出。

如上图所示,该范围是在-62dBm和-82dBm之间,也就是对应传统的ED_Threshold和CSThreshold之间。该图上的21 dBm描述的参考的发送功率,TXPWR_Ref。

综上我们阐述了802.11ax中的SRP技术,本节中的字母定义有点乱,还请见谅。

转载自:Wi-Fi研习者

Wi-Fi 6(802.11ax)解析19:再论802.11ax中的节能机制 - 知乎 (zhihu.com) 

Wi-Fi 6(802.11ax)解析20:TXOP时间设置和动态分片技术 - 知乎 (zhihu.com)

Wi-Fi 6(802.11ax)解析21:Preamble Puncturing - 知乎 (zhihu.com)

Wi-Fi 6(802.11ax)解析22:SRP空间复用和Adaptive-CCA - 知乎 (zhihu.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值