劉軼峰,曾學(xué)文,韓 銳,孫 鵬
(1.中國科學(xué)院聲學(xué)研究所國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190;2.中國科學(xué)院大學(xué),北京 100049)
視頻流量以及移動(dòng)設(shè)備的激增使無線環(huán)境下切換和組播場景日益增多。IEEE 802.11 無線局域網(wǎng)(Wireless Local Area Network,WLAN)[1-2]為用戶提供了廣泛的互聯(lián)網(wǎng)接入方式[3-4],但卻難以滿足特定場景的需求[5]。在切換方面,現(xiàn)有的無線切換延遲較大[6]。在組播方面,無線組播機(jī)制存在不可靠、效率低的問題[7-8],難以滿足高質(zhì)量業(yè)務(wù)的需求[9]。在現(xiàn)有方案中,將組播轉(zhuǎn)成單播的方式[10]會(huì)浪費(fèi)過多帶寬;顯式反饋與重傳的方式[11-12]會(huì)導(dǎo)致反饋開銷大、丟包恢復(fù)時(shí)間長。而前向糾錯(cuò)編碼(Forward Error Correction,FEC)[13-14]難以有效應(yīng)對無線環(huán)境中的突發(fā)丟包。
針對這些問題,該文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)集中控制的WLAN 傳輸系統(tǒng)。在切換方面,系統(tǒng)采用基于網(wǎng)絡(luò)側(cè)的切換方式,極大地減少了切換時(shí)延。在組播方面,系統(tǒng)采取噴泉碼[15-16]與NACK(Negative Acknowledgement)結(jié)合的方式,提供了高效可靠的無線組播服務(wù)。
圖1 是系統(tǒng)總體架構(gòu)圖。整個(gè)系統(tǒng)工作于網(wǎng)絡(luò)邊緣來支持無線切換和無線組播。系統(tǒng)包含邊緣網(wǎng)關(guān)、無線接入(Access Point,AP)以及終端3 種設(shè)備。其中,邊緣網(wǎng)關(guān)是控制平面和數(shù)據(jù)平面的物理載體。一方面,邊緣網(wǎng)關(guān)是數(shù)據(jù)平面的路由轉(zhuǎn)發(fā)設(shè)備,負(fù)責(zé)對報(bào)文進(jìn)行路由轉(zhuǎn)發(fā),并能改變組播報(bào)文的協(xié)議格式來支持基于應(yīng)用層噴泉碼的無線組播;另一方面,邊緣網(wǎng)關(guān)作為所有AP 的接入控制器(Access Control,AC),能夠?qū)λ蠥P 以及關(guān)聯(lián)的無線終端進(jìn)行有效管理,從而對無線快速切換提供支持。系統(tǒng)中的AP 不僅轉(zhuǎn)發(fā)流量,還負(fù)責(zé)抽象無線資源以及關(guān)聯(lián)終端的上下文信息,并通告給邊緣網(wǎng)關(guān)。
圖1 系統(tǒng)總體架構(gòu)圖
AP架構(gòu)如圖2所示,其主要包含3個(gè)模塊:配置模塊、MLME(Mac Layer Management Entity)模塊以及組播模塊。為了加速信令處理,避免用戶態(tài)與內(nèi)核態(tài)的頻繁切換,3 個(gè)模塊均工作于Linux 內(nèi)核空間,并通過與Linux內(nèi)核無線子系統(tǒng)(cfg80211和mac80211)進(jìn)行交互,來控制無線網(wǎng)卡的行為。
圖2 基于Linux內(nèi)核的AP架構(gòu)
從圖中可以看出,AP 是一個(gè)二層轉(zhuǎn)發(fā)設(shè)備,使用Openvswich(OVS)將工作于AP 模式的無線接口wlan0 與以太網(wǎng)接口eth0 進(jìn)行橋接,并通過設(shè)置流表對控制信令流和數(shù)據(jù)流進(jìn)行正確轉(zhuǎn)發(fā)。
為了讓AP 模塊能與邊緣網(wǎng)關(guān)進(jìn)行通信,首先在內(nèi)核中創(chuàng)建了一個(gè)虛擬網(wǎng)絡(luò)接口wconf,并將其橋接至OVS。wconf 作為AP 模塊與以太網(wǎng)的紐帶,連接了3 個(gè)模塊與邊緣網(wǎng)關(guān)。當(dāng)模塊往邊緣網(wǎng)關(guān)發(fā)送報(bào)文時(shí),報(bào)文的入口將會(huì)被設(shè)置為wconf(即skb->dev=wconf),OVS 可以通過這個(gè)信息來識(shí)別從模塊發(fā)往邊緣網(wǎng)關(guān)的控制信令。對于從邊緣網(wǎng)關(guān)發(fā)往AP 模塊的數(shù)據(jù)包,OVS 會(huì)將其轉(zhuǎn)發(fā)至wconf 接口,而后者充當(dāng)了一個(gè)消息調(diào)度器。在wconf 接口的驅(qū)動(dòng)發(fā)送函數(shù)ndo_start_xmit 中,對數(shù)據(jù)包進(jìn)行解析,并將它發(fā)送給對應(yīng)的模塊進(jìn)行進(jìn)一步處理。
為了實(shí)現(xiàn)上述雙向通信流程,OVS 利用如下流表項(xiàng)對控制信令進(jìn)行正確轉(zhuǎn)發(fā):
1)nw_dst=localhost,nw_proto=17,udp_dst=8080,actions=output:wconf
2)in_port=wconf,nw_dst=邊緣網(wǎng)關(guān)IP,nw_proto=17,udp_dst=8080,actions=output:eth0
從第一條流表可以看出,邊緣網(wǎng)關(guān)發(fā)往AP(目的端口為8080)的UDP 包均從wconf 端口直接轉(zhuǎn)發(fā)至內(nèi)核模塊進(jìn)行處理。從內(nèi)核模塊發(fā)往邊緣網(wǎng)關(guān)(目的端口為8080)的UDP 包會(huì)根據(jù)第二條流表直接從eth0 端口快速轉(zhuǎn)出。
配置模塊直接與cfg80211 子系統(tǒng)進(jìn)行交互,通過調(diào)用后者的接口來獲取無線網(wǎng)卡的參數(shù)。另一方面,配置模塊負(fù)責(zé)響應(yīng)邊緣網(wǎng)關(guān)發(fā)來的控制信令,對無線參數(shù)進(jìn)行設(shè)置,例如BSS 設(shè)置、信道和帶寬設(shè)置、Beacon 幀以及ProbeResponse 幀設(shè)置、安全密鑰的設(shè)置等。每經(jīng)過一段時(shí)間或者邊緣網(wǎng)關(guān)詢問時(shí),配置模塊會(huì)將運(yùn)行時(shí)的參數(shù)上報(bào)給邊緣網(wǎng)關(guān)。
MLME 模塊負(fù)責(zé)終端接入的流程,包括認(rèn)證/去認(rèn)證、關(guān)聯(lián)/去關(guān)聯(lián)等。一方面,該模塊通過一個(gè)監(jiān)聽接口mon0 接收來自終端的IEEE802.11 管理幀。在Linux 內(nèi)核中,mac80211 子系統(tǒng)會(huì)復(fù)制每個(gè)收到的802.11 幀,并調(diào)用netif_receive_skb 函數(shù)將副本傳遞給每個(gè)無線監(jiān)聽端口。因此,為了能收到這些幀,MLME 模塊在內(nèi)核二層協(xié)議鏈表ptype_base 上注冊了一個(gè)處理函數(shù),用于接收ETH_P_802_2(LLC)種類的以太網(wǎng)幀,并篩選出發(fā)向自身(IEEE 802.11 首部DA 字段等于AP 的BSSID)的管理幀然后進(jìn)行處理。另一方面,MLME 模塊通過調(diào)用cfg80211 的接口發(fā)送IEEE 802.11 管理幀來響應(yīng)終端的接入請求。在與終端接入交互的流程完成后,MLME 模塊會(huì)對終端的連接與安全上下文進(jìn)行組織,并將其同步至邊緣網(wǎng)關(guān)。終端的連接與安全上下文是AP 與終端建立連接的必要信息,是無線快速切換的基礎(chǔ)。
組播模塊負(fù)責(zé)對組播包進(jìn)行轉(zhuǎn)發(fā)。由于工作于AP 模式的網(wǎng)絡(luò)接口wlan0 在發(fā)送組播包時(shí)通常會(huì)選擇一個(gè)很低的IEEE 802.11 物理層速率,從而導(dǎo)致無線網(wǎng)絡(luò)中組播幀的發(fā)送速率很低。因此,在OVS 中設(shè)置如下流表項(xiàng):
該流表項(xiàng)會(huì)將具有組播目的MAC 的IPv4 或者IPv6 包轉(zhuǎn)發(fā)至組播模塊。后者負(fù)責(zé)將以太網(wǎng)組播包轉(zhuǎn)化為IEEE 802.11 組播幀,并在幀的前面添加Radiotap 首部。Radiotap 首部允許用戶指定該IEEE802.11 幀的發(fā)送方式。之后,組播模塊調(diào)用內(nèi)核dev_queue_xmit 函數(shù)將幀發(fā)送給監(jiān)聽端口mon0,后者的驅(qū)動(dòng)負(fù)責(zé)解析Radiotap 首部,并根據(jù)首部信息發(fā)送IEEE 802.11幀。這里,在每個(gè)組播幀的Radiotap首部中指定一個(gè)較高的MCS(Modulation and Coding Scheme)以此來提升組播幀的IEEE 802.11 物理層的發(fā)送速率。
邊緣網(wǎng)關(guān)架構(gòu)圖如圖3 所示。從圖中可以看出,邊緣網(wǎng)關(guān)主要實(shí)現(xiàn)了5 個(gè)模塊,分別是關(guān)聯(lián)認(rèn)證模塊、終端管理模塊、AP 管理模塊、切換管理模塊以及組播編碼控制模塊。其中AP 管理模塊、終端管理模塊以及關(guān)聯(lián)認(rèn)證模塊利用控制信令與AP、終端進(jìn)行交互,不僅實(shí)現(xiàn)了AP 作為無線接入設(shè)備的基本功能,而且能夠?qū)λ袩o線設(shè)備進(jìn)行管理。切換管理模塊負(fù)責(zé)終端的快速切換。組播編碼控制模塊截取上游傳來的組播包,并利用噴泉碼對組播包進(jìn)行編碼處理,然后發(fā)送給相應(yīng)的AP。如前所述,后者會(huì)將組播包經(jīng)由AP 上的組播模塊發(fā)送給終端。另外,邊緣網(wǎng)關(guān)對上下行的單播流量做正常的路由轉(zhuǎn)發(fā)。
圖3 邊緣網(wǎng)關(guān)架構(gòu)圖
為了盡可能減少媒介中斷,采取了一種基于網(wǎng)絡(luò)側(cè)的快速切換方法,即在網(wǎng)絡(luò)側(cè)維護(hù)并同步終端的連接與安全上下文信息,并引導(dǎo)終端進(jìn)行AP切換。
每個(gè)關(guān)聯(lián)的終端都有一個(gè)連接與安全上下文,該上下文信息是終端首次接入AP 時(shí)與AP 進(jìn)行握手交互產(chǎn)生的,它記錄著終端的無線參數(shù)與能力。在IEEE 802.11 網(wǎng)絡(luò)中,連接與安全上下文是AP 與一個(gè)終端進(jìn)行通信的必要信息,主要包括如下信息:終端的MAC 地址、支持的速率、偵聽間隔、支持的信道、HT &VHT 能力(包括20/40 MHz 帶寬下的short GI、A-MPDU/A-MSDU 聚合參數(shù)、HT/VHT 支持的信道帶寬等)、網(wǎng)卡能力(包括short preamble、short slot time、automatic power save 等)、關(guān)聯(lián)ID、安全參數(shù)(包括TKIP 的IV/PN、CCMP 密鑰、cipher suite selector)
連接與安全上下文信息由邊緣網(wǎng)關(guān)進(jìn)行管理,當(dāng)終端需要切換到另一個(gè)AP 時(shí),邊緣網(wǎng)關(guān)會(huì)預(yù)先將其連接與安全上下文信息遷移至目標(biāo)AP 上,然后引導(dǎo)終端快速切換到目標(biāo)AP 并進(jìn)行通信連接。這種切換引導(dǎo)依賴于IEEE 802.11h 協(xié)議定義的帶有CSA(Channel Switch Announcement)元 素 的Action 幀。圖4 是Action 幀的格式,除了一個(gè)標(biāo)準(zhǔn)的IEEE 802.11 首部之外,最重要的就是CSA 元素,其中New Channel 字段表明了終端切換的目標(biāo)信道;Channel Switch Count 代表終端收到多少個(gè)Beacon 幀之后執(zhí)行切換。當(dāng)終端收到一個(gè)CSA 幀后,它會(huì)立即切換到指定的信道上,并且與該信道上具有相同BSSID和SSID 的AP 建立通信鏈路。
圖4 帶有CSA元素的Action幀
當(dāng)終端收到一個(gè)帶有CSA 元素的Action 幀后,會(huì)切換信道,并與目標(biāo)信道的具有相同BSSID 的AP直接進(jìn)行關(guān)聯(lián)。這是因?yàn)樵摻K端的連接與安全上下文信息已經(jīng)預(yù)先遷移至目標(biāo)AP 上了。這種切換方式不會(huì)改變終端IP 層信息,因此為了切換后能直接進(jìn)行通信,需保證切換前后終端的默認(rèn)網(wǎng)關(guān)一致。這樣,上下文遷移配合引導(dǎo)的切換方式避免了傳統(tǒng)切換復(fù)雜的握手交互,從而能減少切換時(shí)媒介中斷的時(shí)延。
切換觸發(fā)的條件基于一個(gè)預(yù)設(shè)的閾值(通常設(shè)為-70 dBm)。當(dāng)前關(guān)聯(lián)AP 的接收信號(hào)強(qiáng)度指示RSSI(Received Signal Strength Indication)低于此閾值時(shí),終端會(huì)執(zhí)行掃描程序來獲取不同信道AP 的RSSI,并通過關(guān)聯(lián)的AP 報(bào)告給邊緣網(wǎng)關(guān),用于決策。邊緣網(wǎng)關(guān)發(fā)起切換時(shí),會(huì)選擇一個(gè)最合適的目標(biāo)AP(例如,RSSI 最大的AP),并將終端的上下文信息遷移至目標(biāo)AP,然后向終端發(fā)送一個(gè)帶CSA 元素的Action 幀,引導(dǎo)其切換到目標(biāo)AP 的信道,從而建立新路徑。具體的快速切換流程如圖5 所示。
圖5 無線快速切換流程
該小節(jié)主要說明邊緣網(wǎng)關(guān)上組播編碼控制模塊如何對下行組播流量進(jìn)行處理,從而提升無線組播傳輸?shù)目煽啃浴?/p>
考慮到無線組播場景不適合過多的反饋,系統(tǒng)采用了一種應(yīng)用層前向糾錯(cuò)編碼(Application Layer Forward Error Correction,AL-FEC)與NACK 結(jié)合的方式來對抗無線組播傳輸過程中的丟包。其中,AL-FEC 是基于一種高效的數(shù)字噴泉碼——wirehair來實(shí)現(xiàn)的。它具有近似線性的編解碼計(jì)算復(fù)雜度,且利用了單指令多數(shù)據(jù)流(Single Instruction Multiple Data,SIMD)指令集進(jìn)行加速運(yùn)算。作為一種系統(tǒng)分組碼,wirehair 以源塊作為編碼單位,每個(gè)源塊(包含k個(gè)源符號(hào))可以編碼產(chǎn)生任意多個(gè)編碼符號(hào)(所有編碼符號(hào)組成編碼塊)。其中,前k個(gè)編碼符號(hào)就是k個(gè)源符號(hào)(為了區(qū)分,將k個(gè)以外的編碼符號(hào)稱為冗余符號(hào))。當(dāng)接收端收到任意k(或者略大于k)個(gè)編碼符號(hào)時(shí),它就能以非常高的概率恢復(fù)出k個(gè)源符號(hào)。
噴泉碼通常與ACK 反饋相結(jié)合,即發(fā)送端需要接收端在成功恢復(fù)源塊后顯式地反饋一個(gè)ACK 來通知編碼器停止編碼發(fā)送。在無線組播場景中,當(dāng)成員較多時(shí),這種方式會(huì)帶來過多的反饋開銷,不利于系統(tǒng)擴(kuò)展。因此,采取了NACK 的方式,即編碼器先主動(dòng)發(fā)送一定數(shù)量的冗余符號(hào),如果成員未成功恢復(fù)源塊則反饋一個(gè)NACK。邊緣網(wǎng)關(guān)依據(jù)NACK來調(diào)用對應(yīng)源塊的編碼器繼續(xù)發(fā)送一定量新的冗余符號(hào)。
圖6 是每個(gè)編碼符號(hào)攜帶的編碼信息。在系統(tǒng)中,它與編碼后的數(shù)據(jù)一起作為UDP 的載荷以組播的方式發(fā)送給所有成員。SBN(Source Block Number)表示源塊的編號(hào);ESI(Encoded Symbol ID)表示編碼符號(hào)在編碼塊中的編號(hào),每個(gè)編碼塊中的編碼符號(hào)的ESI 按照其發(fā)送的順序遞增。k代表該編碼塊中源符號(hào)的個(gè)數(shù);S代表每個(gè)編碼符號(hào)(或源符號(hào))的大小。mSBN 表示正在首次進(jìn)行編碼發(fā)送的源塊中最小的SBN,接收端觀測收到的每個(gè)編碼符號(hào)的mSBN來判斷某個(gè)源塊是否已經(jīng)編碼發(fā)送完畢,并決定是否反饋NACK。
圖6 編碼符號(hào)攜帶的編碼信息
由于系統(tǒng)碼屬性,wirehair 前k個(gè)編碼符號(hào)就是k個(gè)源符號(hào)。邊緣網(wǎng)關(guān)中的編碼模塊并不會(huì)對原始組播流量的轉(zhuǎn)發(fā)帶來延時(shí),因?yàn)榫幋a模塊僅僅設(shè)置每個(gè)輸入的源符號(hào)攜帶的編碼信息,復(fù)制該源符號(hào),然后將其直接發(fā)送。每隔一段時(shí)間t,編碼模塊將復(fù)制的k個(gè)源符號(hào)組成源塊,創(chuàng)建一個(gè)編碼器(預(yù)編碼)并以速率r編碼發(fā)送k′-k個(gè)冗余符號(hào)。這樣每個(gè)編碼塊中,冗余符號(hào)跟在源符號(hào)后面發(fā)送。每個(gè)編碼器負(fù)責(zé)一個(gè)源塊的編碼,而根據(jù)k、k′和r的設(shè)置,相鄰的幾個(gè)源碼對應(yīng)的編碼符號(hào)可能交織在一起發(fā)送。引入幾個(gè)可配置的系統(tǒng)參數(shù),并根據(jù)二項(xiàng)分布公式來確定k′的值:k′=g(w,k+2,σ)=min。μ是一個(gè)概率值,通常設(shè)為99.99%。σ是一個(gè)預(yù)設(shè)的丟包率。理論上,如果將每個(gè)編碼符號(hào)的接收看作服從獨(dú)立且相同的二點(diǎn)分布,那么k′表示能以大于99.99%的概率收到k+2 個(gè)編碼符號(hào)。2 代表wirehair 的譯碼開銷。在給定μ以及k時(shí),σ控制著每個(gè)編碼塊中冗余符號(hào)的數(shù)目,σ越大,冗余符號(hào)數(shù)越多,對抗丟包能力越好,但需要的額外帶寬也會(huì)更多。
按時(shí)間t分割源塊而非數(shù)量可以更好地控制時(shí)延。但是,在發(fā)送每個(gè)編碼塊中的源符號(hào)時(shí),無法知道源塊中源符號(hào)的個(gè)數(shù)(k),因此將源符號(hào)的K設(shè)置為0。組播組成員每收到一個(gè)編碼符號(hào),會(huì)根據(jù)其K字段來決定如何處理。如果K等于0(說明是源符號(hào)),則按SBN 暫時(shí)緩存該源符號(hào);如果K不等于0(說明是冗余符號(hào)),則檢查是否有對應(yīng)的解碼器,如果沒有,則創(chuàng)建一個(gè)解碼器負(fù)責(zé)該源塊的解碼恢復(fù),并將緩存的所有對應(yīng)的源符號(hào)和該冗余符號(hào)輸入解碼器。如果已經(jīng)有對應(yīng)的解碼器,則將該冗余符號(hào)輸入解碼器即可。與編碼類似,一個(gè)解碼器負(fù)責(zé)一個(gè)源塊的恢復(fù)。一旦解碼器收到足夠的編碼符號(hào),則恢復(fù)所有源符號(hào),交付給上層應(yīng)用然后關(guān)閉。
另一方面,每個(gè)解碼器都有一個(gè)生命周期,當(dāng)達(dá)到最大生命周期時(shí),解碼器會(huì)將已經(jīng)恢復(fù)的源符號(hào)交付,然后直接關(guān)閉。如前所述,接收端會(huì)觀測接收到的每個(gè)編碼符號(hào)的mSBN 字段,每當(dāng)mSBN 發(fā)生變化,如果存在解碼器,其負(fù)責(zé)的SBN 小于mSBN,那么接收端單播的UDP 連接反饋一個(gè)NACK 消息給邊緣網(wǎng)關(guān)。NACK 消息中包含該源塊的SBN 以及收到的編碼符號(hào)數(shù)m。邊緣網(wǎng)關(guān)在接收到NACK 后,會(huì)根據(jù)SBN 調(diào)用對應(yīng)的編碼器繼續(xù)以速率r組播發(fā)送g(w,k-m+2,σ)個(gè)冗余符號(hào)。如果收到來自不同組播組成員對相同源塊的NACK,那么發(fā)出的冗余符號(hào)數(shù)目由接收情況最差的成員確定。
利用ping 工具每隔10 ms 發(fā)送一次ICMP 請求報(bào)文,通過記錄對端丟失的ICMP 請求報(bào)文數(shù)目來估計(jì)切換時(shí)延。圖7 是無線切換時(shí)延的對比情況??梢钥闯觯瑐鹘y(tǒng)無線切換的時(shí)延在250 ms 左右,而系統(tǒng)提出的快速切換的時(shí)延基本少于50 ms。這是因?yàn)橄到y(tǒng)在AP 間同步終端的連接與安全上下文信息,并利用Action 幀對終端切換進(jìn)行引導(dǎo),這種方式大大減少了傳統(tǒng)切換時(shí)信令交互帶來的時(shí)延。
圖7 無線切換時(shí)延對比
測試了系統(tǒng)傳輸8 Mbps 組播業(yè)務(wù)流量的情況。邊緣網(wǎng)關(guān)的組播編碼控制模塊每隔50 ms 劃分一個(gè)源塊(t=50 ms),并創(chuàng)建一個(gè)新的編碼器對源塊進(jìn)行編碼,以8 Mbps的速率(r=8 Mbps)輸出冗余符號(hào)。圖8顯示了傳輸過程中AP 上行和下行流量的實(shí)時(shí)吞吐,可以看出系統(tǒng)利用不到16 Mbps 的下行帶寬來傳輸8 Mbps 的組播業(yè)務(wù),其中大約7 Mbps 的額外帶寬消耗用于傳輸編碼冗余。AP 的上行流量很小(小于100 kbps),這是因?yàn)閲娙a成功恢復(fù)了大部分丟包,只有少量的NACK 消息返回給控制器。
圖8 AP上行和下行流量的實(shí)時(shí)吞吐
表1 顯示了傳輸過程中,各個(gè)組播成員的信息與接收情況,包括信號(hào)強(qiáng)度、平均丟包率、源塊的平均交付時(shí)延、能直接恢復(fù)的源塊的比例以及須通過NACK 機(jī)制才能恢復(fù)的源塊的比例。在傳輸時(shí),成員#1、#3、#5 受到了突發(fā)的無線干擾,首次發(fā)送的編碼冗余很難對丟包進(jìn)行直接恢復(fù)。因此,它們通過NACK 機(jī)制請求邊緣網(wǎng)關(guān)發(fā)送的新的冗余符號(hào)來進(jìn)行恢復(fù)。雖然NACK 機(jī)制一定程度上增加了源塊的交付時(shí)延,但是卻能有效地提升無線媒介上的傳輸可靠性。
表1 每個(gè)成員的信息和接收情況
表2 是不同無線組播方案的主要性能對比。主要性能包括帶寬消耗、每個(gè)包的平均交付時(shí)延、可靠性(被所有成員成功接收的包的比例)以及反饋開銷。測試了不同方案對10 個(gè)終端傳輸3 Mbps 組播流量的情況,每個(gè)組播包大小為768 B。其中,ILM(Improved Legacy Multicast)表示以滿足組播流量帶寬的最低的MCS 進(jìn)行組播傳輸;DMS(Direct Multicast Service)將組播流量轉(zhuǎn)化為單播流量分別發(fā)送給每個(gè)成員;BACK 表示塊確認(rèn)機(jī)制。每當(dāng)邊緣網(wǎng)關(guān)發(fā)送完成一個(gè)塊,成員如果未能完全接受則返回一個(gè)NACK 請求重傳。該文方案中,每隔50 ms 劃分一次源塊(t=50 ms),編碼器輸出速率r=3 Mbps。
表2 不同方案主要性能對比
從實(shí)驗(yàn)結(jié)果可以看出,ILM 由于缺少包級別的糾錯(cuò)機(jī)制,傳輸可靠性很低(90.2%),難以滿足高質(zhì)量業(yè)務(wù)需求。DMS 將組播轉(zhuǎn)化為了單播,充分利用了單播的速率自適應(yīng)機(jī)制和ARQ 機(jī)制。雖然這種方式達(dá)到了很高的可靠性(99.9%),但消耗了過多帶寬(31.7 Mbps)。而且組播成員越多,帶寬消耗就越大,不利于系統(tǒng)的擴(kuò)展。BACK 采用顯式反饋請求重傳的方式來保證可靠性。雖然能使可靠性達(dá)到98.3%,但是包的平均交付時(shí)延較大,反饋開銷較多(156 個(gè)/秒)。而且隨著成員增多,反饋開銷也會(huì)增多,容易產(chǎn)生反饋風(fēng)暴。該文方案通過先主動(dòng)發(fā)送一部分編碼冗余來對抗丟包,這消耗了額外的帶寬。但是相比于ILM,該文方案使得組播傳輸?shù)目煽啃赃_(dá)到了單播水平;因?yàn)閲娙a能夠有效地恢復(fù)大部分丟包,所以相比于BACK,該文方案有效地降低了包交付的時(shí)延,且大大減少了反饋開銷。
該文設(shè)計(jì)并實(shí)現(xiàn)了一種集中控制的WLAN 傳輸系統(tǒng)。系統(tǒng)通過采取基于網(wǎng)絡(luò)側(cè)的快速切換機(jī)制以及基于噴泉碼和NACK 的無線組播方案,為用戶提供了低時(shí)延的無線切換服務(wù)以及可靠高效的無線組播服務(wù),具有廣泛的應(yīng)用場景。