初探802.11协议(4)——Wi-Fi QoS

目录

一. QoS引入

二. QoS机制

2.1 IEEE 802.11e

2.1.1 802.11e与WMM

2.1.2 详细说明​

2.1.2.1 QoS Control 

2.1.2.2 TC

2.1.2.3 TS

2.2 WFA QoS Management

2.2.1 MSCS

2.2.2 DSCP​​​​​​​

三. 影响QoS机制的因素分析

小结

REF

一. QoS引入

由初探802.11协议(0)——PCF/DCF与CSMA/CA机制介绍的“基于 CSMA/CD 的 DCF 调度模式”可知,

  • 所有STA平等地竞争无线资源,在同一个无线网络中如果在某一时刻同时有多个STA使用网络,就会引起冲突;
  • 由于没有区分业务优先级,AP和STA对外发送的帧会按同等优先级对待,当发生流量拥塞时,需要优先处理的报文(例如语音报文)和普通的报文(例如浏览网页的报文)会按相同的概率被丢弃。

Wi-Fi为了应对各类的业务体验,则需要进行服务的区分对待,从而引入Wi-Fi QoS。

二. QoS机制

调控Wi-Fi QoS相关的手段应该是有很多的,这里介绍几种常见的。

2.1 IEEE 802.11e

初始的802.11协议中有DCF和PCF两种工作模式,但是不支持QoS,后来在802.11e中引入了QoS,从而支持QoS的DCF模式就变成了EDCA模式,支持QoS的PCF就变成了HCCA模式,两者最大的共同点就是都支持TXOP。HCCA相对简单点,可以简单理解PCF+TXOP;而EDCA会复杂一点,其除了支持TXOP外,还需要对竞争参数有一些修改。

本篇重点在EDCA的说明。

2.1.1 802.11e与WMM

初探802.11协议(0)——开篇(IEEE802.11历史与Wi-Fi速率计算)中介绍过,IEEE对于Wi-Fi QoS的相关描述主要定义在802.11e。在2004年中期IEEE 802.11 Task Group通过了 802.11e 协议,同年,Wi-Fi Alliance也颁布了WMM(Wi-Fi MultiMedia)。一般情况下,我们可以粗略认为802.11e和WMM是同一个事物,只是来源于不同的定义。

802.11e中的e是Enhancements的缩写 ,表示增强的MAC层(enhancements to the MAC layer)。

 如下图所示(摘自 《The IEEE 802.11 Universe》),从差异上考虑,WMM 是 802.11e 中有关EDCA 这部分的分支,关于 HCCA 部分,WMM 是没有兼容实现的。

初探802.11协议(4)——Wi-Fi QoS_第1张图片

2.1.2 详细说明​

当数据包到达MAC层时,会根据一定的映射关系将原始数据包中的优先级映射到802.1e的不同优先级队列中。

初探802.11协议(4)——Wi-Fi QoS_第2张图片

 摘自《IEEE std 802.11e-2005》

初探802.11协议(4)——Wi-Fi QoS_第3张图片

 摘自《Next Generation Wireless LANs-802.11n and 802.11ac》2th

802.11e一共提供了4个不同的优先级,也可称为接入类别(Access Categories),优先级从高到低分别是:
1. 语音服务(Voice,AC_VO):一般为 VoIP 流量类型,对延迟最为敏感,同时也是优先级最高的流量。
2. 视频服务(Video,AC_VI):视频流量的优先级低于语音服务。视频服务也是延迟敏感类型的服务,所以具有一定的优先级。
3. 尽力传输(Best-effort,AC_BE):默认的无线流量类型就是best-effort类型,比如网页访问的数据流量类型。对于延迟有一定需求,但是没有那么敏感。
4. 背景流量(Background,AC_BK):对于延迟要求最不敏感的流量,比如文件传输,打印作业的流量。

初探802.11协议(4)——Wi-Fi QoS_第4张图片

2.1.2.1 QoS Control 

802.11e QoS 机制会涉及到 Wi-Fi Frame format 中的哪些字段呢?
802.11e 中新增了一个 QoS control 字段。

在 初探802.11协议(1)——帧结构_802.11 frame formats 中提到过 QoS Control 字段,这里做进一步的说明。

初探802.11协议(4)——Wi-Fi QoS_第5张图片

初探802.11协议(4)——Wi-Fi QoS_第6张图片

