802.11協議精讀27:再談802.11e的優先級(Admission Control) - 知乎

序言

本文按照順序是應該討論EDCA/HCCA的,可是在此以前,咱們須要從新回顧下802.11e中的優先級部分。咱們知道802.11協議其實是一個縱深很長的協議,由於802.11既須要考慮到商業級WiFi的場景和需求,又須要考慮到低成本輕量級的終端。因此其設計的部分實際上有不少潛在內容,很很差讓別人理解。html

比如前面咱們說了802.11e的優先級有默認的4種類型,可是實際上狀況下,用戶能不能根據本身需求自定義呢。這裏就是本文討論的Admission Control機制了,因此本文咱們要說明下802.11e中幾個很是容易混淆的概念,TIDTCTSTSpec,TClas微信

再談802.11的優先級

在咱們前面的說明中,咱們知道在802.11e中一共定義了4種流量種類。分別以下:
網絡

上圖說明,當流量MSDU到達802.11e定義的MAC層時,會根據其802.1D的tag標識被分別存放到4個不一樣的queue裏,分別是AC_VO,AC_VI,AC_BE,AC_BK。這裏對應關係咱們在《802.11協議精讀21:802.11e的優先級》一文中梳理過。架構

可是若是結合下圖,估計不少人會比較暈,前面是4個優先級隊列,而後下圖變成了8個優先級隊列了,筆者在這個點上也暈了好久。框架

這是802.1D(802.1p)和802.11的QoS對應關係,由於前者是8個優先級,後者是4個。因此在數據到達MAC層的時候,每2個優先級隊列還須要彙總一下,這個時候的匯老是採用隊列調度的方式,最後按照802.11e的物理層參數發送出去。802.1D和802.11e的優先級對應關係以下:less

不過實際上還不止如此。要理解好這個問題,咱們須要從新看一下QoS Control字段了。ide

QoS Control

QoS control是802.11e中新增的一個MAC層的字段(Remark:802.11協議在演進的時候,MAC頭部也會增長東西,如上圖QoS Control是802.11e增長的,HT Control是802.11n增長的)。url

QoS Control包含的內容以下:spa

咱們這裏關於TID字段,TID字段的全稱是Traffic identifier。咱們能夠注意到這個TID有4個Bit(即上圖的B0-B3),因此一共能夠表示16個類型。這裏就要和咱們前面發現的TC的問題關聯起來了,這裏TID一共能夠表示16個,裏面8個是對應TC,另外8個對應的是TS。.net

  • TC(Traffic Category):這個是對應的默認的QoS類型,也就是前面咱們說的0~7,這幾個TC類型。
  • TS(Traffic Stream):這個是自定義的QoS類型,節點能夠經過ADDTS過程和AP(WLC)協商,從而特定設置一些對應的QoS參數。

咱們能夠看到一些材料上,802.11e是能夠進行流量准入控制的Admission Control,這個就是針對TS類型而言的,而TC是設置用於默認傳輸的,其會按照默認的傳輸參數進行競爭信道,並傳輸數據。

能夠具體看下抓包記錄,裏面有標識TID,這裏默認的TID爲0就是Best effort流量類型。放上圖還有一個緣由是看下優先級下面這一位:

第B4位,這一位解析會複雜一點,與上下行有關。若是是下行的那麼就是EOSP的標誌位,EOSP爲End Of Service Period。而若是是上行的話,這是一個標誌位,若是是0,那麼表明TXOP Duration Request,若是是1,那麼表明Queue size 。

另外這給出幾個抓包的結果,能夠參考下有個直觀的感受。

其實就是協議一共支持16個類型,其中8個是默認的TC(對應默認的4個優先級),這裏對應8個主要是對應了EDCA/HCCA使用時的參數,另外還有8個是以TS的形式,這個是節點能夠和AP協商配置的。下面咱們討論下TS的接入方式。

Admission Control

咱們如下圖討論一下Admission Control機制。

Admission Control其實是一個會話的創建過程。其實很相似於前面咱們說的ADDBA會話創建過程,這裏是一個ADDTS的會話創建過程:

實際上過程也很簡單,並且相似於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上面能夠配置開啓。

參考: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幀。

ADDTS Request - 參考:https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Mobility/vowlan/41dg/vowlan41dg-book/vowlan_ch2.html 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以下:

其中Classifier Parameters對應以下:

上面是什麼意思呢,其實是給出了一種定義數據包種類的格式。一般咱們定義數據流,好比用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的)。經過以上這種結構來定義流量。

咱們用下圖的抓包結果可能清楚點:

Ref:https://mrncciew.com/2013/03/19/tspec/

這個也是一個ADDTS Request的幀,可是由於wireshark解析的問題,其顯示的類型是Management Notification(17)。這個裏面的Traffic Classification字段就是對應的TClas部分。

這個定義流量的部分,還有一個部分就是配置QoS參數了,此時須要用到TSpec部分。TSpec以下圖所示:

TSpec實際上對應到圖中的TS Info部分,這裏參數比較多,能夠看一下下面的解析:

以上部分圖中已經寫的很清楚了,因此筆者就不進一步展開了。

當TSpec和TClas都以Element的形式,添加在ADDTS Response發給AP後,AP(或者轉給WLC)會進行Admission Control判斷。

若是如今網絡中的資源是夠的,那麼就容許這個TS類型接入,以下圖的抓包反饋:

Ref:https://mrncciew.com/2013/03/19/tspec/

能夠看到Status code是Admission accepted的。若是此時AP發現資源不夠,那麼會拒絕這個TS進行接入,那麼這個TS的業務就會被按照默認的TC類型進行接入了。

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的機制。


本文爲原創文章,如需轉載須註明出處和原文連接。

歡迎你們關注咱們的微信公衆號:無線技術大講堂,請搜索公衆號(must_wireless)。

相關文章
相關標籤/搜索