錢 煦, 吳 斌, 葉甜春
(1. 中國科學(xué)院 微電子研究所,北京 100029;2. 中國科學(xué)院大學(xué),北京 100049)
隨著IEEE802.11n/ac/ad無線局域網(wǎng)標準的制定和推廣,物理層傳輸速率提升巨大.然而,介質(zhì)訪問控制層(Media Access Control, MAC)以及物理層協(xié)議的固定開銷降低了信道的有效利用率.為了減少協(xié)議開銷,提高MAC層效率, 802.11n[1]協(xié)議定義了兩種幀聚合的方式,媒介訪問控制服務(wù)數(shù)據(jù)單元聚合(Aggregated MAC Service Data Unit, A-MSDU)以及媒介訪問控制協(xié)議數(shù)據(jù)單元聚合(Aggregated Media access control Protocol Data Unit, A-MPDU).另外,將這兩種幀聚合方式相結(jié)合,可以得出一種效率更高的兩級聚合算法.這些幀聚合機制極大提高了MAC層效率,因此,IEEE802.11ac[2]以及IEEE802.11ad[3]中同樣采納了這幾種聚合算法.
文獻[4]提出了增強型兩級聚合算法(Enhanced Two-level Frame Aggregation, ETFA),通過建立的理論模型,根據(jù)當(dāng)前誤碼率和子幀長度,動態(tài)計算兩級算法的第1級聚合長度(first-level A-MSDU length,Lamsdu)以及第2級聚合包數(shù)(second-level Aggregation level,Al).這種算法極大地提升了MAC層聚合的效率.但是,筆者沒有考慮聚合幀重傳的場景,吞吐率在誤碼率較高時會下降劇烈.
筆者基于文獻[4]通過理論模型動態(tài)選擇Lamsdu以及Al的思想,同時創(chuàng)造性地在MAC層引入聚合滑動窗口的概念,提出了一種新的兩級聚合重傳算法(Window based Two-level Frame Aggregation, WTFA).相對于傳統(tǒng)的A-MPDU、A-MSDU以及ETFA等聚合算法,WTFA算法通過聚合窗口的引入,增加了重傳時的聚合包長,提升了誤碼率較高時的系統(tǒng)吞吐率穩(wěn)定性.同時,通過理論模型的建立,動態(tài)計算Lamsdu以及Al,提升了不同子幀長度以及聚合包數(shù)下的吞吐率.采用網(wǎng)絡(luò)仿真器-3(Network Simulator-3,NS-3)[5]進行系統(tǒng)建模,發(fā)現(xiàn)該算法在不同的子幀長度以及聚合包數(shù)條件下均能提升系統(tǒng)吞吐率,并且在信道誤碼率較高時維持了吞吐率的穩(wěn)定性.
兩級幀聚合算法綜合了A-MPDU聚合和A-MSDU聚合.如圖1(a)所示,在這種聚合方式中,A-MPDU聚合的每個MPDU子幀就是一個聚合的服務(wù)數(shù)據(jù)單元,從而進一步消除了MAC幀頭和幀校驗序列(Frame Check Sequence, FCS)占用的負載.兩層幀聚合機制包括兩個階段:第1個階段將緩存的MSDU聚合成A-MSDU數(shù)據(jù)幀,該聚合長度在下文中用Lamsdu表示; 第2個階段將第1級聚合之后的A-MSDU數(shù)據(jù)作為MPDU子幀,第2級聚合的MPDU個數(shù)在下文中表示為Al.
圖1 802.11n中的聚合協(xié)議
另外,在IEEE802.11n中規(guī)定,A-MSDU最大聚合長度為 4 096 B,A-MPDU最大聚合長度為 65 535 B.并且由于塊確認(Block ACK)中位圖(Bitmap)字段只占 64 bit,所以A-MPDU最多聚合64個子幀.
在 IEEE802.11n中,接收端通過塊確認來響應(yīng)聚合幀的接收.如圖1(b) 所示,塊確認信息域中包括起始序列號(Starting Sequence Number, SSN)Ss子域以及點陣圖子域.因為點陣圖只有八位元,所以序列號在[Ss,Ss+ 63]范圍內(nèi)的子幀才能被Block ACK確認[6-7].
在目前的商用網(wǎng)卡中,當(dāng)聚合數(shù)據(jù)中的部分子幀丟失時,丟失的子幀被聚合在下一個重傳的A-MPDU中進行重傳,由于重傳時的Al下降劇烈,吞吐率會劇烈波動.文獻[8]提出了通過修改塊響應(yīng)幀格式提升重傳時的聚合包數(shù)的方法.雖然該方法可以提升吞吐率,但是修改了協(xié)議,不適用于工業(yè)應(yīng)用.文獻[9]提出了一種通過兩級聚合來提升重傳時A-MPDU聚合包大小的算法.然而,當(dāng)丟失的數(shù)據(jù)子幀序列號較小時,重傳包的數(shù)量仍然會劇烈減少,導(dǎo)致吞吐率的波動.
為了解決上述問題,文中提出了一種基于聚合滑動窗口的重傳算法WTFA.首先,通過聚合滑動窗口的設(shè)計增加重傳時的A-MPDU數(shù)據(jù)幀總長度; 然后,通過建立的理論模型,動態(tài)選擇第1級聚合的包長Lamsdu以及第2級聚合的包數(shù)Al.
為了增加重傳時能夠傳輸?shù)腗PDU幀數(shù)量,與TCP中的滑動窗口協(xié)議類似,在高層媒介接入子層(Upper Media Access Control, UMAC)引入聚合滑動窗口機制(Aggregation Sliding Window, ASWnd).在滑動窗口中的MPDU可以用于補償重傳時的聚合幀,從而使重傳時的幀長最大化.
圖2 聚合滑動窗口
如圖2(a)所示,將UMAC中緩存的數(shù)據(jù)幀分為以下4個類別:
類別#1子幀已發(fā)送,但Block ACK中Bitmap對應(yīng)bit位為零.
類別#2子幀已發(fā)送,但子幀的序列號超出Bitmap范圍.
類別#3子幀未發(fā)送,并且可以用于填充重傳聚合幀.
類別#4子幀未發(fā)送,并且不允許用于填充聚合重傳數(shù)據(jù)幀.
在文中提出的算法中,發(fā)送端將UMAC中緩存的數(shù)據(jù)幀通過多個指針分為以上4個類別,這些指針的定義如下:
SND.MSS: 表示已發(fā)送,但是對應(yīng)位在Block ACK中為零的第1個子幀的序列號,在下面的討論中用Sf來表示該序列號.該指針標志了類別#1的第1個子幀.
SND.EXB: 表示已發(fā)送,但序列號超出Bitmap的第1個子幀的序列號.該指針標志了類別#2的第1個子幀.為了使得Block ACK的SSN位始終等于第1個丟失的子幀,需要在每個A-MPDU聚合幀后面填充一個塊確認請求(Block Ack Request, BlockAckReq).由于BlockAckReq很小,該操作不會影響吞吐率.
SND.NXT: 表示下一個可以用于補償重傳A-MPDU的子幀.該指針標志著類別#3的第1個子幀.
SND.WND: 標志可調(diào)節(jié)聚合窗口大?。摯翱跇酥玖丝梢杂糜谘a償重傳聚合數(shù)據(jù)的所有子幀.因此將第1個丟失的子幀序列號加上滑動聚合窗口大小標志了類別#4的子幀起始序列號.其中類別#3中的子幀數(shù)量為可用窗口大小(Usable Window Size, UsableWnd),表示為 UsableWnd= SND.WND+ SND.MSS- SND.NXT.
在初始狀態(tài)下,類別#2中沒有包含任何數(shù)據(jù)幀.當(dāng)發(fā)送端開始傳輸聚合數(shù)據(jù)并且產(chǎn)生丟包時,Bitmap中對應(yīng)位丟失的數(shù)據(jù)幀需要重傳.此時,可將類別#3中未發(fā)送的數(shù)據(jù)幀填充到重傳的聚合數(shù)據(jù)包的尾部,以使得重傳的數(shù)據(jù)包最長.但是,類別#3中的數(shù)據(jù)幀序號可能超出[Ss,Ss+63]的范圍,不能確定是否已經(jīng)被正確接收,仍然需要緩存在UMAC.在收到Block ACK之后,可根據(jù)指針的定義更新指針位置,從而調(diào)整滑動聚合窗口的位置及大小,并將類別#3中超出Bitmap范圍的數(shù)據(jù)幀放到類別#2中.如果此時類別#1中的數(shù)據(jù)幀仍然存在丟失,則重復(fù)上述過程.當(dāng)類別#3中的子幀數(shù)量減為零時,即UsableWnd降為零時,只重傳類別#1中的數(shù)據(jù)幀,直到窗口滑動使可用窗口大小增加.
如圖2(b)所示,傳統(tǒng)聚合算法在MPDU丟失之后只能重傳當(dāng)前丟失的子幀,大大降低了平均傳輸包長,導(dǎo)致聚合吞吐率低于預(yù)期.文中提出的基于聚合滑動窗口的算法,在丟失子幀之后,從可用窗口中提取子幀補充丟失的子幀進行重傳.增加了重傳包長,提升了吞吐率穩(wěn)定性.
筆者修改了文獻[4,10-11]中的吞吐率模型,從而動態(tài)選擇Lamsdu以及Al.假設(shè)當(dāng)前網(wǎng)絡(luò)中的站點數(shù)量為ns,并且所有站點的數(shù)據(jù)流均為飽和狀態(tài).在以下的研究中不考慮隱藏終端的情況.
如文獻[4]中所述,為了增加傳輸時的聚合包總長,總共有以下兩種策略:
(1)
其中,Lampdu,m是最大A-MPDU聚合幀長度,Lamsdu,m是最大A-MSDU聚合幀長度,Al,m為A-MPDU最大聚合包數(shù).如1.1節(jié)所述,三者分別為 65 535 B、4 096 B 以及 64 bit.
值得注意的是,在計算中需要考慮丟失的重傳包.式(1)中Lr為前一次傳輸中丟失的第2級聚合A-MPDU幀長,Nr表示前一次傳輸中丟失的A-MPDU子幀數(shù).Lsubf為當(dāng)前第1級MSDU子幀幀長.
(2)
為了在不同子幀長度以及聚合包數(shù)下均能表現(xiàn)優(yōu)異,WTFA算法綜合考慮上述兩種聚合方式,并根據(jù)誤碼率以及需要重傳的數(shù)據(jù)包,遍歷可取的參數(shù),計算吞吐率最大時的Al以及Lamsdu,即
(3)
其中,Tidle、Tc及Tsucc分別是站點在空閑狀態(tài)、數(shù)據(jù)包沖突狀態(tài)及數(shù)據(jù)包成功傳輸?shù)臅r間,Ps為站點在給定時隙內(nèi)數(shù)據(jù)幀傳輸成功的概率,Ptr為在一個給定時隙內(nèi)至少有1次傳輸?shù)母怕蔥10].這些參數(shù)均可通過誤碼率計算得到[10].在2.1節(jié)中, MAC層通過聚合窗口進行重傳補償后,擴大了Al的選擇范圍.從式(3)可以看出,重傳時,傳統(tǒng)算法的Al受到限制,導(dǎo)致MAC利用率下降,兩級聚合吞吐率Stwo降低.而文中提出的基于聚合窗口的算法通過增加Al,提升了在不同誤碼率下的有效包長,從而提升了吞吐率.
WTFA算法流程如圖3所示,在發(fā)出一包聚合數(shù)據(jù),并且收到Block ACK之后,發(fā)送端對于聚合窗口的指針位置進行更新,并且移動聚合窗口.當(dāng)UsableWnd中的剩余包數(shù)大于零時,通過式(3)計算出吞吐率最大時使用的Lamsdu和Al,并且從可用窗口中選取對應(yīng)的數(shù)據(jù)包,重組聚合數(shù)據(jù),進行數(shù)據(jù)重傳; 當(dāng)UsableWnd中的剩余包數(shù)為零時,直接進行重傳.
圖3 WTFA算法架構(gòu)圖
采用NS-3網(wǎng)絡(luò)仿真軟件對于兩級聚合重傳算法進行性能仿真驗證.在下面的仿真中,假設(shè)所有的上層流量均為飽和狀態(tài),并且網(wǎng)絡(luò)中沒有隱藏終端.
圖4是子幀長度為1 024 B、物理層速率為130 Mbit/s和誤碼率為 5× 10-5時,聚合幀總長度隨時間變化的曲線.從圖中可以看到,傳統(tǒng)的A-MPDU聚合算法,丟包之后重傳包的幀長劇烈減少.而文中提出的WTFA算法通過聚合滑動窗口對于重傳數(shù)據(jù)幀進行補充,維持了聚合長度的穩(wěn)定,從而提升了在誤碼率較高環(huán)境中的系統(tǒng)吞吐率.
圖4 聚合幀總長度隨時間變化曲線
圖5 吞吐率與誤碼率的關(guān)系曲線
圖5是子幀長度為512 B和物理層速率為130 Mbit/s時,多種聚合算法在不同信道誤碼率條件下的吞吐率.在仿真中選取文獻[4]中的兩級聚合算法ETFA作為對比,并且對上文中提出的第1種和第2種聚合策略進行仿真.從圖5可以看出,使用策略2的重傳算法在信道誤碼率較低時,吞吐率明顯高于使用策略1的算法.這是由于在誤碼率較低時,聚合包丟失較少,第1級聚合長度較長的算法在MAC層額外損耗小.然而,隨著誤碼率的增高,第1級聚合長度越長的包丟失越嚴重,因此,使用策略2算法的吞吐率逐漸高于使用策略1算法的吞吐率.結(jié)合了兩種聚合方式的WTFA算法吞吐率明顯高于文獻[4]中提出的ETFA算法,并且維持了在誤碼率增加時的吞吐率穩(wěn)定性.
圖6(a)和圖6(b)分別為物理層速率為260 Mbit/s和誤碼率為5×10-5時,系統(tǒng)吞吐率與子幀長度和聚合包數(shù)的關(guān)系曲線.從圖6可以看出,通過Lamsdu和Al的動態(tài)調(diào)整,WTFA算法保持了吞吐率相對于子幀長度和聚合包數(shù)變化的相對穩(wěn)定,而其他聚合算法由于最大聚合長度的限制,吞吐率出現(xiàn)了浮動.同時可以看到,使用了聚合滑動窗口的WTFA算法通過補償重傳時的包長和吞吐率相對于傳統(tǒng)算法以及ETFA都得到了較大的提升.
圖6 物理層速率為260 Mbit/s和誤碼率為5×10-5時的吞吐率對比
文中提出了一種基于聚合滑動窗口的兩級聚合重傳算法WTFA.該算法利用聚合滑動窗口增加重傳時的聚合MPDU包數(shù),同時根據(jù)當(dāng)前誤碼率和丟失的包數(shù)對重傳時的第1級聚合包長以及第2級聚合包數(shù)進行理論分析,得出吞吐率最大時的數(shù)值.通過NS-3的仿真驗證,充分證明了該算法能夠提升不同子幀長度、聚合包數(shù)以及不同信道誤碼率下的系統(tǒng)吞吐率.
參考文獻:
[1] IEEE WG. Part 11: Wireless LAN Medium Access Control(MAC) and Physical Layer(PHY) Specifications. Amendment 5: Enhancements for Higher Throughput: IEEE Std 802.11n[S]. New York: IEEE SA Standards Board, 2009.
[2]IEEE WG. Part 11: Wireless LAN Medium Access Control(MAC) and Physical Layer(PHY) Specifications. Amendment 4: Enhancements for Very High Throughput for Operation in Bands below 6 GHz: IEEE Std 802.11ac/D5.0[S]. New York: IEEE SA Standards Board, 2013.
[3]IEEE WG. Part 11: Wireless LAN Medium Access Control(MAC) and Physical Layer(PHY) Specifications. Amendment 3: Enhancements for Very High Throughput in the 60 GHz Band: IEEE Std 802.11ad/D9.0[S]. New York: IEEE SA Standards Board, 2012.
[4]LIU J L, YAO M, QIU Z. Enhanced Two-level Frame Aggregation with Optimized Aggregation Level for IEEE 802. 11n WLANs[J]. IEEE Communications Letters, 2015, 19(12): 2254-2257.
[5]NS-3. NS-3 Network Simulator[EB/OL]. [2017-03-21]. http: //www. nsnam. org/.
[6]SAIF A, OTHMAN M, SUBRAMANIAM S K, et al. An Optimized A-MSDU Frame Aggregation with Subframe Retransmission in IEEE 802. 11n Wireless Networks[J]. Procedia Computer Science, 2012, 9(11): 812-821.
[7]PEFKIANAKIS I, HU Y, WONG S H Y, et al. MIMO Rate Adaptation in 802. 11n Wireless Networks[C]//Proceedings of the 2010 Annual International Conference on Mobile Computing and Networking. New York: ACM, 2010: 257-268.
[8]LIU J L, YAO M, QIU Z. Enhanced Block ACK Method for A-MPDU Transmission in IEEE 802. 11n/ac/ad WLANs[J]. Electronics Letters, 2016, 52(2): 159-161.
[9]LIU J L, YAO M W, QIU Z L. Adaptive A-MPDU Retransmission Scheme with Two-level Frame Aggregation Compensation for IEEE 802. 11n/ac/ad WLANs[J]. Wireless Networks, 2018, 24(1): 223-234.
[10]BIANCHI G. Performance Analysis of the IEEE 802. 11 Distributed Coordination Function[J]. IEEE Journal on Selected Areas in Communications, 2000, 18(3): 535-547.
[11]CHOI J, BYEON S, CHOI S, et al. Activity Probability-based Performance Analysis and Contention Control for IEEE 802. 11 WLANs[J]. IEEE Transactions on Mobile Computing, 2017, 16(7): 1802-1814.