QoS Control field中比较重要的字段是TID(Traffic identifier)。TID有4个Bit(B0-B3),一共可以表示16个类型,其中8个对应TC,另外8个对应TS,TS的参数是通过STA与AP协商的,后面小节会说明。也就是说TID不仅仅被设置为AC_BK、AC_BE、AC_VI和AC_VO,还可以使用TS进行协商。

2.1.2.2 TC

2.1.2.2.1 EDCA

EDCA相对于DCF实际上就可以几个参数加以了控制:
1. 竞争backoff前“等待”的IFS时间,即AIFS时间。
       在EDCA中,为了提供优先级,等待几个Slot时间是可以配置的,即AIFS[i]中的i是可变值。
2. backoff时候选择随机数的CW大小。
       传统的DCF中,CWmin=15,CWmax=1023,这个是所有的竞争节点都是相同设置的。但是在EDCA中,由于节点的优先级与CW值关联起来,所以针对不同的AC,其CWmin和CWmax设置会不同。

初探802.11协议(4)——Wi-Fi QoS_第7张图片

以下是Spec中给的EDCA的默认参数,但是很多厂商会将EDCA参数调的很激进以便在资源竞争中获得更多的优势。Qcom平台可以在WCNSS_qcom_cfg.ini去做配置。

初探802.11协议(4)——Wi-Fi QoS_第8张图片

EDCA是L2层的配置,L3层的IP DSCP也可能影响到QoS,后面的DSCP章节做进一步的说明。

2.1.2.3 TS

 TS流程主要是ADDTS Request和ADDTS Response的交互,和ADDBA一样TS中也有DELTS。

初探802.11协议(4)——Wi-Fi QoS_第9张图片

初探802.11协议(4)——Wi-Fi QoS_第10张图片

初探802.11协议(4)——Wi-Fi QoS_第11张图片

STA首先发送一个ADDTS Request给AP,然后AP需要做AC(Admission Control),紧接着AP会反馈ADDTS Response给STA,在Response的Status字段中会告知TS会话是否建立成功。STA发送的ADDTS Request中的TSPEC参数是具有协商意味的,最终的QoS参数是以AP反馈过来的ADDTS Response为主。 
1. STA可以通过向AP发送DELTS Request来终止由ADDTS Request产生的所有QoS服务(包括U-APSD Coexistence)的使用。
2. STA可以向AP发送多个ADDTS Request,其中最后接收到的(并同意的)ADDTS Request将覆盖任何先前接收到的ADDTS Request。
 

TSPEC参数即双方协商的QoS参数,例如Norminal/Max MSDU Size。如下图所示,TSPEC字段中带有TS Info和各种参数,TS Info中还会有各种参数。

初探802.11协议(4)——Wi-Fi QoS_第12张图片

2.1.2.3.1 TS流程包分析

本地没有带有AC功能的AP环境,暂时没有抓包,这里可以看下网上的素材。

在Catalyst 9800 WLC上使用Cisco 8821配置语音WLAN - Cisco

1. ADDTS request

初探802.11协议(4)——Wi-Fi QoS_第13张图片

 2. ADDTS response

初探802.11协议(4)——Wi-Fi QoS_第14张图片

3. ADDTS DELTS

初探802.11协议(4)——Wi-Fi QoS_第15张图片

2.2 WFA QoS Management

802.11 e中通过配置EDCA主要是作用在STA端,让STA有很多机会去竞争资源发包,而WFA QoS Management是让AP和STA协商和/或请求将识别出的IP流划分到特定接入类别的功能。

QoS Management功能的支持需要平台支持MSCS和DSCP,这也是WFA QoS Management认证强制要求的两项功能。

 Wi-Fi QoS Management | Wi-Fi Alliance

https://www.wi-fi.org/system/files/Wi-Fi_CERTIFIED_QoS_Management_Highlights_202110_Simplified_Chinese.pdf

初探802.11协议(4)——Wi-Fi QoS_第16张图片

初探802.11协议(4)——Wi-Fi QoS_第17张图片

根据Android bootcamp里面的介绍,MSCS不需要fwk的支持,而DSCP需要fwk支持。

QoS Management相关 - 知乎

2.2.1 MSCS

  Android平台的支持情况:从wpa提交记录来看,MSCS相关的代码是2020年合入的。

