6

802.11协议精读41:EDCA TXOP和Polled TXOP

 2 years ago
source link: https://zhuanlan.zhihu.com/p/437156457
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

802.11协议精读41:EDCA TXOP和Polled TXOP

Wi-Fi话题下的优秀答主

序言

在前面写802.11e的内容中,其中阐述了TXOP的相关内容。不过当时实际上是没有把TXOP的分类阐述清楚,所以本文讨论的主要内容就是两种基本的TXOP结构,即EDCA TXOP和Polled TXOP机制。在802.11的落地实践中,基本上都是EDCA TXOP,而Polled TXOP基本没有实现,但是在整个协议阐述中,有大量笔墨都是在Polled TXOP机制上。因此,如果不理解Polled TXOP会对阅读协议造成很多困难,因此我们还是需要对该内容有一定的掌握。

EDCA TXOP和Polled TXOP

在802.11e其中定义了两种TXOP机制,分别是EDCA TXOP和Polled TXOP。其定义部分如下图所示

v2-fc98e379c878857d6664785b93dc1f5a_720w.png

即EDCA TXOP是节点本身通过竞争直接获取下来的,比如说节点竞争信道,竞争胜利后通过NAV机制获取一段TXOP时间,那么这种获取TXOP机制的方式就是EDCA TXOP。而如果这个TXOP不是节点通过竞争直接获取的,而是通过分配所获得的,尤其是通过HC(即QoS AP)来通过QoS+CF-Poll帧来指定的,那么这种就叫做Polled TXOP。

v2-4e76413153d21c9919b86d52e1ddc156_720w.jpg

那么上图相当于指示了在时间轴上,EDCA TXOP和Polled TXOP的关系。这里如果理解细节的话,需要对于PCF协议有一些基础的掌握。

EDCA TXOP

首先还是看EDCA TXOP,这个比较简单。即节点是在CP时间范围内执行信道竞争,此时如果节点竞争胜利后,直接发起一个TXOP时间进行接入。

v2-30ec62e6467bb002ebd7ac3cbdff3f73_720w.jpg

那么这个TXOP时间的设置,如上所述。这里需要注意,EDCA TXOP是节点本地竞争的,这个TXOP时间是具有本地属性,通常这个比较好做设置,比如说节点可以根据其发送数据的速率(即MCS),以及待传数据包的大小,个数,来综合设置TXOP的时间。那么最简单而言,如果当前所需要的TXOP小于TXOP Limit,那么直接设置需要的TXOP时间即可。如果当前所需要的TXOP时间大于TXOP Limit,那么最高设置的时间上限就是TXOP Limit。TXOP Limit是和AC关联的一个参数,协议有一个默认参数,如果需要去改变这个参数,那么需要节点去和AP发送TXOP Request。

Remark 1:这里需要注意,该描述是在802.11e版本的描述,关于TXOP时间设置的时间相当于每一个协议都会做一点修改,比如最新的802.11-2020就会复杂不少,由于目前专栏写的内容截止到n之前的协议版本,所以就先不讨论后面的更改了。

Remark 2:另外在802.11e版本中还会有一些AC的设置,比如在一个TXOP时间内,只能够传输一种AC的数据。那么相对于其他的AC,信道都是Busy的状态。这一点其实在后面的Multi-TID里面也会存在一点变化,所以这里就仅仅提一下,目前这一块其实都是按照最新的协议为准。

Polled TXOP

其次是Polled TXOP,其有可能在两个时间段出现。一者是CFP时间(图上没有标明,但是理解上CFP时间内也是Polled TXOP),一者是CP时间。CFP时间是Contention Free Period,即无竞争的时间。该时间是通过AP发送的Beacon帧,通过其中的CF Parameter Set以及Duration两个部分给保护下来的一段时间。这个时间范围即对应CFP时间。在该时间范围内,协议工作在PCF模式下,或者当做支持HCCA的PCF模式也行(这个说法不是很准确,但是这样好理解)。那么首先在CFP时间范围内,AP(即这里的HC),通过发送QoS CF-Poll来赋予节点TXOP时间。当节点获得TXOP时间后,其可以指定多次反馈传输,直到TXOP时间结束。

