林世榮 姜守旭
摘要:本文在企業(yè)級無線網(wǎng)絡(luò)中引入軟件定義網(wǎng)絡(luò)協(xié)議并進(jìn)行相應(yīng)的采樣和控制設(shè)計(jì),將網(wǎng)絡(luò)劃分為數(shù)據(jù)平面和邏輯平面,并在這兩個平面進(jìn)行了相應(yīng)的功能模塊設(shè)計(jì)與實(shí)現(xiàn)。在數(shù)據(jù)平面,本文實(shí)現(xiàn)了支持上層算法的實(shí)時數(shù)據(jù)采樣以及支持上層算法的控制動作。在邏輯平面,本文實(shí)現(xiàn)了實(shí)時的數(shù)據(jù)接收、預(yù)處理以及應(yīng)用程序編程接口,為采用高級語言進(jìn)行計(jì)算的優(yōu)化程序提供了支持。
關(guān)鍵詞:軟件定義企業(yè)無線網(wǎng)絡(luò);數(shù)據(jù)采樣;網(wǎng)絡(luò)優(yōu)化
【Abstract】Thispaperintroducessoftware-definednetworkprotocolintoenterprisewirelessnetworkandcarriesoutcorrespondingsamplingandcontroldesign.Thenetworkisdividedintodataplaneandlogicplane,andcorrespondingfunctionalmoduledesignandimplementationarecarriedoutonthesetwoplanes.Inthedataplane,thispaperimplementsreal-timedatasamplingthatsupportsupper-layeralgorithmsandcontrolactionsthatsupportupper-layeralgorithms.Inthelogicplane,thispaperimplementsreal-timedatareception,preprocessingandapplicationprogramminginterface,andprovidessupportfortheoptimizationprogramthatuseshigh-levellanguagetoexecute.
【Keywords】softwaredefinedenterprisewirelessnetwork;datasampling;networkoptimization
作者簡介:林世榮(1985-),男,博士研究生,主要研究方向:軟件定義無線網(wǎng)絡(luò)、擁塞控制;姜守旭(1968-),男,博士,教授,博士生導(dǎo)師,主要研究方向:P2P網(wǎng)絡(luò)、數(shù)據(jù)庫、傳感器網(wǎng)絡(luò)。
0引言
WiFi無線網(wǎng)絡(luò)在生產(chǎn)生活實(shí)踐中已經(jīng)起到了不可替代的作用,并正在呈現(xiàn)網(wǎng)絡(luò)規(guī)模、數(shù)據(jù)量的爆炸式增長。在無線設(shè)備方面,無線熱點(diǎn)的數(shù)量已從2017年的1.24*109即將增長到2022年的5.49*109規(guī)模;由此推知,來自于WiFi網(wǎng)絡(luò)數(shù)據(jù)的規(guī)模將在2022年超過所有IP數(shù)據(jù)量的51%。WiFi無線網(wǎng)絡(luò)中最重要的網(wǎng)絡(luò)組織形式是企業(yè)級無線網(wǎng)絡(luò)。企業(yè)級無線網(wǎng)絡(luò)指的是具有一個或者多個控制器、多個接入點(diǎn)的可配置可管理的無線局域網(wǎng)組織形式,常見的校園無線網(wǎng)絡(luò)、企事業(yè)單位無線網(wǎng)絡(luò)、公共場所無線網(wǎng)絡(luò)都是企業(yè)級無線網(wǎng)絡(luò)的常見形式。企業(yè)級無線網(wǎng)絡(luò)具有可中心配置管理、可軟件定義、計(jì)算能力強(qiáng)、網(wǎng)絡(luò)性能強(qiáng)、兼容性強(qiáng)等特點(diǎn),尤為重要的是企業(yè)級無線網(wǎng)絡(luò)可以讓網(wǎng)絡(luò)管理人員和研究人員從設(shè)備的弱兼容性、計(jì)算能力不足等限制中解脫出來,專注于算法設(shè)計(jì)本身以提升網(wǎng)絡(luò)的傳輸性能。正因?yàn)槿绱?,在軟件定義網(wǎng)絡(luò)協(xié)議[1]出現(xiàn)后,即迅速應(yīng)用到企業(yè)級無線網(wǎng)絡(luò)的組織管理中心[2-5]。但是目前的企業(yè)級軟件定義無線網(wǎng)絡(luò)實(shí)現(xiàn)開發(fā)的出發(fā)點(diǎn)都是支撐各自的應(yīng)用,在本文涉及的項(xiàng)目中,部分諸如鏈路調(diào)度、負(fù)載均衡的應(yīng)用需要毫秒級的數(shù)據(jù)采樣支持、需要特有的控制動作支持、需要毫秒級的數(shù)據(jù)集研究數(shù)據(jù)傳輸擁塞與WiFi特征變量之間的關(guān)系,而這些支持從現(xiàn)有平臺中是無法得到的,所以本文開發(fā)了一個支持毫秒級數(shù)據(jù)傳輸優(yōu)化的平臺。
作為支撐優(yōu)化算法計(jì)算和執(zhí)行的平臺基礎(chǔ),數(shù)據(jù)采樣一直是無線網(wǎng)絡(luò)中數(shù)據(jù)傳輸優(yōu)化研究的重點(diǎn)??紤]到本文平臺與其他平臺之間的差距主要在于數(shù)據(jù)采樣,為此擬著重介紹無線網(wǎng)絡(luò)監(jiān)控方面的相關(guān)研究。在文獻(xiàn)[6]中,通過ping方法來獲取清華大學(xué)校園無線網(wǎng)絡(luò)中的數(shù)據(jù)傳輸時延,并從思科(該校網(wǎng)絡(luò)設(shè)備提供商)提供的簡單網(wǎng)絡(luò)管理協(xié)議(simplenetworkmanagementprotocol,SNMP)中提取粗粒度的網(wǎng)絡(luò)狀態(tài)統(tǒng)計(jì)信息,從而研究WiFi時延與網(wǎng)絡(luò)狀態(tài)之間的量化關(guān)系。在文獻(xiàn)[7-8]中,采用TCPdump(https://www.tcpdump.org/manpages/tcpdump.1.html)獲取TCP通信的參數(shù),收集系統(tǒng)信息syslog中的網(wǎng)絡(luò)狀態(tài)信息,使用SNMP獲取并反饋數(shù)據(jù)流的流量信息;在某些時間點(diǎn)或者采樣結(jié)束后,將數(shù)據(jù)收集到計(jì)算節(jié)點(diǎn)進(jìn)行分析,從而得出典型網(wǎng)絡(luò)特征變量的特征以及數(shù)據(jù)傳輸?shù)囊恍┨卣?。在文獻(xiàn)[9]中,一個連接在康涅狄格大學(xué)網(wǎng)關(guān)路由器上的采樣設(shè)備對所有進(jìn)入和流出根網(wǎng)關(guān)的數(shù)據(jù)包進(jìn)行采樣,這些采樣涵蓋了應(yīng)用層、傳輸層和網(wǎng)絡(luò)層的特征變量。該采樣用來研究校園網(wǎng)絡(luò)中的數(shù)據(jù)來源、吞吐量、延遲、丟包、同時運(yùn)行的流數(shù)量、往返時間(Round-triptime,RTT)、應(yīng)用反應(yīng)時間等。文獻(xiàn)[10]中,研究了擁塞對網(wǎng)絡(luò)吞吐量、信道繁忙占比(最近1s內(nèi)信道處于忙狀態(tài)的時間比率)、RTS-CTS機(jī)制、幀發(fā)送和接收以及接收延遲的影響。前述內(nèi)容與本文的擁塞預(yù)測部分研究工作類似,但是其數(shù)據(jù)采集以及擁塞的定義存在問題:該研究受制于當(dāng)時接入點(diǎn)(accesspoint,AP)性能的限制,其數(shù)據(jù)包信息是通過一個叫做tetheral的軟件進(jìn)行采集的,而影響傳輸?shù)囊蛩厥褂靡慌_搭載sniffer(嗅探器)的IBMR32筆記本進(jìn)行采集,這些相關(guān)參數(shù)包括發(fā)送速率、信道、信噪比和接收數(shù)據(jù)包量;但該研究并未嚴(yán)格區(qū)分擁塞丟包和非擁塞丟包,這也使得該研究的成果存在一定的爭議。
綜上的研究工作都具有一個特征:采樣頻率低,采樣不全面。本文旨在設(shè)計(jì)并實(shí)現(xiàn)了一個集細(xì)粒度且高頻采樣、實(shí)時預(yù)處理及優(yōu)化算法應(yīng)用程序編程接口(API)輸入支持、速率控制為一體的軟件定義無線網(wǎng)絡(luò)平臺,以支撐毫秒級網(wǎng)絡(luò)優(yōu)化,支撐傳輸控制協(xié)議(TCP)對應(yīng)的數(shù)據(jù)擁塞與WiFi特征變量之間的關(guān)系研究。本文研發(fā)設(shè)計(jì)的平臺旨在達(dá)到已有工作不能支撐的總體水平。
本文研究內(nèi)容安排如下:第一部分給出平臺的整體架構(gòu)及功能模塊;第二部分討論了平臺的數(shù)據(jù)采樣;第三部分介紹了本文設(shè)計(jì)平臺上的一個擁塞窗口回歸應(yīng)用,第四部分總結(jié)全文。
1平臺架構(gòu)
本節(jié)立足于研究本文企業(yè)級軟件定義無線網(wǎng)絡(luò)平臺的設(shè)計(jì)與實(shí)現(xiàn),主要介紹平臺的設(shè)計(jì)思想、采樣模塊、數(shù)據(jù)處理模塊、以及相應(yīng)的邏輯控制模塊。對此可做闡釋分述如下。
1.1平臺結(jié)構(gòu)簡介
在軟件定義網(wǎng)絡(luò)協(xié)議(通常為OpenFlow)協(xié)議中,網(wǎng)絡(luò)被劃分為數(shù)據(jù)傳輸平面和邏輯控制平面兩個部分。其中,數(shù)據(jù)傳輸平面主要負(fù)責(zé)數(shù)據(jù)傳輸,而未能兼管邏輯相關(guān)的控制;邏輯平面主要負(fù)責(zé)邏輯的生成及管理。這是區(qū)別于傳統(tǒng)數(shù)據(jù)傳輸網(wǎng)絡(luò)的,在傳統(tǒng)通信網(wǎng)絡(luò)中并不區(qū)分邏輯平面與數(shù)據(jù)平面,不同廠家的數(shù)據(jù)設(shè)備設(shè)計(jì)并未形成統(tǒng)一的規(guī)范,各自算法固化在數(shù)據(jù)傳輸設(shè)備上,導(dǎo)致不同廠商的設(shè)備的協(xié)同工作調(diào)試極為困難,并且需要專業(yè)人員的配合參與。本文平臺按照軟件定義網(wǎng)絡(luò)協(xié)議的邏輯進(jìn)行開發(fā),設(shè)計(jì)結(jié)構(gòu)如圖1所示。其中,無線接入點(diǎn)處于數(shù)據(jù)傳輸平面,與因特網(wǎng)連接,負(fù)責(zé)將用戶請求的數(shù)據(jù)下行傳輸?shù)揭苿釉O(shè)備上。無線接入點(diǎn)上運(yùn)行的數(shù)據(jù)采樣平面將數(shù)據(jù)實(shí)時采集并傳送給控制器和數(shù)據(jù)采集器進(jìn)行接收、存儲和運(yùn)算。一般計(jì)算能力強(qiáng)的服務(wù)器充當(dāng)控制器角色,控制器上完成數(shù)據(jù)接收、處理并通過應(yīng)用程序編程接口的形式傳送給上層的優(yōu)化算法進(jìn)行數(shù)據(jù)傳輸優(yōu)化計(jì)算,以提升數(shù)據(jù)傳輸?shù)难舆t和吞吐量性能。運(yùn)行在控制器上的功能如數(shù)據(jù)傳輸性能與WiFi特征變量之間關(guān)系的研究、網(wǎng)絡(luò)優(yōu)化配置管理、負(fù)載均衡、鏈路調(diào)度以及傳輸協(xié)議優(yōu)化。
如上文所述,傳統(tǒng)數(shù)據(jù)通信網(wǎng)絡(luò)中并不區(qū)分?jǐn)?shù)據(jù)傳輸平面和邏輯控制平面,傳輸控制邏輯直接固化在數(shù)據(jù)傳輸設(shè)備上,而軟件定義網(wǎng)絡(luò)中將數(shù)據(jù)傳輸邏輯剝離到控制器上運(yùn)行,交換機(jī)只負(fù)責(zé)按照控制器生成的傳輸控制邏輯進(jìn)行數(shù)據(jù)傳輸。所以構(gòu)建軟件定義無線網(wǎng)絡(luò)的第一步是將無線接入點(diǎn)轉(zhuǎn)化成為虛擬交換機(jī)[11]。這一過程通常采用OpenvSwitch(www.openvswitch.org)來實(shí)現(xiàn),OpenvSwitch是一個軟件定義網(wǎng)絡(luò)套件,通過接管數(shù)據(jù)傳輸并創(chuàng)建相應(yīng)流表的方式將傳統(tǒng)網(wǎng)絡(luò)設(shè)備虛擬為交換機(jī),使其像真正的軟件定義交換機(jī)一樣配合控制器工作??偟貋碚f,在無線接入點(diǎn)上配合OpenvSwitch工作還需要OpenWRT,OpenWRT是一個為無線接入設(shè)備開發(fā)的Linux操作系統(tǒng)。OpenvSwitch可以通過編程成為用戶控件程序或者內(nèi)核空間模塊的模式運(yùn)行在OpenWRT上,完成數(shù)據(jù)的傳輸控制。在無線接入點(diǎn)被虛擬為交換機(jī)后,本文通過編寫內(nèi)核模塊以及用戶空間程序的方式對企業(yè)級無線網(wǎng)絡(luò)的特征變量(網(wǎng)絡(luò)狀態(tài)變量)進(jìn)行采樣、冗余消除和傳輸。并在控制器上實(shí)時接收處理的同時通過API的方式提供給網(wǎng)絡(luò)優(yōu)化算法使用。網(wǎng)絡(luò)優(yōu)化算法在數(shù)據(jù)采樣基礎(chǔ)上計(jì)算出網(wǎng)絡(luò)優(yōu)化策略后,通過編碼、且加載到本文開發(fā)的消息中傳輸給接入點(diǎn),接入點(diǎn)按照接收到的控制指令并在本文開發(fā)的控制模塊的基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)優(yōu)化控制。這里將針對整個控制過程中涉及的采樣、數(shù)據(jù)接收及預(yù)處理、運(yùn)算和控制等過程及對應(yīng)的模塊做出研討論述如下。
1.2數(shù)據(jù)平面模塊設(shè)計(jì)
1.2.1數(shù)據(jù)采樣模塊
如前文介紹,數(shù)據(jù)采樣是本文區(qū)別于其他平臺的主要原因。通常軟件定義網(wǎng)絡(luò)平臺通過軟件定義網(wǎng)絡(luò)協(xié)議自帶的狀態(tài)消失進(jìn)行數(shù)據(jù)采樣。但是這種方式采樣頻率低、采樣并不全面,不足以支撐數(shù)據(jù)傳輸優(yōu)化算法的研究。本文數(shù)據(jù)采樣的目的在于支撐毫秒級的鏈路調(diào)度研究以及TCP擁塞與WiFi特征變量之間的關(guān)系的研究。故本文在接入點(diǎn)內(nèi)核開發(fā)了相應(yīng)的模塊,采樣各種狀態(tài)信息,如:
(1)采樣WiFi接入點(diǎn)的狀態(tài)信息。如信道忙占比、信道接收占比、信道傳輸占比、信道掃描占比等,信道的狀態(tài)占比是在過去1s內(nèi)處于該狀態(tài)的時間比率。比如信道忙占比為0.6,表示在過去的1s內(nèi),有600ms間信道處于工作狀態(tài)。
(2)鏈路狀態(tài)信息。如鏈路傳輸/接收的數(shù)據(jù)包數(shù)量、傳輸失敗、傳輸重試、鏈路信噪比等變量。
(3)拓?fù)湫畔?。從Beacon信標(biāo)中可以得到接入點(diǎn)接收到的信標(biāo)信息,可以顯示鄰居接入點(diǎn)的數(shù)量及信號強(qiáng)度信息。
(4)隊(duì)列信息。隊(duì)列是數(shù)據(jù)傳輸過程中的一個重要結(jié)構(gòu)體,數(shù)據(jù)進(jìn)入設(shè)備后會被存儲在相應(yīng)的隊(duì)列中等待被傳輸,TCP中的擁塞丟包就發(fā)生在數(shù)據(jù)隊(duì)列中,所以本文著重對接入點(diǎn)上的隊(duì)列信息進(jìn)行了采樣。
(5)數(shù)據(jù)包信息。本文在OpenvSwitch的datapath中對數(shù)據(jù)包的TCP頭部、IP頭部信息進(jìn)行了采集,得到數(shù)據(jù)傳輸?shù)亩丝?、IP地址、物理地址等。
本文采集的數(shù)據(jù)見表1。
表1中,出現(xiàn)的“_3”表示來自于隊(duì)列3的數(shù)據(jù),下標(biāo)為“_5”的數(shù)據(jù)項(xiàng)來自于隊(duì)列5的數(shù)據(jù)。這是因?yàn)镺penWRT在網(wǎng)件公司的NETGEARWNDR3800/4300無線路由器上會產(chǎn)生5個隊(duì)列,標(biāo)記為1,…,5,但是通常數(shù)據(jù)采隊(duì)列3中被傳輸,當(dāng)且僅當(dāng)數(shù)據(jù)壓力大、數(shù)據(jù)突發(fā)產(chǎn)生的時候,部分?jǐn)?shù)據(jù)才會在隊(duì)列5中被傳輸。其他數(shù)據(jù)的解釋說明已在表1中做出描述了,這些數(shù)據(jù)中如在擁塞丟包、非擁塞丟包、數(shù)據(jù)包數(shù)量等是在每個數(shù)據(jù)包都被采樣,連接終端數(shù)量是按照10Hz的頻率進(jìn)行采樣,其他的數(shù)據(jù)則按照250Hz的頻率進(jìn)行采樣。
公共場所以及辦公環(huán)境是企業(yè)級無線網(wǎng)絡(luò)的典型場所,為了使得采集的數(shù)據(jù)集具有代表性,本文選擇了H大學(xué)的圖書館來表征企業(yè)級無線網(wǎng)絡(luò)中的普通公共場所,并選擇H大學(xué)的實(shí)驗(yàn)室作為典型的辦公場所代表。本文在H大學(xué)的圖書館布置了12個接入點(diǎn),在該大學(xué)某實(shí)驗(yàn)樓的4樓布置了8個接入點(diǎn)。這些接入點(diǎn)并不設(shè)置接入密碼,方便用戶接入。采樣持續(xù)了2個月,總共采集了1060.9GB(600.9GBTCP頭和460GB的跨層統(tǒng)計(jì)數(shù)據(jù))原始數(shù)據(jù),該數(shù)據(jù)集的規(guī)模是TB級別的,并在與標(biāo)準(zhǔn)的企業(yè)級無線網(wǎng)絡(luò)環(huán)境相同來采樣的情況下,能支撐典型的企業(yè)無線網(wǎng)絡(luò)中的優(yōu)化研究。
1.2.2負(fù)載監(jiān)控
網(wǎng)絡(luò)監(jiān)控的目的在于在提醒網(wǎng)絡(luò)管理員或者網(wǎng)絡(luò)優(yōu)化算法在合適的時候發(fā)起網(wǎng)絡(luò)優(yōu)化配置或者選出數(shù)據(jù)傳輸優(yōu)化算法以最大化網(wǎng)絡(luò)傳輸性能。在一個典型的企業(yè)級軟件定義無線網(wǎng)絡(luò)中,通常有一個或者多個控制器、多個接入點(diǎn)和多個無線終端,控制器通過無線接入點(diǎn)采集的實(shí)時數(shù)據(jù),判定網(wǎng)絡(luò)當(dāng)前所屬的狀態(tài)。當(dāng)符合一定的特征的時刻發(fā)起網(wǎng)絡(luò)優(yōu)化算法。
1.2.3自定義消息和自定義動作
在軟件定義網(wǎng)絡(luò)協(xié)議(如OpenFlow)中,通常有一套專門的消息用于在交換機(jī)和控制器之間傳輸采樣消息和控制消息。比如在OpenFlow協(xié)議中,采用6553端口傳輸這些消息。但是因?yàn)橄到y(tǒng)實(shí)現(xiàn)的原因,這一消息機(jī)制并不能用于傳輸本文的采樣信息和控制信息。所以在OpenFlow中的Experimenter消息的框架下,本文開發(fā)了OpenvSwitch與控制器套件(RYU,https://ryu-sdn.org/)之間的自定義消息。這樣在控制器RYU框架下計(jì)算出的控制消息可以通過用戶自定義消息傳送給交換機(jī)上的OpenvSwitch,后者在對應(yīng)的用戶空間協(xié)議ofprotocol.c中進(jìn)行接收和處理。因?yàn)閿?shù)據(jù)傳輸優(yōu)化通常涉及到數(shù)據(jù)流之間的速率控制問題,同時要求數(shù)據(jù)傳輸?shù)乃俾士刂谱詈貌灰婕皝G包,因?yàn)閬G包會造成額外的影響,所以本文開發(fā)了一種基于擁塞窗口的控制方式,其思路是通過修改ACK確認(rèn)數(shù)據(jù)包中的廣告串口限制發(fā)送窗口的方式進(jìn)行速率控制。本次研究中即在OpenvSwitch框架下開發(fā)了一個傳輸控制層動作set_window_to(x)用于改變當(dāng)前數(shù)據(jù)傳輸數(shù)據(jù)流的速率,其中x是期望的網(wǎng)絡(luò)速率。
1.3邏輯平面模塊
邏輯控制在使用軟件定義網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)傳輸網(wǎng)絡(luò)中扮演著“大腦”的角色,負(fù)責(zé)數(shù)據(jù)傳輸邏輯的生成和管理。如前文所述數(shù)據(jù)傳輸?shù)倪壿嫳粡臄?shù)據(jù)傳輸設(shè)備剝離到控制器上進(jìn)行計(jì)算,本文的邏輯控制建立在數(shù)據(jù)采樣上層,負(fù)責(zé)對實(shí)時數(shù)據(jù)繼續(xù)接收和處理,以及控制邏輯的運(yùn)算。其中,數(shù)據(jù)接收和處理是有難度的,因?yàn)槠髽I(yè)級無線網(wǎng)絡(luò)中無論是設(shè)備規(guī)模、還是數(shù)據(jù)規(guī)模都是巨大的,但是只有對采樣數(shù)據(jù)進(jìn)行統(tǒng)計(jì)后才能得到最終可用的數(shù)據(jù)。比如信道的各種狀態(tài)占比需要統(tǒng)計(jì)各個接入點(diǎn)在過去1s的數(shù)據(jù)信息。而處理后的統(tǒng)計(jì)數(shù)據(jù)也不能直接供給優(yōu)化算法使用,還要整合成應(yīng)用程序編程接口的形式供優(yōu)化算法進(jìn)行調(diào)用。為此,對數(shù)據(jù)的接收過程可做如下分析詳述。
1.3.1數(shù)據(jù)實(shí)時接收及預(yù)處理
數(shù)據(jù)接收預(yù)處理的作用在于實(shí)時地處理接收到的來自于不同無線接入點(diǎn)的采樣數(shù)據(jù),并統(tǒng)計(jì)得到可以用于網(wǎng)絡(luò)優(yōu)化算法的輸入變量。因?yàn)槠髽I(yè)級無線網(wǎng)絡(luò)中具有設(shè)備密度大、設(shè)備及數(shù)據(jù)規(guī)模大、設(shè)備與網(wǎng)絡(luò)設(shè)備之間的連接關(guān)系復(fù)雜(及鏈路動態(tài)變化)等特征。所以數(shù)據(jù)接收處理的難度較大。并且采樣到的元數(shù)據(jù)需要轉(zhuǎn)化成為統(tǒng)計(jì)數(shù)據(jù)才具有價值,如前文論述的信道狀態(tài)占比,以及隊(duì)列信息、鏈路信息等等都需要進(jìn)行統(tǒng)計(jì)分析,所以應(yīng)該在數(shù)據(jù)流之間維護(hù)大量的采樣數(shù)據(jù)緩存以計(jì)算網(wǎng)絡(luò)狀態(tài)變量的統(tǒng)計(jì)信息。在得到統(tǒng)計(jì)數(shù)據(jù)后,為了配合優(yōu)化算法的執(zhí)行,還要開發(fā)應(yīng)用程序編程接口。所以本文采用C語言進(jìn)行多線程編程以支持?jǐn)?shù)據(jù)的接收,并且通過混合編程的方式開發(fā)應(yīng)用程序編程接口來支撐網(wǎng)絡(luò)優(yōu)化算法的執(zhí)行。
仍需一提的是TCP窗口的獲取。因?yàn)闅v史原因,嵌套在數(shù)據(jù)的TCP頭部的接收窗口并不是該數(shù)據(jù)流對應(yīng)的真實(shí)接收窗口。接收窗口在數(shù)據(jù)傳輸?shù)倪^程中表示當(dāng)前數(shù)據(jù)接收方的接收能力,也是數(shù)據(jù)發(fā)送方數(shù)據(jù)發(fā)送的上限,發(fā)送方的發(fā)送窗口應(yīng)該小于擁塞窗口和接收窗口大小。因此可以通過修改接收窗口的方式來限制當(dāng)前數(shù)據(jù)流的速率。但是TCP頭部中的窗口并不是當(dāng)前數(shù)據(jù)流的真正窗口大小。這是因?yàn)樵跀?shù)據(jù)傳輸網(wǎng)絡(luò)的初期,網(wǎng)絡(luò)傳輸介質(zhì)的能力相對較弱,此時采用8位大小就可以表征數(shù)據(jù)速率。但是隨著數(shù)據(jù)通信技術(shù)的發(fā)展,數(shù)據(jù)傳輸介質(zhì)的能力得到了提升,傳統(tǒng)8位大小的接收窗口不足以支撐數(shù)據(jù)的高速率傳輸,隨后就在RFC1323(https://tools.ietf.org/html/rfc1323)中提出了窗口放縮選項(xiàng)位,額外增加8位配合原有8位表征數(shù)據(jù)的接收窗口。但是該8位不在數(shù)據(jù)傳輸過程中發(fā)送,只在數(shù)據(jù)流的建立過程中相互通知。所以要得到一個數(shù)據(jù)流的接收窗口大小就要獲得該窗口放縮選項(xiàng)以及當(dāng)前TCP頭部中的窗口大小。同時,本文設(shè)計(jì)中在接入點(diǎn)上的OpenvSwitch上為每個數(shù)據(jù)流建立了相應(yīng)的狀態(tài)機(jī),保存數(shù)據(jù)流建立過程中的各種協(xié)調(diào)信息。并在TCP數(shù)據(jù)流的各個生命過程中維護(hù)狀態(tài)機(jī)的狀態(tài)變化,從而獲取到數(shù)據(jù)流的當(dāng)前窗口大小,配合存儲的窗口放縮選項(xiàng),可以計(jì)算出當(dāng)前數(shù)據(jù)流的接收窗口大小。
1.3.2負(fù)載均衡
負(fù)載均衡用來管理客戶端設(shè)備與無線接入點(diǎn)之間的連接關(guān)系,從而達(dá)到均衡網(wǎng)絡(luò)負(fù)載以最大化數(shù)據(jù)傳輸?shù)难舆t和吞吐量性能的目的。該功能是建立在數(shù)據(jù)采樣基礎(chǔ)上的,通??梢詫⑵湫问交癁橐粋€混合整數(shù)規(guī)劃問題,求解并得到相應(yīng)的連接關(guān)系,執(zhí)行該連接關(guān)系,負(fù)載均衡則得以實(shí)現(xiàn)。
1.3.3過載診斷
過載診斷通過研究網(wǎng)絡(luò)負(fù)載與網(wǎng)絡(luò)特征變量之間的關(guān)系,采用合適的回歸模型可以得到當(dāng)前的網(wǎng)絡(luò)負(fù)載情況,也可以采用預(yù)測模型得到未來的網(wǎng)絡(luò)負(fù)載狀況,從而支撐各種網(wǎng)絡(luò)優(yōu)化算法的運(yùn)行。
2企業(yè)級無線網(wǎng)絡(luò)中擁塞窗口回歸
在本節(jié)中,介紹本文支撐網(wǎng)絡(luò)優(yōu)化的一個典型應(yīng)用:擁塞窗口回歸。擁塞窗口是TCP數(shù)據(jù)傳輸?shù)囊粋€重要參數(shù),表示在未接收到下一個ACK的情況下最多可以注入網(wǎng)絡(luò)的數(shù)據(jù)包的數(shù)量。通常TCP的發(fā)送窗口控制著發(fā)送速率,但是TCP的發(fā)送窗口必須同時小于擁塞窗口和接收窗口。已有研究表明在一般情況下,接收窗口大于擁塞窗口,所以如果在TCP傳輸?shù)闹虚g節(jié)點(diǎn)上得到擁塞窗口,則可以通過此擁塞窗口來控制TCP的速率以規(guī)避不必要的擁塞產(chǎn)生。文獻(xiàn)[12]給出了一種通過未確認(rèn)數(shù)據(jù)包量(unacknowledged,UNA)來進(jìn)行擁塞窗口回歸的方法,據(jù)此測算,該方法在有線網(wǎng)絡(luò)中能夠達(dá)到0.9以上的精確度,只是同時在研究中也發(fā)現(xiàn),僅僅使用UNA在企業(yè)級無線網(wǎng)絡(luò)中只能達(dá)到0.2911的準(zhǔn)確度。
既然只采用UNA解決不了企業(yè)級無線網(wǎng)絡(luò)中的中間節(jié)點(diǎn)上的擁塞窗口回歸問題,那么在企業(yè)級無線網(wǎng)絡(luò)中,中間節(jié)點(diǎn)上的擁塞窗口回歸的性能極限到底是多少,應(yīng)該采用什么樣的特征變量進(jìn)行回歸?本文開展了相應(yīng)的回歸研究。該回歸研究擬欲設(shè)計(jì)TCP的擁塞窗口,限于篇幅,這里將重點(diǎn)評述擁塞窗口的采樣工作。
為了采集作為回歸對象的擁塞窗口,本文在TCP發(fā)送端進(jìn)行了相應(yīng)的采樣實(shí)現(xiàn),特開發(fā)了一個類似于Linux下“ss”命令的應(yīng)用程序。該應(yīng)用程序通過NetLink消息從內(nèi)核獲取當(dāng)前數(shù)據(jù)流的統(tǒng)計(jì)狀態(tài)信息,包括擁塞窗口、延遲等數(shù)據(jù)。同時再依據(jù)表1中的特征數(shù)據(jù)采樣,共同組成回歸所使用的數(shù)據(jù)集。研究中需特別關(guān)注的就是時間同步,本文在局域網(wǎng)內(nèi)部架設(shè)專有的時間服務(wù)器以給采樣的設(shè)備提供共同的時間,從而統(tǒng)一了采樣點(diǎn)的時間,使得數(shù)據(jù)集具有共同的時鐘。
在采樣數(shù)據(jù)集的基礎(chǔ)上,研究了表1中的特征變量與擁塞窗口之間的關(guān)系,從而得出所選特征變量以及使用seaborn.heatmap計(jì)算的相關(guān)性見表2。由表2可知,其中的數(shù)據(jù)項(xiàng)與擁塞窗口有顯著的關(guān)系,即顯示了UNA、所有數(shù)據(jù)鏈路的數(shù)據(jù)速率、信道傳輸占比、信號強(qiáng)度、信道忙占比、重傳率以及噪聲與擁塞窗口具有顯著的關(guān)系。依據(jù)這些特征變量,本文采用標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)回歸方法研究了將其用于擁塞窗口的回歸精度,最終結(jié)果見表3。
回歸結(jié)果顯示,如果僅僅使用UNA進(jìn)行回歸,最好也只能達(dá)到0.2911的精度,但是如果選用本文選擇的特征變量,該回歸精度可以提升到0.5374?;谶x擇的特征變量,本文采用回歸表現(xiàn)最好的XGBregressor算法對擁塞窗口進(jìn)行回歸,并截取了部分回歸結(jié)果如圖2所示。圖2中,藍(lán)色是實(shí)際窗口,紅色是通過XGBregressor獲得的窗口。仿真結(jié)果顯示回歸窗口與實(shí)際窗口擬合程度可以接受。
3結(jié)束語
本文采用軟件定義網(wǎng)絡(luò)協(xié)議以及思想,設(shè)計(jì)并提出了企業(yè)級軟件定義無線網(wǎng)絡(luò)優(yōu)化管理平臺。分別在數(shù)據(jù)平面和邏輯平面設(shè)計(jì)了相應(yīng)的網(wǎng)絡(luò)狀態(tài)采樣、數(shù)據(jù)接收處理、以及應(yīng)用程序編程接口,最終實(shí)現(xiàn)了一個實(shí)時的擁塞窗口回歸應(yīng)用,測試了平臺的可用性。
參考文獻(xiàn)
[1]MCKEOWNN,ANDERSONT,BALAKRISHNANH,etal.OpenFlow:Enablinginnovationincampusnetworks[J].ACMSIGCOMMComputerCommunicationReview,2008,38(2):69-74.
[2]LUENGOE.Anopenflow-basedwirelessusermanagementsystem[D].Canada:UniversityofOntarioInstituteofTechnology,2016.
[3]SHALIMOVA,ZUIKOVD,ZIMARINAD,etal.AdvancedstudyofSDN/OpenFlowcontrollers[C]//CEE-SECR'13:Proceedingsofthe9thCentral&EasternEuropeanSoftwareEngineeringConferenceinRussia.Moscow,Russia:ACM,2013:1-6.
[4]SURESHL,SCHULZ-ZANDERJ,MERZR,etal.TowardsprogrammableenterpriseWLANSwithOdin[C]//ProceedingsofthefirstworkshoponHottopicsinsoftwaredefinednetworks.Helsinki,F(xiàn)inland:dblp,2012:115-120.
[5]CORONADOE,KHANSN,RIGGIOR,etal.5G-EmPOWER:Asoftware-definednetworkingplatformfor5Gradioaccessnetworks[J].IEEETransactionsonNetworkandServiceManagement,2019,16(2):715-728.
[6]PEIChanghua,ZHAOYoujian,CHENGuo,etal.WiFicanbetheweakestlinkofroundtripnetworklatencyinthewild[C]//IEEEINFOCOM2016-The35thAnnualIEEEInternationalConferenceonComputerCommunications.SanFrancisco,CA,USA:IEEE,2016:1-9.
[7]MENGXiaoqiao,WONGSHY,YUANYuan,etal.Characterizingflowsinlargewirelessdatanetworks[C]//Proceedingsofthe10thannualinternationalconferenceonMobileComputingandNetworking.Philadelphia,PA,USA:ACM,2004:174-186.
[8]HENDERSONT,KOTZD,ABYZOVI.Thechangingusageofamaturecampus-widewirelessnetwork[C]//Proceedingsofthe10thannualinternationalconferenceonMobileComputingandNetworking.Philadelphia,PA,USA:ACM,2004:187-201.
[9]CHENX,JINR,SUHK,etal.NetworkperformanceofsmartmobilehandheldsinauniversitycampusWiFinetwork[C]//Proceedingsofthe2012InternetMeasurementConference.Boston,USA:ACM,2012:315-328.
[10]JARDOSHAP,RAMACHANDRANKN,ALMEROTHKC,etal.UnderstandingcongestioninIEEE802.11bwirelessnetworks[C]//Proceedingsofthe5thACMSIGCOMMconferenceonInternetMeasurement.Berkeley,CA,USA:Dblp,2005:279-292.
[11]YIAKOUMISY,BANSALM,COVINGTONA,etal.BeHop:AtestbedfordenseWiFinetworks[J].ACMSigmobileMobileComputingandCommunicationsReview,2015,18(3):71-80.
[12]HAGOSDH,ENGELSTADPE,YAZIDIA,etal.AmachinelearningapproachtoTCPstatemonitoringfrompassivemeasurements[C]//2018WirelessDays(WD).Dubai,UnitedArabEmirates:IEEE,2018:164-171.