/wpa_supplicant_8$ git log | grep MSCS
    afcadbbf4 wpa_cli: Add support for SCS, MSCS, and DSCP commands
    e433d06dd Allow MSCS support to be disabled for testing purposes
    354f87e2e MSCS: Fix MSCS Response frame Status field parsing
    0f7989d8a MSCS: Fix decapsulating subelements from MSCS descriptor
    93a73ce02 MSCS: Fix issues due to incorrect usage of wpa_hexdump_buf()
    d21dde9da MSCS: Send MSCS change/remove frames only if MSCS setup exists
    af8ab3208 MSCS: Parse result of MSCS setup in (Re)Association Response frames
    c504ff539 MSCS: Add support to populate MSCS Descriptor IE in (Re)AssocReq
    bbd3178af MSCS: Add support to process MSCS Response frames
    a11804724 MSCS: Add support to send MSCS Request frames

初探802.11协议(4)——Wi-Fi QoS_第18张图片

 AP根据某个STA发送而来的MSDU的映射规则,为自身的单播MSDU分配一个同样的用户优先级(UP),再简单点说就是STA-AP上下行设置成了相同的优先级,这也就是所谓的Mirror(镜像)。
比如说STA1发送给AP的MSDU中UP设为AC_BE,那么AP在收到STA1后也会将AP发送给STA1的UP设为AC_BE,从而STA1和AP之间的这个ip flow的上下行优先级都是AC_BE了。

Q:TC vs MSCS
A:之前单纯地在STA去配置TC也只能解决STA端的优先级,STA是左右不了AP针对这个STA的优先级的,但是MSCS是可以让STA和AP之间的UP保持一致。

2.2.1.1 MSCS流程包分析

初探802.11协议(4)——Wi-Fi QoS_第19张图片

MSCS配置过程有如下两种方式:
1. 方式一:STA向AP发送MSCS Request帧;
2. 方式二:如果STA支持的话,在关联时发送一个嵌入在 (Re)Association Request中的请求。

请求帧都包含一个MSCS Descriptor,以规定相应参数。协商MSCS参数可在关联时或关联后的任何时间完成。对于每个STA而言,AP最多有一个激活的MSCS。

初探802.11协议(4)——Wi-Fi QoS_第20张图片

初探802.11协议(4)——Wi-Fi QoS_第21张图片

支持Wi-Fi QoS Management的设备在 (Re)Association Request/ Association Response/Beacon/ Probe->Extended Capabilities->(Mirrored )SCS中指明对MSCS的支持。
本地没有MSCS的设备环境,下图来自网上。

 MSCS Request/Response

初探802.11协议(4)——Wi-Fi QoS_第22张图片

 初探802.11协议(4)——Wi-Fi QoS_第23张图片

Association Request/ Association Response

初探802.11协议(4)——Wi-Fi QoS_第24张图片

2.2.2 DSCP

     DSCP (differentiated services code point) 字段应该是属于L3层,这一小节主要介绍DSCP(L3)与Wi-Fi QoS(L2)的关系。

2.2.2.1 从 IP TOS 到 IP DSCP

TOS :RFC 791 - Internet Protocol

DSCP:
RFC 5865: A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic

RFC 2474 - Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers

1. IP TOS

初探802.11协议(4)——Wi-Fi QoS_第25张图片

 如上为IPV4的协议头格式,其中有个TOS(Type of Service)的字段,TOS有8位,详细说明如下:

初探802.11协议(4)——Wi-Fi QoS_第26张图片

TOS 取值 说明
Precedence 111 Network Control(网络控制),用于网络控制
110 Internetwork Control(网间控制),用于网络控制,如路由协议

101

Critical(关键),用于语音传输

100

Flash Override(疾速),用于视频业务

011

Flash(闪速),用于语音传输
010 Immediate(立即),用于高优先级数据业务

001

Priority(优先) ,用于数据业务

000

Routine(常规)

D(Delay) 0 或 1 0 = Normal Delay,      1 = Low Delay.
T(Throughput) 0 或 1 0 = Normal Throughput, 1 = High Throughput.
R(Reliability) 0 或 1 0 = Normal Relibility, 1 = High Relibility.
bit6-7 00 Reserved for Future Use.

2. DSCP

后来在RFC 2474 标准中,重新定义了IP 报文头的TOS 字段为DSCP 服务字段,也是8bits。

初探802.11协议(4)——Wi-Fi QoS_第27张图片

初探802.11协议(4)——Wi-Fi QoS_第28张图片

