王文靜,雒江濤
1.重慶郵電大學(xué) 電子信息與網(wǎng)絡(luò)工程研究院,重慶 400065
2.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065
隨著互聯(lián)網(wǎng)應(yīng)用與技術(shù)的高速發(fā)展,基于TCP/IP的體系結(jié)構(gòu)逐漸暴露出諸多問題,比如,IP地址枯竭、安全性差、移動(dòng)性差、擴(kuò)展性差等[1]。為了徹底解決這些問題,“革命式”的信息中心網(wǎng)絡(luò)應(yīng)運(yùn)而生,其中,命名數(shù)據(jù)網(wǎng)絡(luò)是目前最受廣泛關(guān)注和研究的未來互聯(lián)網(wǎng)體系架構(gòu)之一[2-3]。
NDN繼承了IP體系結(jié)構(gòu)的沙漏模型,區(qū)別在于用數(shù)據(jù)取代了細(xì)腰處的IP地址,并將安全內(nèi)置于數(shù)據(jù)中,路由基于數(shù)據(jù)的名字而不是IP地址[3]。另外,NDN還引入了網(wǎng)內(nèi)緩存機(jī)制,路由器可以緩存經(jīng)過的數(shù)據(jù),并響應(yīng)請(qǐng)求。又因?yàn)镹DN內(nèi)在地支持多路徑轉(zhuǎn)發(fā),使得NDN具有信源不可控的特性,這樣會(huì)導(dǎo)致網(wǎng)絡(luò)中存在大量的冗余信息存儲(chǔ)及轉(zhuǎn)發(fā),不可避免地會(huì)出現(xiàn)網(wǎng)絡(luò)擁塞。同時(shí),擁塞控制對(duì)保證網(wǎng)絡(luò)的高效性,提高網(wǎng)絡(luò)的魯棒性和穩(wěn)定性具有重要作用,因此NDN的擁塞控制問題逐漸得到了各學(xué)者的廣泛關(guān)注。
目前,NDN中的擁塞控制主要分為兩種方式:由請(qǐng)求者驅(qū)動(dòng)的擁塞控制和逐跳的興趣包整形機(jī)制。第一種方式是借鑒傳統(tǒng)TCP的設(shè)計(jì),通過超時(shí)機(jī)制RTO來確認(rèn)丟包的發(fā)生,并通過降低發(fā)送端的發(fā)送速率來減低網(wǎng)絡(luò)流量,進(jìn)而緩解網(wǎng)絡(luò)擁塞。文獻(xiàn)[4]提出的興趣包控制協(xié)議(Interest Control Protocol,ICP)通過調(diào)節(jié)興趣包的發(fā)送速率實(shí)現(xiàn)了基于窗口的流量控制,同時(shí)也證明了ICP能實(shí)現(xiàn)較好的帶寬利用率。文獻(xiàn)[5]基于超時(shí)機(jī)制設(shè)計(jì)了CCTCP(Content Centric TCP)協(xié)議,CCTCP通過替每個(gè)流設(shè)置多個(gè)擁塞窗口和RTO計(jì)時(shí)器,來控制興趣包的發(fā)送速度。另外,CCTCP設(shè)計(jì)了一種預(yù)測(cè)機(jī)制來估算RTO值,但因?yàn)橐S護(hù)多個(gè)計(jì)時(shí)器使得開銷過大。上面提到的由請(qǐng)求者驅(qū)動(dòng)的、基于RTO超時(shí)機(jī)制的擁塞控制方式已經(jīng)被證明不適合用于NDN網(wǎng)絡(luò),因?yàn)镹DN特殊的傳輸方式不同于傳統(tǒng)網(wǎng)絡(luò),適用于端到端通信的傳輸協(xié)議在NDN中的實(shí)現(xiàn)是非常困難的。首先NDN中沒有報(bào)文到達(dá)確認(rèn)機(jī)制,因此發(fā)送端只能通過RTO計(jì)時(shí)器來判斷擁塞的發(fā)生,但是在NDN中由于沒有確定的源,導(dǎo)致RTT的估算非常困難[6],同時(shí),使用RTO機(jī)制還有一個(gè)缺陷是其超時(shí)原因是不確定的。因此,相對(duì)于第一種隱式的擁塞控制,目前研究NDN的學(xué)者們更加看好逐跳的顯式擁塞控制[7]。文獻(xiàn)[8]提出通過逐跳地控制興趣包速率來實(shí)現(xiàn)NDN的擁塞控制,所設(shè)計(jì)的HoBHIS(Hop-By-Hop Interest Shaping mechanism)通過檢測(cè)路由器的傳輸隊(duì)列長(zhǎng)度來計(jì)算興趣包速率,由于在NDN中一個(gè)興趣包最多返回一個(gè)數(shù)據(jù)包,因此可以通過調(diào)節(jié)興趣包速率來控制數(shù)據(jù)包的返回速率。文獻(xiàn)[9]在每個(gè)流公平共享帶寬的基礎(chǔ)上,提出了一種興趣包轉(zhuǎn)發(fā)策略。當(dāng)興趣包速率超過路由器允許的速率時(shí),向下游路由器發(fā)送NACK(Negative ACKnowledgment),下游路由器收到之后調(diào)節(jié)興趣包的速率并尋找其他可用的接口轉(zhuǎn)發(fā)興趣包,以減少單條鏈路的負(fù)載。文獻(xiàn)[10]提出了一種結(jié)合發(fā)送端與路由器端的擁塞控制機(jī)制HR-ICP(Hop-by-hop and Receiverdriven Interest Control Protocol),HR-ICP除了在發(fā)送端通過擁塞窗口調(diào)節(jié)興趣包速率,還能在中間節(jié)點(diǎn)檢測(cè)擁塞,使得HR-ICP能比ICP更快地發(fā)現(xiàn)并響應(yīng)擁塞。文獻(xiàn)[8,10-12]在中間路由器檢測(cè)并調(diào)整興趣包的轉(zhuǎn)發(fā)速率來控制網(wǎng)絡(luò)擁塞,已經(jīng)獲得了較好的性能,但是沒有考慮數(shù)據(jù)流之間的公平性。文獻(xiàn)[9]為每個(gè)數(shù)據(jù)流分配了公平的帶寬,但是這樣無(wú)區(qū)別地分配固定的帶寬,將會(huì)導(dǎo)致網(wǎng)絡(luò)資源的浪費(fèi)。為了解決這個(gè)問題,受傳統(tǒng)公平隊(duì)列調(diào)度算法的啟發(fā),提出了一種路由器端的擁塞控制算法—NWFQ。NWFQ主要包括兩方面內(nèi)容:(1)在路由器端,通過動(dòng)態(tài)調(diào)整數(shù)據(jù)流的權(quán)重來調(diào)節(jié)興趣包調(diào)度順序,在盡可能保證為每個(gè)流提供所需帶寬的基礎(chǔ)上,在輸出端口利用令牌桶算法對(duì)超高速流進(jìn)行降速限制。(2)在興趣包/數(shù)據(jù)包中擴(kuò)展兩個(gè)字段,用于記錄擁塞信息和由當(dāng)前網(wǎng)絡(luò)反饋的最佳興趣包速率。最后,通過顯式反饋機(jī)制將擁塞信息反饋給下游節(jié)點(diǎn)/請(qǐng)求端,這樣請(qǐng)求端可以根據(jù)網(wǎng)絡(luò)實(shí)時(shí)的變化來調(diào)節(jié)興趣包的發(fā)送速率,從而提高網(wǎng)絡(luò)的魯棒性和吞吐量。
加權(quán)公平排隊(duì)WFQ是一種路由器公平隊(duì)列調(diào)度算法,也是一種擁塞管理算法,由于其能夠根據(jù)各數(shù)據(jù)流的優(yōu)先級(jí)進(jìn)行區(qū)分服務(wù)而引起了廣大研究者的關(guān)注。該算法根據(jù)流特性對(duì)其進(jìn)行分類,不同的流經(jīng)過哈希函數(shù)映射進(jìn)入不同的動(dòng)態(tài)隊(duì)列。每個(gè)流所分配到的帶寬資源遵循最大-最小公平分配,且WFQ允許其他流使用某條流剩余的帶寬[13]。
為了在各個(gè)流之間提供公平的調(diào)度和保證優(yōu)先級(jí)高的數(shù)據(jù)優(yōu)先被服務(wù),在入隊(duì)之前,WFQ計(jì)算每個(gè)數(shù)據(jù)包的虛擬調(diào)度時(shí)間(Virtual Schedule Time,VST)(見式(1)),VST決定了這個(gè)包出隊(duì)的時(shí)間順序。其中VST′是隊(duì)尾時(shí)間,記錄進(jìn)入隊(duì)列之前此隊(duì)列的虛擬調(diào)度時(shí)間總和。scaling是縮放比例值,用來縮放虛擬調(diào)度時(shí)間,scaling與數(shù)據(jù)包的優(yōu)先級(jí)成反比。new_packet_length是當(dāng)前數(shù)據(jù)包的長(zhǎng)度,WFQ規(guī)定優(yōu)先調(diào)度VST小的數(shù)據(jù)包[13]。設(shè)想流a擁有較低的優(yōu)先級(jí)和較小的平均包長(zhǎng),流b具有較高的優(yōu)先級(jí)和較大平均包長(zhǎng),當(dāng)流a小于流b的虛擬調(diào)度時(shí)間時(shí),流a可以通過不斷增大發(fā)送速率來占用網(wǎng)絡(luò)資源,使得高優(yōu)先級(jí)流的調(diào)度滯后。現(xiàn)如今很多的多媒體應(yīng)用的數(shù)據(jù)包符合流b的情況,這會(huì)導(dǎo)致這些應(yīng)用的時(shí)延無(wú)法得到保證。因此,根據(jù)分組大小和優(yōu)先級(jí)來決定調(diào)度是不夠的,還應(yīng)考慮速率限制等因素來抵制貪婪流。
NWFQ擁塞控制算法運(yùn)行在NDN的路由器上,它繼承WFQ算法的思想,根據(jù)NDN名字前綴的不同將興趣包分為不同的流。并在NDN原有路由模型的基礎(chǔ)上增加了速率限制(Rate Limit,RL)模塊來實(shí)現(xiàn)懲罰機(jī)制。當(dāng)遇到突發(fā)流量導(dǎo)致路由器發(fā)生擁塞時(shí),RL模塊為每個(gè)路由節(jié)點(diǎn)計(jì)算一個(gè)公平速率 f來區(qū)分貪婪流(輸入速率超過公平速率)與非貪婪流,對(duì)前者進(jìn)行懲戒,降低它的權(quán)重(此處的權(quán)重由數(shù)據(jù)速率和懲罰函數(shù)所共同決定),并在輸出接口實(shí)現(xiàn)令牌桶對(duì)轉(zhuǎn)發(fā)速率進(jìn)行限制,將興趣包/數(shù)據(jù)包暫存于軟件隊(duì)列中,避免進(jìn)一步的擁塞發(fā)生,從而減小丟包數(shù),提高網(wǎng)絡(luò)吞吐量。NDN中的NWFQ擁塞控制模型如圖1所示。
圖1 NWFQ擁塞控制模型
從圖1中可以看到,NWFQ算法是在輸出接口對(duì)興趣包/數(shù)據(jù)包的轉(zhuǎn)發(fā)速率進(jìn)行限制,RL模塊的具體實(shí)現(xiàn)包括NWFQ隊(duì)列調(diào)度和令牌桶技術(shù)兩部分。之所以采用NWFQ隊(duì)列是因?yàn)槠渚哂袇^(qū)分服務(wù)特性,在網(wǎng)絡(luò)發(fā)生擁塞的不利情況下,它可以優(yōu)先調(diào)度需要傳輸?shù)木o急數(shù)據(jù),保證緊急數(shù)據(jù)的服務(wù)帶寬。興趣包在RL模塊中的處理過程如圖2所示(數(shù)據(jù)包類似)。
圖2 興趣包在RL模塊中的處理過程
其中,NWFQ算法的核心體現(xiàn)在加入令牌的速率。從NWFQ隊(duì)列中調(diào)度的興趣包,若未超過路由器公平速率則直接轉(zhuǎn)發(fā),若超過則進(jìn)入擁塞處理過程,經(jīng)過令牌桶整形后再轉(zhuǎn)發(fā)。這一判斷的前提是路由器發(fā)生了擁塞,如果路由器沒有擁塞,就直接轉(zhuǎn)發(fā),不用關(guān)注數(shù)據(jù)流的速率。只有在路由器發(fā)生擁塞的時(shí)候,為了阻止引起其他路由器發(fā)生擁塞才需要對(duì)數(shù)據(jù)流進(jìn)行整形,同時(shí)為了緩解當(dāng)前路由器的擁塞,需要借助顯式反饋機(jī)制告知下游路由器減小轉(zhuǎn)發(fā)速率,才不至于使得排隊(duì)隊(duì)列(時(shí)延)繼續(xù)增長(zhǎng)。整形后的速率就是網(wǎng)絡(luò)希望的速率,這個(gè)速率是由NWFQ算法計(jì)算得到的,并且不會(huì)造成網(wǎng)絡(luò)擁塞。經(jīng)過整形,可以平滑網(wǎng)絡(luò)流量,降低上游路由器的擁塞。同時(shí),采用令牌桶技術(shù),將超速的興趣包加入緩存隊(duì)列等待,而非直接丟棄,可以減少突發(fā)傳輸導(dǎo)致的丟包。下面是NWFQ算法的具體流程。
Step 1 Initialize:unit_weight_servic←0,fair_rate←0,load of route:sumR←0
Input:nstreams:r1,r2,…,rn
Step 2 forifrom 1 to n //Calculate the load of the router
sumR←sumR+ri
end for
Step 3 if router becomes congested Then
calculate:unit_weight_service,fair_rate,weight_of_interest
Step 4//Punish greedy flow
ifriis speeding(ri>fair_rate)Then
calculate output_rate:γi← unit_weight_service*weight_of_interest
update interest:penalty_rate← γi;
congestion_contribution←congestion_contribution+1
//send NACK
send NACK(penalty_rate)to downstream router
end if
end if
Step 5 if Interest satisfied Then //Send Data
if congestion_contribution>0 Then
copy congestion_contribution and penalty_rate to Data packet
end if
send Data packet to consumer
end if
2.2.1 確定流i的權(quán)重
其中,wi(t)是數(shù)據(jù)流i的權(quán)重,ri(t)是興趣包i的輸入速率,θ是數(shù)據(jù)流的優(yōu)先值,懲罰函數(shù) p(ri(t))是單調(diào)遞減的正函數(shù)。當(dāng)客戶端的輸入速率ri(t)超過閾值時(shí),其相應(yīng)的權(quán)重隨速率的增大而減小,也就是說,增大發(fā)送速率并不能獲得更大的輸出速率,甚至?xí)档洼敵鏊俾?。這樣能防止貪婪用戶大肆搶占網(wǎng)絡(luò)資源,達(dá)到規(guī)范用戶行為的目的,這里 p(ri(t))=1/ri(t)。還可以考慮網(wǎng)絡(luò)客戶端或數(shù)據(jù)流的優(yōu)先級(jí),優(yōu)先級(jí)越高權(quán)重越大,為方便計(jì)算,本設(shè)計(jì)暫不考慮優(yōu)先級(jí)(即θ=1),所以修改后的權(quán)重為wi(t)=1/ri(t)。
2.2.2 計(jì)算轉(zhuǎn)發(fā)速率γi
在給定瓶頸鏈路的帶寬為C,興趣包發(fā)送速率向量為M ,n個(gè)流的輸入速率向量r=(r1,r2,…,rn)時(shí),經(jīng)算法改進(jìn)的興趣包轉(zhuǎn)發(fā)速率γ=(γ1,γ2,…,γn)的計(jì)算步驟如下。
(1)路由器負(fù)載sumR表征路由器的負(fù)載,當(dāng)sumR≤C時(shí),路由器工作在正常狀態(tài),所有流都能得到完全的輸出。當(dāng)sumR>C時(shí),路由器發(fā)生擁塞,需要執(zhí)行擁塞控制算法NWFQ。
(2)路由器輸出函數(shù)
其中,vi表示流i的轉(zhuǎn)發(fā)速率,λ是單位時(shí)間內(nèi)為單位權(quán)值提供的輸出。即擁塞時(shí),假設(shè)興趣包i的權(quán)值為w,所在路由器的單位權(quán)值服務(wù)量為λ,則興趣包i的輸出速率為(λ×w)。即當(dāng)路由器負(fù)載超過鏈路帶寬時(shí),NWFQ將為貪婪流計(jì)算出權(quán)值,權(quán)值wi(t)決定數(shù)據(jù)流的轉(zhuǎn)發(fā)速率。
輸出函數(shù)G(λ,r)表征路由器的總輸出量。假設(shè)網(wǎng)絡(luò)擁塞很嚴(yán)重時(shí),每個(gè)流的速率都超過了公平速率,即所有流都被降速。此時(shí)有 ?i,?λ/ri≤ri?λ≤,即λ≤r。同理,所有流都未超速時(shí),有?i,?λ/ri>ri?λ>r即λ>r。當(dāng)一部分流(n-k)被懲罰時(shí),有:?k,s.t.λ/r(k)>r(k)且 λ/r(k+1)≤r(k+1),即 r<λ≤r。根據(jù)以上,擁塞函數(shù)可以展開如下。
其中,r=(r(1),r(2),…,r(n))是r=(r1,r2,…,rn)遞增序列的重新排列。當(dāng)負(fù)載不超過鏈路帶寬時(shí),每個(gè)流都能正常輸出,此時(shí)路由器擁塞程度隨著負(fù)載的增大而加深,即輸出函數(shù)與負(fù)載成正比;當(dāng)負(fù)載超過鏈路帶寬時(shí),路由器發(fā)生擁塞,部分流得不到完全的輸出,隨著負(fù)載的增加,路由器擁塞加深,吞吐量降低,此時(shí)輸出函數(shù)與負(fù)載成反比。因此輸出函數(shù)還可以用式(7)表示。由式(6)、(7)可得當(dāng)前路由器的單位權(quán)值服務(wù)量。
(3)單位權(quán)值服務(wù)量λ
單位權(quán)值服務(wù)量只在網(wǎng)絡(luò)擁塞時(shí)才需要計(jì)算,且λ和 f都是所有流隊(duì)列所共享的。其中,λ主要用于確定路由器的公平速率 f,f主要用于界定貪婪流和非貪婪流。也就是說,網(wǎng)絡(luò)擁塞時(shí),當(dāng)輸入速率等于公平速率時(shí),數(shù)據(jù)流全部輸出,即 vi=ri?λ/f=f?λ=f2;當(dāng)輸入速率大于公平速率時(shí),執(zhí)行NWFQ算法;當(dāng)輸入速率小于公平速率時(shí),輸出(轉(zhuǎn)發(fā))速率等于輸入速率。
(4)公平速率 f
(5)興趣包的轉(zhuǎn)發(fā)速率γi
因?yàn)榘l(fā)送興趣包/數(shù)據(jù)包是以包為單位,而令牌桶的實(shí)現(xiàn)是以字節(jié)為單位,因此在執(zhí)行完算法之后還需進(jìn)行上述單位轉(zhuǎn)換。
當(dāng)網(wǎng)絡(luò)擁塞時(shí),由于NDN的多路徑轉(zhuǎn)發(fā)特性和帶寬的不同,一個(gè)興趣包可能產(chǎn)生多個(gè)反饋,這樣會(huì)導(dǎo)致網(wǎng)絡(luò)中存在大量的反饋和反饋引起的重傳,這樣不但會(huì)加重網(wǎng)絡(luò)擁塞,還會(huì)增大終端和路由器的開銷。為了避免這種多次反饋問題,本文擴(kuò)展了ndnSIM1.0[14]中的興趣包,添加了兩個(gè)字段:懲罰速率(Penalty Rate)和擁塞貢獻(xiàn)(Congestion Contribution),擴(kuò)展后的興趣包結(jié)構(gòu)如圖3所示。
圖3 擴(kuò)展之后的興趣包
虛線部分是因?qū)嶒?yàn)需要添加的兩個(gè)字段,其中,Penalty Rate是經(jīng)NWFQ算法計(jì)算得到的興趣包速率,Congestion Contribution是興趣包導(dǎo)致?lián)砣拇螖?shù)。請(qǐng)求端發(fā)送興趣包時(shí),將懲罰速率R(Penalty Rate)初始化為興趣包的發(fā)送速率,擁塞貢獻(xiàn)CC(Congestion Contribution)置零,當(dāng)興趣包經(jīng)過一個(gè)路由器并且此路由器發(fā)生擁塞時(shí),如果興趣包i的輸入速率ri超過了公平速率 f,就說明興趣包i的輸入速率過高,即認(rèn)為興趣包i對(duì)網(wǎng)絡(luò)擁塞做出了“貢獻(xiàn)”,然后將懲罰速率R更新為NWFQ計(jì)算得到的轉(zhuǎn)發(fā)速率γi并將擁塞貢獻(xiàn)CC加1,即R=min(R,γi)。同時(shí),向該興趣包進(jìn)入的接口發(fā)送擁塞通知NACK,NACK中封裝的是懲罰速率R,并且生存時(shí)間TTL=2,即只能轉(zhuǎn)發(fā)一跳。下游路由器收到NACK后,提取R作為新的令牌加入速率。這樣可以減少更多的興趣包/數(shù)據(jù)包進(jìn)入擁塞區(qū)域,暫時(shí)緩解網(wǎng)絡(luò)擁塞。但是這樣也有可能導(dǎo)致本來不擁塞的下游節(jié)點(diǎn)產(chǎn)生擁塞,因此,為了從根本上解決擁塞,應(yīng)根據(jù)網(wǎng)絡(luò)狀況減低請(qǐng)求端的興趣包發(fā)送速率。
為了不產(chǎn)生多余的流量,本設(shè)計(jì)利用數(shù)據(jù)包將新的興趣包發(fā)送速率返回請(qǐng)求端。即當(dāng)興趣包找到匹配的數(shù)據(jù)包時(shí),檢查興趣包中的擁塞貢獻(xiàn)值,若大于零,就把擁塞信息字段復(fù)制到數(shù)據(jù)包中并按原路返回給請(qǐng)求端;若為零,則直接返回?cái)?shù)據(jù)包。這樣當(dāng)請(qǐng)求端收到數(shù)據(jù)包后,就可以取出R值,并把這個(gè)值作為新的興趣包發(fā)送速率。
由于網(wǎng)絡(luò)的鏈路帶寬不同,興趣包有可能連續(xù)被NWFQ算法所“懲罰”,但是懲罰速率R記錄的是興趣包最后一次被“懲罰”之后的速率(最小速率),所以請(qǐng)求端以速率R發(fā)送興趣包時(shí),能將網(wǎng)絡(luò)擁塞的概率降到最低。
為驗(yàn)證NWFQ算法的有效性,本文在ndnSIM1.0中實(shí)現(xiàn)了NWFQ算法。ndnSIM是基于NS-3的模塊化的仿真工具,能仿真多樣化的部署場(chǎng)景,支持大范圍的NDN實(shí)驗(yàn)。實(shí)驗(yàn)采用圖4所示的單瓶頸鏈路拓?fù)?,其中,消費(fèi)者C1至C10以每秒3 000個(gè)興趣包的速率向數(shù)據(jù)生產(chǎn)者請(qǐng)求不同的數(shù)據(jù),數(shù)據(jù)請(qǐng)求服從齊夫分布,鏈路傳播時(shí)延均為10 ms,包緩沖區(qū)大小設(shè)置為帶寬和延遲的乘積。轉(zhuǎn)發(fā)策略采用BestRoute,緩存放置、替換策略分別采用LCE(Leave Cache Everywhere)和LRU(Least Recently Used)[15]。為了驗(yàn)證算法在網(wǎng)絡(luò)擁塞情況下的性能,與文獻(xiàn)[4,10]中的ICP和HR-ICP進(jìn)行對(duì)比實(shí)驗(yàn),考慮的性能指標(biāo)有:瓶頸鏈路利用率和丟包率。采用上述參數(shù),分別仿真實(shí)現(xiàn)瓶頸帶寬從10 Mb/s增加到60 Mb/s時(shí)的仿真場(chǎng)景。
圖4 單瓶頸鏈路拓?fù)?/p>
因?yàn)镹WFQ算法需要計(jì)算各路由器的公平速率,但公平速率隨著流的數(shù)量也在發(fā)生變化。為了更好地論證算法的性能,有必要分析一下當(dāng)流數(shù)目變化條件下算法的穩(wěn)定性。場(chǎng)景二使用與場(chǎng)景一基本相同的實(shí)驗(yàn)參數(shù),但是模擬一個(gè)更加擁塞的網(wǎng)絡(luò)環(huán)境。鏈路傳播時(shí)延設(shè)為30 ms,消費(fèi)者分別同時(shí)發(fā)送10~100條內(nèi)容大小為200個(gè)數(shù)據(jù)塊的流,分析該場(chǎng)景下的平均流完成時(shí)間。
圖5給出了消費(fèi)者在不同瓶頸鏈路帶寬時(shí)的瓶頸鏈路利用率。由圖中可見,隨著瓶頸帶寬的增加,NWFQ的瓶頸鏈路利用率逐漸上升并接近95%,這是由于NWFQ的主動(dòng)擁塞檢測(cè)機(jī)制和顯式反饋機(jī)制,使得NWFQ能夠更好地適應(yīng)網(wǎng)絡(luò)變化。ICP的瓶頸鏈路利用率從85%快速降低到79%,這是因?yàn)镮CP采用擁塞窗口,慢啟動(dòng)會(huì)導(dǎo)致平均鏈路利用率較低;而且隨著瓶頸帶寬的增大,擁塞窗口和鏈路緩存區(qū)均增大,所以消費(fèi)者發(fā)送的興趣包增多,但是由于網(wǎng)絡(luò)擁塞會(huì)導(dǎo)致興趣包的排隊(duì)時(shí)間大大增加,相應(yīng)的RTT隨之增大,從而降低了ICP的瓶頸鏈路利用率。HR-ICP由于在ICP的基礎(chǔ)上增加了中間節(jié)點(diǎn)檢測(cè)擁塞的功能,能更好地利用帶寬,但是它仍然采用發(fā)送端的擁塞窗口來調(diào)節(jié)發(fā)送速率,且調(diào)節(jié)的幅度不確定,只是一種對(duì)可用帶寬的猜測(cè),相比NWFQ直接將網(wǎng)絡(luò)允許的速率反饋回發(fā)送端,HR-ICP并沒有充分地利用帶寬。另外,在圖中可以看到,ICP曲線的波動(dòng)幅度較大,表明NWFQ和HR-ICP比ICP具有更好的穩(wěn)定性。這是因?yàn)榛诼酚善鞯闹鹛螜C(jī)制相比基于發(fā)送端的擁塞窗口,前一種方式更適合NDN的傳輸方式。
圖5 瓶頸鏈路利用率
如圖6所示,ICP的丟包率最高,這是因?yàn)镮CP在丟包造成超時(shí)后才能檢測(cè)到擁塞并對(duì)其進(jìn)行處理。采用NWFQ算法時(shí)丟包率最低,這是因?yàn)镹WFQ將超過路由器閾值的興趣包/數(shù)據(jù)包緩存起來,留待稍后發(fā)送,而不是直接丟棄,這樣不僅可以平滑網(wǎng)絡(luò)流量,降低上游節(jié)點(diǎn)的擁塞,還能減少因突發(fā)流量造成的丟包。同時(shí)用數(shù)據(jù)包將網(wǎng)絡(luò)允許的發(fā)送速率帶回發(fā)送端,可以從源頭上解決擁塞。HR-ICP的性能介于兩者之間,由于HRICP相比ICP可以更快發(fā)現(xiàn)擁塞,因此可以及時(shí)調(diào)節(jié)發(fā)送窗口,避免大部分丟包。
圖7表示平均流完成時(shí)間隨著流個(gè)數(shù)增加的變化。由圖中可以看出隨著流個(gè)數(shù)的增加,ICP、HR-ICP和NWFQ的平均流完成時(shí)間均增加。且NWFQ的平均完成時(shí)間最短,表明NWFQ能更好地利用網(wǎng)絡(luò)帶寬。另外,從圖中可以看到當(dāng)流個(gè)數(shù)增加到40以后,平均流完成時(shí)間均大幅度增加,這是因?yàn)檫@時(shí)網(wǎng)絡(luò)發(fā)生了擁塞。從圖中可以看到,NWFQ曲線斜率在80個(gè)流以后就逐漸趨于平滑,相比ICP和HR-ICP的增長(zhǎng)趨勢(shì),表明NWFQ能更快速地適應(yīng)網(wǎng)絡(luò)變化。
圖6 丟包率
圖7 平均流完成時(shí)間
本文將傳統(tǒng)IP網(wǎng)絡(luò)中的路由器隊(duì)列調(diào)度算法引入NDN并提出了一種新的擁塞控制算法NWFQ。該算法為每個(gè)路由器計(jì)算一個(gè)公平速率以區(qū)分貪婪流與非貪婪流,并通過懲罰函數(shù)來修改數(shù)據(jù)流的權(quán)重,進(jìn)而調(diào)整各數(shù)據(jù)流分到的帶寬。當(dāng)網(wǎng)絡(luò)擁塞時(shí),可以對(duì)資源進(jìn)行盡可能公平的分配。NWFQ還提出了一種能有效減少反饋與重傳次數(shù)的顯式反饋機(jī)制。仿真結(jié)果表明該算法在保持高鏈路利用率的同時(shí),擁有較低丟包率和較短平均流完成時(shí)間,能顯著提高網(wǎng)絡(luò)的QoS性能。
:
[1]謝高崗,張玉軍,李振宇,等.未來互聯(lián)網(wǎng)體系結(jié)構(gòu)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2012,35(6):1109-1119.
[2]Jacobson V,Smetters D K,Thornton J D,et al.Networking named content[C]//Proceedings of the 5th International Conference on Emerging Networking Experiments and Technologies.New York:ACM,2009:1-12.
[3]Zhang Lixia,Jacobson V,Zhang Beichuan,et al.Named Data Networking(NDN) project,NDN-0001[R].California:PARC,2010.
[4]Carofiglio G,Gallo M,Muscariello L.ICP:design and evaluation of an interest control protocol for contentcentric networking[C]//Computer Communications Workshops,Proceedings of IEEE INFOCOM.Orlando,F(xiàn)L:IEEE,2012:304-309.
[5]Saino L,Cocora C,Pavlou G.CCTCP:a scalable receiverdriven congestion control protocol for content centric networking[C]//Proceedings of IEEE ICC.Budapest:IEEE,2013:3775-3780.
[6]Braun S,Monti M,Sifalakis M,et al.An empirical study of receiver-based AIMD flow-control strategies for CCN[C]//International Conference on Computer Communications and Networks.Nassau:IEEE,2013.
[7]張成晨,王雷,呂威,等.面向多業(yè)務(wù)的內(nèi)容中心網(wǎng)絡(luò)擁塞控制策略[J].計(jì)算機(jī)工程,2016,42(4):79-82.
[8]Rozhnova N,F(xiàn)dida S.An effective hop-by-hop interest shaping mechanism for CCN communications[C]//IEEE Conference on Computer Communications.Orlando,F(xiàn)L:IEEE,2012:322-327.
[9]Yi C,Afanasyev A,Moiseenko I,et al.A case for stateful forwarding plane[J].Computer Communications,2013,36(7):779-791.
[10]Carofiglio G,Gallo M,Muscariello L.Joint hop-by-hop and receiver-driven interest control protocol for contentcentric networks[J].ACM Sigcomm Computer Communication Review,2012,42(4):37-42.
[11]Ren Yongmao,Li Jun,Shi Shanshan,et al.An interest control protocol for named data networking based on explicitfeedback[C]//IEEE Symposium on ArchitecturesforNetworking and CommunicationsSystems(ANCS’15).Oakland,CA:IEEE,2015:199-200.
[12]Zhou Jianer,Wu Qinghua,Li Zhenyu,et al.A proactive transport mechanism with explicit congestion notification forNDN[C]//IEEE InternationalConference on Communications.London:IEEE,2015:5242-5247.
[13]舞綺.J57大戰(zhàn)QoS之第二話:加權(quán)公平隊(duì)列(WFQ)[EB/OL].[2016-07-01].http://blog.sina.com.cn/s/blog_5dab3b5-40101917f.html.
[14]Afanasyev A,Moiseenko I,Zhang Lixia.ndnSIM:NDN simulator for NS-3:NDN-0005[R].California:PARC,2012.
[15]胡騫,武穆清,郭嵩,等.一種用于內(nèi)容中心網(wǎng)絡(luò)的緩存隨機(jī)放置策略[J].西安電子科技大學(xué)學(xué)報(bào),2014,41(6):131-136.