自定义词典匹配优先级_802.11协议精读27:再谈802.11e的优先级(Admission Control)...

fabd00f3b6d3467881350d1fe710577b.png

序言

本文按照顺序是应该讨论EDCA/HCCA的,但是在此之前,我们需要重新回顾下802.11e中的优先级部分。我们知道802.11协议实际上是一个纵深很长的协议,因为802.11既需要考虑到商业级WiFi的场景和需求,又需要考虑到低成本轻量级的终端。所以其设计的部分实际上有很多潜在内容,很不好让别人理解。

好比前面我们说了802.11e的优先级有默认的4种类型,但是实际上情况下,用户能不能根据自己需求自定义呢。这里就是本文讨论的Admission Control机制了,所以本文我们要说明下802.11e中几个非常容易混淆的概念,TIDTCTSTSpec,TClas

再谈802.11的优先级

在我们前面的说明中,我们知道在802.11e中一共定义了4种流量种类。分别如下:

69f5991ff6c7b533d3d638f39890b0bb.png

上图说明,当流量MSDU到达802.11e定义的MAC层时,会根据其802.1D的tag标识被分别存放到4个不同的queue里,分别是AC_VO,AC_VI,AC_BE,AC_BK。这里对应关系我们在《802.11协议精读21:802.11e的优先级》一文中梳理过。

但是如果结合下图,估计很多人会比较晕,前面是4个优先级队列,然后下图变成了8个优先级队列了,笔者在这个点上也晕了很久。

7ef31326bf43c12914fafd8794d769a5.png

这是802.1D(802.1p)和802.11的QoS对应关系,因为前者是8个优先级,后者是4个。所以在数据到达MAC层的时候,每2个优先级队列还需要汇总一下,这个时候的汇总是采用队列调度的方式,最后按照802.11e的物理层参数发送出去。802.1D和802.11e的优先级对应关系如下:

71bb57c83291f091521d55611dee87f7.png

不过实际上还不止如此。要理解好这个问题,我们需要重新看一下QoS Control字段了。

QoS Control

5496b42a074ef2e3fbdc72aca9d91a75.png

QoS control是802.11e中新增的一个MAC层的字段(Remark:802.11协议在演进的时候,MAC头部也会增加东西,如上图QoS Control是802.11e增加的,HT Control是802.11n增加的)。

QoS Control包含的内容如下:

1ef46d300720e6eaf9139e48f64f386d.png

我们这里关于TID字段,TID字段的全称是Traffic identifier。我们可以注意到这个TID有4个Bit(即上图的B0-B3),所以一共可以表示16个类型。这里就要和我们前面发现的TC的问题关联起来了,这里TID一共可以表示16个,里面8个是对应TC,另外8个对应的是TS。

4891d5bef6dbf3192883c04adc7e9242.png
  • TC(Traffic Category):这个是对应的默认的QoS类型,也就是前面我们说的0~7,这几个TC类型。
  • TS(Traffic Stream):这个是自定义的QoS类型,节点可以通过ADDTS过程和AP(WLC)协商,从而特定设置一些对应的QoS参数。

我们可以看到一些材料上,802.11e是可以进行流量准入控制的Admission Control,这个就是针对TS类型而言的,而TC是设置用于默认传输的,其会按照默认的传输参数进行竞争信道,并传输数据。

aad643875e76032d0621f02d6d1f4849.png

可以具体看下抓包记录,里面有标识TID,这里默认的TID为0就是Best effort流量类型。放上图还有一个原因是看下优先级下面这一位:

d88eb4a1ef6f7355841f753436884eb5.png

第B4位,这一位解析会复杂一点,与上下行有关。如果是下行的那么就是EOSP的标志位,EOSP为End Of Service Period。而如果是上行的话,这是一个标志位,如果是0,那么代表TXOP Duration Request,如果是1,那么代表Queue size 。

另外这给出几个抓包的结果,可以参考下有个直观的感觉。

75480f97d9270b513f1fcd0679315d59.png

其实就是协议一共支持16个类型,其中8个是默认的TC(对应默认的4个优先级),这里对应8个主要是对应了EDCA/HCCA使用时的参数,另外还有8个是以TS的形式,这个是节点可以和AP协商配置的。下面我们讨论下TS的接入方式。

Admission Control

我们以下图讨论一下Admission Control机制。

5d9595ad193b50cc8a018ccaa6af43d8.png

Admission Control实际上是一个会话的建立过程。其实很类似于前面我们说的ADDBA会话建立过程,这里是一个ADDTS的会话建立过程:

68b11a8fa40a8fd81737c78dcbf84840.png

实际上过程也很简单,而且类似于ADDBA的过程。STA首先发送一个ADDTS Request给AP,然后AP需要做AC(Admission Control),这个有的时候也被称呼为CAC(Call Admission Control),应该是与其主要与语音业务有关。AP接收到之后,会反馈给STA一个ADDTS Response。STA发送过去的ADDTS Request中的参数是具有协商意味的,所以最终的QoS参数是以AP反馈过来的ADDTS Response为主。这里的QoS参数就是TSpec了,另外在Status中会告知AP这个TS会话是否建立成功。由于这个会话是经过“AP”判决的,所以就叫做Admission Control机制。