(1) DSCP:bit0-5,占6位。

  • 前3位(bit0-2)为了和TOS兼容也被用于表示IP优先级,当然在DSCP中可以有个新名字,叫 CS (Class Selector,类别选择器)。
  • 紧接着的两位(bit3-4)表示丢弃概率,bit3表示流量类别,值越大表示转发的优先级越高;bit4表示丢弃优先级,值越大表示丢弃概率越大。把bit3-4这两位又称之为AF(Assured Forwarding,保证转发),AF_{ij}表示流量类别为i,丢弃优先级为j的数据报,j用bit3-4两位来表示,总共可以表示4中优先级,但是实际只使用了1~3这三个优先级。例如AF_{32}表示数据报的流量类别为3,丢弃优先级为2。
  • bit6一直设定为0。

结合上面对前3位(bit0-2)和中间2位(bit3-4)的说明可知,bit0-2和bit3-4的组合可以有两大类,即CS和AF,实际情况下还有EF(Expedited Forwarding,加速转发)和VOICE-ADMIT。EF表示应享受较低的延时、抖动和丢包率,VOICE-ADMIT表示容量许可。

初探802.11协议(4)——Wi-Fi QoS_第29张图片

DSCP与TOS IP precedence值的对应关系如下:(表中的CoS字段在下面的"VLAN中的DSCP"小结会有介绍)

初探802.11协议(4)——Wi-Fi QoS_第30张图片

这些组合(bit0~5)根据当前的发展阶段也被分为了如下3大类:

初探802.11协议(4)——Wi-Fi QoS_第31张图片

 (2) ECNExplicit Congestion Notification,显示拥塞通知。从RFC协议上看,最初是被标记为CU,当前未被使用的,后面又被使用起来了。

初探802.11协议(4)——Wi-Fi QoS_第32张图片

通过上面的介绍可知,不同的DSCP取值类型会有不同的转发处理行为,这种处理行为称之为PHB(per-hop behavior,每跳行为)。

2.2.2.2 QoS Map

上面介绍了L3层中的DSCP,后面的"2.2.2.2 QoS Map"和"VLAN中的DSCP"将简单介绍DSCP是如何从L3层映射到L2层。

默认情况下,使用RFC 8325中的映射关系(如下图所示) 可以保证Wi-Fi QoS处理与IP QoS流量标记一致。但是实际情况下STA和AP所处的L3层的网络情况可能是不一样的,或者说大家没有严格按照RFC来,那么就可能出现不一致的情况,因此需要通过交互来保证双方的DSCP到UP的映射关系一致。

初探802.11协议(4)——Wi-Fi QoS_第33张图片

协商修改DSCP-to-UP的映射关系需要设备启用QoS Map功能。

AP收到QoS Map = 1的(Re)Association Request帧,应在(Re)Association Response帧中包含QoS Map element,STA收到Response后会将替代掉默认的 DSCP-to-UP映射表。

初探802.11协议(4)——Wi-Fi QoS_第34张图片

QoS Map的协议格式这里就不做进一步的说明了。

在实际情况下,互联网上传的数据包中的DSCP可能大都是由网络入口点的设备填写的,而不是从用户那里出来时的DSCP。

2.2.2.3 VLAN中的DSCP

在VLAN中,802.1Q引入了Q-Tag字段,Q-Tag字段中包含PCP(Priority Code Point)字段,用来表示优先级,通常我们也将该字段描述为cos(code of service),CoS与DSCP的映射关系如下。

初探802.11协议(4)——Wi-Fi QoS_第35张图片

三. 影响QoS机制的因素分析

TODO

小结

初探802.11协议(4)——Wi-Fi QoS_第36张图片

REF

1. https://www.zhihu.com/people/edward_xu
2.《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》
3. 《IEEE802.11-2020 Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications》:9.6.18.6 MSCS Request frame format / 9.6.18.7 MSCS Response frame format
4. Wi-Fi QoS Management | Wi-Fi Alliance
5. 《OReilly-802.11_Definitive Guide》802.11无线权威指南
6. 《 IEEE Std 802.11e-2005 Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 8: Medium Access Control (MAC) Quality of Service Enhancements
7. 802.11e协议介绍-新华三集团-H3C
8. 《WiFi接入机制及QoS机制分析》ppt
9. QoS Management相关 - 知乎
10. 802.11 - QoS Management_802.11 qos_非常正人类研究中心的博客-CSDN博客
11. 《Network Warrior, 2nd Edition》
12. RFC 8325 - Mapping Diffserv to IEEE 802.11
13. RFC 8325 – WiFi QoS Mappings | mrn-cciew

你可能感兴趣的:(Wi-Fi,QoS,Wi-Fi,QoS,802.11,QoS,DSCP)