Polled TXOP的时间实际上是AP赋予的,也就是QoS AP通过QoS CF-Poll赋予节点一段TXOP时间。在默认情况下,AP赋予的时间也是按照TXOP LImit进行执行的。但是由于AP缺乏节点的信息(也就是流量的具体信息),最多只能通过定义TS流量的时候,通过定义的方式指定一些节点的流量特征情况,所以这样的时间赋予不是非常准确。所以在QoS Control里面可以注意到一个TXOP Limit和TXOP Request的方向的问题。

这里需要注意,默认情况下,无论是Polled TXOP还是EDCA TXOP,其设置的上限时间都是TXOP Limit。协议中有一节讨论关于TXOP Limit的设置,在802.11e阶段,我们可以认为这是一个默认数值。那么节点可以根据本地的情况,去申请TXOP Duration Request。本质上其实就是申请修改TXOP的上限时间了,个人感觉在EDCA上面这个价值有限,毕竟设置过大有ATF(Air Time Fairless)的问题,而小于TXOP Limit的根据本地的情况设置即可。但是在Polled TXOP中,前面说明AP是对节点情况掌握比较少的,且Polled TXOP是AP直接赋予节点的,所以相当于这个就是一个固定时间的分配。此时最好的方式就是节点根据本地的需求,告知AP后,再有AP来分配时间,而不是AP以默认参数来分配了。

那么在Polled TXOP中还有几点注意内容。

1)Duration参数是否出现重复覆盖的问题。

这个问题是一个基准问题,其实PCF时候就存在了,只不过当时没强调。我们知道TXOP默认是基于Duration/NAV机制来设置的。但是Duration又有重新覆盖的特性,比如说一开始Duration设置是100,那么现在如果广播一个Duration=0的包,即可以刷新这个Duration设置。基本机理是这样,只不过具体协议中会加几个限制条件。所以这里在CFP时间范围内,就可以注意到这个Duartion字段是一个固定值,而且其不解析为Duartion的功能。这就是为了避免Duration被覆盖,从而造成CFP时间设置不稳定的问题(也就是CFP时间可能会被传输过程中的包重置)。

Remark:上图是1997版本的协议,最新版本的协议内容上会复杂点,比如说ah的AID分配也引入了,PCF原来的CFP时间的位被干掉成保留了。这个到时候写新协议版本的时候再接着讨论。

2)CF-Poll的ACK问题

我们需要注意下帧类型了,在802.11e协议中,引入了QoS+类型的CF相关帧。典型的就是QoS Data以及后面追加的CF-ACK,CF-Poll之类。首先要注意帧类型,除了CF-End是控制帧以外(这里CF-ACK其实就当做一个附加属性,不当做帧主体来理解),其余的都是数据帧类型,换言之,CF-Poll和CF-ACK更偏向于一种属性。那么在数据传输过程中,传统的是QoS Data传输结束后反馈的是ACK,但是如果传输的是QoS Data+CF-Poll呢,或者这个Data是通过CF-Poll触发才反馈的呢,那么此时反馈的就不是ACK,而是CF-ACK了。这里仅仅是一个举例,并没有定式。在协议中有一部分就是在纠结ACK的反馈以及CF-ACK的反馈,基于这个概念去看问题就会比较简单一些。

3)CF-Poll和AC的问题

这个问题在EDCA里面也有,其实就是当AP赋予TXOP时间让节点传输的时候,这个时候是可以在QoS Control里面限定TID,也就是限定AC的。与此类似的,比如U-APSD的时候,节点通过QoS Null做trigger发送数据给AP,这个时候也是希望限定AC的。在《802.11协议精读37:三论APSD节能模式》里面的“Trigger是否只能取一种AC的帧”中已经对该问题进行讨论过了。其实这里就是再次说明,QoS Control的更多是一个只是当前帧的AC的功能,而缺乏这种指定的功能。换言之,在Polled TXOP中,AP向节点发送QoS CF-Poll后,节点在该TXOP内可以根据自己的需求,选择任意一个AC进行发送。

4)由于Polled-TXOP是需要HC,也就是QoS AP来分配接入TXOP的。那么必须要用HC这个机制,换言之,在IBSS(也就是Ad-hoc模式)中,是没有Polled TXOP机制的。

v2-ad02625a6ec680542bb76b69a4cc7ed7_720w.png

本文为原创文章,如需转载须注明出处和原文链接。

v2-2aaf0aeed95fdea6d87e6ee8ccfde641_720w.png

欢迎大家关注我们的微信公众号:无线技术大讲堂,请搜索公众号(must_wireless)。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK