邢光林,胡青,侯睿
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,基于TCP/IP 的體系結(jié)構(gòu)在安全性、移動(dòng)性、可靠性和可擴(kuò)展性等方面面臨著諸多挑戰(zhàn)[1],而信息中心網(wǎng)絡(luò)(Information Centric Networking,ICN)[2-3]摒棄了傳統(tǒng)的以IP 層為核心的協(xié)議棧結(jié)構(gòu),采用以信息為核心的協(xié)議棧結(jié)構(gòu)[4],其關(guān)注信息本身并弱化信息位置,將網(wǎng)絡(luò)通信方式從端到端的通信方式轉(zhuǎn)變?yōu)橐詢(xún)?nèi)容為中心的通信方式,逐漸成為未來(lái)網(wǎng)絡(luò)架構(gòu)的主流研究方向 之 一[5]. 其 中,命 名 數(shù) 據(jù) 網(wǎng) 絡(luò)(Named Data Networking,NDN)因其耦合路由、網(wǎng)內(nèi)存儲(chǔ)等特點(diǎn)被認(rèn)為是信息中心網(wǎng)絡(luò)最具代表性的一個(gè)架構(gòu)方案,受到了各國(guó)學(xué)者的廣泛關(guān)注.
在NDN 中,使用了兩種類(lèi)型的包來(lái)實(shí)現(xiàn)消費(fèi)者(即內(nèi)容請(qǐng)求者)和生產(chǎn)者(即內(nèi)容發(fā)布者)之間的通信,分別是興趣包和數(shù)據(jù)包[6],所有的數(shù)據(jù)內(nèi)容被指派一個(gè)唯一的內(nèi)容名稱(chēng).消費(fèi)者將所需數(shù)據(jù)內(nèi)容名稱(chēng)封裝到興趣包中并發(fā)送到NDN 網(wǎng)絡(luò),當(dāng)NDN路由器接收到興趣包后會(huì)根據(jù)數(shù)據(jù)內(nèi)容名稱(chēng)將興趣包以逐跳的方式轉(zhuǎn)發(fā)至相應(yīng)的生產(chǎn)者,生產(chǎn)者將消費(fèi)者所需數(shù)據(jù)內(nèi)容封裝到數(shù)據(jù)包中,沿興趣包所經(jīng)路徑原路返回至消費(fèi)者,完成數(shù)據(jù)交互過(guò)程.每個(gè)NDN 節(jié)點(diǎn)維護(hù)三個(gè)數(shù)據(jù)結(jié)構(gòu),分別是內(nèi)容存儲(chǔ)(Content Store,CS)、待定興趣表(Pending Interest Table,PIT)和轉(zhuǎn)發(fā)信息庫(kù)(Forwarding Information Base,F(xiàn)IB),其中CS為內(nèi)容存儲(chǔ),PIT用于記錄名稱(chēng)前綴和傳入接口等信息,F(xiàn)IB 提供基于內(nèi)容名稱(chēng)的路由.由于NDN 采用基于內(nèi)容名稱(chēng)路由的無(wú)連接傳輸模式[7],這使得擁塞控制變得復(fù)雜,因?yàn)閭鬏攲拥膿砣刂茩C(jī)制通常使用端到端的網(wǎng)絡(luò)路徑屬性的估計(jì)來(lái)執(zhí)行[8],同時(shí)擁塞控制對(duì)提高網(wǎng)絡(luò)的性能具有重要意義,因此NDN的擁塞控制問(wèn)題逐漸受到廣泛關(guān)注.
本文提出一種顯式擁塞控制方法(Explicit Congestion Control Method,ECM).當(dāng)遇到突發(fā)流量導(dǎo)致鏈路發(fā)生擁塞時(shí),路由節(jié)點(diǎn)為每個(gè)數(shù)據(jù)流配置一個(gè)計(jì)數(shù)器,轉(zhuǎn)發(fā)興趣包時(shí)計(jì)數(shù)器會(huì)相應(yīng)遞減,當(dāng)計(jì)數(shù)器為零時(shí)(這意味著該數(shù)據(jù)流已經(jīng)傳輸了其被允許的數(shù)據(jù)量),則當(dāng)前數(shù)據(jù)流被標(biāo)記為貪婪流,屬于這些流的興趣包被加入到緩存(整形)隊(duì)列中,然后當(dāng)前路由節(jié)點(diǎn)通知其下游路由節(jié)點(diǎn)降低興趣包的轉(zhuǎn)發(fā)速率(即顯式擁塞通知),最后通過(guò)數(shù)據(jù)包將擁塞信息返回給消費(fèi)者,消費(fèi)者從而可根據(jù)擁塞信息來(lái)調(diào)整興趣包的發(fā)送速率.
NDN 中現(xiàn)有的擁塞控制研究工作可以大致概括為兩種類(lèi)型:由請(qǐng)求者驅(qū)動(dòng)的擁塞控制機(jī)制和逐跳擁塞控制機(jī)制.
第一類(lèi)方式借鑒了傳統(tǒng)TCP/IP 的設(shè)計(jì),通過(guò)在消費(fèi)者方調(diào)整興趣包的發(fā)送速率來(lái)達(dá)到擁塞控制的目的.速率調(diào)整使用的是“和式增加積式減少”(Additive Increase Multiplicative Decrease,AIMD).文獻(xiàn)[9]提出了一種興趣控制協(xié)議ICP(Interest Control Protocol),設(shè)置在消費(fèi)者方的AIMD 控制器會(huì)根據(jù)當(dāng)前網(wǎng)絡(luò)的情況來(lái)調(diào)整發(fā)送窗口的大小.文獻(xiàn)[10]提出了一種基于超時(shí)機(jī)制的CCTCP(Content Centric TCP)協(xié)議,通過(guò)替每個(gè)流設(shè)置多個(gè)擁塞窗口和RTO 超時(shí)重傳機(jī)制來(lái)控制興趣包的發(fā)送速率.以上都是基于超時(shí)驅(qū)動(dòng)的擁塞控制策略,該類(lèi)型的算法都是使用了RTT(Round Trip Time)作為超時(shí)的度量,但是由于NDN 的多源特性,消費(fèi)者所請(qǐng)求的數(shù)據(jù)內(nèi)容在網(wǎng)絡(luò)中的分布通常是不確定的,這導(dǎo)致對(duì)RTT 的準(zhǔn)確估算非常困難.因此,NDN 的學(xué)者更傾向于逐跳的顯式擁塞控制機(jī)制.
逐跳擁塞控制機(jī)制依賴(lài)于中間路由節(jié)點(diǎn),文獻(xiàn)[11]提出了一種結(jié)合發(fā)送端與路由節(jié)點(diǎn)端的擁塞控制機(jī)制HR-ICP(Hop-by-hop and Receiver-driven Interest Control Protocol),它采用了逐跳的興趣包整形方案,使得HR-ICP 能夠比ICP 更快地檢測(cè)和響應(yīng)擁塞狀態(tài).文獻(xiàn)[12]提出了一種采用顯式擁塞通知的擁塞控制機(jī)制CHoPCoP(Chunk-switched Hop Pull Control Protocol),能夠很好的處理NDN 中的多源、多路徑問(wèn)題.文獻(xiàn)[13]提出了一種逐跳的興趣包整形機(jī)制,通過(guò)監(jiān)測(cè)路由節(jié)點(diǎn)輸出鏈路上的興趣包隊(duì)列大小來(lái)計(jì)算和控制興趣包的轉(zhuǎn)發(fā)速率.文獻(xiàn)[14]提出了一種基于公平性的路由節(jié)點(diǎn)主動(dòng)隊(duì)列管理方法,該方法通過(guò)流量速率整形來(lái)保證資源的公平分配.上述方法雖然獲得了較好的性能,但是并沒(méi)有考慮資源的公平分配,因此需要在中間路由節(jié)點(diǎn)處實(shí)施公平方案,以確保貪婪流不會(huì)壟斷可用的網(wǎng)絡(luò)資源.
本文借鑒速率控制協(xié)議(RCP)的思想,提出一種基于路由節(jié)點(diǎn)端的擁塞控制方法,當(dāng)網(wǎng)絡(luò)擁塞時(shí),ECM 利用計(jì)數(shù)器和整形隊(duì)列對(duì)標(biāo)記為貪婪流的數(shù)據(jù)流進(jìn)行降速處理,同時(shí)更新興趣包中的擁塞信息域并將其逐跳反饋給下游路由節(jié)點(diǎn),最后利用數(shù)據(jù)包將擁塞信息反饋給消費(fèi)者,消費(fèi)者據(jù)此調(diào)整興趣包的發(fā)送速率,從而實(shí)現(xiàn)網(wǎng)絡(luò)擁塞控制,在保證數(shù)據(jù)流的公平性的前提下考慮了不同數(shù)據(jù)流之間的優(yōu)先級(jí),保障了數(shù)據(jù)流的QoS.
ECM考慮了鏈路帶寬、數(shù)據(jù)流的優(yōu)先級(jí)和延時(shí)要求,保證了各種優(yōu)先級(jí)數(shù)據(jù)流的QoS要求.每個(gè)數(shù)據(jù)流所分配得到的帶寬資源遵循最大-最小公平分配.設(shè)不同數(shù)據(jù)流QoS要求的延時(shí)上限為Di,瓶頸鏈路帶寬為C,整形隊(duì)列的最大長(zhǎng)度為Qmax,路由節(jié)點(diǎn)j中數(shù)據(jù)流i的平均速率為rij,路由節(jié)點(diǎn)j中數(shù)據(jù)流i的最大數(shù)據(jù)包大小為Sij,沿路所經(jīng)路由器數(shù)量為n,鏈路傳播延時(shí)為Df,則數(shù)據(jù)流i的延時(shí)上限可以被寫(xiě)為:
ECM引入了延時(shí)差值αi=Di-Di*來(lái)確定不同數(shù)據(jù)流的優(yōu)先級(jí).當(dāng)路由節(jié)點(diǎn)按照ri為數(shù)據(jù)流分配帶寬時(shí),αi表示其QoS 要求的延時(shí)上限與公式計(jì)算得出的延時(shí)上限之間的差值,αi越小,表示根據(jù)公式計(jì)算得出的延時(shí)上限與QoS 要求的延時(shí)上限越接近,數(shù)據(jù)流對(duì)其被分配的帶寬資源的變動(dòng)越敏感,相應(yīng)地優(yōu)先級(jí)也越高.
ECM主要的流程圖如圖1所示.
圖1 ECM算法流程Fig.1 ECM algorithm process
ECM 算法運(yùn)行在NDN 路由節(jié)點(diǎn)上,首先根據(jù)NDN 名字前綴的不同將興趣包分為不同的流,之所以這樣定義,是因?yàn)榫哂邢嗤智熬Y的興趣包具有相同或相似的狀態(tài),PIT 中唯一的名字前綴的數(shù)量決定了當(dāng)前網(wǎng)絡(luò)中活動(dòng)的流的數(shù)量.當(dāng)遇到突發(fā)流量導(dǎo)致鏈路發(fā)生擁塞時(shí),路由節(jié)點(diǎn)會(huì)為每個(gè)數(shù)據(jù)流配置一個(gè)計(jì)數(shù)器,當(dāng)興趣包被轉(zhuǎn)發(fā)時(shí)計(jì)數(shù)器會(huì)相應(yīng)遞減.當(dāng)計(jì)數(shù)器大于零時(shí),興趣包直接轉(zhuǎn)發(fā);當(dāng)計(jì)數(shù)器小于或等于零時(shí),則當(dāng)前數(shù)據(jù)流被標(biāo)記為貪婪流,需要對(duì)其速率進(jìn)行限制,將貪婪流的興趣包暫時(shí)緩存于整形隊(duì)列中而不是直接丟棄,既避免了進(jìn)一步的擁塞,同時(shí)也降低了丟包率,直到相應(yīng)計(jì)數(shù)器被重置更新后,整形隊(duì)列中的興趣包才被轉(zhuǎn)發(fā),計(jì)數(shù)器被重置更新的值為ECM 計(jì)算得到的相應(yīng)數(shù)據(jù)流的轉(zhuǎn)發(fā)(限制)速率.為了緩解當(dāng)前鏈路的擁塞,還需要借助顯式擁塞通知機(jī)制通知其下游路由節(jié)點(diǎn)降低興趣包的轉(zhuǎn)發(fā)速率,才不會(huì)因?yàn)殛?duì)列持續(xù)增加導(dǎo)致延時(shí)過(guò)長(zhǎng),經(jīng)過(guò)算法整形后的速率就是網(wǎng)絡(luò)期望且不會(huì)造成擁塞的速率.ECM 核心算法的偽代碼如算法1所示.
ECM 的速率控制算法是基于文獻(xiàn)[15]中提出的速率控制協(xié)議(RCP)設(shè)計(jì)的.采用RCP 的動(dòng)機(jī)思想在于其為所有流公平分配速率(即帶寬)的優(yōu)勢(shì),并以快速的下載時(shí)間實(shí)現(xiàn)網(wǎng)絡(luò)帶寬的優(yōu)化利用.NDN 路由節(jié)點(diǎn)處理、轉(zhuǎn)發(fā)和緩存數(shù)據(jù)包的能力為RCP 的實(shí)現(xiàn)和部署提供了很好的支持,此外,NDN的逐跳轉(zhuǎn)發(fā)性質(zhì)也能很好地契合RCP 的反饋機(jī)制.ECM 的速率控制方案的核心思想是,每個(gè)路由節(jié)點(diǎn)維護(hù)一個(gè)值R(t),該值表示當(dāng)前路由節(jié)點(diǎn)支持的最大的數(shù)據(jù)包的返回速率,即當(dāng)n個(gè)流的輸入速率為ri(t)=(r1,r2,r3…rn)時(shí),路 由節(jié)點(diǎn)的負(fù)載為sumR=,當(dāng)sumR<R(t)時(shí),鏈路沒(méi)有發(fā)生擁塞,當(dāng)sumR>R(t)時(shí),鏈路發(fā)生了擁塞,需要執(zhí)行ECM 算法來(lái)對(duì)數(shù)據(jù)流進(jìn)行限制,R(t)的更新公式如下:
在公式中,η是目標(biāo)鏈路利用率,α和β是控制穩(wěn)定性和性能的參數(shù),C為可用鏈路帶寬,y(t)為路由節(jié)點(diǎn)在周期(t-T,t)內(nèi)的總輸入流量,q(t)表示時(shí)間t時(shí)緩沖隊(duì)列的長(zhǎng)度,d是消費(fèi)者發(fā)送興趣包和匹配數(shù)據(jù)包到達(dá)消費(fèi)者之間的平均響應(yīng)時(shí)間.
由于ECM 是具體到每個(gè)數(shù)據(jù)流的擁塞控制方法,因此還需要對(duì)R(t)進(jìn)行分割,為了達(dá)到優(yōu)化傳輸和負(fù)載平衡的目的,可以公式化為一個(gè)簡(jiǎn)單的凸優(yōu)化問(wèn)題,設(shè)當(dāng)前路由節(jié)點(diǎn)中有n個(gè)活動(dòng)數(shù)據(jù)流,興趣包的發(fā)送速率為mi=(m1,m2,m3…mn),具體公式如下:
顯然,當(dāng)α1r1=α2r2= ···=αnrn時(shí)能夠得到最優(yōu)解值,繼而得到每個(gè)數(shù)據(jù)流的轉(zhuǎn)發(fā)速率為:
算法1 ECM 算法的偽代碼符號(hào)約定:ri 流的輸入速率vi 轉(zhuǎn)發(fā)速率sumR 路由負(fù)載輸入 n streams:r1,r2,…rn輸出 n streams:r1,r2,…rn按照既定的規(guī)則被轉(zhuǎn)發(fā)for each ri do sumR←sumR+ri end for if sumR>R //發(fā)生擁塞for each ri do calculate vi. //計(jì)算限制速率if counters>0 counters←counters-interest.data_size interest=Shaping_Queue_Dequeue(i)Forward(interest)end if else Shaping_Queue_Enqueue(interest)Limit_Rate←vi Congestion_Flag←Congestion_Flag+1 send NACK to downstream router end else end for if counter for each flow should be reset after some time for each ri do Update_Counters(vi) //更新計(jì)數(shù)器end for end if end if else Standard_NDN_Processing end else if Interest packet is satisfied copy Limit_Rate and Congestion_Flag in Data packet send Data packet to consumer end if
本文通過(guò)拓展興趣包的結(jié)構(gòu),增加兩個(gè)字段:限制速率(Limit Rate)和擁塞標(biāo)志(Congestion Flag)來(lái)實(shí)現(xiàn)顯式擁塞通知.擴(kuò)展之后的興趣包結(jié)構(gòu)如圖2所示.
圖2 興趣包結(jié)構(gòu)Fig.2 Interest packet structure
其中,限制速率為算法計(jì)算得到的興趣包轉(zhuǎn)發(fā)速率,擁塞標(biāo)志表示興趣包是否導(dǎo)致了擁塞的發(fā)生.當(dāng)消費(fèi)者開(kāi)始發(fā)送興趣包時(shí),將限制速率初始化為興趣包的發(fā)送速率,擁塞標(biāo)志初始化為零.當(dāng)遇到突發(fā)流量導(dǎo)致鏈路發(fā)生擁塞時(shí),如果興趣包所屬的數(shù)據(jù)流相應(yīng)的計(jì)數(shù)器小于等于零時(shí),那么則判斷當(dāng)前興趣包的輸入速率過(guò)高,即認(rèn)為其對(duì)網(wǎng)絡(luò)擁塞做出了“貢獻(xiàn)”,需要對(duì)其速率進(jìn)行限制,將算法計(jì)算得到的轉(zhuǎn)發(fā)速率更新到相應(yīng)的限制速率字段,并且將擁塞標(biāo)志加一,同時(shí)向該興趣包傳入的接口發(fā)送NACK,NACK 中封裝的是限制速率,當(dāng)下游路由節(jié)點(diǎn)(k-1)收到NACK 后不會(huì)自動(dòng)通知其下游路由節(jié)點(diǎn)(k-2),而是提取限制速率作為新的計(jì)數(shù)器更新速率,并根據(jù)自身負(fù)載來(lái)決定是否發(fā)送NACK.這樣可以減少更多的興趣包傳入該擁塞區(qū)域,從而暫時(shí)緩解網(wǎng)絡(luò)的擁塞,但是這樣也可能造成本來(lái)不擁塞的下游鏈路發(fā)生擁塞,因此要徹底解決網(wǎng)絡(luò)的擁塞,還需要消費(fèi)者根據(jù)網(wǎng)絡(luò)的狀況來(lái)改變興趣包的發(fā)送速率.
當(dāng)一個(gè)興趣包即將被滿(mǎn)足時(shí),路由節(jié)點(diǎn)檢查其擁塞標(biāo)志,如果等于零,則直接返回?cái)?shù)據(jù)包;如果大于零,則將限制速率復(fù)制到數(shù)據(jù)包中并原路返回給消費(fèi)者.當(dāng)消費(fèi)者接收到數(shù)據(jù)包后,將數(shù)據(jù)包中的限制速率提取出來(lái)作為新的興趣包發(fā)送速率,這樣就可以將網(wǎng)絡(luò)發(fā)生擁塞的概率降到最低,從而提高網(wǎng)絡(luò)的吞吐量,保證網(wǎng)絡(luò)的良好性能.
在ndnSIM2.0 上進(jìn)行了實(shí)驗(yàn),來(lái)證明所提出的算法的有效性.ndnSIM2.0是一個(gè)基于ns-3的仿真平臺(tái),能夠仿真多樣化的部署場(chǎng)景,支持大范圍的NDN實(shí)驗(yàn).仿真實(shí)驗(yàn)采用的拓?fù)浣Y(jié)構(gòu)如圖3所示.采用的是單瓶頸鏈路拓?fù)?,其中消費(fèi)者Src1 至Src3 每秒發(fā)送1000個(gè)興趣包,三種數(shù)據(jù)流所能接收的最大延時(shí)Di分別為45 ms,50 ms 和55 ms,數(shù)據(jù)請(qǐng)求服從齊夫分布,鏈路的傳播延時(shí)為10 ms,轉(zhuǎn)發(fā)策略采用的是BestRoute.
圖3 網(wǎng)絡(luò)拓?fù)銯ig.3 Network topology
因?yàn)镋CM 算法需要計(jì)算大量數(shù)據(jù)流的速率,但是其隨著網(wǎng)絡(luò)的擁塞狀況也在發(fā)生變化.為了更好地驗(yàn)證算法的穩(wěn)定性,場(chǎng)景二使用了與場(chǎng)景一基本相同的參數(shù),但是瓶頸鏈路帶寬從1 M 逐漸增加到6 M,觀察平均丟包率的變化.
將提出的ECM 算法與ICP、HR-ICP 和CHoPCoP進(jìn)行了比較,ICP 是一種類(lèi)似于TCP 的興趣包控制協(xié)議,設(shè)置在消費(fèi)者的AIMD 控制器會(huì)根據(jù)當(dāng)前網(wǎng)絡(luò)的狀況來(lái)調(diào)整輸出窗口的大小,HR-ICP 在ICP 的基礎(chǔ)上提出一種結(jié)合發(fā)送端與路由節(jié)點(diǎn)端的擁塞控制機(jī)制,CHoPCoP 使用顯式擁塞通知而不是RTO計(jì)時(shí)器來(lái)更快地響應(yīng)網(wǎng)絡(luò)的擁塞信息.考慮的性能指標(biāo)包括延時(shí),數(shù)據(jù)接收速率和丟包率.
延時(shí)隨時(shí)間的變化結(jié)果如圖4 所示.三位消費(fèi)者的延時(shí)都逐漸增加并收斂于40 ms 左右,收斂以后處于穩(wěn)定狀態(tài),這是因?yàn)镋CM 能夠通過(guò)收集返回?cái)?shù)據(jù)包攜帶的速率信息來(lái)實(shí)現(xiàn)一定程度上的路由節(jié)點(diǎn)協(xié)調(diào),當(dāng)網(wǎng)絡(luò)中的負(fù)載達(dá)到相對(duì)均衡時(shí),消費(fèi)者將以接近恒定的速率發(fā)送興趣包,因此明顯改善了延時(shí)抖動(dòng)性,說(shuō)明了算法的穩(wěn)定性.同時(shí),收斂后的延時(shí)隨數(shù)據(jù)流的優(yōu)先級(jí)的增大逐漸減少,這樣既保證了數(shù)據(jù)流的服務(wù)質(zhì)量同時(shí)也提供了更好的體驗(yàn)質(zhì)量.
圖4 用戶(hù)延時(shí)Fig.4 Delay of users
圖5顯示了三種優(yōu)先級(jí)數(shù)據(jù)流的瓶頸帶寬分配情況.我們可以明顯觀察到,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),系統(tǒng)分配帶寬的情況和數(shù)據(jù)流的優(yōu)先級(jí)是一致的,也就是說(shuō),當(dāng)鏈路帶寬不足的情況下,高優(yōu)先級(jí)數(shù)據(jù)流的QoS得到了有效的保證.
圖5 不同優(yōu)先級(jí)數(shù)據(jù)流的寬帶分配情況Fig.5 Bandwidth allocation of different priority flows
圖6比較了ICP、HR-ICP、CHoPCoP和ECM在仿真期間的數(shù)據(jù)接受速率.可以看到ECM 的性能是明顯優(yōu)于ICP 和HR-ICP 的,這是因?yàn)镮CP 采用了擁塞窗口,慢啟動(dòng)會(huì)導(dǎo)致速率較低,同時(shí)由于擁塞窗口的增加,消費(fèi)者發(fā)送的興趣包增多,這樣會(huì)導(dǎo)致興趣包的排隊(duì)時(shí)間增加,相應(yīng)的RTT 也會(huì)增加,從而降低了ICP 的網(wǎng)絡(luò)容量利用率,而HR-ICP 由于在中間路由節(jié)點(diǎn)能夠檢測(cè)擁塞從而與ICP 相比網(wǎng)絡(luò)容量利用率更好,但其仍采用擁塞窗口來(lái)調(diào)節(jié)興趣包發(fā)送速率.ECM 和CHoPCoP 都能很好地利用網(wǎng)絡(luò)容量,由于CHoPCoP 使用了顯式擁塞通知機(jī)制,使得其能更好地響應(yīng)網(wǎng)絡(luò)中的擁塞信息,從而更好地利用網(wǎng)絡(luò)容量,但是ECM比CHoPCoP的穩(wěn)定性更好.
圖6 四種方法的數(shù)據(jù)接收速率Fig.6 Data rate of four methods
圖7 是這三種機(jī)制的數(shù)據(jù)接受速率的小提琴圖.小提琴圖是箱線(xiàn)圖與核密度圖的結(jié)合,顯示了速率的中位數(shù)和四分位數(shù)以及速率的集中和離散程度,可以看到ECM 的數(shù)據(jù)分布是更集中的,同時(shí)根據(jù)表1的數(shù)據(jù)顯示,ECM的四位方差最小,中位數(shù)最大,也說(shuō)明ECM 在充分利用了網(wǎng)絡(luò)容量的同時(shí),保證了較好的穩(wěn)定性.
表1 數(shù)據(jù)接收速率統(tǒng)計(jì)Tab.1 Data rate statistics
圖7 數(shù)據(jù)接收速率的小提琴圖Fig.7 Violin diagram of Data rate
圖8是四種方法的平均丟包率隨瓶頸鏈路的變化情況.可以看到ECM 的丟包率是最小的,這是因?yàn)镋CM 將貪婪流的興趣包暫時(shí)存于隊(duì)列中而不是直接丟棄,這樣不僅可以平滑網(wǎng)絡(luò)流量,降低上游路由節(jié)點(diǎn)的擁塞狀況,同時(shí)也降低了數(shù)據(jù)的丟失.ICP的丟包率最高,這是因?yàn)镮CP是在鏈路因?yàn)閬G包造成超時(shí)后才能檢測(cè)到擁塞并進(jìn)行擁塞控制,從而導(dǎo)致了較高的丟包率,HR-ICP 和CHoPCoP 的性能介于兩者之間,這是因?yàn)镠R-ICP 相比ICP 能夠在中間節(jié)點(diǎn)更快地檢測(cè)擁塞,而CHoPCoP 使用了顯式擁塞通知機(jī)制,能夠提前通知消費(fèi)者潛在的擁塞,從而消費(fèi)者可以更快地調(diào)節(jié)興趣包的發(fā)送窗口,避免大部分丟包.
圖8 四種方法的平均丟包率Fig.8 Average packet loss rate of four methods
三種優(yōu)先級(jí)數(shù)據(jù)流的平均丟包率隨瓶頸鏈路帶寬的變化結(jié)果如圖9所示.從中可以觀察到,當(dāng)瓶頸鏈路帶寬相同時(shí),高優(yōu)先級(jí)數(shù)據(jù)流的平均丟包率低于低優(yōu)先級(jí)數(shù)據(jù)流,這是因?yàn)楫?dāng)鏈路發(fā)生擁塞時(shí),系統(tǒng)會(huì)優(yōu)先給高優(yōu)先級(jí)數(shù)據(jù)流分配帶寬,因此網(wǎng)絡(luò)中的服務(wù)質(zhì)量也得到了有效的保證.
圖9 不同優(yōu)先級(jí)數(shù)據(jù)流的平均丟包率Fig.9 Average packet loss rate of different priority flows
本文提出了一種顯式擁塞控制方法,消費(fèi)者可根據(jù)網(wǎng)絡(luò)狀態(tài)及時(shí)調(diào)整興趣包的發(fā)送速率,在輸出端口通過(guò)計(jì)數(shù)器和整形隊(duì)列對(duì)貪婪流進(jìn)行限制,同時(shí)通過(guò)顯式擁塞通知機(jī)制使得網(wǎng)絡(luò)能夠更快地對(duì)擁塞信息作出反應(yīng). 仿真結(jié)果表明,與ICP 和CHoPCoP 這兩種典型的擁塞控制機(jī)制相比,ECM 具有更好的網(wǎng)絡(luò)容量利用率和穩(wěn)定性以及更低的丟包率.