通常情况下,Admission Control的开启与否是在WLC上面配置的,如下图Cisco的WLC上面可以配置开启。

f69cc3a107dfdd197a7f7b007353dfd9.png
参考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Mobility/vowlan/41dg/vowlan41dg-book/vowlan_ch2.html

我们可以看下Cisco教材那里给出的ADDTS的抓包记录(额,这个我自己没抓到过,所以就直接复制了),这里需要注意下,ADDTS Request和ADDTS Response都是两个Action帧。

2f0d21c463866b84432465fab1344344.png
ADDTS Request - 参考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Mobility/vowlan/41dg/vowlan41dg-book/vowlan_ch2.html

10efb03038035aeea6499e44d67342c7.png
ADDTS Response - 参考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Mobility/vowlan/41dg/vowlan41dg-book/vowlan_ch2.html

然后前面是建立会话的,和ADDBA类型,ADDTS也有一个结束会话的,DELTS帧。这个帧我们就不贴上了,其实我也没有找到抓包记录。

另外关于ADDTS帧的接入交换过程,包含ACK反馈,接入优先级之类的都和ADDBA一样的,可以参考前面的描述,这里不重复了。

以上我们仅仅描述了Admission Control框架,现在留下的问题就是,如果利用这个框架自定义一个TS,并对其做QoS了,所以下面我们要讨论TSpec和TClas两个参数。

配置TS类型(TSpec和TClas)

学过QoS的童鞋都知道,QoS简单起来就是两个部分,1)抓流量,专业点就是定义一个流量,2)给流量配置参数。所以针对这两个需求,我们就需要理解TClas(对应定义流量),TSpec(定义配置QoS参数)。Remark:这个部分参考台湾一个廖冠雄老师的PPT,其实里面写的还比较清楚。

TClas和TSpec都是Element字段,TClas如下:

0dc22082d7ef41d92025d61c3a597de2.png

其中Classifier Parameters对应如下:

069133dfb7bfa84d49cc291748933446.png

上面是什么意思呢,实际上是给出了一种定义数据包种类的格式。通常我们定义数据流,比如用ACL来抓流量,然后Class-map做匹配。不过这个是在无线环境下,STA需要用一种特殊的方式去定义有线对应的数据流量,所以就是这个TClas字段。TClas字段实际上简单的就是三个部分,Type,Mask和Parameters,其中我们关注下Parameters,由于我们定义的流量有可能是Ethernet类型的(比如Type 0),有可能是基于TCP/UDP数据包的(比如Type 1,其中包含了IPv4和IPv6两种,不过公用一个Classifier Type),还有可能是802.1Q的(Type 2,实际上就是基于VLAN Tag的)。通过以上这种结构来定义流量。

我们用下图的抓包结果可能清楚点:

712e3f849914905a0d2243e500c262f7.png
Ref:https://mrncciew.com/2013/03/19/tspec/

这个也是一个ADDTS Request的帧,但是因为wireshark解析的问题,其显示的类型是Management Notification(17)。这个里面的Traffic Classification字段就是对应的TClas部分。

这个定义流量的部分,还有一个部分就是配置QoS参数了,此时需要用到TSpec部分。TSpec如下图所示:

d2cf11398fd74998799c05433e34fb3f.png

TSpec实际上对应到图中的TS Info部分,这里参数比较多,可以看一下下面的解析:

7ac902c99330697f93a5aeb1629451ec.png

以上部分图中已经写的很清楚了,所以笔者就不进一步展开了。

当TSpec和TClas都以Element的形式,添加在ADDTS Response发给AP后,AP(或者转给WLC)会进行Admission Control判断。

如果现在网络中的资源是够的,那么就允许这个TS类型接入,如下图的抓包反馈:

7a653b287a05579636d513300342a643.png
Ref:https://mrncciew.com/2013/03/19/tspec/

可以看到Status code是Admission accepted的。如果此时AP发现资源不够,那么会拒绝这个TS进行接入,那么这个TS的业务就会被按照默认的TC类型进行接入了。

3670ff73b4a70b07974d8f47afdfd5ec.png
Ref:https://mrncciew.com/2013/03/19/tspec/

上图就是一个被拒绝的ADDTS Response反馈。

本文我们讨论802.11e中关于优先级定义的额外内容,以及对应的Admission Control机制。这个部分目前只有一些商业WLC+AP的架构可能才会用的上,而且需要一些专业的语音设备配合之类的。但是这个确实是802.11e中非常容易混淆的部分,重点是理清楚,TID,TC,TS,TSpec,TClas这几个概念以及Admission Control的机制。

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

fbe060ac3858b3102521721ccf109036.png

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值