• 
    

    
    

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

      ?

      基于包成批特性的OpenFlow流表高效區(qū)分存儲算法

      2019-03-13 05:14:36史長瓊胡龍平
      小型微型計算機系統(tǒng) 2019年3期
      關(guān)鍵詞:流表表項命中率

      史長瓊,胡龍平,熊 兵

      (長沙理工大學 計算機與通信工程學院,長沙 410114)

      1 引 言

      軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)作為一種創(chuàng)新型網(wǎng)絡(luò)架構(gòu),將數(shù)據(jù)轉(zhuǎn)發(fā)和邏輯控制功能相分離,并為網(wǎng)絡(luò)應(yīng)用提供靈活的編程接口,顯著提升了網(wǎng)絡(luò)的靈活性和開放性,被認為是未來網(wǎng)絡(luò)領(lǐng)域最有前景的發(fā)展方向之一.OpenFlow協(xié)議是SDN架構(gòu)中最為成熟的南向接口協(xié)議之一,實現(xiàn)了控制平面與數(shù)據(jù)平面之間的信息交互和配置管理功能,提升了網(wǎng)絡(luò)的可編程性和可管控性.然而,OpenFlow也給SDN數(shù)據(jù)平面的交換機帶來了新的問題和挑戰(zhàn),其中一個突出的問題就是流表存儲空間有限問題[1].

      OpenFlow將網(wǎng)絡(luò)協(xié)議棧扁平化,借助豐富的協(xié)議首部字段,并引入通配符支持任意字段的組合,實現(xiàn)網(wǎng)絡(luò)流的靈活定義與管理,但也帶來了流表存儲空間需求顯著上升的問題.隨著OpenFlow協(xié)議版本的持續(xù)演進,流表匹配域數(shù)量不斷增加,從1.0版本的12個已增加至1.5版本的44個,導致OpenFlow流表極其龐大.TCAM由于支持通配符查找方式,且能在一個時鐘周期內(nèi)輸出查找結(jié)果,因而常用于OpenFlow流表的存儲與查找.然而,TCAM成本高、能耗大、集成度低,導致容量有限,難以滿足OpenFlow大規(guī)模流表的存儲需求.因此,如何高效存儲OpenFlow大規(guī)模流表,成為SDN數(shù)據(jù)平面亟待解決的一個關(guān)鍵問題.目前主要有兩類方法解決該問題,一類采用壓縮流表,另一類采用優(yōu)化存儲結(jié)構(gòu).

      采用壓縮流表的方法來減少OpenFlow流表存儲空間.Kannan等人引入流標識符替代流表項15元組以減少流標識位,壓縮OpenFlow流表項[2].Banerjee等人采用標簽嵌套方法(Tag-in-Tag),將流表項替換成兩層簡短標簽,使TCAM能容納更多流表項[3].羅壽西等人應(yīng)用流表快速聚合(FFTA)和增量流表快速聚合(iFFTA)方法,結(jié)合基于前綴的聚合技術(shù),實現(xiàn)流表快速更新,以減小流表規(guī)模,提高流表匹配速度[4].葛敬國等人通過分析流表字段之間的共存和沖突關(guān)系,劃分流表與切分子流表以壓縮流表存儲空間[5,6].Bo Yan等人提出一種桶中緩存規(guī)則方案(CAB),將匹配域劃分為與所請求的桶相關(guān)的桶和緩存規(guī)則來減輕依賴性問題[7].上述算法在一定程度上能節(jié)省流表存儲空間,但無法滿足SDN大規(guī)模部署時的流表存儲空間需求.

      采用優(yōu)化設(shè)計存儲架構(gòu)來解決OpenFlow流表存儲問題.徐明偉等人基于現(xiàn)有商業(yè)交換機的各類硬件存儲表,采用軟件方式統(tǒng)一管理存儲資源,進而建立多流表串行查找模型[8].Ferkouss等人采用SRAM和TCAM存儲流水線查找表,并應(yīng)用遞歸流分類算法提高OpenFlow包分類性能[8].吳國新等人在SRAM中采用散列表存儲精確流表項,并將哈希沖突的流表項存儲到TCAM中,以避免多次讀取SRAM,加快流表查找速度[10].然而,該方法不適用于存儲帶通配符的OpenFlow流表項,且其散列沖突率將隨著流表項的增多而快速上升.張志勇、賈智平等人提出了一種混合TCAM存儲架構(gòu),采用基于NVM的TCAM緩存活躍流規(guī)則以提高緩存命中率,采用基于SRAM的小容量TCAM處理緩存失配包流以降低更新時延,并設(shè)計高效的規(guī)則遷移替換策略以充分利用TCAM資源[11].江勇、徐明偉等人提出一種流量感知的混合規(guī)則分配方案BALANCER,從邏輯上將TCAM劃為主動部分和被動部分,并根據(jù)網(wǎng)絡(luò)流量行為進行動態(tài)調(diào)整.同時,提出一種主動部分的高熵主動規(guī)則生成算法,為被動部分提供規(guī)則緩存方法和規(guī)則替換算法,提高OpenFlow交換機的TCAM利用率[12].Naous等人設(shè)計并開發(fā)了一個OpenFlow交換機,在NetFPGA芯片上采用TCAM與SRAM區(qū)分存儲通配流表項和精確流表項[13,14],但是由于TCAM容量有限,無法滿足大量通配流表項的存儲需求.本文利用OpenFlow流的包成批特性,建立一種OpenFlow流表區(qū)分性存儲架構(gòu),采用TCAM與SRAM區(qū)分存儲包成批流和包稀疏流,以期望在一定程度上解決OpenFlow大規(guī)模流表的存儲空間問題,從而提高流表查找性能.

      2 OpenFlow流表存儲

      由于TCAM容量有限,難以滿足OpenFlow大規(guī)模流表的存儲空間需求,因此,現(xiàn)有OpenFlow交換機往往采用TCAM和SRAM相結(jié)合存儲流表[10].圖1給出了對應(yīng)的OpenFlow流表存儲與查找架構(gòu).當某個數(shù)據(jù)包p到達OpenFlow交換機時,首先提取其流關(guān)鍵字fid,然后在TCAM與SRAM中并行查找,若成功匹配到SRAM或TCAM中的某條流表項,則執(zhí)行相應(yīng)的動作集;否則,將數(shù)據(jù)包封裝成流安裝請求發(fā)送給控制器,待控制器生成并下發(fā)對應(yīng)的流規(guī)則,再轉(zhuǎn)發(fā)處理數(shù)據(jù)包,同時將流規(guī)則添加到流表.

      在上述OpenFlow流表存儲與查找架構(gòu)中,一個關(guān)鍵問題是如何將所有流表項區(qū)分存儲在TCAM和SRAM中,以加快網(wǎng)絡(luò)包流的流表查找速度,提升OpenFlow交換機的數(shù)據(jù)轉(zhuǎn)發(fā)性能.目前,一種典型的流表區(qū)分存儲算法是:TCAM存儲帶通配符流表項,SRAM存儲精確流表項[13].該算法在網(wǎng)絡(luò)規(guī)模較小的情況下,能有效滿足OpenFlow流表的存儲需求,且流表查找效率高.然而,隨著OpenFlow協(xié)議版本的不斷升級,流表匹配域持續(xù)增多.同時,當OpenFlow進入大規(guī)模部署時,流表項數(shù)量也急劇上升.這將導致現(xiàn)有的TCAM芯片難以滿足大量通配流表項的存儲需求.對此,一種改進的存儲算法是:TCAM存儲大象流,SRAM存儲老鼠流[14,15].該算法不僅解決了OpenFlow大規(guī)模流表的存儲問題,而且使得大部分數(shù)據(jù)包查找命中TCAM流表,只有少部分數(shù)據(jù)包查找命中SRAM流表,在一定程度上控制了網(wǎng)絡(luò)包流的平均流表查找開銷.該算法考慮的是網(wǎng)絡(luò)流中數(shù)據(jù)包的長期統(tǒng)計特性,忽視了數(shù)據(jù)包到達的動態(tài)變化特性,因而缺乏對網(wǎng)絡(luò)包流的動態(tài)適應(yīng)能力,因此,本文提出一種包成批流識別方法,以增強OpenFlow流表存儲的動態(tài)適應(yīng)能力.

      3 基于包成批特性的OpenFlow流表區(qū)分存儲算法

      3.1 數(shù)據(jù)包成批到達特性

      大量研究結(jié)果表明:在分組交換網(wǎng)絡(luò)中,包到達過程并不是通常所預(yù)測的泊松流,而是彼此相關(guān),具有局部性特點[16-18].從應(yīng)用角度來看,網(wǎng)絡(luò)流量局部性主要由網(wǎng)絡(luò)應(yīng)用程序和數(shù)據(jù)傳輸協(xié)議共同作用所致,例如Web應(yīng)用產(chǎn)生大量的文件下載活動;網(wǎng)絡(luò)電話、網(wǎng)絡(luò)電視以及視頻聊天等流媒體的應(yīng)用,這些網(wǎng)絡(luò)行為都會產(chǎn)生持續(xù)的大塊數(shù)據(jù)傳輸活動,使得網(wǎng)絡(luò)數(shù)據(jù)包流表現(xiàn)出明顯的局部性特點.

      圖2 網(wǎng)絡(luò)流量局部性示意圖Fig.2 Network traffic locality

      從流的角度來看網(wǎng)絡(luò)流量局部性表現(xiàn)為:同一流中的數(shù)據(jù)包分布并不均勻,而是呈現(xiàn)出分批集中到達的特點.圖2展示了某段時間內(nèi)網(wǎng)絡(luò)數(shù)據(jù)包流分布的局部性特點.該時間段內(nèi)共到達36個數(shù)據(jù)包,其中,流f1為web訪問流,包含14個數(shù)據(jù)包,分3批集中到達;流f2為ftp流,包含13個數(shù)據(jù)包,分2批集中到達;剩余9個包則零散分布于f1、f2之外的稀疏數(shù)據(jù)包流中.由此可看出,大部分數(shù)據(jù)包分布在少數(shù)流上,且表現(xiàn)出明顯的分批集中到達特點.

      SDN作為一個新型的網(wǎng)絡(luò)架構(gòu),并沒有改變網(wǎng)絡(luò)用戶行為及其流量的分布特性,反而因OpenFlow中引入通配符,將多條數(shù)據(jù)包流匯聚到一條,使得網(wǎng)絡(luò)流量的局部性特點更加明顯.網(wǎng)絡(luò)流量局部性在OpenFlow流中表現(xiàn)為:

      a)從時間維度上看,同一流中的數(shù)據(jù)包分布往往呈現(xiàn)出分批集中的特點;

      b)當某條流連續(xù)到達幾個數(shù)據(jù)包時,說明該流已出現(xiàn)包成批現(xiàn)象,后續(xù)將還會有若干個數(shù)據(jù)包緊接著到達.

      3.2 算法思想

      基于上述包成批到達特性,可將OpenFlow網(wǎng)絡(luò)流區(qū)分為數(shù)據(jù)包分批集中到達的包成批流和數(shù)據(jù)包分散到達的包稀疏流.對于OpenFlow交換機而言,可建立相適應(yīng)的流表區(qū)分存儲算法,通過采用包成批流識別方法和流表項替換方法,將少量的包成批流存儲在TCAM中和大量的包稀疏流存儲在SRAM中,以解決OpenFlow大規(guī)模流表的存儲空間問題,并提高OpenFlow流表的查找效率,實現(xiàn)網(wǎng)絡(luò)包流的快速分類.

      抱著美好的愿望,老王家讓王祥去了離家鄉(xiāng)最近的L市。初到城市里王祥自然覺得什么都新鮮,不過王祥從各種電視節(jié)目里也了解了一部分城里人的劣根性,比如說驕傲,比如說冷漠,比如說狡詐。王祥雖然也不覺得這些玉器能像電視里說的那樣值那么多價錢,但是連蒙帶騙,能拼湊到1 0萬元的話就夠本了。

      3.2.1 包成批流識別方法

      為實現(xiàn)上述存儲算法,需要根據(jù)OpenFlow網(wǎng)絡(luò)中的包到達過程識別包成批流.在OpenFlow交換機中,每條流表項對應(yīng)一條OpenFlow流,記錄其短期內(nèi)的包到達情況.當一條OpenFlow流剛出現(xiàn)時,將其對應(yīng)的流表項存入SRAM中;當該流到達一個數(shù)據(jù)包時,若出現(xiàn)包成批現(xiàn)象時,將其流表項換入到TCAM,否則繼續(xù)存放在SRAM中.

      圖3 OpenFlow包成批流識別示意圖Fig.3 OpenFlow packet-in-batch flows identification diagram

      包成批流識別是上述OpenFlow流表區(qū)分存儲算法中的一個關(guān)鍵問題.為此,根據(jù)包到達過程設(shè)計包成批流識別方法如下:

      a)每條流表項記錄對應(yīng)流的最近一個包到達時間tlob和最近一批包個數(shù)n;

      b)對于每個新到達的數(shù)據(jù)包,根據(jù)其到達時間tcur,判斷該包與最近一個包是否屬于同一批次,即判斷時間間隔Δt=tcur-tlob是否小于設(shè)定的批包間隔閾值T;

      c)若該包與最近一個包同批,則更新批包信息,即n=n+1,tlob=tcur;

      d)根據(jù)當前批包個數(shù)n判斷是否出現(xiàn)成批現(xiàn)象,即是否大于設(shè)定的批包個數(shù)閾值N.圖3形象展示了OpenFlow包成批流識別的兩種情形.對于t2時刻到達的數(shù)據(jù)包,Δt=t2-t1>T,判定其與t1時刻到達的數(shù)據(jù)包不同批,該流處于包分散狀態(tài);對于t5時刻到達的數(shù)據(jù)包,Δt=t5-t4≤T,且n≥N,判定該流處于包成批狀態(tài).

      3.2.2 流表項替換算法

      依據(jù)上述包成批流識別方法,當SRAM中的某條流到達一個數(shù)據(jù)包時,若被判定為包成批流,則需換入TCAM.此時,若TCAM已滿,即TCAM.storage=full,則需換出一條流到SRAM中,因而需要設(shè)計合適的流表項替換算法.考慮到不同流的包批間隔差異性,每條流的空閑時間無法準確反映未來一段時間內(nèi)對應(yīng)流表項的失效概率.為此,每條流表項記錄最近一個包到達以來的空閑時間tidle和對應(yīng)流的平均包批到達間隔Δtavg,進而將兩者的比值定義為流表項的失效預(yù)測值P.流表項替換的具體選擇方法如下:

      a)每條流剛出現(xiàn)時,平均包批到達間隔Δtavg初始化為T;

      b)每到達一批新的數(shù)據(jù)包,即新到達的數(shù)據(jù)包與最近一個包不同批,則更新平均包批到達間隔為Δtavg=αΔt+(1-α)Δtavg,其中α是權(quán)重系數(shù);

      c)當TCAM需要替換一條流表項時,計算TCAM中每條流表項的空閑時間tidle=tnow-tlob,即當前時間tnow減去最近一個包的到達時間tlob,進而計算流表項的失效預(yù)測值P=tidle/Δtavg;

      d)找出TCAM中P值最大的流表項,即為需換出的流表項.

      4 算法實現(xiàn)

      依據(jù)上述OpenFlow流表區(qū)分存儲算法,可得到對應(yīng)的流表查找過程,其偽代碼實現(xiàn)如表1所示.當數(shù)據(jù)包p到達OpenFlow交換機時,首先提取其關(guān)鍵字段,得到流標識符fid,進而并行查找TCAM和SRAM中的流表(1~2行).若流表查找失敗,則將數(shù)據(jù)包p封裝成packet-in消息發(fā)送給控制器,待控制器生成并下發(fā)流規(guī)則后,再轉(zhuǎn)發(fā)處理數(shù)據(jù)包p,同時將對應(yīng)的流規(guī)則添加到SRAM流表,并生成流表項f(3~8行).若流表查找成功命中某條流表項f,則根據(jù)其動作集轉(zhuǎn)發(fā)處理數(shù)據(jù)包p,并更新其相關(guān)參數(shù),包括:最近包到達時間f.tlob、當前批包個數(shù)f.num、平均包批到達間隔f.Δtavg(9~15行).若流表項f屬于SRAM流表,且f.num達到批包個數(shù)閾值N,則進一步判斷TCAM是否已滿(16~17行).若TCAM未滿,則直接將流表項f換入TCAM,否則計算其每條流表項的失效預(yù)測值P,找出P值最大的流表項e,并將其換出到SRAM,最后將f換入TCAM(18~23行).

      表1 OpenFlow流表包成批流識別算法和替換算法Table 1 OpenFlow packet-in-batch flows identification algorithm and replacement algorithm

      5 實 驗

      5.1 網(wǎng)絡(luò)流量樣本

      實驗選取江蘇省計算機網(wǎng)絡(luò)技術(shù)中心發(fā)布的2個高速骨干網(wǎng)絡(luò)流量樣本*1 Network traffic traces. http://iptas.edu.cn/src/system.php,2015.(CERNET20110418、CERNET20140509)作為數(shù)據(jù)集.這2個數(shù)據(jù)集是從速率為10Gbps的中國教育科研網(wǎng)骨干鏈路上按照1:4的比例采集而得,采集日期分別為2011年4月18日,2014年5月9日,持續(xù)時間分別約為107秒和58秒,采集的數(shù)據(jù)包個數(shù)均為15,420,235.

      流表規(guī)模對流表存儲與查找性能具有重要影響,圖4給出了上述兩個數(shù)據(jù)集中的并發(fā)網(wǎng)絡(luò)流數(shù)量.為簡化起見,選取傳統(tǒng)5元組(源IP地址、目的IP地址、源端口、目的端口和協(xié)議類型)做為流標識符.實驗從數(shù)據(jù)集中逐個讀取數(shù)據(jù)包,提取其關(guān)鍵字段,并計算流標識符,然后每105個數(shù)據(jù)包輸出一次并發(fā)流數(shù)量.其中,流超時間隔設(shè)為10秒.

      圖4 并發(fā)網(wǎng)絡(luò)流數(shù)量Fig.4 Concurrent network traffic

      從圖4可看出:

      1)包成批流數(shù)量整體上比較穩(wěn)定,基本保持在8K~9K范圍內(nèi),適合采用容量較小的TCAM存儲;

      2)包稀疏流的穩(wěn)定數(shù)量是包成批流數(shù)量的好幾倍,且與流量樣本密切相關(guān),可采用容量相對較大的SRAM存儲.

      5.2 TCAM流表命中率

      TCAM流表命中率是衡量OpenFlow流表區(qū)分存儲算法優(yōu)劣的關(guān)鍵性能指標.

      5.2.1 影響因素

      實驗首先通過設(shè)置不同的批包間隔閾值T和批包個數(shù)閾值N,測量這兩個參數(shù)對TCAM命中率的影響.實驗分別將N取固定值且T取不同值、T取固定值且N取不同值,依照上述實驗過程,得到本文所提算法的TCAM命中率如圖5和圖6所示.從圖5可以看出:當批包間隔閾值T取800ms時,批包個數(shù)閾值N越小,TCAM命中率越大.圖6給出了當N=3,T每隔50ms取到不同值時,對應(yīng)TCAM命中率平均值的變化曲線,從圖6可以看出:當T在[750,850]范圍內(nèi),兩個樣本對應(yīng)的平均TCAM命中率均處于最高水平.因此,認定在批

      包個數(shù)閾值N為3、批包間隔閾值T取800ms時,本文所提算法取得最高TCAM命中率.

      圖5 不同批包個數(shù)閾值的TCAM命中率Fig.5 TCAM hit rate of different batch number thresholds

      5.2.2 對比

      實驗將本文所提的包成批流/包稀疏流區(qū)分算法DFT-BS與目前主流的大象流/老鼠流區(qū)分算法DFT-EM進行對比.首先,根據(jù)上述實驗結(jié)果,為DFT-BS算法設(shè)置批包間隔閾值T=800ms和批包個數(shù)閾值N=3,為DFT-EM算法設(shè)置不同的大象流包個數(shù)閾值PKT.然后從數(shù)據(jù)集中依次讀取每個數(shù)據(jù)包,計算流標識符,執(zhí)行流表查找過程,并記錄TCAM命中次數(shù).每105個數(shù)據(jù)包統(tǒng)計一次TCAM命中率,最后得到兩個流表區(qū)分算法的TCAM命中率如圖7所示.

      圖6 不同批包間隔閾值的TCAM命中率Fig.6 TCAM hit rates for different batch interval thresholds

      圖7 TCAM命中率對比Fig.7 TCAM hit rate comparison

      從圖7可以看出,無論哪個樣本,本文所提DFT-BS算法的TCAM命中率明顯高于DFT-EM算法,且始終穩(wěn)定大于0.9.

      綜合上述實驗結(jié)果表明:本文所提算法的TCAM命中率明顯高于目前主流的大象流/老鼠流區(qū)分算法,且基本穩(wěn)定保持在0.9以上,當批包個數(shù)閾值N為3、批包間隔閾值T取800ms時,TCAM命中率達到最大值,可有效提高OpenFlow流表查找性能.

      6 結(jié) 論

      針對TCAM難以滿足OpenFlow流表的存儲需求的問題,本文基于網(wǎng)絡(luò)包成批特性,提出了一種OpenFlow流表區(qū)分存儲算法,在設(shè)計包成批流識別方法和流表項替換方法的基礎(chǔ)上,將少量的包成批流和大量的包稀疏流區(qū)分存儲在TCAM和SRAM中.該算法有效提高了TCAM流表命中率,增強了OpenFlow流表存儲的動態(tài)適應(yīng)能力,對加快web下載、在線視頻等網(wǎng)絡(luò)行為的數(shù)據(jù)包查找速度具有現(xiàn)實意義.

      猜你喜歡
      流表表項命中率
      一種改進的TCAM路由表項管理算法及實現(xiàn)
      基于時序與集合的SDN流表更新策略
      基于ARMA模型預(yù)測的交換機流表更新算法
      夜夜“奮戰(zhàn)”會提高“命中率”嗎
      2015男籃亞錦賽四強隊三分球進攻特點的比較研究
      長江叢刊(2018年31期)2018-12-05 06:34:20
      基于緩存策略的OpenFlow流表存儲優(yōu)化方案研究
      電子測試(2018年21期)2018-11-08 03:09:34
      簡析yangUI流表控制
      軟件定義網(wǎng)絡(luò)中一種兩步式多級流表構(gòu)建算法
      SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化
      投籃的力量休斯敦火箭
      NBA特刊(2017年8期)2017-06-05 15:00:13
      孝义市| 贵德县| 多伦县| 湘西| 同心县| 广东省| 栾川县| 温泉县| 邮箱| 莱州市| 上饶县| 崇信县| 甘南县| 平塘县| 汶川县| 莫力| 穆棱市| 易门县| 綦江县| 凤庆县| 江华| 德昌县| 道孚县| 离岛区| 嫩江县| 九台市| 门头沟区| 高尔夫| 恩平市| 金山区| 静乐县| 定结县| 民县| 灯塔市| 定结县| 晋江市| 荥经县| 西城区| 喀喇沁旗| 天长市| 永善县|