• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      軟件定義網(wǎng)絡(luò)的測(cè)量方法研究*

      2019-07-08 08:55:24周余陽(yáng)
      軟件學(xué)報(bào) 2019年6期
      關(guān)鍵詞:交換機(jī)報(bào)文鏈路

      戴 冕, 程 光, 周余陽(yáng)

      1(東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 211189)

      2(教育部計(jì)算機(jī)網(wǎng)絡(luò)和信息集成重點(diǎn)實(shí)驗(yàn)室(東南大學(xué)),江蘇 南京 211189)

      測(cè)量技術(shù)是狀態(tài)監(jiān)測(cè)、性能管理、安全防御等網(wǎng)絡(luò)研究工作的基礎(chǔ),在網(wǎng)絡(luò)研究領(lǐng)域具有重要地位.近年來,互聯(lián)網(wǎng)業(yè)務(wù)和應(yīng)用飛速發(fā)展,尤其是高清音、視頻服務(wù)逐漸成為主流,使得網(wǎng)絡(luò)中的數(shù)據(jù)規(guī)模急劇膨脹.由于高速鏈路上的網(wǎng)絡(luò)流量具有實(shí)時(shí)性、連續(xù)性、無界性的特點(diǎn),即網(wǎng)絡(luò)無法復(fù)現(xiàn)已經(jīng)通過的流量,這使得處理算法只能對(duì)網(wǎng)絡(luò)流量進(jìn)行一次計(jì)算,因此,實(shí)時(shí)地處理海量規(guī)模的流量需要大量的計(jì)算和存儲(chǔ)資源,這給網(wǎng)絡(luò)測(cè)量工作帶來了極大的困難[1].

      為了使用有限的計(jì)算和存儲(chǔ)資源對(duì)高速流量進(jìn)行測(cè)量,傳統(tǒng)網(wǎng)絡(luò)測(cè)量研究提出了兩種流量壓縮技術(shù):抽樣技術(shù)和數(shù)據(jù)流技術(shù),通過犧牲一部分測(cè)量精度,壓縮采樣流量的規(guī)模,在高速網(wǎng)絡(luò)測(cè)量研究領(lǐng)域取得了一定的成果.盡管如此,傳統(tǒng)網(wǎng)絡(luò)測(cè)量技術(shù)在實(shí)際應(yīng)用時(shí)受到了很大程度的制約[2].

      · 首先是網(wǎng)絡(luò)設(shè)備的制約,設(shè)備制造商為了提高轉(zhuǎn)發(fā)性能,將設(shè)備的控制邏輯和轉(zhuǎn)發(fā)邏輯緊密耦合在硬件ASIC交換電路和網(wǎng)絡(luò)處理CPU中,導(dǎo)致設(shè)備的可擴(kuò)展性很低[3].由于設(shè)備制造商之間市場(chǎng)競(jìng)爭(zhēng)的原因,設(shè)備的內(nèi)部實(shí)現(xiàn)是完全封閉的,對(duì)用戶只開放有限的接口用于配置和管理,這使得研究人員難以利用現(xiàn)有設(shè)備驗(yàn)證新的測(cè)量架構(gòu)和測(cè)量算法[4];

      · 其次是網(wǎng)絡(luò)架構(gòu)的制約,傳統(tǒng)網(wǎng)絡(luò)是一個(gè)完全的分布式系統(tǒng),每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)只感知相鄰節(jié)點(diǎn)的狀態(tài)信息,然后通過分布式協(xié)議的計(jì)算完成數(shù)據(jù)的轉(zhuǎn)發(fā),測(cè)量人員難以掌握準(zhǔn)確的網(wǎng)絡(luò)全局信息,無法有效地進(jìn)行網(wǎng)絡(luò)的配置和管理工作.

      為突破傳統(tǒng)網(wǎng)絡(luò)封閉的發(fā)展模式,斯坦福大學(xué)Mckeown教授于2008年發(fā)表了基于OpenFlow協(xié)議的新型網(wǎng)絡(luò)原型設(shè)計(jì)的論文,并在2009年正式提出軟件定義網(wǎng)絡(luò)(software defined network,簡(jiǎn)稱SDN)的概念,旨在打破傳統(tǒng)網(wǎng)絡(luò)控制平面和數(shù)據(jù)平面之間的緊耦合,構(gòu)建一個(gè)控制邏輯和轉(zhuǎn)發(fā)邏輯相分離的網(wǎng)絡(luò)架構(gòu)[5].2011年,Mckeown教授聯(lián)合相關(guān)研究者成立了ONF(open networking foundation,開放式網(wǎng)絡(luò)基金會(huì)),負(fù)責(zé)OpenFlow協(xié)議的標(biāo)準(zhǔn)化制定和推廣(最新版本為1.6),極大地推進(jìn)了SDN的標(biāo)準(zhǔn)化工作[6].隨著SDN成為未來互聯(lián)網(wǎng)架構(gòu)和網(wǎng)絡(luò)功能虛擬化(network function virtualization,簡(jiǎn)稱NFV)領(lǐng)域的研究熱點(diǎn),美國(guó)、歐洲、日本相繼在實(shí)驗(yàn)網(wǎng)絡(luò)GENI,Internet2,OFELIA,JGN2plus中開展SDN的部署和研究,IETF,ITU,ETSI等標(biāo)準(zhǔn)化組織開始研究SDN在各自領(lǐng)域的發(fā)展前景和應(yīng)用,以Nicira,Big Switch為代表的新興廠商和Juniper,NEC,HP,IBM等老牌廠商先后發(fā)布了支持 OpenFlow協(xié)議的交換設(shè)備[7,8].2013年,Cisco聯(lián)合 BROCADE,CITRIX,DELL,ERICSSON, HP,INTEL,REDHAT,NEC等公司,與LINUX基金會(huì)合作,成立了OpenDayLight開源組織,旨在廠商之間通過技術(shù)融合的方式共同打造一個(gè)開放、標(biāo)準(zhǔn)的 SDN平臺(tái),推動(dòng) SDN產(chǎn)業(yè)化的進(jìn)程.目前,ODL控制器已經(jīng)發(fā)布到第 8個(gè)版本(Oxygen),組織會(huì)員超過 50個(gè),涵蓋了全球知名的設(shè)備制造商、運(yùn)營(yíng)商、服務(wù)商.到目前位置為止,以O(shè)nix[9],HyperFlow[10],Floodlight,Ryu,ONOS[11],OpenDayLight[12]為代表的控制器和以 Open vSwitch,Microsoft Hyper-V Virtual Switch,Cisco Nexus 1000V Virtual Switch為代表的虛擬SDN交換機(jī)已經(jīng)在云平臺(tái)數(shù)據(jù)中心[13]、5G無線移動(dòng)網(wǎng)絡(luò)[14]、傳感器網(wǎng)絡(luò)[15]、物聯(lián)網(wǎng)[16]中得到了相當(dāng)程度的應(yīng)用[17,18].

      軟件定義網(wǎng)絡(luò)在開放性、透明性、標(biāo)準(zhǔn)性等方面的巨大優(yōu)勢(shì),給網(wǎng)絡(luò)測(cè)量研究工作注入了新活力[19].因此,近年來學(xué)術(shù)界在軟件定義網(wǎng)絡(luò)測(cè)量領(lǐng)域進(jìn)行了大量的研究工作,提出了很多有價(jià)值的測(cè)量架構(gòu)與測(cè)量方法,測(cè)量對(duì)象涉及各個(gè)領(lǐng)域.一些文獻(xiàn)[20-28]綜述了軟件定義網(wǎng)絡(luò)中流量工程和安全防御相關(guān)研究的進(jìn)展,但是其中涉及軟件定義網(wǎng)絡(luò)測(cè)量的相關(guān)篇幅較少,因此,本文分別從測(cè)量架構(gòu)和測(cè)量對(duì)象的角度對(duì)軟件定義網(wǎng)絡(luò)測(cè)量目前的研究成果進(jìn)行了完整和系統(tǒng)的歸納總結(jié),并分析闡述了主要的研究問題和挑戰(zhàn),最后展望了未來的研究方向.

      1 研究背景

      正常運(yùn)行的網(wǎng)絡(luò)由網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)鏈路和網(wǎng)絡(luò)流量組成,從廣義上來說,網(wǎng)絡(luò)測(cè)量是同時(shí)在物理和邏輯的層面對(duì)網(wǎng)絡(luò)每個(gè)組成部分的運(yùn)行狀態(tài)和行為模式進(jìn)行監(jiān)測(cè)和統(tǒng)計(jì),測(cè)量結(jié)果用于指導(dǎo)網(wǎng)絡(luò)管理工作,網(wǎng)絡(luò)測(cè)量與網(wǎng)絡(luò)管理的關(guān)系如圖1所示.

      近年來,隨著硬件監(jiān)測(cè)技術(shù)的不斷成熟,因此當(dāng)前的網(wǎng)絡(luò)測(cè)量研究工作主要集中于對(duì)網(wǎng)絡(luò)實(shí)際流量的分析和檢測(cè),以此來估計(jì)網(wǎng)絡(luò)的運(yùn)行參數(shù).基于流量的測(cè)量方法主要包含兩個(gè)要素:測(cè)量架構(gòu)和測(cè)量對(duì)象,因此,本文就從測(cè)量架構(gòu)和測(cè)量對(duì)象這兩個(gè)角度對(duì)當(dāng)前的軟件定義網(wǎng)絡(luò)測(cè)量研究工作進(jìn)行歸納和分析.

      傳統(tǒng)網(wǎng)絡(luò)測(cè)量技術(shù)由于受到網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)架構(gòu)的制約,測(cè)量架構(gòu)的實(shí)現(xiàn)方式非常有限,因此研究的重點(diǎn)在于流量的采集方法和壓縮手段.

      · 采集方法從類型上可分為主動(dòng)采集和被動(dòng)采集兩種[29].

      ? 主動(dòng)采集是指在網(wǎng)絡(luò)鏈路中注入特定的探測(cè)報(bào)文,然后通過實(shí)時(shí)、連續(xù)地收集探測(cè)報(bào)文在網(wǎng)絡(luò)中的行為數(shù)據(jù)并處理分析來得到所需的測(cè)量信息.這種方法可以測(cè)量網(wǎng)絡(luò)實(shí)時(shí)的行為,但是探測(cè)流量在一定程度上會(huì)增加網(wǎng)絡(luò)負(fù)載;

      ? 被動(dòng)測(cè)量方法通過在網(wǎng)絡(luò)中若干個(gè)預(yù)先設(shè)定的節(jié)點(diǎn)采集數(shù)據(jù),一般由交換機(jī)根據(jù)采集規(guī)則主動(dòng)地向測(cè)量服務(wù)器轉(zhuǎn)發(fā)測(cè)量流量,被動(dòng)測(cè)量不引入額外的流量,可以用于較大規(guī)模流量的采集和分析;

      · 流量壓縮手段主要包括抽樣技術(shù)和數(shù)據(jù)流技術(shù).

      ? 抽樣技術(shù)是從總體流量數(shù)據(jù)中篩選出代表性的子集,通過對(duì)該子集的測(cè)量結(jié)果推斷原始流量的特征信息.NetFlow和SFlow是抽樣技術(shù)中具有代表性的應(yīng)用實(shí)例;

      ? 數(shù)據(jù)流技術(shù)是使用特定的哈希函數(shù)對(duì)報(bào)文進(jìn)行計(jì)算,將原始報(bào)文數(shù)據(jù)映射存儲(chǔ)到 sketch中.sketch是一種專門設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),它利用哈希函數(shù)的性質(zhì),可以用很少的存儲(chǔ)空間保存大量數(shù)據(jù)的統(tǒng)計(jì)特征信息.基于sketch數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)流算法在流量分析領(lǐng)域得到了廣泛應(yīng)用,一般來說,一種sketch結(jié)構(gòu)針對(duì)一種或者幾種流量統(tǒng)計(jì)特征而設(shè)計(jì),常用的sketch結(jié)構(gòu)有Bitmap,Bloom Filter,Count-min sketch,Count sketch等,結(jié)合若干個(gè) sketch可以實(shí)現(xiàn)更加復(fù)雜的流量特征的測(cè)量.基于數(shù)據(jù)流技術(shù)的主要流量分析算法包括流量熵估計(jì)、流量矩陣(traffic matrix,簡(jiǎn)稱TM)估計(jì)、網(wǎng)絡(luò)節(jié)點(diǎn)連接度估計(jì)、流長(zhǎng)分布估計(jì)等.

      軟件定義網(wǎng)絡(luò)在不改變 IP網(wǎng)絡(luò)基礎(chǔ)的前提下重構(gòu)了網(wǎng)絡(luò)控制平面和數(shù)據(jù)平面,一方面使得傳統(tǒng)網(wǎng)絡(luò)測(cè)量技術(shù)中的流量采集方法和壓縮手段可以應(yīng)用在軟件定義網(wǎng)絡(luò)測(cè)量中;另一方面,使得網(wǎng)絡(luò)測(cè)量架構(gòu)的設(shè)計(jì)靈活性大大增加.軟件定義網(wǎng)絡(luò)測(cè)量的優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面.

      1) 測(cè)量控制平面和測(cè)量數(shù)據(jù)平面相分離.在網(wǎng)絡(luò)測(cè)量架構(gòu)中,測(cè)量算法的部署離不開控制平面和數(shù)據(jù)平面的支持,SDN在分離控制平面和數(shù)據(jù)平面的同時(shí),也意味著將測(cè)量控制平面和測(cè)量數(shù)據(jù)平面相分離,這大大增強(qiáng)了測(cè)量架構(gòu)的設(shè)計(jì)靈活性,使得待測(cè)流量的獲取方式、測(cè)量節(jié)點(diǎn)的部署位置、測(cè)量算法的處理流程、測(cè)量結(jié)果的反饋機(jī)制變得更加自由;

      2) 基于OpenFlow協(xié)議的交互機(jī)制.軟件定義網(wǎng)絡(luò)提供了標(biāo)準(zhǔn)的南向協(xié)議OpenFlow用于控制器與交換機(jī)之間的通信,控制器通過 OpenFlow消息下發(fā)測(cè)量流表規(guī)則,查詢報(bào)文統(tǒng)計(jì)信息,交換機(jī)通過OpenFlow異步消息向控制器發(fā)送通知.軟件定義網(wǎng)絡(luò)測(cè)量方法可以充分地利用 OpenFlow協(xié)議消息所攜帶的信息進(jìn)行測(cè)量;

      3) 基于流表規(guī)則的報(bào)文處理機(jī)制.SDN交換機(jī)基于控制器下發(fā)的流表項(xiàng)對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),流表頭域的元組包含了網(wǎng)絡(luò)層和傳輸層的協(xié)議字段,這使得網(wǎng)絡(luò)處理過程扁平化,支持對(duì)流量更加細(xì)粒度的測(cè)量;

      4) 標(biāo)準(zhǔn)的編程接口.SDN控制器支持控制器內(nèi)部擴(kuò)展模塊的開發(fā),同時(shí)提供標(biāo)準(zhǔn)的北向API給上層應(yīng)用使用,這使得測(cè)量應(yīng)用可以快速地開發(fā)和部署;

      5) 與傳統(tǒng)網(wǎng)絡(luò)測(cè)量技術(shù)的兼容性.軟件定義網(wǎng)絡(luò)雖然重構(gòu)了網(wǎng)絡(luò)控制平面和數(shù)據(jù)平面,但是并沒有改變底層的IP協(xié)議,這使得傳統(tǒng)網(wǎng)絡(luò)測(cè)量研究的成果可以應(yīng)用在軟件定義網(wǎng)絡(luò)測(cè)量中,并且結(jié)合 SDN的優(yōu)勢(shì)以更加靈活的方式實(shí)現(xiàn).

      2 軟件定義網(wǎng)絡(luò)測(cè)量架構(gòu)

      測(cè)量架構(gòu)是網(wǎng)絡(luò)測(cè)量的總體閉環(huán)過程,結(jié)合文獻(xiàn)[2],該過程可以分為 3個(gè)主要步驟——流量的采集和預(yù)處理、流量的傳輸和存儲(chǔ)以及流量的分析與反饋.

      1) 流量的采集和預(yù)處理.該步驟是流量測(cè)量過程中最重要的一環(huán),主要包含 4個(gè)問題——采集方法、采集位置、采集頻率和處理格式:采集方法是指流量通過何種方式采集,從類型上可分為主動(dòng)采集和被動(dòng)采集;采集位置代表在網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)進(jìn)行采集;采集頻率代表兩次采集之間的時(shí)間間隔;采集格式代表原始流量經(jīng)過預(yù)處理后的傳輸和存儲(chǔ)格式.由于原始報(bào)文體積較大,一般在處理時(shí)只提取針對(duì)測(cè)量對(duì)象所需的信息,通常是報(bào)文頭部的若干元組或者報(bào)文的固定字節(jié)區(qū)域等;

      2) 流量的傳輸和存儲(chǔ).該步驟包含兩個(gè)方面的問題:一方面是經(jīng)過采集和預(yù)處理后的測(cè)量流量通過何種方式轉(zhuǎn)發(fā)至何處進(jìn)行臨時(shí)存儲(chǔ),另一方面是如何將臨時(shí)存儲(chǔ)的測(cè)量流量發(fā)送至分析服務(wù).不同的傳輸和存儲(chǔ)機(jī)制對(duì)測(cè)量架構(gòu)所占用的帶寬、存儲(chǔ)資源和測(cè)量實(shí)時(shí)性有著較大影響;

      3) 流量的分析和反饋.該步驟根據(jù)測(cè)量對(duì)象選取算法對(duì)流量數(shù)據(jù)進(jìn)行分析處理,獲取所需的流量統(tǒng)計(jì)特征信息,例如流量類型、報(bào)文數(shù)量統(tǒng)計(jì)、流長(zhǎng)統(tǒng)計(jì)、流量熵估計(jì)等.同時(shí),將測(cè)量結(jié)果以實(shí)時(shí)、半實(shí)時(shí)或者離線的方式反饋給網(wǎng)絡(luò)管理者,用于網(wǎng)絡(luò)的優(yōu)化配置.

      結(jié)合傳統(tǒng)高速網(wǎng)絡(luò)測(cè)量方法的評(píng)價(jià)指標(biāo),本文將軟件定義網(wǎng)絡(luò)測(cè)量架構(gòu)的評(píng)價(jià)指標(biāo)定義如下.

      1) 實(shí)時(shí)性.反映測(cè)量架構(gòu)線速地處理分析高速流量數(shù)據(jù)的能力;

      2) 并發(fā)性.反映測(cè)量架構(gòu)同時(shí)執(zhí)行多個(gè)網(wǎng)絡(luò)測(cè)量任務(wù)的能力;

      3) 可擴(kuò)展性.反映測(cè)量架構(gòu)支持多個(gè)種類的測(cè)量任務(wù)的能力;

      4) 準(zhǔn)確性.反映測(cè)量架構(gòu)保障測(cè)量任務(wù)測(cè)量精度的能力;

      5) 復(fù)雜性.可分為計(jì)算復(fù)雜性、存儲(chǔ)復(fù)雜性和通信復(fù)雜性:計(jì)算復(fù)雜性反映測(cè)量架構(gòu)占用控制器中計(jì)算資源的程度,存儲(chǔ)復(fù)雜性反映測(cè)量架構(gòu)占用交換機(jī)存儲(chǔ)資源的程度,通信復(fù)雜性反映測(cè)量架構(gòu)引入的控制器和交換機(jī)之間鏈路開銷的程度.

      這些指標(biāo)在一定程度上存在互相矛盾的關(guān)系,即測(cè)量架構(gòu)針對(duì)某一指標(biāo)性能的優(yōu)化可能導(dǎo)致另一指標(biāo)性能的下降.因此,軟件定義網(wǎng)絡(luò)測(cè)量架構(gòu)研究工作主要圍繞如何平衡上述指標(biāo)之間的關(guān)系,尋求最優(yōu)化的解決方案.本節(jié)基于測(cè)量架構(gòu)所包含的3個(gè)方面對(duì)當(dāng)前的研究工作進(jìn)行歸納總結(jié).

      2.1 流量的采集和預(yù)處理

      軟件定義網(wǎng)絡(luò)測(cè)量中的流量采集方法類似于傳統(tǒng)網(wǎng)絡(luò)的主動(dòng)采集和被動(dòng)采集,可以分為基于查詢的采集方法和基于推送的采集方法.由于SDN交換機(jī)中部署的流表本身記錄流量的基本統(tǒng)計(jì)信息,并且支持SDN控制器通過OpenFlow消息進(jìn)行查詢,所以基于查詢的采集方法就是利用控制器周期性地輪詢交換機(jī)上流級(jí)別的統(tǒng)計(jì)信息.這種方法會(huì)造成一定的網(wǎng)絡(luò)開銷,因此需要對(duì)查詢頻率和測(cè)量精度進(jìn)行平衡.基于推送的采集方法是通過控制器向SDN交換機(jī)下發(fā)測(cè)量流表規(guī)則,將匹配規(guī)則的待測(cè)流量轉(zhuǎn)發(fā)至測(cè)量服務(wù)器.這種方法緩解了控制器的性能壓力,不引入額外流量,但是需要占用交換機(jī)中有限的流表空間,對(duì)交換機(jī)造成一定的額外性能開銷.傳統(tǒng)網(wǎng)絡(luò)測(cè)量一般通過在交換機(jī)上開啟端口鏡像或者部署測(cè)量代理的方式采集流量,成本較高且靈活性較差.軟件定義測(cè)量中可以通過控制器動(dòng)態(tài)地調(diào)整采集位置和采集頻率.在流量的預(yù)處理階段,相較于傳統(tǒng)網(wǎng)絡(luò)測(cè)量一般使用的五元組或七元組過濾規(guī)則,軟件定義網(wǎng)絡(luò)測(cè)量支持流表頭域所包含元組的任意組合的規(guī)則,可以實(shí)現(xiàn)更加特定的流量采集.

      2.1.1 基于流表規(guī)則

      軟件定義網(wǎng)絡(luò)中,控制器通過安全通道來配置、管理交換機(jī),下發(fā)、更新交換機(jī)中部署的流表規(guī)則,交換機(jī)按照流表規(guī)則對(duì)流量進(jìn)行處理(轉(zhuǎn)發(fā)、丟棄、緩存).流表由若干條流表項(xiàng)組成,標(biāo)準(zhǔn)OpenFlow協(xié)議中規(guī)定了流表項(xiàng)包含 3個(gè)部分:頭域(header fields)、統(tǒng)計(jì)域(counters)和動(dòng)作域(actions).其中,頭域定義了報(bào)文的匹配規(guī)則,動(dòng)作域指定了對(duì)匹配報(bào)文的操作,而統(tǒng)計(jì)域則保存了該條流表項(xiàng)所匹配報(bào)文的基本統(tǒng)計(jì)信息.統(tǒng)計(jì)域提供了基于4個(gè)維度(流表、流、接口、隊(duì)列)的統(tǒng)計(jì)信息,該域內(nèi)所有統(tǒng)計(jì)項(xiàng)的值都在SDN交換機(jī)運(yùn)行時(shí)自動(dòng)更新.一些研究工作通過控制器直接獲取交換機(jī)流表中的統(tǒng)計(jì)數(shù)據(jù),并利用這些信息進(jìn)行測(cè)量.OpenTM[30]使用基于查詢的采集方法,利用控制器路由模塊中的路由信息探測(cè)并跟蹤全網(wǎng)絡(luò)的活動(dòng)流量,然后周期性地從流量經(jīng)過的交換機(jī)的流表中逐項(xiàng)查詢并獲取統(tǒng)計(jì)域的信息.Payless[31]通過在控制器中部署測(cè)量模塊,將上層測(cè)量應(yīng)用發(fā)起的測(cè)量任務(wù)解析為對(duì)交換機(jī)流表統(tǒng)計(jì)域的查詢請(qǐng)求.除了直接獲取交換機(jī)提供的標(biāo)準(zhǔn)統(tǒng)計(jì)信息之外,還可以通過控制器主動(dòng)下發(fā)測(cè)量流表規(guī)則來針對(duì)特定的流量進(jìn)行測(cè)量.OpenFlow協(xié)議 1.0版本規(guī)定流表項(xiàng)的匹配域包含十二元組,長(zhǎng)度為250比特.在后續(xù)的更新中,為了擴(kuò)展功能又陸續(xù)加入了元數(shù)據(jù)、MPLS標(biāo)簽、MPLS類型、IPv6、可選字段等,因此,靈活地組合流表項(xiàng)中的匹配域字段可以構(gòu)造更細(xì)粒度的測(cè)量規(guī)則,滿足更加精細(xì)化的測(cè)量需求.SLAM[32]通過主動(dòng)構(gòu)造并下發(fā)測(cè)量流表規(guī)則實(shí)現(xiàn)了端到端的時(shí)延測(cè)量,該方法事先在源交換機(jī)和目的交換機(jī)之間指定報(bào)文的轉(zhuǎn)發(fā)路徑,然后在該路徑上的每個(gè)交換機(jī)中部署測(cè)量流表規(guī)則,控制器下發(fā)符合測(cè)量規(guī)則的探測(cè)報(bào)文,該報(bào)文按照指定路徑轉(zhuǎn)發(fā)時(shí),在沿途的每個(gè)交換機(jī)觸發(fā)帶有時(shí)間戳的異步OpenFlow消息返回至控制器,控制器根據(jù)這些時(shí)間戳來估算鏈路時(shí)延.與 SLAM[32]類似,OpenNetMon[33]預(yù)先在數(shù)據(jù)平面下發(fā)好測(cè)量流表規(guī)則,然后從終端主機(jī)向網(wǎng)絡(luò)中主動(dòng)地發(fā)送探測(cè)報(bào)文,通過在設(shè)定好的網(wǎng)絡(luò)節(jié)點(diǎn)上依次捕獲探測(cè)報(bào)文并解析其中所含的網(wǎng)絡(luò)狀態(tài)信息,判斷端到端的 QoS參數(shù)是否對(duì)每條流正確的生效.OpenMeasure[34]使用基于學(xué)習(xí)的預(yù)測(cè)方法動(dòng)態(tài)地通過控制器更新交換機(jī)測(cè)量流表規(guī)則.典型的基于流表規(guī)則的測(cè)量架構(gòu)如圖2所示.

      2.1.2 基于端口鏡像和代理

      基于流表規(guī)則的流量采集和預(yù)處理方法的優(yōu)點(diǎn)是實(shí)現(xiàn)方便,使用商用SDN交換機(jī)即可部署,不需要額外的軟硬件支持.但是頻繁地操作控制器對(duì)交換機(jī)進(jìn)行查詢會(huì)給控制器和交換機(jī)造成不小的性能壓力,在控制器帶內(nèi)(in band)部署的情況下還會(huì)占用一定的帶寬資源,可能對(duì)網(wǎng)絡(luò)正常的轉(zhuǎn)發(fā)性能產(chǎn)生影響.因此在采集較大規(guī)模的流量時(shí),一些研究工作使用基于端口鏡像或者代理的方法.

      端口鏡像是指交換機(jī)將從一個(gè)端口接收的流量鏡像復(fù)制到另一個(gè)端口中發(fā)送,商用交換機(jī)一般都具備此功能,該方法在不超過端口容量限制的前提下可以實(shí)現(xiàn)線速地轉(zhuǎn)發(fā).PLANCK[35]在商用SDN交換機(jī)中利用端口鏡像技術(shù)將測(cè)量流量轉(zhuǎn)發(fā)至獨(dú)立的測(cè)量服務(wù)器進(jìn)行離線的分析處理,測(cè)量報(bào)文間隔在1Gbps的線速下為280μs~7ms,在10Gbps的線速下為275μs~4ms.

      測(cè)量代理是實(shí)現(xiàn)了特定測(cè)量功能的軟件或者硬件模塊,一般部署在網(wǎng)絡(luò)設(shè)備之上或者作為中間件(middle box)部署在網(wǎng)絡(luò)設(shè)備之間.測(cè)量代理對(duì)經(jīng)過的流量進(jìn)行攔截、修改并重定向,將流量重新引導(dǎo)至測(cè)量服務(wù)器.代理分散了控制器的性能壓力,并且不受控制器本身錯(cuò)誤的影響,但是實(shí)現(xiàn)成本較高,靈活性較低.MicroTE[36]以數(shù)據(jù)中心中的機(jī)架為單位統(tǒng)計(jì)流量信息,用于網(wǎng)絡(luò)全局的路由決策.該方法在數(shù)據(jù)中心的每臺(tái)服務(wù)器上部署代理測(cè)量模塊,將服務(wù)器的流量信息發(fā)送至該機(jī)架的 ToR(top of rack)服務(wù)器,ToR匯總流量后再發(fā)送至控制器.Hone[37]同樣通過部署在主機(jī)上的軟件代理采集流量數(shù)據(jù).OpenSample[38]在數(shù)據(jù)平面使用部署了sFlow代理的OpenFlow交換機(jī),網(wǎng)絡(luò)流量根據(jù)流表中部署的測(cè)量規(guī)則進(jìn)行過濾后,再經(jīng)過sFlow代理抽樣匯總至sFlow流量采集器,提供給上層的流分析器和端口分析器使用.OFRewind[39]以軟件代理的方式串聯(lián)部署在控制平面與數(shù)據(jù)平面之間的控制鏈路中,攔截并修改控制器發(fā)送的控制消息,指導(dǎo)數(shù)據(jù)平面交換機(jī)將所需要的流量轉(zhuǎn)發(fā)至專門的流量存儲(chǔ)服務(wù)器中.Veriflow[40]在控制器和交換機(jī)之間部署代理服務(wù)器,對(duì)控制器和交換機(jī)之間雙向通信的每條OpenFlow控制消息進(jìn)行檢測(cè),在每條OpenFlow轉(zhuǎn)發(fā)規(guī)則下發(fā)時(shí)檢測(cè)網(wǎng)絡(luò)的一致性沖突,判斷該次更新是否會(huì)產(chǎn)生網(wǎng)絡(luò)異常.NetSight[41]在控制器和交換機(jī)之間部署代理服務(wù)器,通過修改控制消息在網(wǎng)絡(luò)中的每臺(tái)交換上增加處理探測(cè)報(bào)文的規(guī)則.典型的基于代理的測(cè)量架構(gòu)如圖3所示.

      2.1.3 基于可編程SDN交換機(jī)

      在基于商用 SDN交換機(jī)實(shí)現(xiàn)的軟件定義網(wǎng)絡(luò)測(cè)量架構(gòu)研究之外,一些文獻(xiàn)開始研究對(duì)測(cè)量數(shù)據(jù)平面進(jìn)行改造,結(jié)合抽樣技術(shù)和數(shù)據(jù)流技術(shù)在數(shù)據(jù)平面部署測(cè)量機(jī)制和算法,以實(shí)現(xiàn)更加復(fù)雜的測(cè)量架構(gòu).為了對(duì) SDN交換機(jī)的數(shù)據(jù)平面進(jìn)行改造,這些研究工作使用可編程網(wǎng)絡(luò)設(shè)備進(jìn)行組網(wǎng)驗(yàn)證.可編程網(wǎng)絡(luò)設(shè)備分為軟件和硬件兩種實(shí)現(xiàn):軟件實(shí)現(xiàn)目前以虛擬交換機(jī)Open vSwitch為代表,硬件實(shí)現(xiàn)主要以高性能可重構(gòu)硬件FPGA作為核心進(jìn)行編程改造.基于虛擬SDN交換機(jī)實(shí)現(xiàn)的測(cè)量架構(gòu)開發(fā)和部署較為方便,可以在較大規(guī)模的網(wǎng)絡(luò)環(huán)境中進(jìn)行驗(yàn)證.基于硬件SDN交換機(jī)實(shí)現(xiàn)的測(cè)量架構(gòu)由于可以充分利用高速TCAM存儲(chǔ)器和SRAM存儲(chǔ)器,可以達(dá)到較高的性能.

      基于可編程 SDN交換機(jī)實(shí)現(xiàn)的流量采集和預(yù)處理方法的核心思想是直接在交換機(jī)數(shù)據(jù)平面報(bào)文處理流程中部署過濾、抽樣和哈希算法,直接對(duì)原始流量進(jìn)行處理.vPROM[42]基于改造的Open vSwitch(UMON[43])設(shè)計(jì)了測(cè)量系統(tǒng),它對(duì)OpenFlow協(xié)議進(jìn)行了擴(kuò)展,使得RYU控制器可以直接控制UMON交換機(jī),部署在控制器中的Pyretic模塊將上層測(cè)量應(yīng)用解析為流表規(guī)則下發(fā)至交換機(jī)進(jìn)行流量采集.iSTAMP[44]使用硬件高速TCAM存儲(chǔ)器對(duì)流量進(jìn)行采集和預(yù)處理,由于交換機(jī)中的TCAM容量相當(dāng)有限,無法對(duì)每條流進(jìn)行統(tǒng)計(jì),因此iSTAMP將TCAM分為兩部分:一部分用于流量的聚合,測(cè)量聚合后流量的統(tǒng)計(jì)信息,同時(shí)標(biāo)記被認(rèn)為帶有重要信息的流量;另一部分用于流量的解聚合,將被標(biāo)記的特定流從流量聚合中還原出來單獨(dú)進(jìn)行測(cè)量.OpenSketch[45]在基于NetFPGA實(shí)現(xiàn)的可編程SDN交換機(jī)中部署了哈希-分類-計(jì)數(shù)的三級(jí)數(shù)據(jù)處理管道:第1級(jí)管道提供多種哈希算法用于壓縮存儲(chǔ)流量數(shù)據(jù),第2級(jí)管道使用TCAM中的通配符規(guī)則對(duì)流量進(jìn)行分類,第3級(jí)管道使用SRAM作為計(jì)數(shù)器統(tǒng)計(jì)流量信息.Yu等人[46]在數(shù)據(jù)平面部署了一個(gè)兩級(jí)的過濾算法,并將處理后的報(bào)文存放在Bloom Filter中.Wellem等人[47-51]基于NetFPGA實(shí)現(xiàn)了可編程SDN交換機(jī)的原型系統(tǒng)并進(jìn)行了大量的相關(guān)研究工作,在數(shù)據(jù)平面實(shí)現(xiàn)了解析-哈希-緩存-計(jì)數(shù)的報(bào)文處理流程,支持10Gbps線速下的實(shí)時(shí)測(cè)量.Dai[52]基于FPGA實(shí)現(xiàn)的可編程SDN交換機(jī)FAST設(shè)計(jì)了網(wǎng)絡(luò)拓?fù)浜蛨?bào)文路徑的檢測(cè)方法,該方法在數(shù)據(jù)平面部署哈希函數(shù)對(duì)探測(cè)報(bào)文的頭部進(jìn)行計(jì)算,并將報(bào)文的路徑信息存放在SRAM中.典型的基于可編程SDN交換機(jī)的測(cè)量架構(gòu)如圖4所示.

      2.2 流量的傳輸和存儲(chǔ)

      傳統(tǒng)網(wǎng)絡(luò)測(cè)量由于設(shè)備的封閉性,待測(cè)流量一般通過代理轉(zhuǎn)發(fā)或鏡像轉(zhuǎn)發(fā)至獨(dú)立的測(cè)量服務(wù)器進(jìn)行存儲(chǔ).軟件定義網(wǎng)絡(luò)測(cè)量方法中一方面可以通過標(biāo)準(zhǔn)的OpenFlow同步和異步消息將測(cè)量流量傳輸至控制器;另一方面,一些研究工作對(duì)可編程SDN軟硬件交換機(jī)的數(shù)據(jù)平面進(jìn)行改造,將少量測(cè)量結(jié)果的統(tǒng)計(jì)數(shù)據(jù)保存在數(shù)據(jù)平面,通過犧牲一定的可擴(kuò)展性提高測(cè)量速率.

      2.2.1 基于OpenFlow協(xié)議

      軟件定義網(wǎng)絡(luò)中控制器和交換機(jī)之間通過OpenFlow協(xié)議進(jìn)行交互,控制器向交換機(jī)發(fā)送的消息類型包括Features,Configuration,Modify-State,Read-State,Send-Packet和 Barrier,交換機(jī)向控制器主動(dòng)發(fā)起的異步消息類型包括 Packet-in,Flow-Removed,Port-State和 Error.其中,與網(wǎng)絡(luò)測(cè)量相關(guān)的消息類型主要是 Read-State,Send-Packet,Packet-in和Flow-Removed.控制器通過Read-State消息獲取交換機(jī)中的流量統(tǒng)計(jì)信息,發(fā)送Stat-Request請(qǐng)求通知交換機(jī),交換機(jī)將流表統(tǒng)計(jì)域中存儲(chǔ)的計(jì)數(shù)值通過 Stats_Reply消息返回至控制器,OpenFlow1.0協(xié)議中原生的SSR(single stat-request)請(qǐng)求,可以獲取一條特定流的統(tǒng)計(jì)信息.Send-Packet消息用于控制器向指定交換機(jī)的指定端口發(fā)送報(bào)文,在主動(dòng)發(fā)送探測(cè)報(bào)文的測(cè)量架構(gòu)中,不但可以從主機(jī)向網(wǎng)絡(luò)中注入探測(cè)流量,還可以利用這一消息操作控制器向網(wǎng)絡(luò)中注入探測(cè)流量.Packet-in消息是當(dāng)交換機(jī)接收到的報(bào)文無法在流表中查詢到匹配項(xiàng)時(shí)向控制器發(fā)送的事件消息,消息中包含報(bào)文的頭部信息.Flow-Removed消息是當(dāng)交換機(jī)流表中某一流表項(xiàng)因長(zhǎng)期無報(bào)文匹配而觸發(fā)超時(shí)時(shí)向控制器發(fā)送的事件消息.Openflow1.5版本中加入了FEST(flow entry statistics trigger)功能,可以在流表統(tǒng)計(jì)域中設(shè)置閾值,當(dāng)統(tǒng)計(jì)值超過閾值時(shí),觸發(fā)交換機(jī)向控制器發(fā)送異步事件消息.

      通過 OpenFlow協(xié)議消息,可以方便地在控制器和交換機(jī)之間傳輸測(cè)量數(shù)據(jù),并且具有較好的實(shí)時(shí)性.文獻(xiàn)[30,31,33,53]利用Read-State消息從交換機(jī)獲取流量統(tǒng)計(jì)信息,CeMon[53]對(duì)在控制器分布式部署的環(huán)境下,Stat-Request查詢請(qǐng)求聚合的方法進(jìn)行了研究.文獻(xiàn)[32,54-56]利用交換機(jī)主動(dòng)發(fā)送的異步消息來進(jìn)行測(cè)量.Wang等人[57]結(jié)合了監(jiān)聽FEST消息、監(jiān)聽Flow-Removed消息、主動(dòng)查詢這3種方式,使用可編程SDN交換機(jī)NetMagic獲取流量信息.Flowsense[54]持續(xù)地監(jiān)聽交換機(jī)和控制器之間交互的PacketIn消息和FlowRemoved消息,根據(jù)這兩條消息的時(shí)間戳得到一條流在網(wǎng)絡(luò)中的持續(xù)時(shí)間.SLAM[32]和 SDNtraceroute[55]主動(dòng)向網(wǎng)絡(luò)中發(fā)送探測(cè)報(bào)文,利用探測(cè)報(bào)文經(jīng)過每一跳交換機(jī)返回的PacketIn消息進(jìn)行測(cè)量,SLAM記錄報(bào)文經(jīng)過每一跳的時(shí)間戳用于鏈路時(shí)延的估計(jì),SDNtraceroute記錄報(bào)文的真實(shí)轉(zhuǎn)發(fā)路徑.Suárez-Varela等人[56]根據(jù)交換機(jī)發(fā)送的FlowRemoved事件消息來觸發(fā)控制器對(duì)該條流的統(tǒng)計(jì)值的查詢.

      2.2.2 基于數(shù)據(jù)平面sketch

      基于可編程SDN交換機(jī)實(shí)現(xiàn)的測(cè)量架構(gòu)研究一般將預(yù)處理后的流量數(shù)據(jù)以sketch結(jié)構(gòu)的格式緩存在數(shù)據(jù)平面內(nèi)存或 SRAM存儲(chǔ)器中,在每個(gè)測(cè)量周期結(jié)束后將緩存數(shù)據(jù)發(fā)送至控制器進(jìn)行分析.一些研究工作還在可編程SDN交換機(jī)中部署了協(xié)議適配層,將自定義的控制協(xié)議與OpenFlow協(xié)議進(jìn)行適配和擴(kuò)展,使得改造后的交換機(jī)可以通過OpenFlow協(xié)議進(jìn)行管理.

      Wellem等[47,48,51]分別針對(duì)超點(diǎn)(Superspreader)檢測(cè)、變化(Heavy Change)檢測(cè)和大流(Heavy Hitter)檢測(cè)在數(shù)據(jù)平面設(shè)計(jì)了基于 sketch數(shù)據(jù)結(jié)構(gòu)的報(bào)文處理結(jié)構(gòu),該結(jié)構(gòu)組合了緩存隊(duì)列和多種 sketch,實(shí)現(xiàn)了在較高線速下流量的實(shí)時(shí)處理.JOTA[58]和 SCREAM[59]討論了如何通過動(dòng)態(tài)資源調(diào)度的方式利用數(shù)據(jù)平面有限的TCAM 和 SRAM 資源實(shí)現(xiàn)不同類型測(cè)量任務(wù)的并發(fā)執(zhí)行,并保證一定的精度,測(cè)量架構(gòu)使用了包括 PCSA sketch、Count-min sketch、HyperLogLog sketch在內(nèi)的多種sketch數(shù)據(jù)結(jié)構(gòu)進(jìn)行了驗(yàn)證.SketchVisor[60]基于虛擬交換機(jī) Open vSwitch設(shè)計(jì)了基于 sketch的數(shù)據(jù)平面,并對(duì)目前主流的 sketch數(shù)據(jù)結(jié)構(gòu)(FlowRadar[61],RevSketch[62],UnivMon[63],Deltoid[64],OpenSketch[45],FM[65],kMin[66],Linear Counting[67],MRAC[68])進(jìn)行了驗(yàn)證.OpenSketch[45]在數(shù)據(jù)平面部署了一個(gè)測(cè)量庫(kù),其中包含了多種哈希算法和sketch數(shù)據(jù)結(jié)構(gòu),提供了API來支持不同測(cè)量任務(wù)的開發(fā)和部署,使用這個(gè)測(cè)量庫(kù)可以自動(dòng)的為不同的sketch配置數(shù)據(jù)平面管道并且分配相應(yīng)的交換機(jī)資源使得任務(wù)達(dá)到最大的精度.UnivMon[63]在數(shù)據(jù)平面使用多個(gè)Count sketch數(shù)據(jù)結(jié)構(gòu)對(duì)測(cè)量數(shù)據(jù)進(jìn)行并行抽樣計(jì)算,支持多種測(cè)量算法.

      2.3 流量的分析和反饋

      傳統(tǒng)網(wǎng)絡(luò)測(cè)量中需要部署獨(dú)立的測(cè)量服務(wù)器對(duì)待測(cè)流量進(jìn)行離線地分析,網(wǎng)絡(luò)管理者根據(jù)測(cè)量結(jié)果人為地調(diào)整網(wǎng)絡(luò)配置.軟件定義網(wǎng)絡(luò)測(cè)量中,由于軟件定義網(wǎng)絡(luò)采用中心管控的架構(gòu),網(wǎng)絡(luò)中的所有交換機(jī)都可以通過控制器進(jìn)行集中地配置和管理.在待測(cè)流量較小、實(shí)時(shí)性要求較高的測(cè)量任務(wù)中,可以通過在控制器中部署擴(kuò)展模塊,利用監(jiān)聽程序直接獲取測(cè)量數(shù)據(jù)并分析,測(cè)量結(jié)果實(shí)時(shí)反饋至控制器對(duì)網(wǎng)絡(luò)配置進(jìn)行調(diào)整.在對(duì)實(shí)時(shí)性要求相對(duì)較低的半實(shí)時(shí)測(cè)量任務(wù)中,可以在控制器北向部署測(cè)量應(yīng)用通過北向 API與控制器交互進(jìn)行更大規(guī)模流量的測(cè)量分析.測(cè)量模塊主要基于控制器部署,根據(jù)應(yīng)用場(chǎng)景的不同可分為兩種部署方式.

      · 一種方式是作為擴(kuò)展模塊部署在控制器內(nèi)部,此方式需要修改和擴(kuò)展控制器程序,開發(fā)難度較大.優(yōu)點(diǎn)在于部署在控制器內(nèi)部的測(cè)量模塊可以監(jiān)聽控制器發(fā)送和接收的全部流量,并接管控制器內(nèi)部的處理流程,調(diào)用控制器發(fā)送和接收控制 OpenFlow消息和測(cè)量數(shù)據(jù),適用于實(shí)時(shí)性較高的測(cè)量任務(wù).文獻(xiàn)[30,31,33,54]通過在控制器中部署測(cè)量模塊的方式實(shí)現(xiàn),其中,Payless[31]在 FloodLight控制器中以RESTAPI的形式編寫了上層服務(wù)接口,支持用戶自定義的測(cè)量構(gòu)件,測(cè)量任務(wù)使用 JSON格式的文件來定義,交換機(jī)反饋的統(tǒng)計(jì)信息匯總到控制器進(jìn)行處理,為上層應(yīng)用提供一個(gè)抽象的網(wǎng)絡(luò)信息視圖;

      · 在控制器內(nèi)部部署擴(kuò)展模塊的方式會(huì)對(duì)控制器性能造成一定影響,同時(shí)受到控制器有限的計(jì)算資源和存儲(chǔ)資源的顯示,因此涉及較大規(guī)模流量、較為復(fù)雜算法的測(cè)量任務(wù)通常使用另一種部署方式,這種方式中,測(cè)量模塊部署在控制器之上的應(yīng)用層,通過北向 API與控制器進(jìn)行交互,這種方式一般用于半實(shí)時(shí)的測(cè)量結(jié)果反饋(通常以一個(gè)測(cè)量周期為單位).文獻(xiàn)[56,58,59,69,70]將多種較為復(fù)雜的流量檢測(cè)算法部署在控制器之上的應(yīng)用層,在每個(gè)測(cè)量周期結(jié)束后通過控制器獲取網(wǎng)絡(luò)中所有交換機(jī)數(shù)據(jù)平面中的 sketch數(shù)據(jù)進(jìn)行分析處理.測(cè)量結(jié)果反饋到控制器,指導(dǎo)下一個(gè)測(cè)量周期內(nèi)交換機(jī)測(cè)量參數(shù)的配置.

      3 軟件定義網(wǎng)絡(luò)測(cè)量對(duì)象

      測(cè)量對(duì)象一般可分為網(wǎng)絡(luò)狀態(tài)參數(shù)、網(wǎng)絡(luò)性能參數(shù)和網(wǎng)絡(luò)流量參數(shù):網(wǎng)絡(luò)狀態(tài)參數(shù)包含網(wǎng)絡(luò)節(jié)點(diǎn)的配置信息、網(wǎng)絡(luò)鏈路的狀態(tài)信息以及網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),是網(wǎng)絡(luò)的基本參數(shù);網(wǎng)絡(luò)性能參數(shù)包括鏈路吞吐率、鏈路丟包率和鏈路時(shí)延等,該參數(shù)對(duì)測(cè)量的實(shí)時(shí)性要求較高,反映網(wǎng)絡(luò)的瞬時(shí)運(yùn)行狀態(tài);網(wǎng)絡(luò)流量參數(shù)一般通過對(duì)一定周期內(nèi)的網(wǎng)絡(luò)流量進(jìn)行收集分析獲得,是一個(gè)統(tǒng)計(jì)參數(shù),例如報(bào)文數(shù)量統(tǒng)計(jì)、流長(zhǎng)統(tǒng)計(jì)等,對(duì)流量參數(shù)進(jìn)行深入挖掘可以獲得網(wǎng)絡(luò)潛在的信息.

      3.1 網(wǎng)絡(luò)運(yùn)行狀態(tài)

      網(wǎng)絡(luò)運(yùn)行狀態(tài)包含拓?fù)浣Y(jié)構(gòu)、鏈路狀態(tài)、控制邏輯等,對(duì)其進(jìn)行測(cè)量的主要目的是監(jiān)測(cè)網(wǎng)絡(luò)運(yùn)行時(shí)的相關(guān)指標(biāo)和行為,及時(shí)地發(fā)現(xiàn)網(wǎng)絡(luò)異常和故障,確保網(wǎng)絡(luò)運(yùn)行在正確狀態(tài).

      3.1.1 故障檢測(cè)

      SDN控制器通過LLDP協(xié)議來探測(cè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),控制器將LLDP報(bào)文作為Packet-out消息發(fā)送至全網(wǎng)的交換機(jī),SDN交換機(jī)收到報(bào)文后將其轉(zhuǎn)發(fā)至所有相鄰的交換機(jī),相鄰交換機(jī)收到報(bào)文后,會(huì)以Packet-in的形式傳回控制器.這樣,控制器就得到了所有交換機(jī)的相鄰信息,并以此構(gòu)建出整個(gè)網(wǎng)絡(luò)拓?fù)?當(dāng)網(wǎng)絡(luò)因?yàn)楣收蠈?dǎo)致拓?fù)浣Y(jié)構(gòu)和鏈路狀態(tài)發(fā)生改變時(shí),需要通過測(cè)量手段及時(shí)的定位故障.OFRewind[39]在控制器和交換機(jī)之間部署了流量記錄與流量重放模塊:流量記錄模塊控制交換機(jī)將測(cè)量流量轉(zhuǎn)發(fā)至流量存儲(chǔ)服務(wù)器中,流量重放模塊控制流量存儲(chǔ)服務(wù)器將流量數(shù)據(jù)重新注入到網(wǎng)絡(luò)中.通過這種方式,該方法可以在全網(wǎng)絡(luò)范圍內(nèi)復(fù)現(xiàn)網(wǎng)絡(luò)流量,方便故障診斷工作的定位.Zeng等人[71]提出了一種自動(dòng)化測(cè)試報(bào)文生成工具——ATPG(automatic test packet generation),ATPG通過讀取路由配置文件生成設(shè)備無關(guān)的模型.該模型被用來生成最小的測(cè)試報(bào)文集,生成的測(cè)試報(bào)文最少測(cè)試網(wǎng)絡(luò)中的每條鏈路,最多測(cè)試網(wǎng)絡(luò)中的每條規(guī)則.ATPG的目標(biāo)是檢測(cè)靜態(tài)狀態(tài)的故障,但是該方法不能檢測(cè)動(dòng)態(tài)變化網(wǎng)絡(luò)中的故障.Kempf等人[72]實(shí)現(xiàn)了一個(gè)可擴(kuò)展的故障管理系統(tǒng),通過控制器向邏輯上的組端口發(fā)送探測(cè)報(bào)文來檢測(cè)網(wǎng)絡(luò)故障.

      3.1.2 邏輯一致性檢測(cè)

      網(wǎng)絡(luò)控制邏輯和轉(zhuǎn)發(fā)邏輯一致性是指數(shù)據(jù)平面在對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)的過程中,完全按照控制器下發(fā)的規(guī)則執(zhí)行正確的行為.在軟件定義網(wǎng)絡(luò)中,盡管數(shù)據(jù)平面得到了簡(jiǎn)化,但是控制平面存在很高的軟件復(fù)雜度.盡管控制平面掌握網(wǎng)絡(luò)的全局信息,將高層的控制平面邏輯描述解析成為低層的數(shù)據(jù)平面轉(zhuǎn)發(fā)行為,對(duì)數(shù)據(jù)平面進(jìn)行統(tǒng)一地調(diào)度部署,理論上可以保證網(wǎng)絡(luò)配置策略的一致性,但是也存在一定的隱患.控制平面部署的多個(gè) SDN應(yīng)用并發(fā)執(zhí)行時(shí),下發(fā)的流表規(guī)則可能發(fā)生潛在的邏輯沖突,或者當(dāng)控制器和交換機(jī)內(nèi)部發(fā)生一些錯(cuò)誤時(shí),可能會(huì)導(dǎo)致控制平面的轉(zhuǎn)發(fā)邏輯與數(shù)據(jù)平面的實(shí)際行為不一致,而控制器本身并不能對(duì)這一情況進(jìn)行感知.為了對(duì)這樣的故障進(jìn)行檢測(cè),就需要對(duì)數(shù)據(jù)平面的真實(shí)行為進(jìn)行測(cè)量.Veriflow[40]設(shè)計(jì)了面向 SDN 網(wǎng)絡(luò)的實(shí)時(shí)一致性檢測(cè)工具,它對(duì)控制器和交換機(jī)之間雙向通信的每條OpenFlow控制消息進(jìn)行檢測(cè),通過圖搜索技術(shù)結(jié)合網(wǎng)絡(luò)拓?fù)鋪眚?yàn)證網(wǎng)絡(luò)中的不變量,只有當(dāng)不變量成立時(shí)才將流表規(guī)則下發(fā)至網(wǎng)絡(luò)設(shè)備,從而保證下發(fā)規(guī)則的正確性.VeriFlow根據(jù)最長(zhǎng)前綴匹配規(guī)則將全網(wǎng)報(bào)文基于目的 IP地址進(jìn)行分類,無論是轉(zhuǎn)發(fā)規(guī)則的插入、更新或是刪除,一次規(guī)則檢測(cè)只會(huì)影響到以一個(gè)前綴為目的地址的報(bào)文.通過這種方式,在平均每條流表規(guī)則的下發(fā)間隔小于10ms的SDN網(wǎng)絡(luò)中,VeriFlow可以在數(shù)百毫秒的時(shí)間內(nèi)完成驗(yàn)證.

      對(duì)報(bào)文在網(wǎng)絡(luò)中的真實(shí)轉(zhuǎn)發(fā)路徑進(jìn)行測(cè)量,也是檢測(cè)控制平面與數(shù)據(jù)平面邏輯一致性的有效手段.NetSight[41]通過主動(dòng)發(fā)送探測(cè)報(bào)文的方式檢測(cè)報(bào)文在網(wǎng)絡(luò)中的真實(shí)路徑,它在網(wǎng)絡(luò)中的每臺(tái)交換機(jī)上部署處理探測(cè)報(bào)文的流表規(guī)則.當(dāng)探測(cè)報(bào)文經(jīng)過網(wǎng)絡(luò)中每一跳交換機(jī)時(shí),除了被正常轉(zhuǎn)發(fā)之外,還將事件記錄作為一個(gè)postcard發(fā)送至專門的測(cè)量服務(wù)器,每個(gè)postcard包含報(bào)文頭、交換機(jī)ID、出端口、交換機(jī)狀態(tài).測(cè)量服務(wù)器通過將所有postcard與網(wǎng)絡(luò)的拓?fù)湫畔⑾嘟Y(jié)合,就可以重建出報(bào)文的實(shí)際路徑.CherryPick[73]通過將路徑信息存放在報(bào)文頭部中來測(cè)量報(bào)文路徑,它利用數(shù)據(jù)中心網(wǎng)絡(luò)中 Fat-Tree拓?fù)浣Y(jié)構(gòu)的性質(zhì),通過邊緣著色算法對(duì)網(wǎng)絡(luò)中非必要的鏈路進(jìn)行刪減,有效地減少了交換機(jī)中所需部署的測(cè)量規(guī)則的數(shù)量以及報(bào)文頭部的空間占用,同時(shí)保證報(bào)文路徑的正確恢復(fù).SDNtraceroute[55]充分利用了軟件定義網(wǎng)絡(luò)中控制平面和數(shù)據(jù)平面交互的實(shí)時(shí)性,通過在網(wǎng)絡(luò)中所有交換機(jī)上部署測(cè)量規(guī)則,使得探測(cè)流量每經(jīng)過一個(gè)交換機(jī)都通過 PacketIn消息發(fā)送回控制器.控制器解析探測(cè)報(bào)文中的路徑信息,對(duì)其作一定修改再重新下發(fā)回網(wǎng)絡(luò)中.這樣,控制器根據(jù)探測(cè)報(bào)文每一跳的信息可以容易地重建其真實(shí)的轉(zhuǎn)發(fā)路徑.Dai[52]基于FPGA實(shí)現(xiàn)的SDN交換機(jī)FAST設(shè)計(jì)了檢測(cè)網(wǎng)絡(luò)拓?fù)浜蛨?bào)文路徑的測(cè)量方法,該方法通過在FAST中添加3條流表規(guī)則,對(duì)探測(cè)報(bào)文進(jìn)行匹配處理.FAST中部署的哈希函數(shù)對(duì)探測(cè)報(bào)文的頭部信息進(jìn)行計(jì)算,并將計(jì)算結(jié)果作為 SRAM索引地址,然后將相關(guān)的路徑信息存入相應(yīng)的內(nèi)存空間.控制器中部署相同的哈希函數(shù),計(jì)算得到探測(cè)報(bào)文在SRAM中的存放地址,根據(jù)該地址收集報(bào)文的全部路徑信息.該測(cè)量機(jī)制支持一定規(guī)模的并發(fā)路徑探測(cè)任務(wù).

      3.2 網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能

      網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能一般通過3個(gè)指標(biāo)反映——吞吐量、丟包率和時(shí)延.

      1) 吞吐量分為端口吞吐量和鏈路吞吐量,是指端口、鏈路在單位時(shí)間內(nèi)成功傳送數(shù)據(jù)的數(shù)量.其中,端口吞吐量測(cè)量的基本方法是:由控制器向交換機(jī)發(fā)送 ofp_port_stats_request消息,查詢交換機(jī)中的端口統(tǒng)計(jì)信息,交換機(jī)返回ofp_port_stats消息,通過對(duì)其中的rx_bytes和tx_bytes數(shù)值進(jìn)行計(jì)算得出.鏈路吞吐量由構(gòu)成鏈路的兩個(gè)端口的吞吐量決定,其值等于二者中的較小者;

      2) 丟包率是通過鏈路兩端的報(bào)文數(shù)量之差與源端報(bào)文總數(shù)之比.測(cè)量丟包率的基本方法是:分別在t1時(shí)刻和t2時(shí)刻通過控制器發(fā)送ofp_port_stats_request消息,獲取鏈路兩端交換機(jī)端口的發(fā)送報(bào)文數(shù)目和接收?qǐng)?bào)文數(shù)目.假設(shè)t1時(shí)刻和t2時(shí)刻sw1交換機(jī)port2端口發(fā)送報(bào)文數(shù)量差值為(Δtx_packets),sw2交換機(jī)port1端口接收?qǐng)?bào)文數(shù)量差值為(Δrx_packets),則鏈路((sw1,port2),(sw2,port1))在(sw1,sw2)方向的丟包率為:(Δtx_packets-Δrx_packets)/Δtx_packets;

      3) 數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中的時(shí)延由兩部分組成:鏈路傳播時(shí)延和交換機(jī)處理時(shí)延.鏈路傳播時(shí)延是指數(shù)據(jù)報(bào)文在交換機(jī)連接介質(zhì)上進(jìn)行傳輸所花費(fèi)的時(shí)間,由傳輸介質(zhì)的物理性質(zhì)決定;交換機(jī)處理時(shí)延是數(shù)據(jù)報(bào)文經(jīng)過交換機(jī)時(shí)所花費(fèi)的時(shí)間,在SDN交換機(jī)中處理時(shí)延由3部分組成:查找時(shí)延、轉(zhuǎn)發(fā)時(shí)延和控制時(shí)延.查找時(shí)延是新報(bào)文到達(dá)時(shí),交換機(jī)查找流表匹配項(xiàng)所花費(fèi)的時(shí)間;轉(zhuǎn)發(fā)時(shí)延是交換機(jī)將報(bào)文從入端口遷移到出端口所花費(fèi)的時(shí)間,報(bào)文在出端口發(fā)送隊(duì)列停留的時(shí)間受隊(duì)列中的報(bào)文數(shù)量和優(yōu)先級(jí)影響;控制時(shí)延是當(dāng)新報(bào)文在交換機(jī)流表中查詢不到匹配項(xiàng)時(shí),交換機(jī)向控制器請(qǐng)求下發(fā)新流表項(xiàng)所花費(fèi)的時(shí)間.

      Flowsense[54]是一個(gè)基于推送的被動(dòng)測(cè)量方法,它利用交換機(jī)主動(dòng)向控制器發(fā)送的 PacketIn消息和FlowRemoved消息中攜帶的信息計(jì)算鏈路的吞吐率.Flowsense的優(yōu)勢(shì)在于其較低的測(cè)量開銷,但是由于被動(dòng)方式采集到的信息時(shí)間點(diǎn)較為離散,對(duì)于持續(xù)時(shí)間較長(zhǎng)的流進(jìn)行測(cè)量時(shí)精度較低.SLAM[32]在網(wǎng)絡(luò)中任意交換機(jī)之間測(cè)量時(shí)延,測(cè)量架構(gòu)包含4個(gè)模塊:規(guī)則生成器、流量生成器、流量監(jiān)聽器和實(shí)驗(yàn)估計(jì)器.測(cè)量分為3個(gè)步驟:首先指定端到端的轉(zhuǎn)發(fā)路徑,在路徑上的每個(gè)交換機(jī)上部署測(cè)量流表規(guī)則;然后,控制器下發(fā)探測(cè)報(bào)文,探測(cè)報(bào)文每經(jīng)過一個(gè)交換機(jī)會(huì)觸發(fā)一個(gè)packet_in消息發(fā)送至控制器;最后,控制器根據(jù)每個(gè)packet_in消息的時(shí)間戳來估算時(shí)延.SLAM通過Statistics_Request消息和Statistics_Reply消息消除了控制時(shí)延帶來的誤差,但是沒有考慮查找時(shí)延和轉(zhuǎn)發(fā)時(shí)延,因此測(cè)量精度會(huì)受到交換機(jī)本身性能和負(fù)載的影響.PLANCK[35]通過跟蹤TCP報(bào)文的序列號(hào)和接收時(shí)間來計(jì)算 TCP流的吞吐量,然后將一條鏈路上所有流的吞吐量相疊加來計(jì)算鏈路利用率.OpenNetMon[33]設(shè)計(jì)了一個(gè) SDN網(wǎng)絡(luò)性能測(cè)量系統(tǒng),根據(jù)在預(yù)設(shè)網(wǎng)絡(luò)節(jié)點(diǎn)上查詢到的探測(cè)報(bào)文信息持續(xù)地估算網(wǎng)絡(luò)的性能參數(shù),具體的計(jì)算方式為:對(duì)流量轉(zhuǎn)發(fā)路徑上的最后一個(gè)交換機(jī)進(jìn)行查詢,獲取交換機(jī)端口計(jì)數(shù)器中測(cè)量周期T內(nèi)通過的報(bào)文數(shù)目S,通過計(jì)算S/T可以得到吞吐率;分別查詢轉(zhuǎn)發(fā)路徑上的第1個(gè)和最后一個(gè)交換機(jī)中測(cè)量周期T內(nèi)的報(bào)文增量,兩者的差值除以第1個(gè)交換機(jī)的報(bào)文增量值可以得到這兩個(gè)節(jié)點(diǎn)之間的丟包率;主動(dòng)發(fā)送探測(cè)報(bào)文穿過所有預(yù)定節(jié)點(diǎn)后返回控制器,根據(jù)控制器記錄的時(shí)間戳之差再減去控制器到數(shù)據(jù)平面之間的往返時(shí)延可以得到所探測(cè)路徑的鏈路傳輸時(shí)延.

      3.3 網(wǎng)絡(luò)流量特征

      網(wǎng)絡(luò)中傳輸?shù)牧髁渴蔷W(wǎng)絡(luò)測(cè)量研究工作中最重要的測(cè)量對(duì)象,對(duì)流量進(jìn)行深入地挖掘和分析可以發(fā)現(xiàn)網(wǎng)絡(luò)中潛在的問題,這是指導(dǎo)網(wǎng)絡(luò)管理和安全工作的重要依據(jù).網(wǎng)絡(luò)管理者根據(jù)流量的統(tǒng)計(jì)特征可以制定更好的管理策略和安全策略.流量統(tǒng)計(jì)特征的主要表征參數(shù)包括:

      1) Cardinality:一個(gè)測(cè)量周期內(nèi)測(cè)量的不同流的數(shù)量;

      2) Flow size distribution:一個(gè)測(cè)量周期內(nèi)所有流的大小的分布比例;

      3) Entropy:流長(zhǎng)分布的熵值;

      4) Heavy Hitter:測(cè)量周期內(nèi)一條流的大小超過一定閾值;

      5) Hierarchical Heavy Hitter:Heavy Hitter的擴(kuò)展,基于報(bào)文頭部的某個(gè)或者某些字段最長(zhǎng)前綴聚合的Heavy Hitter,且它的大小減去所有子Heavy Hitter節(jié)點(diǎn)的大小之和后仍然超過一定閾值;

      6) Heavy Change:一條流在相鄰周期之間的大小之差超過一定的閾值;

      7) DDoS(distributed denial of service):一個(gè)目的主機(jī)在測(cè)量周期內(nèi)接收的來自不同源主機(jī)請(qǐng)求的數(shù)量超過一定閾值;

      8) Superspreader:一個(gè)源主機(jī)在測(cè)量周期內(nèi)向不同目的主機(jī)發(fā)送請(qǐng)求的數(shù)量超過一定閾值.

      3.3.1 流量工程

      網(wǎng)絡(luò)流量特征可以有效地指導(dǎo)流量工程相關(guān)的研究工作通過調(diào)度網(wǎng)絡(luò)流量、優(yōu)化網(wǎng)絡(luò)資源來實(shí)現(xiàn)優(yōu)化網(wǎng)絡(luò)性能、保證服務(wù)質(zhì)量、降低網(wǎng)絡(luò)能耗的需求.

      數(shù)據(jù)中心局域網(wǎng)具有網(wǎng)絡(luò)節(jié)點(diǎn)密集、網(wǎng)絡(luò)流量集中的特點(diǎn),如何高效地利用帶寬資源是主要的研究問題.同時(shí),大型互聯(lián)網(wǎng)服務(wù)提供商一般擁有多個(gè)地理位置跨度較大的數(shù)據(jù)中心,如何保證廣域網(wǎng)數(shù)據(jù)中心之間高效互聯(lián)并對(duì)外提供高質(zhì)量、高可靠的服務(wù),也是重要的工程問題.由于軟件定義網(wǎng)絡(luò)使用中心管控的架構(gòu),通過對(duì)鏈路中傳輸流量的狀態(tài)信息進(jìn)行測(cè)量,可以有效地指導(dǎo)控制器調(diào)整路由配置,均衡網(wǎng)絡(luò)負(fù)載,提高網(wǎng)絡(luò)鏈路利用率,非常適合數(shù)據(jù)中心的需求,因此得到了一定程度的應(yīng)用.目前,大規(guī)模的軟件定義網(wǎng)絡(luò)測(cè)量實(shí)例包括 Micosoft的SWAN系統(tǒng)和Google的B4系統(tǒng).SWAN[74](software-driven WAN)是Micosoft提出的跨數(shù)據(jù)中心WAN解決方案,通過為不同等級(jí)的網(wǎng)絡(luò)服務(wù)設(shè)置相應(yīng)的發(fā)送速率和網(wǎng)絡(luò)路徑來改善網(wǎng)絡(luò)整體的資源利用率.SWAN將網(wǎng)絡(luò)流量按照優(yōu)先級(jí)從高到低的順序分為 3類:交互流量、彈性流量和背景流量,中央控制器嚴(yán)格按照流量?jī)?yōu)先級(jí)順序?yàn)槊總€(gè)服務(wù)分配相適應(yīng)的鏈路資源.為了降低網(wǎng)絡(luò)擁塞造成的影響,SWAN會(huì)保留一部分最短路徑的鏈路資源和交換機(jī)資源,在緊急情況時(shí)供最高優(yōu)先級(jí)的服務(wù)使用.相較于單純使用MPLS技術(shù)的跨數(shù)據(jù)中心WAN,SWAN可以將鏈路利用率從 60%提高到 98%.Google在其廣域網(wǎng)數(shù)據(jù)中心中部署了基于 OpenFlow技術(shù)的B4[75]系統(tǒng),該系統(tǒng)使用Google自行研發(fā)的專用SDN設(shè)備,用于WAN級(jí)的流量管控.WAN網(wǎng)絡(luò)在數(shù)以千計(jì)的獨(dú)立鏈路上以總和 TB每秒的數(shù)量級(jí)傳輸數(shù)據(jù)時(shí)會(huì)面臨嚴(yán)重的性能和可靠性問題,在不考慮鏈路故障的情況下,一般鏈路利用率在 30%~40%之間.B4的核心是中央流量管控模塊,該模塊實(shí)時(shí)地監(jiān)測(cè)全網(wǎng)的拓?fù)浣Y(jié)構(gòu)和可用資源信息,它將網(wǎng)站服務(wù)抽象為網(wǎng)絡(luò)節(jié)點(diǎn),網(wǎng)站與網(wǎng)站之間的連通性抽象為網(wǎng)絡(luò)鏈路,網(wǎng)絡(luò)流量抽象為以三元組(源網(wǎng)站,目的網(wǎng)站,QoS)表示的Flow Group,然后通過基于哈希的ECMP算法動(dòng)態(tài)地平衡流量.Google表明,B4系統(tǒng)可以使廣域網(wǎng)鏈路的長(zhǎng)期平均利用率保持在70%以上,部分鏈路利用率可達(dá)99%以上.

      通過對(duì)流量大小進(jìn)行感知和對(duì)流量類型進(jìn)行識(shí)別,可以根據(jù)網(wǎng)絡(luò)實(shí)時(shí)的負(fù)載情況調(diào)整路由策略,保證網(wǎng)絡(luò)應(yīng)用的服務(wù)質(zhì)量.流量矩陣由網(wǎng)絡(luò)中全部節(jié)點(diǎn)兩兩之間的流量大小構(gòu)成,是反映網(wǎng)絡(luò)狀態(tài)的重要參數(shù),文獻(xiàn)[30,76,77]通過將相同源地址和目的地址的流統(tǒng)計(jì)信息合并來構(gòu)造并維護(hù)全網(wǎng)的流量矩陣.MicroTE[36]周期性地將瞬時(shí)流速與歷史平均流速相比較,當(dāng)流量大小顯著變化時(shí)觸發(fā)一次流量信息匯總,檢測(cè)流量中是否包含大流:如果包含,則啟動(dòng)啟發(fā)式的 ECMP算法對(duì)網(wǎng)絡(luò)全局路由進(jìn)行優(yōu)化.Suárez-Varela等人[56,78,79]基于控制器OpenDaylight和軟件交換機(jī)openvswitch實(shí)現(xiàn)了一個(gè)測(cè)量系統(tǒng),對(duì)網(wǎng)絡(luò)流量進(jìn)行過濾、抽樣,并使用深度包檢測(cè)算法(deep packet inspection,簡(jiǎn)稱DPI)和機(jī)器學(xué)習(xí)(machine learning,簡(jiǎn)稱ML)算法對(duì)其中的DNS流量、HTTP流量和加密流量進(jìn)行識(shí)別分類.該系統(tǒng)在交換機(jī)中部署了三級(jí)流表:第1級(jí)為過濾規(guī)則,第2級(jí)為抽樣規(guī)則,第3級(jí)為轉(zhuǎn)發(fā)規(guī)則,然后統(tǒng)計(jì)待測(cè)流量的報(bào)文計(jì)數(shù)、流長(zhǎng)計(jì)數(shù)和流持續(xù)時(shí)間信息.系統(tǒng)實(shí)現(xiàn)了兩種抽樣算法:一種是基于IP后綴的抽樣,保證抽樣報(bào)文來自不同的子網(wǎng),抽樣速率為1/(2m·2n),m是源IP后綴比特?cái)?shù),n是目的IP后綴比特?cái)?shù);另一種是基于哈希的抽樣,利用OpenFlow協(xié)議1.3中組表(action buckets)的功能對(duì)報(bào)文頭五元組進(jìn)行哈希,如果結(jié)果落在指定范圍內(nèi)則抽樣.測(cè)量模塊部署在控制器中,處理優(yōu)先級(jí)設(shè)置為最高,當(dāng)監(jiān)聽到控制器收到Flow-Removed消息時(shí),觸發(fā)控制器發(fā)送Multipart-Request消息獲取交換機(jī)上的統(tǒng)計(jì)信息.

      近年來,隨著全人類節(jié)約能源和保護(hù)環(huán)境的意識(shí)不斷提高,節(jié)約發(fā)展、清潔發(fā)展成為未來的主流發(fā)展模式.有研究表明:在發(fā)達(dá)國(guó)家中,數(shù)據(jù)和通信網(wǎng)絡(luò)消耗的能源占社會(huì)總能源消耗的 5%,并且以每年 10%的速率增加.因此,研究如何降低網(wǎng)絡(luò)的運(yùn)行能耗是非常有意義的.軟件定義網(wǎng)絡(luò)由于可以從全局的視角根據(jù)網(wǎng)絡(luò)中流量的分布狀態(tài)動(dòng)態(tài)地優(yōu)化網(wǎng)絡(luò)資源的分配,在一定程度上降低網(wǎng)絡(luò)的能耗,引發(fā)了一些研究工作的關(guān)注.

      Kaup等人[80]提出了一個(gè)測(cè)量軟件定義網(wǎng)絡(luò)能耗的模型,它同時(shí)考慮硬件 OpenFlow交換機(jī)和部署在服務(wù)器上的軟件OpenFlow交換機(jī)的能耗,根據(jù)網(wǎng)絡(luò)狀態(tài)信息的測(cè)量結(jié)果,動(dòng)態(tài)地將部分OpenFlow交換機(jī)調(diào)整至睡眠模式.實(shí)驗(yàn)結(jié)果表明:在10Mbps的組網(wǎng)環(huán)境下,該方法在硬件OpenFlow交換機(jī)和軟件OpenFlow交換機(jī)上的能耗測(cè)量誤差分別小于1%和8%,可以降低6.6%網(wǎng)絡(luò)總體能耗.文獻(xiàn)[81,82]通過將多條鏈路的流量合并至一條鏈路,然后關(guān)閉其余鏈路相關(guān)的交換機(jī)端口來節(jié)約能耗.

      3.3.2 安全防御

      基于網(wǎng)絡(luò)層面的安全防御研究工作通過對(duì)流量的統(tǒng)計(jì)特征進(jìn)行分析,發(fā)現(xiàn)隱藏在正常流量中的攻擊流量,然后通過定位攻擊模式、追溯攻擊源頭、轉(zhuǎn)移攻擊目標(biāo)、屏蔽攻擊流量的方式來防御網(wǎng)絡(luò)攻擊,保障網(wǎng)絡(luò)設(shè)備和主機(jī)設(shè)備的正常運(yùn)行以及網(wǎng)絡(luò)服務(wù)的正常訪問.常用的安全相關(guān)的流量檢測(cè)算法包括大流(heavy hitter)檢測(cè)、分級(jí)大流(hierarchical heavy hitter)檢測(cè)、變化(heavy change)檢測(cè)、超點(diǎn)(superspreader)檢測(cè)、DDoS檢測(cè)等,涵蓋了主流的網(wǎng)絡(luò)攻擊手段.

      OpenSample[38]提出,數(shù)據(jù)中心流量中超過 99%都是 TCP流,通過計(jì)算同一個(gè)流中相鄰兩個(gè)采樣報(bào)文中TCP數(shù)據(jù)包頭部序號(hào)的差值,再除以報(bào)文各自對(duì)應(yīng)的sFlow采樣時(shí)間戳的差值,就可以計(jì)算出該TCP流在測(cè)量周期內(nèi)的估計(jì)速率值.根據(jù)這一機(jī)制,OpenSample實(shí)現(xiàn)了對(duì)大流的快速檢測(cè),并且可以實(shí)時(shí)地生成網(wǎng)絡(luò)狀態(tài)快照提供給上層應(yīng)用使用.Openwatch[69]提出了一個(gè)自適應(yīng)的流量計(jì)數(shù)方法,使用線性預(yù)測(cè)算法動(dòng)態(tài)地調(diào)整異常流量檢測(cè)的間隔,預(yù)測(cè)到攻擊可能發(fā)生時(shí)進(jìn)行細(xì)粒度測(cè)量,否則進(jìn)行粗粒度的測(cè)量.Mehdi等人[83]在軟件定義測(cè)量架構(gòu)中驗(yàn)證了多種異常檢測(cè)算法,實(shí)現(xiàn)了端口速率限制、可疑報(bào)文過濾、異常分類等功能.iSTAMP[44]實(shí)現(xiàn)了網(wǎng)絡(luò)中 Top-k的大流檢測(cè),并且使用智能的 MAB(multi-armed bandit)算法估算全網(wǎng)的流長(zhǎng)分布.vPROMGUARD[42]在基于改造的Open vSwitch實(shí)現(xiàn)的測(cè)量架構(gòu)中,對(duì)DDoS檢測(cè)算法和端口掃描檢測(cè)算法進(jìn)行了驗(yàn)證.Moshref等人[84]設(shè)計(jì)了Max-Cover HHH算法用于檢測(cè)網(wǎng)絡(luò)中的重要節(jié)點(diǎn),并且在交換機(jī)數(shù)據(jù)平面直接部署了用于分級(jí)大流檢測(cè)(hierarchical heavy hitter,簡(jiǎn)稱HHH)的哈希算法和sketch數(shù)據(jù)結(jié)構(gòu).HashPipe[85]在數(shù)據(jù)平面使用哈希算法對(duì)原始報(bào)文進(jìn)行壓縮處理,存儲(chǔ)報(bào)文的標(biāo)識(shí)符和計(jì)數(shù)值,用于跟蹤網(wǎng)絡(luò)中的大流(heavy hitter,簡(jiǎn)稱HH).Dream[70]和 Scream[59]設(shè)計(jì)了可以并發(fā)運(yùn)行大流檢測(cè)、分級(jí)大流檢測(cè)、超點(diǎn)檢測(cè)算法的測(cè)量架構(gòu),并且可以保證用戶指定的精度.Univmon[63,86]基于一種測(cè)量結(jié)構(gòu)實(shí)現(xiàn)了所有主流的流量檢測(cè)算法,并達(dá)到較好的精度.

      4 主要研究問題和挑戰(zhàn)

      表1總結(jié)了軟件定義網(wǎng)絡(luò)測(cè)量方法的相關(guān)研究成果.

      Table 1 Summary of software defined measurement technology表1 軟件定義網(wǎng)絡(luò)測(cè)量方法總結(jié)

      本節(jié)基于這些研究將軟件定義網(wǎng)絡(luò)測(cè)量的主要研究問題和挑戰(zhàn)歸納為 4個(gè)方面:測(cè)量資源與測(cè)量精度的平衡、測(cè)量實(shí)時(shí)性與測(cè)量精度的平衡、高效通用的測(cè)量架構(gòu)、多控制器下分布式協(xié)同測(cè)量.

      4.1 測(cè)量資源與測(cè)量精度的平衡

      軟件定義網(wǎng)絡(luò)中的流量可以分為兩種類型:控制流量和數(shù)據(jù)流量.控制流量是 SDN控制器與 SDN交換機(jī)之間傳輸?shù)牧髁?數(shù)據(jù)流量是 SDN交換機(jī)之間傳輸?shù)牧髁?網(wǎng)絡(luò)的正常運(yùn)行離不開控制流量的正常傳輸,但是SDN測(cè)量任務(wù)往往需要在控制器和交換機(jī)之間進(jìn)行額外的通信,或者在控制流量中攜帶額外的測(cè)量信息,這給有限的控制器和交換機(jī)之間的帶寬資源帶來了一定的壓力,尤其是在控制器的帶內(nèi)(in band)部署的情況下.Ahmed等人[93]討論了控制器帶外部署的組網(wǎng)設(shè)計(jì),在這種情況下,協(xié)議控制信令通過專門的控制器到交換機(jī)鏈路傳輸,傳輸開銷與查詢的交換機(jī)數(shù)量和流的條數(shù)相關(guān),與控制器部署的位置無關(guān).而控制器帶內(nèi)部署的情況下,控制流量與數(shù)據(jù)流量共享帶寬,控制通信開銷的計(jì)算變得更加復(fù)雜,傳輸跳數(shù)也需要加入考慮.在軟件定義網(wǎng)絡(luò)中,為了保證網(wǎng)絡(luò)的正常運(yùn)行,控制平面和數(shù)據(jù)平面之間需要不斷地交換 OpenFlow消息.然而控制平面和數(shù)據(jù)平面之間的鏈路帶寬是有限的,鏈路負(fù)載會(huì)隨著網(wǎng)絡(luò)規(guī)模的增加不斷升高.如果測(cè)量方法過于頻繁地利用控制器讀取交換機(jī)中的計(jì)數(shù)器信息,會(huì)造成控制器與交換機(jī)之間的鏈路負(fù)載飽和,影響網(wǎng)絡(luò)的穩(wěn)定運(yùn)行.此外,主動(dòng)測(cè)量方法中使用較大規(guī)模的探測(cè)報(bào)文也有可能對(duì)網(wǎng)絡(luò)中的生產(chǎn)流量造成一定影響.

      同時(shí),由于軟件定義網(wǎng)絡(luò)開放了控制平面的編程接口,控制器中部署的測(cè)量擴(kuò)展模塊會(huì)占用一定的控制器計(jì)算資源,可能對(duì)控制器性能造成影響.另外,SDN交換機(jī)的流表空間是有限的,在流表中部署過多的測(cè)量規(guī)則可能導(dǎo)致對(duì)交換機(jī)硬件資源的過度消耗.OpenFlow協(xié)議1.0版本中流表項(xiàng)匹配域的長(zhǎng)度為250比特,在后續(xù)的更新中新字段不斷加入,使得匹配域長(zhǎng)度不斷增加,遠(yuǎn)遠(yuǎn)超出了傳統(tǒng)網(wǎng)絡(luò)中的匹配域長(zhǎng)度.過長(zhǎng)的匹配域極大增加了硬件的查表成本,盡管OpenFlow協(xié)議1.1版本發(fā)布了多級(jí)流表和流水線處理結(jié)構(gòu)來壓縮單張流表的大小,降低查表時(shí)的硬件資源消耗,但是也導(dǎo)致了SDN交換機(jī)硬件設(shè)計(jì)復(fù)雜度和報(bào)文轉(zhuǎn)發(fā)時(shí)延的增加.

      一些研究工作利用SDN交換機(jī)中的硬件存儲(chǔ)器資源進(jìn)行測(cè)量,使用TCAM存儲(chǔ)器對(duì)報(bào)文進(jìn)行高速地匹配和查找,使用SRAM存儲(chǔ)器緩存預(yù)處理后的測(cè)量數(shù)據(jù).在這些測(cè)量架構(gòu)中,分配給測(cè)量任務(wù)的TCAM存儲(chǔ)器大小和SRAM存儲(chǔ)器大小與測(cè)量精度直接相關(guān),然而交換機(jī)上的TCAM資源和SRAM資源是非常有限的,并發(fā)執(zhí)行多個(gè)測(cè)量任務(wù)時(shí)所需的資源可能超出硬件的容量.

      綜上所述,在軟件定義網(wǎng)絡(luò)中部署額外的測(cè)量機(jī)制需要消耗額外的網(wǎng)絡(luò)資源,包括鏈路的帶寬資源、SDN控制器和 SDN交換機(jī)的計(jì)算和存儲(chǔ)資源,可能對(duì)網(wǎng)絡(luò)的運(yùn)行性能造成一定影響.因此,如何在保證合理的測(cè)量精度的前提下盡可能地降低對(duì)網(wǎng)絡(luò)資源的消耗,是軟件定義網(wǎng)絡(luò)測(cè)量的重要研究問題.基于查詢的測(cè)量方法一般通過動(dòng)態(tài)地調(diào)整查詢頻率或減少查詢的交換機(jī)數(shù)量來減少帶寬資源的開銷.OpenTM[30]通過在流量轉(zhuǎn)發(fā)路徑中選取部分交換機(jī)進(jìn)行查詢的方式來降低網(wǎng)絡(luò)通信的開銷,并使用多種選擇算法對(duì)測(cè)量精度進(jìn)行了驗(yàn)證.Payless[31]為降低網(wǎng)絡(luò)開銷采用了自適應(yīng)調(diào)度算法,根據(jù)流量特征,動(dòng)態(tài)地調(diào)整查詢交換機(jī)的頻率.與普通輪詢算法每秒13.5個(gè)查詢請(qǐng)求相比較,PayLess每秒只需發(fā)送6.6個(gè)查詢請(qǐng)求.Narayana等人[94]設(shè)計(jì)了一個(gè)自定義查詢語言,實(shí)現(xiàn)了自適應(yīng)的數(shù)據(jù)查詢,降低了查詢?cè)斐傻拈_銷.SDN-Mon[95]在控制器中部署 GMT(global monitoring table,全局測(cè)量表)對(duì)全網(wǎng)交換機(jī)的測(cè)量統(tǒng)計(jì)信息和實(shí)時(shí)負(fù)載情況進(jìn)行匯總,檢測(cè)多個(gè)交換機(jī)對(duì)同一條流進(jìn)行冗余測(cè)量的情況,選擇一個(gè)負(fù)載最低的交換機(jī)對(duì)該流進(jìn)行測(cè)量,刪除其他交換機(jī)中的測(cè)量規(guī)則.一些工作研究如何在不影響測(cè)量精度的前提下對(duì)流表中的測(cè)量流表項(xiàng)數(shù)量進(jìn)行壓縮.Yu等人[96]對(duì)流表項(xiàng)的壓縮機(jī)制進(jìn)行了深入的研究,他們通過設(shè)置超時(shí)時(shí)間、限制匹配域長(zhǎng)度、合并相似規(guī)則等方式對(duì)流表進(jìn)行壓縮,壓縮導(dǎo)致的錯(cuò)誤流表項(xiàng)數(shù)量小于 1%.DevoFlow[97]通過移除不重要的流表項(xiàng)來減少對(duì)流表資源的占用.Hone[37]使用被稱為 Lazy Materialization的方法將流量的統(tǒng)計(jì)特征數(shù)據(jù)壓縮為類似數(shù)據(jù)庫(kù)表的格式.一些工作研究在網(wǎng)絡(luò)中并發(fā)執(zhí)行多類型多數(shù)量的測(cè)量任務(wù)時(shí),如何在時(shí)間層面和空間層面對(duì)測(cè)量資源進(jìn)行復(fù)用,并動(dòng)態(tài)地在測(cè)量任務(wù)之間調(diào)度和分配,保證全局測(cè)量精度的最優(yōu)化.Dream[70]和 Scream[59]發(fā)現(xiàn):測(cè)量架構(gòu)可以在空間層面將大流分解,然后通過地址前綴和端口號(hào)聚集小的流量;在時(shí)間層面,可以在不同的測(cè)量周期內(nèi)采集數(shù)據(jù).兩篇文獻(xiàn)分別從商用 SDN交換機(jī)和可編程SDN交換機(jī)的角度對(duì)該問題進(jìn)行了研究,設(shè)計(jì)了一個(gè)高效復(fù)用網(wǎng)絡(luò)資源的測(cè)量架構(gòu).該架構(gòu)可以動(dòng)態(tài)地調(diào)整測(cè)量資源在不同測(cè)量任務(wù)之間的分配,保證測(cè)量結(jié)果的精度在用戶指定的范圍之內(nèi).該研究表明:分配給測(cè)量任務(wù)的資源大小與測(cè)量精度之間存在一個(gè)收益遞減點(diǎn),當(dāng)精度超過一定閾值后,繼續(xù)增加測(cè)量資源得到的收益極低.此外,測(cè)量任務(wù)僅需要在有與規(guī)則匹配的流經(jīng)過的交換機(jī)上分配資源,并且所需資源的多少由流量的大小和分布所決定.因此,可以通過全局的測(cè)量資源的調(diào)度實(shí)現(xiàn)最大化的資源利用率和最高的全局精度.測(cè)量系統(tǒng)由任務(wù)實(shí)體、精度估計(jì)器和資源分配器組成,工作流程如下:當(dāng)新的測(cè)量任務(wù)被下發(fā)時(shí),系統(tǒng)首先根據(jù)目前可用的資源決定是否接受該任務(wù),如果接受該任務(wù)會(huì)導(dǎo)致正在運(yùn)行的測(cè)量任務(wù)的精度低于期望值,該任務(wù)會(huì)被丟棄.一旦任務(wù)被接受,系統(tǒng)會(huì)為新任務(wù)創(chuàng)建一個(gè)任務(wù)實(shí)體,并在交換機(jī)上分配默認(rèn)數(shù)量的資源.系統(tǒng)周期性地從交換機(jī)中獲取測(cè)量結(jié)果并傳遞給任務(wù)實(shí)體,每個(gè)任務(wù)實(shí)體包含一個(gè)精度估計(jì)器來估算當(dāng)前的任務(wù)精度.系統(tǒng)為每種測(cè)量算法(HH,HHH,SS)都設(shè)計(jì)了精度估計(jì)算法,結(jié)果傳遞給資源分配器,資源分配器根據(jù)結(jié)果決定分配給該任務(wù)的資源數(shù)量.任務(wù)實(shí)體獲取測(cè)量資源后,決定如何分配這些資源.如果一個(gè)測(cè)量任務(wù)被終止,系統(tǒng)會(huì)刪除其相關(guān)任務(wù)實(shí)體并且釋放所有相關(guān)的資源.MOZART[98]在Dream[70]和Scream[59]的基礎(chǔ)之上對(duì)SDN交換機(jī)之間時(shí)間層面上的資源復(fù)用進(jìn)行了更深入的研究.Su等人[58,87,88]對(duì)動(dòng)態(tài)分配測(cè)量任務(wù)、優(yōu)化調(diào)度測(cè)量資源的測(cè)量架構(gòu)進(jìn)行了研究,測(cè)量架構(gòu)包含 4個(gè)層面,自上而下分別是應(yīng)用層、資源調(diào)度層、任務(wù)分配層和數(shù)據(jù)平面層,其中,數(shù)據(jù)平面層使用和OpenSketch[45]相同的設(shè)計(jì).該研究對(duì)測(cè)量任務(wù)建立數(shù)學(xué)模型,將交換機(jī)、鏈路、每個(gè)交換機(jī)的TCAM資源、每個(gè)交換機(jī)的SRAM資源、測(cè)量任務(wù)集、運(yùn)行測(cè)量任務(wù)的交換機(jī)集、分配給任務(wù)的TCAM資源、分配給任務(wù)的SRAM資源、測(cè)量任務(wù)的理論精度、實(shí)際精度、權(quán)重完全參數(shù)化,然后使用兩級(jí)啟發(fā)式算法進(jìn)行計(jì)算.資源調(diào)度層估算測(cè)量任務(wù)所需資源,定位資源位置,壓縮資源占用;任務(wù)分配層定位交換機(jī)位置,重新分配交換機(jī)測(cè)量資源.

      4.2 測(cè)量實(shí)時(shí)性與測(cè)量精度的平衡

      軟件定義網(wǎng)絡(luò)測(cè)量支持流量的實(shí)時(shí)分析和反饋,控制器根據(jù)測(cè)量結(jié)果迅速調(diào)整和優(yōu)化網(wǎng)絡(luò)配置,滿足網(wǎng)絡(luò)服務(wù)的動(dòng)態(tài)需求.但是由于測(cè)量機(jī)制和算法具有一定復(fù)雜度,對(duì)流量處理需要消耗一定的時(shí)間,因此在對(duì)較大規(guī)模流量進(jìn)行線速測(cè)量時(shí),需要在測(cè)量實(shí)時(shí)性和測(cè)量精度之間進(jìn)行平衡.Omid等人[99]對(duì)常用測(cè)量算法消耗的計(jì)算資源、存儲(chǔ)資源與測(cè)量精度之間的關(guān)系進(jìn)行了對(duì)比分析,提出:在內(nèi)存資源充足的情況下(如使用軟件SDN交換機(jī)),測(cè)量任務(wù)面臨的主要挑戰(zhàn)是測(cè)量速率與測(cè)量精度的矛盾.該研究表明:在進(jìn)行高速測(cè)量時(shí),使用線性哈希表、數(shù)組等簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)的性能甚至優(yōu)于Cukoo哈希、Count-Min sketch等復(fù)雜的測(cè)量算法.SketchVisor[60]通過改造虛擬SDN交換機(jī)Open vSwitch的數(shù)據(jù)平面,并結(jié)合數(shù)據(jù)流技術(shù),實(shí)現(xiàn)了數(shù)據(jù)中心網(wǎng)絡(luò)中流量的高速測(cè)量.該研究指出:硬件SDN交換機(jī)由于改造ASIC成本較高,難以在生產(chǎn)環(huán)境大量應(yīng)用,因此,目前數(shù)據(jù)中心主要使用基于服務(wù)器部署實(shí)現(xiàn)的軟件SDN交換機(jī).但是虛擬交換機(jī)在進(jìn)行基于sketch數(shù)據(jù)結(jié)構(gòu)的哈希計(jì)算時(shí)會(huì)消耗大量的 CPU資源,難以在數(shù)據(jù)中心生產(chǎn)環(huán)境中進(jìn)行線速地測(cè)量.因此,SketchVisor提出了一種解決方法,將數(shù)據(jù)平面進(jìn)行再分離,在普通路徑之外獨(dú)立出一條快速流量處理路徑,快速路徑通過犧牲一定的測(cè)量精度可以達(dá)到較高的處理速度.正常情況下,所有報(bào)文被轉(zhuǎn)發(fā)至普通路徑,通過一個(gè)FIFO緩存,當(dāng)緩存溢出時(shí),額外的流量被重定向至快速路徑.快速路徑中部署了一種新型的 top-k算法對(duì)大流進(jìn)行捕捉,同時(shí),使用一個(gè)全局計(jì)數(shù)器對(duì)小流的統(tǒng)計(jì)特征進(jìn)行計(jì)數(shù).該算法將Misra-Gries’s top-k算法和Probabilistic Lossy Counting算法相結(jié)合,可以一次性剔除多條小流,降低了算法的復(fù)雜度.普通路徑具有通用的結(jié)構(gòu),可以部署用戶指定的任意 sketch.控制器通過ZeroMQ采集數(shù)據(jù)平面的測(cè)量數(shù)據(jù),并使用矩陣疊加的方式合并普通路徑和快速路徑的 sketch數(shù)據(jù).實(shí)驗(yàn)中,單CPU的吞吐量達(dá)到了17Gbps,并且快速路徑只占用若干kb大小的內(nèi)存.Naveen等人[91]認(rèn)為:隨著交換機(jī)技術(shù)的進(jìn)步,在硬件可編程 SDN交換機(jī)的軟件定義數(shù)據(jù)平面中可以靈活地部署對(duì)每個(gè)單獨(dú)報(bào)文的 MA(match and action)處理結(jié)構(gòu),但是報(bào)文處理速度受到有限的硬件狀態(tài)和硬件操作的限制.該研究通過近似技術(shù)對(duì)常用的資源優(yōu)化調(diào)度算法進(jìn)行改造,提高了報(bào)文處理速率并降低了硬件資源消耗,并在基于 FlexSwitch實(shí)現(xiàn)的原型系統(tǒng)中對(duì)XCP,RCP,CONGA等擁塞控制協(xié)議和負(fù)載均衡協(xié)議進(jìn)行了驗(yàn)證.

      4.3 高效通用的測(cè)量架構(gòu)

      當(dāng)前,網(wǎng)絡(luò)中部署的應(yīng)用服務(wù)數(shù)量繁多、類型豐富,需要測(cè)量架構(gòu)支持多數(shù)量、多種類測(cè)量任務(wù)的并發(fā)執(zhí)行.矛盾的是:用于流量分析的數(shù)據(jù)流算法所使用的sketch數(shù)據(jù)結(jié)構(gòu)雖然具備較好的內(nèi)存與精度的平衡性,但是與測(cè)量對(duì)象的耦合性很強(qiáng),可擴(kuò)展性非常有限,一種sketch數(shù)據(jù)結(jié)構(gòu)難以支持不同類型的測(cè)度.因此,如何通過部署額外的測(cè)量機(jī)制來加強(qiáng)測(cè)量架構(gòu)的通用性,是軟件定義網(wǎng)絡(luò)測(cè)量中重要的研究問題.

      P4[100]和 ClickNP[101]分別從軟件抽象和硬件抽象的角度研究了通用可編程 SDN交換機(jī)的設(shè)計(jì)與實(shí)現(xiàn).OpenSketch[45]是基于可編程SDN交換機(jī)設(shè)計(jì)的通用測(cè)量架構(gòu),它充分利用了SDN測(cè)量控制平面和測(cè)量數(shù)據(jù)平面分離的優(yōu)勢(shì),支持用戶自定義測(cè)量任務(wù)的并發(fā)執(zhí)行.為了使用一種硬件結(jié)構(gòu)支持多類型的測(cè)量任務(wù),OpenSketch將測(cè)量數(shù)據(jù)平面的報(bào)文處理流程抽象為哈希-分類-計(jì)數(shù)這3個(gè)步驟,這種抽象降低了數(shù)據(jù)平面功能之間的耦合性.OpenSketch部署了多種哈希算法對(duì)報(bào)文進(jìn)行處理,使用TCAM存儲(chǔ)器對(duì)報(bào)文進(jìn)行分類,并將統(tǒng)計(jì)結(jié)果存儲(chǔ)在SRAM存儲(chǔ)器中.交換機(jī)SRAM被劃分為若干個(gè)邏輯區(qū)域,每個(gè)區(qū)域分別被設(shè)計(jì)為不同類型和大小的sketch數(shù)據(jù)結(jié)構(gòu),以支持不同類型的測(cè)量任務(wù).在測(cè)量控制平面,OpenSketch提供了一個(gè)測(cè)量庫(kù),用戶可以調(diào)用編程接口來下發(fā)測(cè)量任務(wù),OpenSketch根據(jù)測(cè)量任務(wù)的測(cè)量類型和精度需求自動(dòng)地選擇哈希函數(shù)和 sketch數(shù)據(jù)結(jié)構(gòu)配置數(shù)據(jù)平面管道,并且分配合適的交換機(jī)資源.OpenSketch三級(jí)數(shù)據(jù)管道的設(shè)計(jì)很巧妙,把成本高但速度快的TCAM存儲(chǔ)器用作流量分類,速度慢但成本低的SRAM存儲(chǔ)器用于流量存儲(chǔ),在保證處理速度的同時(shí)控制了硬件成本.實(shí)驗(yàn)表明:其支持多種常用類型測(cè)量任務(wù)的并發(fā)執(zhí)行,并且保證了較高的精度.但是 OpenSketch對(duì)數(shù)據(jù)平面修改的幅度較大,其通用性是以犧牲硬件資源為代價(jià),在執(zhí)行測(cè)量時(shí)未參與計(jì)算的 sketch數(shù)據(jù)結(jié)構(gòu)浪費(fèi)了其占有的存儲(chǔ)空間.Univmon[63,86]通過理論研究,基于 Count sketch一種數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)了通用的測(cè)量架構(gòu),支持多種測(cè)度的測(cè)量并具有較好的精度.該方法將原始流量通過哈希抽樣分解為N條子流,并行地通過N個(gè)Count sketch進(jìn)行計(jì)算,計(jì)算結(jié)果以遞歸的方式合并.Univmon雖然在數(shù)據(jù)平面只使用了一種sketch數(shù)據(jù)機(jī)構(gòu),但是需要N個(gè)獨(dú)立的存儲(chǔ)空間,同樣是以犧牲存儲(chǔ)資源為代價(jià)換取通用性.

      4.4 多控制器分布式協(xié)同測(cè)量

      在較大規(guī)模的軟件定義網(wǎng)絡(luò)中,單一控制器的部署方式由于處理能力有限會(huì)造成網(wǎng)絡(luò)的性能瓶頸,因此,多控制器分布式部署是軟件定義網(wǎng)絡(luò)未來的主流部署方式.目前,關(guān)于多控制器組網(wǎng)的研究?jī)?nèi)容主要包括控制器的部署數(shù)量、控制器的部署位置以及控制器之間的交互方式,已發(fā)表的分布式控制器部署模式可以分為 3種:第1種是主流控制器包括Onix,Hyperflow,ONOS,OpenDayLight均采用的物理分布、邏輯集中的部署模式,在這種模式中,控制器之間需要不斷地同步信息,以保證網(wǎng)絡(luò)邏輯視圖的一致性,在網(wǎng)絡(luò)狀態(tài)變化頻繁的情況下,會(huì)造成大量的網(wǎng)絡(luò)開銷;第 2種是基于兩層控制邏輯的部署模式[102],該模式中,控制器分為根控制器和從控制器,從控制器負(fù)責(zé)各自區(qū)域內(nèi)的網(wǎng)絡(luò)管理并將區(qū)域網(wǎng)絡(luò)視圖與主控制器進(jìn)行同步,主控制器掌管全局的網(wǎng)絡(luò)視圖;第3種是集群主備模式,該模式中,網(wǎng)絡(luò)的控制邏輯完全分布,根據(jù)OpenFlow協(xié)議1.3版本規(guī)定,一個(gè)交換機(jī)同時(shí)只能被一個(gè)控制器控制,因此,該模式下控制器需要雙機(jī)互備,在運(yùn)控制器故障時(shí),由備份控制器進(jìn)行替補(bǔ).

      多控制器部署可以解決軟件定義網(wǎng)絡(luò)控制平面的性能瓶頸問題,但是在這種組網(wǎng)模式中,設(shè)計(jì)測(cè)量架構(gòu)需要考慮更復(fù)雜的測(cè)量機(jī)制,包括測(cè)量任務(wù)的調(diào)度、測(cè)量配置的同步、測(cè)量資源的分配、測(cè)量結(jié)果的合并等.MDCP[103]對(duì)分布式控制器組網(wǎng)環(huán)境下控制器放置位置對(duì)測(cè)量造成的影響進(jìn)行了研究.Tahaei等人[89,90]設(shè)計(jì)了在控制器完全分布式部署的模式下進(jìn)行網(wǎng)絡(luò)流量協(xié)同測(cè)量的架構(gòu),該架構(gòu)分為 3層:網(wǎng)絡(luò)層、控制器層和協(xié)作層.網(wǎng)絡(luò)層包含所有的軟件和硬件交換設(shè)備;協(xié)作層向控制器層中的本地控制器下發(fā)測(cè)量流表規(guī)則;每個(gè)控制器被指定對(duì)若干條流量進(jìn)行測(cè)量.控制器包含流跟蹤器、組表生成器、查詢生成器和采集器,以1s為測(cè)量周期查詢數(shù)據(jù)平面的測(cè)量數(shù)據(jù),并聚集后通過UDP報(bào)文的方式發(fā)送至協(xié)作層.協(xié)作層通過UDP監(jiān)聽器收集測(cè)量數(shù)據(jù)并整合形成流量矩陣,還提供東西向接口用于控制器之間的交互.該研究分析了分布式控制器組網(wǎng)情況下的控制器開銷和通信開銷,并討論了相應(yīng)的優(yōu)化手段.Gioacchino等人[92]設(shè)計(jì)了大規(guī)模多控制器組網(wǎng)環(huán)境下的去中心化網(wǎng)絡(luò)測(cè)量架構(gòu),實(shí)時(shí)地對(duì)網(wǎng)絡(luò)負(fù)載進(jìn)行監(jiān)測(cè)和平衡.該架構(gòu)在網(wǎng)絡(luò)中的每個(gè)控制器內(nèi)部署了一個(gè)本地管理器(local manager),本地管理器包含4個(gè)模塊:持久化數(shù)據(jù)存儲(chǔ)器負(fù)責(zé)保存網(wǎng)絡(luò)拓?fù)浜玩溌窢顟B(tài)信息;需求解析器負(fù)責(zé)將上層應(yīng)用的需求解析為流表規(guī)則;任務(wù)調(diào)度器負(fù)責(zé)建立和管理每個(gè)測(cè)量任務(wù)線程;結(jié)果處理器負(fù)責(zé)對(duì)原始流量進(jìn)行抽樣哈希,以哈希表的形式保存統(tǒng)計(jì)信息.本地管理器周期性地測(cè)量負(fù)責(zé)網(wǎng)絡(luò)區(qū)域內(nèi)的平均鏈路利用率和平均流速,并和相鄰本地管理器進(jìn)行同步,當(dāng)發(fā)生鏈路擁塞時(shí),負(fù)責(zé)該鏈路的本地管理器首先將多余流量調(diào)度至空閑鏈路,再由相鄰的本地管理器進(jìn)行迭代的調(diào)度.實(shí)驗(yàn)結(jié)果表明,該分布式控制器測(cè)量架構(gòu)造成的控制通信開銷是中心化控制器測(cè)量架構(gòu)的4倍.

      5 結(jié)束語和未來展望

      軟件定義網(wǎng)絡(luò)給網(wǎng)絡(luò)測(cè)量技術(shù)研究注入了新的活力,借助于軟件定義網(wǎng)絡(luò)多方面的優(yōu)勢(shì),很多在傳統(tǒng)網(wǎng)絡(luò)中難以部署的測(cè)量架構(gòu)和測(cè)量算法在軟件定義網(wǎng)絡(luò)中得到了實(shí)現(xiàn)和驗(yàn)證.本文從測(cè)量架構(gòu)和測(cè)量對(duì)象兩方面對(duì)近年來主流的研究工作進(jìn)行了歸納分析,其中,測(cè)量架構(gòu)分為流量的采集和預(yù)處理、流量的傳輸和存儲(chǔ)、流量的分析和反饋這 3個(gè)步驟進(jìn)行闡述,測(cè)量對(duì)象分為運(yùn)行狀態(tài)、轉(zhuǎn)發(fā)性能、流量特征這 3種類型進(jìn)行說明.最后總結(jié)了主要的研究問題和挑戰(zhàn),包括測(cè)量資源與測(cè)量精度的平衡、測(cè)量實(shí)時(shí)性與測(cè)量精度的平衡、高效通用的測(cè)量架構(gòu)、多控制器分布式協(xié)同測(cè)量這 4個(gè)方面.在現(xiàn)有成果的基礎(chǔ)之上,軟件定義網(wǎng)絡(luò)測(cè)量研究中有些領(lǐng)域值得深入地探索,未來的研究方向主要基于以下幾個(gè)方面.

      1) 更強(qiáng)力的測(cè)量算法.軟件定義網(wǎng)絡(luò)測(cè)量技術(shù)離不開流量壓縮、流量分析等測(cè)量算法的支持,優(yōu)秀的測(cè)量算法可以在保證測(cè)量精度的前提下,顯著地降低對(duì)網(wǎng)絡(luò)中帶寬資源、計(jì)算資源、存儲(chǔ)資源的消耗,從根本上提高測(cè)量架構(gòu)的性能.因此在未來的工作中,需要對(duì)抽樣技術(shù)和數(shù)據(jù)流技術(shù)中的基礎(chǔ)算法開展進(jìn)一步的研究,降低算法的復(fù)雜度,提高算法的通用性.Univmon[63,86]雖然犧牲了一定的存儲(chǔ)資源,但是大大提高了sketch數(shù)據(jù)結(jié)構(gòu)的通用性,并且達(dá)到了較好的執(zhí)行效率,未來需要在目前的研究基礎(chǔ)上探索更加高效的哈希算法和更加通用的sketch數(shù)據(jù)結(jié)構(gòu);

      2) 更智能的測(cè)量機(jī)制.未來的軟件定義網(wǎng)絡(luò)測(cè)量技術(shù)應(yīng)該充分利用控制平面掌握網(wǎng)絡(luò)全局信息的優(yōu)勢(shì),根據(jù)網(wǎng)絡(luò)運(yùn)行狀態(tài)的變化,在全網(wǎng)范圍內(nèi)動(dòng)態(tài)地調(diào)度和復(fù)用測(cè)量資源,提高測(cè)量資源的利用率.在數(shù)據(jù)平面需要部署更加智能的流表管理機(jī)制,根據(jù)流量特征對(duì)測(cè)量流表項(xiàng)數(shù)量進(jìn)行壓縮,節(jié)約寶貴的流表資源.在控制平面需要部署更加智能的流量查詢機(jī)制,根據(jù)網(wǎng)絡(luò)負(fù)載動(dòng)態(tài)地調(diào)整查詢的對(duì)象和頻率,減少控制平面和數(shù)據(jù)平面之間的通信流量,降低對(duì)網(wǎng)絡(luò)性能的影響.Su等人[58,87,88]所提出的網(wǎng)絡(luò)參數(shù)化模型和兩級(jí)啟發(fā)式算法提供了一個(gè)測(cè)量機(jī)制的建模思路,值得進(jìn)一步的探索;

      3) 云服務(wù)環(huán)境中的應(yīng)用感知測(cè)量.云服務(wù)環(huán)境中部署的網(wǎng)絡(luò)應(yīng)用類型豐富,對(duì)網(wǎng)絡(luò)性能保障的需求各不相同.實(shí)時(shí)性需求較高的應(yīng)用對(duì)延遲非常敏感,例如:無線移動(dòng)服務(wù)需要實(shí)時(shí)跟蹤用戶信道的切換;遠(yuǎn)程會(huì)議服務(wù)需要全程的 QoS保障;而網(wǎng)絡(luò)直播服務(wù)則需要靈活的帶寬保障,在流行節(jié)目播出時(shí),面對(duì)短時(shí)間內(nèi)大量用戶的涌入,需要及時(shí)地增加帶寬容量保證視頻流量的高效分發(fā),直播結(jié)束后,需要及時(shí)地釋放帶寬資源.軟件定義網(wǎng)絡(luò)測(cè)量由于支持測(cè)量數(shù)據(jù)的實(shí)時(shí)分析和反饋,并且根據(jù)測(cè)量需求的變化動(dòng)態(tài)地調(diào)整測(cè)量配置,因此在云服務(wù)環(huán)境中可以針對(duì)不同類型的應(yīng)用服務(wù)提供定制化的感知測(cè)量.這要求測(cè)量算法能夠快速地預(yù)測(cè)網(wǎng)絡(luò)資源和應(yīng)用需求的未來變化,并整合為具體的網(wǎng)絡(luò)配置,指導(dǎo)控制器進(jìn)行調(diào)整;

      4) 網(wǎng)絡(luò)空間安全領(lǐng)域的支撐.近年來,隨著大規(guī)模網(wǎng)絡(luò)安全事件的不斷爆發(fā),網(wǎng)絡(luò)空間安全研究工作的重要性不斷提高.現(xiàn)有的基于網(wǎng)絡(luò)攻擊層面的安全防御手段主要通過動(dòng)態(tài)地調(diào)整主機(jī)地址、網(wǎng)絡(luò)路由、應(yīng)用端口的方式轉(zhuǎn)移受攻擊的網(wǎng)絡(luò)對(duì)象,同時(shí)將攻擊流量引導(dǎo)至虛假的目標(biāo),切斷后續(xù)的攻擊流量.由于軟件定義網(wǎng)絡(luò)測(cè)量架構(gòu)具備流量采集、流量分析、異常檢測(cè)、配置調(diào)整的閉環(huán)測(cè)量過程,能夠做到威脅檢測(cè)、配置調(diào)整、攻擊面轉(zhuǎn)移的自動(dòng)化,有效地支撐網(wǎng)絡(luò)空間安全的主動(dòng)防御技術(shù);

      5) 多自治域的域間測(cè)量.目前,軟件定義網(wǎng)絡(luò)測(cè)量的相關(guān)研究工作主要集中于單一自治域的域內(nèi)測(cè)量,沒有涉及到多個(gè)自治域的域間測(cè)量,雖然有文獻(xiàn)研究了多控制器下的分布式協(xié)同測(cè)量,但仍然在同個(gè)自治域內(nèi).在多個(gè)自治域間進(jìn)行測(cè)量時(shí),需要消除傳輸抖動(dòng)對(duì)測(cè)量過程造成的影響,這對(duì)測(cè)量機(jī)制和測(cè)量架構(gòu)提出了更高的要求.

      猜你喜歡
      交換機(jī)報(bào)文鏈路
      家紡“全鏈路”升級(jí)
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      天空地一體化網(wǎng)絡(luò)多中繼鏈路自適應(yīng)調(diào)度技術(shù)
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      修復(fù)損壞的交換機(jī)NOS
      使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
      ATS與列車通信報(bào)文分析
      PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計(jì)
      基于3G的VPDN技術(shù)在高速公路備份鏈路中的應(yīng)用
      龙江县| 泰兴市| 弥勒县| 藁城市| 白河县| 华蓥市| 尼勒克县| 如东县| 武穴市| 根河市| 绥芬河市| 宝应县| 榆林市| 六枝特区| 呼玛县| 平顶山市| 济源市| 宜州市| 玉山县| 天台县| 金沙县| 屏南县| 阿图什市| 棋牌| 化州市| 阿拉善左旗| 乌海市| 绥滨县| 罗城| 琼海市| 武冈市| 大方县| 伊宁市| 嘉义市| 郓城县| 武鸣县| 巴彦县| 容城县| 慈利县| 武陟县| 永城市|