蔡岳平,劉軍
?
內(nèi)容中心網(wǎng)絡(luò)狀態(tài)感知路由設(shè)計(jì)
蔡岳平,劉軍
(重慶大學(xué)通信工程學(xué)院,重慶 400030)
為了提高內(nèi)容中心網(wǎng)絡(luò)的內(nèi)容分發(fā)效率及降低網(wǎng)絡(luò)開(kāi)銷,提出了網(wǎng)絡(luò)狀態(tài)感知的路由機(jī)制NSAR(network status aware routing)。NSAR利用從內(nèi)容服務(wù)節(jié)點(diǎn)返回的數(shù)據(jù)分組收集當(dāng)前網(wǎng)絡(luò)狀態(tài)信息,并在回傳過(guò)程中對(duì)路徑上各節(jié)點(diǎn)上匹配端口的轉(zhuǎn)發(fā)概率進(jìn)行更新,在對(duì)后續(xù)的興趣分組進(jìn)行轉(zhuǎn)發(fā)決策時(shí)引入轉(zhuǎn)發(fā)概率,從而提高內(nèi)容分發(fā)效率。仿真實(shí)驗(yàn)表明,與傳統(tǒng)內(nèi)容中心網(wǎng)絡(luò)路由算法相比,NSAR可以有效地降低內(nèi)容請(qǐng)求平均時(shí)延,減少網(wǎng)絡(luò)流通分組數(shù)以及降低網(wǎng)絡(luò)帶寬開(kāi)銷。
內(nèi)容中心網(wǎng)絡(luò);路由機(jī)制;網(wǎng)絡(luò)狀態(tài);狀態(tài)感知;轉(zhuǎn)發(fā)概率
互聯(lián)網(wǎng)實(shí)現(xiàn)端到端的互聯(lián)互通和資源共享,使人類通信方式得到前所未有的革命。然而隨著網(wǎng)絡(luò)流量的指數(shù)式增長(zhǎng)以及用戶需求的不斷提高[1,2],以主機(jī)為中心的傳統(tǒng)網(wǎng)絡(luò)越來(lái)越難以滿足未來(lái)網(wǎng)絡(luò)的需求。為了從根本上解決這一問(wèn)題,研究者們提出了以信息為中心的未來(lái)網(wǎng)絡(luò)架構(gòu),典型的有DONA[3]、PURSUIT[4]、PSIRP[5]、SAIL[6]、4WARD[7]、COMET[8]、CONVERGENCE[9]、NDN[10]、CCN[11]和MobileFirst[12]。其中,CCN(content centric network)正逐漸被認(rèn)為是最有前途的方案之一,它是由PARC[13]的Van Jacobson于2009年提出的,其核心是通過(guò)對(duì)內(nèi)容資源的直接命名以及基于內(nèi)容名稱的路由來(lái)進(jìn)行內(nèi)容的分發(fā)和獲取,其網(wǎng)絡(luò)節(jié)點(diǎn)除了具有傳統(tǒng)網(wǎng)絡(luò)節(jié)點(diǎn)所具有的路由和轉(zhuǎn)發(fā)能力外,還具備存儲(chǔ)內(nèi)容資源及服務(wù)內(nèi)容請(qǐng)求的功能,節(jié)點(diǎn)性能較高。
CCN有2種基本的分組格式,即興趣分組(interest packet)和數(shù)據(jù)分組(data packet)。興趣分組是請(qǐng)求者發(fā)出的內(nèi)容請(qǐng)求分組;數(shù)據(jù)分組是內(nèi)容服務(wù)節(jié)點(diǎn)(內(nèi)容發(fā)布者或網(wǎng)絡(luò)緩存)將內(nèi)容傳輸給請(qǐng)求者的內(nèi)容分組。每個(gè)路由節(jié)點(diǎn)都需要維護(hù)3類信息表,即轉(zhuǎn)發(fā)信息表(FIB, forwarding information base)、待定興趣表(PIT, pending interest table)和內(nèi)容存儲(chǔ)表(CS, content store)。FIB保存了內(nèi)容名稱前綴和到達(dá)此前綴代表的內(nèi)容的下一跳端口;PIT記錄了興趣分組的輸入端口,該信息表為數(shù)據(jù)分組提供回傳路徑;CS緩存流經(jīng)該節(jié)點(diǎn)的內(nèi)容資源并為后續(xù)內(nèi)容請(qǐng)求提供服務(wù)。內(nèi)容發(fā)布者以洪泛的方式向網(wǎng)絡(luò)發(fā)布內(nèi)容資源的注冊(cè)信息,路由節(jié)點(diǎn)依據(jù)接收到的注冊(cè)信息中的內(nèi)容名稱前綴以及注冊(cè)信息的到達(dá)端口建立 FIB,路由節(jié)點(diǎn)通過(guò)查詢 FIB來(lái)決定興趣分組的轉(zhuǎn)發(fā)端口。
由于在CCN網(wǎng)絡(luò)中,每個(gè)內(nèi)容資源可能存在多個(gè)提供者,而且內(nèi)容注冊(cè)信息是通過(guò)洪泛方式發(fā)布,所以在CCN的FIB中的每一個(gè)內(nèi)容名稱可能對(duì)應(yīng)多個(gè)轉(zhuǎn)發(fā)端口。如何選取合適的轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)興趣分組是CCN研究中的一項(xiàng)重要課題。常用的轉(zhuǎn)發(fā)機(jī)制有全轉(zhuǎn)發(fā)機(jī)制[14]、隨機(jī)轉(zhuǎn)發(fā)機(jī)制[15]和最短路徑轉(zhuǎn)發(fā)機(jī)制[16]。全轉(zhuǎn)發(fā)機(jī)制的路由節(jié)點(diǎn)會(huì)將興趣分組轉(zhuǎn)發(fā)至FIB中匹配條目所對(duì)應(yīng)的所有轉(zhuǎn)發(fā)端口,雖然這可以利用多徑路由特點(diǎn)從最優(yōu)的內(nèi)容服務(wù)節(jié)點(diǎn)處獲得內(nèi)容資源,但是過(guò)多的轉(zhuǎn)發(fā)會(huì)導(dǎo)致網(wǎng)絡(luò)中產(chǎn)生大量的冗余流量。隨機(jī)轉(zhuǎn)發(fā)機(jī)制的路由節(jié)點(diǎn)會(huì)在FIB對(duì)應(yīng)條目中隨機(jī)選擇轉(zhuǎn)發(fā)端口進(jìn)行興趣分組的轉(zhuǎn)發(fā),這種方法雖然能有效地減少網(wǎng)絡(luò)中的冗余流量,降低網(wǎng)絡(luò)開(kāi)銷,但無(wú)法保證用戶能穩(wěn)定、快速地從最優(yōu)的路徑上獲取資源,服務(wù)質(zhì)量很難保證。最短路徑轉(zhuǎn)發(fā)機(jī)制是文獻(xiàn)[16]中提出的鄰居緩存探測(cè)方法(NCE),它將興趣分組轉(zhuǎn)發(fā)至距離當(dāng)前節(jié)點(diǎn)路徑最短的內(nèi)容服務(wù)節(jié)點(diǎn),雖然NCE 方法可以獲得路徑最短的鏈路作為路由路徑,但并不能保證路徑最優(yōu),因其沒(méi)有考慮鏈路狀態(tài)和節(jié)點(diǎn)負(fù)載等其他網(wǎng)絡(luò)狀態(tài)信息,只選擇內(nèi)容獲取跳數(shù)作為路徑選擇的依據(jù),無(wú)法反映全面的網(wǎng)絡(luò)狀態(tài),也就難以獲得網(wǎng)絡(luò)狀態(tài)最優(yōu)的路徑。本文提出了一種網(wǎng)絡(luò)狀態(tài)感知的路由機(jī)制(NSAR, network status aware routing),通過(guò)對(duì)網(wǎng)絡(luò)中的鏈路時(shí)延、節(jié)點(diǎn)負(fù)載以及內(nèi)容獲取跳數(shù)等狀態(tài)進(jìn)行感知,綜合考慮各網(wǎng)絡(luò)狀態(tài)并優(yōu)化選擇興趣分組的轉(zhuǎn)發(fā)端口,從而實(shí)現(xiàn)在網(wǎng)絡(luò)開(kāi)銷較低的情況下達(dá)到路徑最優(yōu)的目的。
本文的貢獻(xiàn)總結(jié)如下。
1) 設(shè)計(jì)網(wǎng)絡(luò)狀態(tài)感知機(jī)制,實(shí)現(xiàn)對(duì)鏈路延時(shí)、節(jié)點(diǎn)負(fù)載及內(nèi)容獲取跳數(shù)等網(wǎng)絡(luò)狀態(tài)感知功能,并對(duì)感知獲得的狀態(tài)信息進(jìn)行綜合處理,得到網(wǎng)絡(luò)狀態(tài)綜合參數(shù)。
2) 針對(duì)FIB中有無(wú)新增轉(zhuǎn)發(fā)端口2種情況設(shè)計(jì)2種不同的端口轉(zhuǎn)發(fā)概率更新算法,使用網(wǎng)絡(luò)狀態(tài)綜合參數(shù)對(duì)各端口的轉(zhuǎn)發(fā)概率進(jìn)行更新,并依據(jù)更新后的轉(zhuǎn)發(fā)概率設(shè)計(jì)興趣分組的轉(zhuǎn)發(fā)方案。
本節(jié)將對(duì)網(wǎng)絡(luò)狀態(tài)感知路由機(jī)制NSAR的設(shè)計(jì)進(jìn)行介紹。
圖1是對(duì)NSAR整體結(jié)構(gòu)的簡(jiǎn)要描述。NSAR分成3個(gè)模塊:第1部分是網(wǎng)絡(luò)狀態(tài)感知模塊,NSAR通過(guò)對(duì)3個(gè)網(wǎng)絡(luò)狀態(tài)信息,即鏈路時(shí)延、節(jié)點(diǎn)負(fù)載及內(nèi)容獲取跳數(shù)進(jìn)行感知,并把感知獲得的狀態(tài)信息交給網(wǎng)絡(luò)狀態(tài)信息庫(kù);第2個(gè)模塊是FIB更新模塊,NSAR根據(jù)網(wǎng)絡(luò)狀態(tài)感知模塊感知獲得的網(wǎng)絡(luò)狀態(tài)信息庫(kù)對(duì)FIB中的端口轉(zhuǎn)發(fā)概率進(jìn)行更新,此時(shí)分2種情況,一是FIB中無(wú)新增的轉(zhuǎn)發(fā)端口,二是FIB中有新增的轉(zhuǎn)發(fā)端口,兩者的更新算法不同,后面將進(jìn)行詳細(xì)介紹;第3個(gè)模塊是興趣分組轉(zhuǎn)發(fā)模塊,在這個(gè)模塊中,NSAR根據(jù)FIB更新模塊更新后的FIB轉(zhuǎn)發(fā)興趣分組,首先將興趣分組轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)概率最大的端口,然后查詢FIB中是否有新增的轉(zhuǎn)發(fā)端口,若有,則將興趣分組轉(zhuǎn)發(fā)至該端口,隨后從除轉(zhuǎn)發(fā)概率最大及新增的端口外隨機(jī)選擇若干個(gè)端口轉(zhuǎn)發(fā)興趣分組,隨機(jī)選擇端口數(shù)量由探測(cè)深度確定,用于探索其余端口狀態(tài)。
2.1 網(wǎng)絡(luò)狀態(tài)感知
為獲取最優(yōu)的興趣分組轉(zhuǎn)發(fā)路徑,需要對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行感知。傳統(tǒng)的路由機(jī)制把鏈路長(zhǎng)度、鏈路時(shí)延、網(wǎng)絡(luò)擁塞、可用帶寬以及節(jié)點(diǎn)負(fù)載作為主要的網(wǎng)絡(luò)狀態(tài)性能指標(biāo)。本文選取鏈路時(shí)延、節(jié)點(diǎn)負(fù)載以及內(nèi)容獲取跳數(shù)作為網(wǎng)絡(luò)性能的評(píng)價(jià)指標(biāo)。
1) 鏈路時(shí)延
傳統(tǒng)的路由機(jī)制將路徑長(zhǎng)度作為路由選擇的影響因素。但由于網(wǎng)絡(luò)擁塞的存在,路徑長(zhǎng)度并不能很好地反映網(wǎng)絡(luò)的狀態(tài),當(dāng)路徑較短,但網(wǎng)絡(luò)擁塞較大時(shí),鏈路時(shí)延可能較大,對(duì)網(wǎng)絡(luò)性能的影響也較大。鏈路時(shí)延能更好地反應(yīng)網(wǎng)絡(luò)狀態(tài),所以把鏈路時(shí)延作為網(wǎng)絡(luò)狀態(tài)的評(píng)價(jià)標(biāo)準(zhǔn)之一。
在本文的路由設(shè)計(jì)中,鏈路時(shí)延指當(dāng)前節(jié)點(diǎn)與內(nèi)容服務(wù)節(jié)點(diǎn)之間的時(shí)延,由于數(shù)據(jù)分組的大小遠(yuǎn)遠(yuǎn)大于興趣分組,所以本文將數(shù)據(jù)分組的在回傳路徑上的傳播時(shí)延作為鏈路時(shí)延參考值。在服務(wù)節(jié)點(diǎn)對(duì)數(shù)據(jù)分組進(jìn)行封裝時(shí),會(huì)在數(shù)據(jù)分組內(nèi)設(shè)置鏈路時(shí)延計(jì)時(shí)器并置零,當(dāng)數(shù)據(jù)分組發(fā)出時(shí),計(jì)時(shí)器開(kāi)始計(jì)時(shí),當(dāng)數(shù)據(jù)分組到達(dá)網(wǎng)絡(luò)中的路由節(jié)點(diǎn)后,鏈路時(shí)延計(jì)時(shí)器不清零,繼續(xù)計(jì)時(shí),并將當(dāng)前的鏈路時(shí)延值交給路由節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息庫(kù),以供后續(xù)的FIB更新模塊更新端口轉(zhuǎn)發(fā)概率提供數(shù)據(jù)來(lái)源。當(dāng)數(shù)據(jù)分組從端口轉(zhuǎn)發(fā)出去后,鏈路時(shí)延計(jì)時(shí)器繼續(xù)計(jì)時(shí),直至到達(dá)請(qǐng)求者后被刪除。
2) 節(jié)點(diǎn)負(fù)載
節(jié)點(diǎn)負(fù)載反映網(wǎng)絡(luò)節(jié)點(diǎn)當(dāng)前處理情況的狀態(tài)信息。節(jié)點(diǎn)的負(fù)載情況對(duì)數(shù)據(jù)分組在節(jié)點(diǎn)處的處理時(shí)延呈正相關(guān)。好的路由機(jī)制應(yīng)盡可能將用戶請(qǐng)求(即興趣分組)路由至節(jié)點(diǎn)負(fù)載較低的網(wǎng)絡(luò)節(jié)點(diǎn)中,避免因節(jié)點(diǎn)過(guò)載而導(dǎo)致處理時(shí)延增加甚至數(shù)據(jù)丟失。
在本文的路由設(shè)計(jì)中,主要考慮兩方面的節(jié)點(diǎn)負(fù)載。第一是普通路由節(jié)點(diǎn)的負(fù)載狀況,數(shù)據(jù)分組在回傳過(guò)程中會(huì)對(duì)路徑上路由節(jié)點(diǎn)的負(fù)載信息進(jìn)行采集,并將該信息交給數(shù)據(jù)分組到達(dá)的下一跳節(jié)點(diǎn)。第二是內(nèi)容服務(wù)節(jié)點(diǎn)的負(fù)載狀況,在內(nèi)容服務(wù)節(jié)點(diǎn)處封裝數(shù)據(jù)分組時(shí),當(dāng)前內(nèi)容服務(wù)節(jié)點(diǎn)的負(fù)載值會(huì)被封裝到數(shù)據(jù)分組中。在數(shù)據(jù)分組回傳過(guò)程中,該狀態(tài)值會(huì)依次交給沿途路由節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息庫(kù),直至到達(dá)請(qǐng)求者后被刪除。
3) 內(nèi)容獲取跳數(shù)
內(nèi)容獲取跳數(shù)是指數(shù)據(jù)分組從路由節(jié)點(diǎn)到內(nèi)容服務(wù)節(jié)點(diǎn)所需的轉(zhuǎn)發(fā)次數(shù)。跳數(shù)越少,數(shù)據(jù)分組被存儲(chǔ)轉(zhuǎn)發(fā)的次數(shù)也就越少,在節(jié)點(diǎn)處的排隊(duì)時(shí)延也就越小。好的路由機(jī)制應(yīng)盡可能使數(shù)據(jù)分組的轉(zhuǎn)發(fā)次數(shù)越少,降低排隊(duì)時(shí)延,提高內(nèi)容獲取的速度。
在本文的路由設(shè)計(jì)中,內(nèi)容獲取跳數(shù)也是指當(dāng)前路由節(jié)點(diǎn)到內(nèi)容服務(wù)節(jié)點(diǎn)的轉(zhuǎn)發(fā)次數(shù)。該狀態(tài)值是在數(shù)據(jù)分組回傳過(guò)程中進(jìn)行統(tǒng)計(jì)獲得。當(dāng)數(shù)據(jù)分組在內(nèi)容服務(wù)節(jié)點(diǎn)處被封裝時(shí),會(huì)額外加入跳數(shù)計(jì)數(shù)器,數(shù)據(jù)分組每被轉(zhuǎn)發(fā)一次,計(jì)數(shù)值加1,并將當(dāng)前計(jì)數(shù)值交給路由節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息庫(kù),直至到達(dá)請(qǐng)求者后將該計(jì)數(shù)器刪除。
上述各網(wǎng)絡(luò)狀態(tài)參數(shù)無(wú)法單獨(dú)對(duì)網(wǎng)絡(luò)整體狀態(tài)進(jìn)行描述,為更好地反映網(wǎng)絡(luò)的整體狀態(tài),本文綜合考慮以上各狀態(tài)參數(shù)的影響,并得到網(wǎng)絡(luò)狀態(tài)綜合參數(shù),以實(shí)現(xiàn)在網(wǎng)絡(luò)狀態(tài)感知下對(duì)CCN路由進(jìn)行優(yōu)化。
2.2 網(wǎng)絡(luò)狀態(tài)感知路由機(jī)制
網(wǎng)絡(luò)狀態(tài)感知路由NSAR可以通過(guò)數(shù)據(jù)分組感知傳輸路徑及服務(wù)節(jié)點(diǎn)的狀態(tài)信息,感知的狀態(tài)信息主要包含3個(gè)方面:鏈路時(shí)延、節(jié)點(diǎn)負(fù)載以及內(nèi)容獲取跳數(shù)。NSAR可以利用感知獲得的網(wǎng)絡(luò)狀態(tài)信息來(lái)更新FIB中匹配端口的轉(zhuǎn)發(fā)概率,用于區(qū)分各轉(zhuǎn)發(fā)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)路徑的優(yōu)劣,端口轉(zhuǎn)發(fā)概率越大,說(shuō)明其所對(duì)應(yīng)的轉(zhuǎn)發(fā)路徑的網(wǎng)絡(luò)狀態(tài)越好。后續(xù)的興趣分組依據(jù)端口轉(zhuǎn)發(fā)概率選擇轉(zhuǎn)發(fā)端口,實(shí)現(xiàn)在網(wǎng)絡(luò)開(kāi)銷較低的情況下達(dá)到路徑最優(yōu)的目的。NSAR的路由機(jī)制如圖2所示。
網(wǎng)絡(luò)初始時(shí),內(nèi)容服務(wù)節(jié)點(diǎn)1以洪泛的方式向網(wǎng)絡(luò)發(fā)布內(nèi)容對(duì)象的注冊(cè)信息,由此在各路由節(jié)點(diǎn)上建立的FIB如圖2(a)所示。FIB第1列表示內(nèi)容對(duì)象名稱前綴,為敘述方便,本文將其設(shè)為;第2列表示獲取該內(nèi)容對(duì)象的轉(zhuǎn)發(fā)端口,圖中以轉(zhuǎn)發(fā)端口所對(duì)應(yīng)的下一跳節(jié)點(diǎn)名稱作為轉(zhuǎn)發(fā)端口的名稱;第3列表示端口的轉(zhuǎn)發(fā)概率,表示當(dāng)前路由節(jié)點(diǎn)將匹配該內(nèi)容對(duì)象名稱的興趣分組從該端口轉(zhuǎn)發(fā)出去的概率。對(duì)于在某一路由節(jié)點(diǎn)上同一內(nèi)容對(duì)象名稱的所有轉(zhuǎn)發(fā)端口,其轉(zhuǎn)發(fā)概率和為1,即
其中,P表示轉(zhuǎn)發(fā)端口的轉(zhuǎn)發(fā)概率,為在某路由節(jié)點(diǎn)上某內(nèi)容對(duì)象名稱對(duì)應(yīng)的轉(zhuǎn)發(fā)端口數(shù)量。
當(dāng)請(qǐng)求者1發(fā)出請(qǐng)求對(duì)象的興趣分組后,如圖2(a)所示,路由節(jié)點(diǎn)1接收該興趣分組,首先在FIB中進(jìn)行匹配,并獲得下一跳轉(zhuǎn)發(fā)端口2和3。此時(shí),路由節(jié)點(diǎn)1并不會(huì)立即將興趣分組從端口2和3轉(zhuǎn)發(fā)出去,而是對(duì)比這2個(gè)轉(zhuǎn)發(fā)端口的轉(zhuǎn)發(fā)概率,即P1-R2和P1-R3。由于網(wǎng)絡(luò)初始時(shí),同一內(nèi)容對(duì)象的轉(zhuǎn)發(fā)端口的轉(zhuǎn)發(fā)概率相等,為轉(zhuǎn)發(fā)端口數(shù)的倒數(shù),所以此時(shí)1會(huì)同時(shí)將興趣分組從這2個(gè)端口轉(zhuǎn)發(fā)出去。興趣分組在路由節(jié)點(diǎn)2和3以同樣的方式進(jìn)行選擇性轉(zhuǎn)發(fā),最后興趣分組被轉(zhuǎn)發(fā)至內(nèi)容服務(wù)節(jié)點(diǎn)1。在內(nèi)容服務(wù)節(jié)點(diǎn)獲得數(shù)據(jù)對(duì)象后,封裝數(shù)據(jù)分組,并開(kāi)啟鏈路時(shí)延計(jì)時(shí)器和內(nèi)容獲取跳數(shù)計(jì)數(shù)器,獲取當(dāng)前內(nèi)容服務(wù)節(jié)點(diǎn)負(fù)載值。數(shù)據(jù)分組在回傳過(guò)程中會(huì)將鏈路延時(shí)值、內(nèi)容獲取跳數(shù)值、上一跳節(jié)點(diǎn)負(fù)載值以及服務(wù)節(jié)點(diǎn)負(fù)載值交給當(dāng)前節(jié)點(diǎn)的網(wǎng)絡(luò)狀態(tài)信息庫(kù)。
當(dāng)節(jié)點(diǎn)在端口收到封裝了內(nèi)容對(duì)象的數(shù)據(jù)分組后,會(huì)從中提取鏈路時(shí)延值T、內(nèi)容獲取跳數(shù)值H、上一跳節(jié)點(diǎn)負(fù)載值L以及服務(wù)節(jié)點(diǎn)負(fù)載值L作為最新的網(wǎng)絡(luò)狀態(tài)信息樣本值。為了獲得各個(gè)網(wǎng)絡(luò)狀態(tài)值對(duì)網(wǎng)絡(luò)的綜合影響,采用加權(quán)法獲得網(wǎng)絡(luò)狀態(tài)綜合參數(shù)
其中,、、和分別表示鏈路時(shí)延、內(nèi)容獲取跳數(shù)、路由節(jié)點(diǎn)負(fù)載和服務(wù)節(jié)點(diǎn)負(fù)載的影響因子,其值可以依據(jù)不同的業(yè)務(wù)需求進(jìn)行調(diào)整。因本文路由機(jī)制只考慮這4個(gè)影響因素,且對(duì)各狀態(tài)值均作歸一化處理,所以4個(gè)狀態(tài)影響因子和為1,即
(3)
由式(2)可以看出,隨著鏈路時(shí)延、內(nèi)容獲取跳數(shù)、路由節(jié)點(diǎn)負(fù)載及服務(wù)節(jié)點(diǎn)負(fù)載的增加,網(wǎng)絡(luò)狀態(tài)綜合參數(shù)值減小,易知,ΔS恒大于1,所以對(duì)于沒(méi)有數(shù)據(jù)分組到達(dá)的端口,即沒(méi)有被探測(cè)的端口,將ΔS定為1。確定各個(gè)端口的網(wǎng)絡(luò)狀態(tài)綜合參數(shù)后,需要確定各端口的概率變化值,為綜合考慮各個(gè)端口的狀態(tài)值對(duì)當(dāng)前路由節(jié)點(diǎn)的端口轉(zhuǎn)發(fā)概率值更新的影響,將各端口的轉(zhuǎn)發(fā)概率增值定為
其中,為路由節(jié)點(diǎn)上某內(nèi)容對(duì)象名稱對(duì)應(yīng)的轉(zhuǎn)發(fā)端口數(shù)量。由式(2)和式(4)可以看出,當(dāng)某端口所對(duì)應(yīng)的路徑的鏈路時(shí)延、內(nèi)容獲取跳數(shù)、路由節(jié)點(diǎn)負(fù)載及內(nèi)容服務(wù)節(jié)點(diǎn)負(fù)載值較大時(shí),其狀態(tài)綜合參數(shù)較小,導(dǎo)致其端口轉(zhuǎn)發(fā)概率增值也較小。
確定各端口的轉(zhuǎn)發(fā)概率增值后,進(jìn)一步對(duì)各端口的轉(zhuǎn)發(fā)概率進(jìn)行更新??紤]網(wǎng)絡(luò)的突變性,本文使用加權(quán)平均轉(zhuǎn)發(fā)概率,即每得到一個(gè)新的端口轉(zhuǎn)發(fā)概率增值,就用下式對(duì)端口轉(zhuǎn)發(fā)概率進(jìn)行更新
其中,Pnew()表示路由節(jié)點(diǎn)的端口更新后的端口轉(zhuǎn)發(fā)概率,Pold()表示更新前的端口轉(zhuǎn)發(fā)概率,是網(wǎng)絡(luò)狀態(tài)影響因子。0<<1,若越接近于零,表示新的端口轉(zhuǎn)發(fā)概率值和舊的端口轉(zhuǎn)發(fā)概率值相比變化不大,而受新的端口概率增值影響較小。若越接近于1,則表示新的端口轉(zhuǎn)發(fā)概率值受新的端口轉(zhuǎn)發(fā)概率增值影響較大。
當(dāng)數(shù)據(jù)分組被回傳到請(qǐng)求者處后,路徑上的所有路由節(jié)點(diǎn)對(duì)應(yīng)的端口的轉(zhuǎn)發(fā)概率均被更新。當(dāng)下一個(gè)請(qǐng)求者2發(fā)出請(qǐng)求內(nèi)容對(duì)象的興趣分組后,如圖2(b)所示,路由節(jié)點(diǎn)1接收該興趣分組,并在FIB中匹配獲得下一跳轉(zhuǎn)發(fā)端口2和3,隨后對(duì)比2和3的端口轉(zhuǎn)發(fā)概率,假設(shè)P'1-R2>P'1-R3,則路由節(jié)點(diǎn)1會(huì)將興趣分組從端口2轉(zhuǎn)發(fā)出去,在其他路由節(jié)點(diǎn)的經(jīng)過(guò)相同的處理后,興趣分組將被轉(zhuǎn)發(fā)至內(nèi)容服務(wù)節(jié)點(diǎn)1,數(shù)據(jù)分組在回傳過(guò)程中也會(huì)對(duì)路徑上的所有路由節(jié)點(diǎn)的端口轉(zhuǎn)發(fā)概率進(jìn)行更新。
當(dāng)有除內(nèi)容服務(wù)節(jié)點(diǎn)1外的其他內(nèi)容服務(wù)節(jié)點(diǎn)發(fā)布內(nèi)容對(duì)象時(shí),如圖2(c)所示,內(nèi)容服務(wù)節(jié)點(diǎn)2對(duì)外發(fā)布內(nèi)容對(duì)象,其發(fā)布信息會(huì)以洪泛的方式在網(wǎng)絡(luò)中傳播,直至到達(dá)原有的該內(nèi)容對(duì)象的傳播路徑的節(jié)點(diǎn)上后停止傳播(圖2(c)中2節(jié)點(diǎn))。此時(shí),NSAR會(huì)依據(jù)注冊(cè)信息的到達(dá)端口在原有的FIB中增加內(nèi)容對(duì)象的下一跳轉(zhuǎn)發(fā)端口,并將該端口的轉(zhuǎn)發(fā)概率初始化為NULL。
當(dāng)有請(qǐng)求對(duì)象的興趣分組到達(dá)該路由節(jié)點(diǎn)后,如圖2(d)所示,路由節(jié)點(diǎn)2除了將興趣分組轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大(P2-R3)的端口外,還會(huì)將興趣分組轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率為NULL的轉(zhuǎn)發(fā)端口。當(dāng)數(shù)據(jù)分組從該路徑返回時(shí),也會(huì)攜帶該路徑的網(wǎng)絡(luò)狀態(tài)信息,用于端口轉(zhuǎn)發(fā)概率的更新。當(dāng)路由節(jié)點(diǎn)收集完所有轉(zhuǎn)發(fā)端口回收的狀態(tài)信息后,由于在原有轉(zhuǎn)發(fā)端口的基礎(chǔ)上增加了一個(gè)或多個(gè)轉(zhuǎn)發(fā)端口,所以需要對(duì)原有的端口轉(zhuǎn)發(fā)概率進(jìn)行重新分配。其分配方案如下。
提取各轉(zhuǎn)發(fā)端口的網(wǎng)絡(luò)狀態(tài)值,并依據(jù)式(2)求得各端口的狀態(tài)綜合參數(shù),為NULL個(gè)數(shù)。
取得各端口的狀態(tài)綜合參數(shù)后,對(duì)于新增的轉(zhuǎn)發(fā)端口,由于其在此之前沒(méi)有轉(zhuǎn)發(fā)概率值,所以其轉(zhuǎn)發(fā)概率值更新為
(6)
而對(duì)于其他轉(zhuǎn)發(fā)端口,其轉(zhuǎn)發(fā)概率更新為
為了防止所有的興趣分組都往端口轉(zhuǎn)發(fā)概率最大的端口轉(zhuǎn)發(fā)而使該端口的轉(zhuǎn)發(fā)概率值持續(xù)為最大值,使其他端口不被探索。當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生改變時(shí),最優(yōu)路徑可能發(fā)生改變,需要對(duì)轉(zhuǎn)發(fā)概率最大外的其他端口進(jìn)行探索。所以,當(dāng)興趣分組到達(dá)路由節(jié)點(diǎn)后,執(zhí)行如下轉(zhuǎn)發(fā)規(guī)則。
1) 將興趣分組往轉(zhuǎn)發(fā)概率最大的端口轉(zhuǎn)發(fā)。
2) 若有端口轉(zhuǎn)發(fā)概率為NULL的端口,將興趣分組往該端口轉(zhuǎn)發(fā)。
3) 設(shè)定探測(cè)深度deep,deep表示除轉(zhuǎn)發(fā)概率最大及轉(zhuǎn)發(fā)概率為NULL的端口外,NSAR隨機(jī)選擇的轉(zhuǎn)發(fā)興趣分組的端口數(shù)量。當(dāng)deep=時(shí),表示NSAR選擇的轉(zhuǎn)發(fā)端口有轉(zhuǎn)發(fā)概率最大的端口max、轉(zhuǎn)發(fā)概率為NULL的端口NULL及個(gè)隨機(jī)選擇的端口1~P。易知,探測(cè)深度deep越大,表示NSAR選擇轉(zhuǎn)發(fā)的端口越多,對(duì)網(wǎng)絡(luò)狀態(tài)信息的探索越詳細(xì),但相應(yīng)的網(wǎng)絡(luò)開(kāi)銷越大。NSAR會(huì)將興趣分組轉(zhuǎn)發(fā)至隨機(jī)選擇的個(gè)探索端口用于探索網(wǎng)絡(luò)狀態(tài)信息。
2.3 算法實(shí)現(xiàn)
下面對(duì)NSAR的算法進(jìn)行分析。
算法1是對(duì)NSAR的路由轉(zhuǎn)發(fā)算法描述。為了方便,不妨設(shè)路由節(jié)點(diǎn)為NSAR的處理節(jié)點(diǎn)。表示內(nèi)容中心網(wǎng)絡(luò)拓?fù)?,表示到達(dá)節(jié)點(diǎn)的興趣分組,表示節(jié)點(diǎn)上的轉(zhuǎn)發(fā)信息表。當(dāng)一個(gè)新的興趣分組到達(dá)路由節(jié)點(diǎn)時(shí),算法被觸發(fā)。算法需要為每個(gè)目標(biāo)興趣分組提供可用路徑以及對(duì)該分組的處理辦法(丟棄或路由)。首先,當(dāng)新的興趣分組到達(dá)后,節(jié)點(diǎn)會(huì)提取分組內(nèi)的內(nèi)容名稱,并以最大前綴匹配原則在中對(duì)提取的內(nèi)容名稱進(jìn)行匹配。獲得匹配項(xiàng)后,再對(duì)各匹配項(xiàng)后的轉(zhuǎn)發(fā)概率值進(jìn)行分析比較。若轉(zhuǎn)發(fā)概率值中有值為NULL的選項(xiàng),則節(jié)點(diǎn)將會(huì)把興趣分組轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)概率最大的端口,轉(zhuǎn)發(fā)概率為NULL的端口,以及隨機(jī)選擇的deep個(gè)隨機(jī)端口;若轉(zhuǎn)發(fā)概率值中沒(méi)有值為NULL的選項(xiàng),則節(jié)點(diǎn)除了將把興趣分組轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)概率最大的端口以及隨機(jī)選擇的deep個(gè)隨機(jī)端口。算法1的偽代碼如下。
算法1 NSPR路由轉(zhuǎn)發(fā)算法
輸入:內(nèi)容中心網(wǎng)絡(luò)拓?fù)洌?/p>
:到達(dá)節(jié)點(diǎn)的興趣分組;
:路由節(jié)點(diǎn)的轉(zhuǎn)發(fā)信息表
輸出 {<,>,};//興趣分組的處理方法和轉(zhuǎn)發(fā)端口
1) If一個(gè)新的興趣分組到達(dá)then
2)();//獲得內(nèi)容名稱
3)←(,);//獲得內(nèi)容名稱的匹配端口
4)(,);//獲得匹配端口的端口轉(zhuǎn)發(fā)概率
6)();//獲得轉(zhuǎn)發(fā)概率最大的端口
7)(,);//獲得轉(zhuǎn)發(fā)概率為NULL的端口
8)(,deep); //隨機(jī)獲取deep個(gè)轉(zhuǎn)發(fā)端口
10){,,};//轉(zhuǎn)發(fā)端口為最大轉(zhuǎn)發(fā)概率端口,轉(zhuǎn)發(fā)概率為NULL的端口及隨機(jī)選擇的端口
11) Else
12){,};//轉(zhuǎn)發(fā)端口為最大轉(zhuǎn)發(fā)概率端口和隨機(jī)選擇的端口
13) End
14) Return <,>;//返回轉(zhuǎn)發(fā)方法與轉(zhuǎn)發(fā)端口
15) Else
16) Return <,NULL>;//返回丟棄方法
算法2是對(duì)NSAR的端口轉(zhuǎn)發(fā)概率更新算法描述。本文的轉(zhuǎn)發(fā)概率更新是通過(guò)在路由節(jié)點(diǎn)上實(shí)現(xiàn)的。對(duì)于每個(gè)到達(dá)端口的包含對(duì)象的數(shù)據(jù)分組,它除了攜帶傳統(tǒng)CCN的數(shù)據(jù)分組所攜帶的信息外,還額外攜帶了內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)的鏈路時(shí)延值,內(nèi)容服務(wù)節(jié)點(diǎn)負(fù)載值,上一跳的節(jié)點(diǎn)負(fù)載值以及內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)的跳數(shù)。當(dāng)一個(gè)新的數(shù)據(jù)分組到達(dá)路由節(jié)點(diǎn)時(shí),算法被觸發(fā)。對(duì)于每個(gè)目標(biāo)數(shù)據(jù)分組,節(jié)點(diǎn)首先提取內(nèi)容對(duì)象的名稱、內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)的鏈路時(shí)延值T、內(nèi)容服務(wù)節(jié)點(diǎn)負(fù)載L、上一跳的節(jié)點(diǎn)負(fù)載值L以及內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)路由節(jié)點(diǎn)的跳數(shù)H。隨后在FIB中匹配內(nèi)容名稱,獲得匹配項(xiàng)后,分析各匹配項(xiàng)后的轉(zhuǎn)發(fā)概率值。若轉(zhuǎn)發(fā)概率值中不含NULL選項(xiàng),則觸發(fā)子算法(?)來(lái)對(duì)各端口的轉(zhuǎn)發(fā)概率進(jìn)行更新;若轉(zhuǎn)發(fā)概率值中含有NULL選項(xiàng),則觸發(fā)(?)來(lái)對(duì)各端口的轉(zhuǎn)發(fā)概率進(jìn)行更新。算法2的偽代碼如下。
算法2 NSPR端口轉(zhuǎn)發(fā)概率更新算法
輸入:內(nèi)容中心網(wǎng)絡(luò)拓?fù)洌?/p>
():從端口到達(dá)節(jié)點(diǎn)的數(shù)據(jù)分組;
:路由節(jié)點(diǎn)的轉(zhuǎn)發(fā)信息表
輸出 {<>,(對(duì)象的匹配端口)}//匹配端口的更新后轉(zhuǎn)發(fā)概率
1) If 一個(gè)新的數(shù)據(jù)分組到達(dá)then
2)(());//獲得內(nèi)容名稱
3)()←(());//獲得服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)鏈路時(shí)延
4)L←(());//獲得服務(wù)節(jié)點(diǎn)負(fù)載
5)()←(());//獲得節(jié)點(diǎn)上一跳節(jié)點(diǎn)的負(fù)載
6)()←(());//獲得服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)跳數(shù)
7)←(,);//獲得內(nèi)容名稱的匹配端口
8)old←(,);//獲得匹配端都是舊的端口轉(zhuǎn)發(fā)概率
9)←(,old);//獲得轉(zhuǎn)發(fā)概率為NULL的端口
11)l(y(),(),(),L,old);//執(zhí)行有轉(zhuǎn)發(fā)概率為NULL的更新函數(shù)
12) Else
13)y(),(),(),L,old);// 執(zhí)行無(wú)轉(zhuǎn)發(fā)概率為NULL的更新函數(shù)
14) End
15) Return
16) End
算法3是在匹配項(xiàng)的轉(zhuǎn)發(fā)概率值中不含NULL值時(shí)的端口轉(zhuǎn)發(fā)概率更新算法。在此算法中,當(dāng)路由節(jié)點(diǎn)獲得網(wǎng)絡(luò)狀態(tài)值后,首先根據(jù)式(2)將各網(wǎng)絡(luò)狀態(tài)綜合獲得狀態(tài)綜合參數(shù);然后根據(jù)各端口的網(wǎng)絡(luò)狀態(tài)綜合參數(shù)依據(jù)式(4)計(jì)算得各端口的轉(zhuǎn)發(fā)概率增值;最后依據(jù)式(5)對(duì)各端口的轉(zhuǎn)發(fā)概率進(jìn)行更新,返回更新后的端口轉(zhuǎn)發(fā)概率值。算法3的偽代碼如下。
算法3 不含NULL項(xiàng)端口轉(zhuǎn)發(fā)概率更新算法
輸入():從端口的數(shù)據(jù)分組中提取的鏈路延時(shí);
():從端口的數(shù)據(jù)分組中提取的上一跳節(jié)點(diǎn)的負(fù)載;
():從內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)的跳數(shù);
():內(nèi)容服務(wù)節(jié)點(diǎn)的負(fù)載;
old:更新前的端口轉(zhuǎn)發(fā)概率
輸出 {<>,(對(duì)象的匹配端口)}//匹配端口的更新后轉(zhuǎn)發(fā)概率
1) if(所有轉(zhuǎn)發(fā)了興趣分組的端口均收到數(shù)據(jù)分組) then
2) for(=1;≤;++)//對(duì)于對(duì)象所有匹配端口
3) If(端口有數(shù)據(jù)分組返回)
5) Else
7) End
8) End for
9) for(=1;≤;++)//對(duì)于對(duì)象所有匹配端口
12) End for
13) Return
14) End
算法4是在匹配項(xiàng)的轉(zhuǎn)發(fā)概率值中含NULL值時(shí)的端口轉(zhuǎn)發(fā)概率更新算法。在此算法中,當(dāng)路由節(jié)點(diǎn)獲得網(wǎng)絡(luò)狀態(tài)值后,首先根據(jù)式(2)將各網(wǎng)絡(luò)狀態(tài)綜合獲得網(wǎng)絡(luò)狀態(tài)綜合參數(shù);然后對(duì)內(nèi)容對(duì)象的匹配端口的轉(zhuǎn)發(fā)概率作分類處理,對(duì)于端口的轉(zhuǎn)發(fā)概率值為NULL的端口,其轉(zhuǎn)發(fā)概率直接使用此次獲得的網(wǎng)絡(luò)狀態(tài)影響因子進(jìn)行計(jì)算,即按式(6)進(jìn)行更新;而對(duì)于其他轉(zhuǎn)發(fā)端口,需要使用先前的轉(zhuǎn)發(fā)概率和此次獲得的網(wǎng)絡(luò)狀態(tài)因子,即按式(7)進(jìn)行更新,最后返回更新后的端口轉(zhuǎn)發(fā)概率值。算法4的偽代碼如下。
算法4 含NULL項(xiàng)端口轉(zhuǎn)發(fā)概率更新算法
輸入():從端口的數(shù)據(jù)分組中提取的鏈路延時(shí);
():從端口的數(shù)據(jù)分組中提取的上一跳節(jié)點(diǎn)的負(fù)載;
():從內(nèi)容服務(wù)節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)的跳數(shù);
():內(nèi)容服務(wù)節(jié)點(diǎn)的負(fù)載;
old:更新前的端口轉(zhuǎn)發(fā)概率
輸出 {<>,(對(duì)象的匹配端口)}//匹配端口的更新后轉(zhuǎn)發(fā)概率
1) if(所有轉(zhuǎn)發(fā)了興趣分組的端口均收到數(shù)據(jù)分組) then
2) for(=1;≤;++)//個(gè)轉(zhuǎn)發(fā)概率為NULL的端口
3) If(端口有數(shù)據(jù)分組返回)
5) Else
7) End
8) End for
9) for(=1;≤;++)//對(duì)于對(duì)象所有匹配端口
10) if(端口轉(zhuǎn)發(fā)概率為NULL)
12) Else
14) End
15) End for
16) Return
17) End
網(wǎng)絡(luò)狀態(tài)感知路由機(jī)制NSAR為各內(nèi)容條目匹配端口設(shè)置轉(zhuǎn)發(fā)概率,并在數(shù)據(jù)分組回傳過(guò)程中對(duì)其進(jìn)行更新,這將給網(wǎng)絡(luò)節(jié)點(diǎn)帶來(lái)額外的處理開(kāi)銷。對(duì)于數(shù)據(jù)分組傳輸路徑上的每個(gè)路由節(jié)點(diǎn),假設(shè)其內(nèi)容條目的匹配端口數(shù)為,在通過(guò)端口轉(zhuǎn)發(fā)概率更新算法對(duì)各匹配端口的轉(zhuǎn)發(fā)概率進(jìn)行更新時(shí),對(duì)于匹配端口的轉(zhuǎn)發(fā)概率中不含NULL項(xiàng)的節(jié)點(diǎn),即無(wú)新增轉(zhuǎn)發(fā)端口的節(jié)點(diǎn),首先利用式(2)獲得每個(gè)匹配端口的網(wǎng)絡(luò)狀態(tài)綜合參數(shù),然后依據(jù)此參數(shù)根據(jù)式(4)求得各端口的轉(zhuǎn)發(fā)概率增值,最后通過(guò)式(5)加權(quán)平均求得更新后的轉(zhuǎn)發(fā)概率,分析此算法可知其時(shí)間復(fù)雜度為(),空間復(fù)雜度為();對(duì)于匹配端口的轉(zhuǎn)發(fā)概率中含NULL項(xiàng)的節(jié)點(diǎn),即有新增轉(zhuǎn)發(fā)端口的節(jié)點(diǎn),首先利用式(2)獲得每個(gè)匹配端口的網(wǎng)絡(luò)狀態(tài)綜合參數(shù),然后依據(jù)此參數(shù)根據(jù)式(6)求得新增端口的轉(zhuǎn)發(fā)概率,最后通過(guò)式(7)加權(quán)平均求得其他匹配端口更新后的轉(zhuǎn)發(fā)概率,分析此算法可知其時(shí)間復(fù)雜度為(),空間復(fù)雜度為()。由此看出,2種端口轉(zhuǎn)發(fā)概率更新算法的時(shí)間復(fù)雜度及空間復(fù)雜度均較低,其給網(wǎng)絡(luò)節(jié)點(diǎn)帶來(lái)的額外開(kāi)銷較小。
本節(jié)將對(duì)NSAR進(jìn)行仿真實(shí)驗(yàn)分析。通過(guò)以上分析可以知道,NSAR屬于分布式路由機(jī)制,即各節(jié)點(diǎn)只在當(dāng)前節(jié)點(diǎn)對(duì)信息進(jìn)行處理并獲得下一跳信息,且路由轉(zhuǎn)發(fā)算法及端口轉(zhuǎn)發(fā)概率更新算法的復(fù)雜度較低,所以NSAR具有良好的可擴(kuò)展性。NSFNET[17]是美國(guó)國(guó)家科學(xué)基金會(huì)(NSF, National Science Foundation)為了滿足各大學(xué)及政府機(jī)構(gòu)研究工作的迫切要求,在全美國(guó)建立的連接各大超級(jí)計(jì)算中心的網(wǎng)絡(luò),該網(wǎng)絡(luò)已被廣泛作為網(wǎng)絡(luò)研究者實(shí)驗(yàn)所用的網(wǎng)絡(luò)拓?fù)洌员疚膶SFNET作為仿真所用的網(wǎng)絡(luò)拓?fù)洹?/p>
下面將對(duì)比CCN中常用的3種路由機(jī)制:全轉(zhuǎn)發(fā)機(jī)制(FF, full forwarding),路由節(jié)點(diǎn)將內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)至所有的內(nèi)容條目的匹配端口;隨機(jī)轉(zhuǎn)發(fā)機(jī)制(RF, random forwarding),路由節(jié)點(diǎn)將內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)至隨機(jī)選擇的一個(gè)內(nèi)容條目的匹配端口;最短路徑轉(zhuǎn)發(fā)策略(SPF, shortest path forwarding),路由節(jié)點(diǎn)將內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)至內(nèi)容獲取跳數(shù)最少的內(nèi)容服務(wù)節(jié)點(diǎn)。以內(nèi)容請(qǐng)求平均時(shí)延、網(wǎng)絡(luò)流通分組數(shù)以及內(nèi)容傳輸?shù)目値掗_(kāi)銷作為性能指標(biāo)進(jìn)行對(duì)比分析。最后,分析探測(cè)深度對(duì)網(wǎng)絡(luò)流通分組數(shù)及內(nèi)容傳輸總帶寬開(kāi)銷的影響。
3.1 仿真設(shè)置
實(shí)驗(yàn)采用美國(guó)自然科學(xué)基金組建的NSFNET作為實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)?,并使用Matlab工具進(jìn)行仿真實(shí)驗(yàn)。仿真參數(shù)描述:NSFNET網(wǎng)絡(luò)包含14個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)和21條鏈路,各節(jié)點(diǎn)的連接關(guān)系如圖3所示,鏈路帶寬為100 Mbit/s。實(shí)驗(yàn)時(shí)將節(jié)點(diǎn)College PK MD作為請(qǐng)求者的連接節(jié)點(diǎn),請(qǐng)求者發(fā)出的興趣分組將會(huì)首先到達(dá)該節(jié)點(diǎn);將節(jié)點(diǎn)Salt Lake City UT作為服務(wù)者的連接節(jié)點(diǎn),當(dāng)服務(wù)節(jié)點(diǎn)發(fā)布內(nèi)容時(shí),內(nèi)容注冊(cè)信息將會(huì)首先到達(dá)該節(jié)點(diǎn);其余節(jié)點(diǎn)為普通的路由節(jié)點(diǎn)。
各仿真參數(shù)值如表1所示。
3.2 仿真結(jié)果
圖4是對(duì)各路由機(jī)制的內(nèi)容請(qǐng)求平均時(shí)延進(jìn)行對(duì)比。仿真過(guò)程中,對(duì)各路徑的時(shí)延值采用歸一化處理,迭代次數(shù)為20次,并對(duì)這20次的請(qǐng)求時(shí)延求平均得到請(qǐng)求平均時(shí)延。從圖4中可以看出,隨著網(wǎng)絡(luò)負(fù)載的增大,4種路由機(jī)制的內(nèi)容請(qǐng)求平均時(shí)延逐漸增加。這是由于隨著網(wǎng)絡(luò)負(fù)載的增加,網(wǎng)絡(luò)發(fā)生擁塞的可能性增加,導(dǎo)致網(wǎng)絡(luò)的時(shí)延增加。對(duì)比分析可以看出,4種路由機(jī)制中,平均時(shí)延最小的是網(wǎng)絡(luò)狀態(tài)感知路由機(jī)制NSAR,其次是最短路徑轉(zhuǎn)發(fā)機(jī)制SPF,而隨機(jī)轉(zhuǎn)發(fā)機(jī)制RF與全轉(zhuǎn)發(fā)機(jī)制FF呈交替的狀態(tài)。NSAR在選擇路由路徑時(shí)是優(yōu)先選擇轉(zhuǎn)發(fā)概率最大的端口進(jìn)行轉(zhuǎn)發(fā),而轉(zhuǎn)發(fā)概率的大小反映的是該路徑的網(wǎng)絡(luò)狀態(tài)的優(yōu)劣,所以其內(nèi)容請(qǐng)求平均時(shí)延最??;SPF選擇內(nèi)容請(qǐng)求跳數(shù)最少的路徑進(jìn)行轉(zhuǎn)發(fā),跳數(shù)越少,時(shí)延疊加越少;FF將內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)至所有匹配端口,容易造成網(wǎng)絡(luò)擁塞,導(dǎo)致內(nèi)容請(qǐng)求平均時(shí)延增大。RF從匹配端口中隨機(jī)選擇轉(zhuǎn)發(fā)端口,所以其內(nèi)容請(qǐng)求平均時(shí)延存在波動(dòng),但總體比NSAR和SPF要大。由此看出NSAR可以降低內(nèi)容請(qǐng)求平均時(shí)延。
圖5是對(duì)各路由機(jī)制的網(wǎng)絡(luò)中的流通分組數(shù)進(jìn)行對(duì)比。從圖中可以看出,隨著平均分組到達(dá)速率的增加,4種路由機(jī)制的網(wǎng)絡(luò)流通分組數(shù)量均逐漸增大。這是因?yàn)殡S著平均分組到達(dá)速率的增加,單位時(shí)間內(nèi)到達(dá)網(wǎng)絡(luò)興趣分組數(shù)增多,導(dǎo)致網(wǎng)絡(luò)中流通分組數(shù)增加。對(duì)比分析可以看出,4種路由機(jī)制中,網(wǎng)絡(luò)流通分組數(shù)量從小到大依次為最短路徑轉(zhuǎn)發(fā)機(jī)制SPF、網(wǎng)絡(luò)狀態(tài)感知機(jī)制NSAR、隨機(jī)轉(zhuǎn)發(fā)機(jī)制RF、全轉(zhuǎn)發(fā)機(jī)制FF。SPF選擇跳數(shù)最少的路徑進(jìn)行轉(zhuǎn)發(fā),數(shù)據(jù)分組需要被轉(zhuǎn)發(fā)的次數(shù)最少,網(wǎng)絡(luò)中流通的分組數(shù)最少;NSAR選擇網(wǎng)絡(luò)狀態(tài)最優(yōu)的路徑進(jìn)行轉(zhuǎn)發(fā),此路徑可能不是跳數(shù)最少的,而且NSAR還需要往轉(zhuǎn)發(fā)概率為NULL的端口及隨機(jī)探測(cè)端口轉(zhuǎn)發(fā)數(shù)據(jù)分組,故其網(wǎng)絡(luò)中流通的分組數(shù)比SPF大;RF選擇的路徑具有隨機(jī)性,但其選擇最短路由的概率還是較SPF和NSAR要?。籉F需向所有匹配端口轉(zhuǎn)發(fā)興趣分組,故其網(wǎng)路中流通的數(shù)據(jù)分組數(shù)最多。由此看出NSAR的網(wǎng)絡(luò)流通分組數(shù)相對(duì)較少。
圖6是對(duì)各路由機(jī)制的帶寬開(kāi)銷進(jìn)行對(duì)比。從圖中可以看出,隨著用戶數(shù)量的增加,4種路由機(jī)制的網(wǎng)絡(luò)帶寬總開(kāi)銷均逐漸增大,而當(dāng)用戶數(shù)量達(dá)到一定時(shí),帶寬開(kāi)銷趨于平穩(wěn)。這是因?yàn)榫W(wǎng)絡(luò)的鏈路帶寬是一定的,當(dāng)用戶的總帶寬需求達(dá)到鏈路帶寬閾值時(shí),帶寬開(kāi)銷將趨于最大值。對(duì)比分析,4種路由策略的帶寬開(kāi)銷從小到大依次為最短路徑轉(zhuǎn)發(fā)機(jī)制SPF、網(wǎng)絡(luò)感知路由機(jī)制NSAR、隨機(jī)轉(zhuǎn)發(fā)機(jī)制RF、全轉(zhuǎn)發(fā)機(jī)制FF。SPF選擇跳數(shù)最少的路徑進(jìn)行轉(zhuǎn)發(fā),占用的鏈路資源最少,帶寬開(kāi)銷也最?。籒SAR選擇網(wǎng)絡(luò)狀態(tài)最優(yōu)的路徑進(jìn)行轉(zhuǎn)發(fā),此路徑可能不是跳數(shù)最少的,而且NSAR還需要往轉(zhuǎn)發(fā)概率為NULL的端口及隨機(jī)探測(cè)端口轉(zhuǎn)發(fā)數(shù)據(jù)分組,故其所占用的鏈路資源比SPF多,帶寬開(kāi)銷比SPF大;RF選擇路徑具有隨機(jī)性,但占用的鏈路還是較SPF和NSAR要多;FF向所有匹配端口轉(zhuǎn)發(fā)興趣分組,占用鏈路資源最多,故其帶寬開(kāi)銷最大。由此看出NSAR的帶寬開(kāi)銷相對(duì)較小。
圖7是分析探測(cè)深度對(duì)網(wǎng)絡(luò)流通分組數(shù)及內(nèi)容傳輸?shù)目値掗_(kāi)銷的影響。實(shí)驗(yàn)時(shí),將用戶數(shù)設(shè)為15,平均分組到達(dá)速率為5個(gè)/秒。從圖中可以看出,隨著探測(cè)深度的增大,網(wǎng)絡(luò)中流通的分組數(shù)及網(wǎng)絡(luò)帶寬開(kāi)銷均增加。這是由于探測(cè)深度的增大,每個(gè)路由節(jié)點(diǎn)需要選擇的轉(zhuǎn)發(fā)端口數(shù)增加,使網(wǎng)絡(luò)中流通的分組數(shù)增加,占用帶寬資源也增加,導(dǎo)致網(wǎng)絡(luò)帶寬開(kāi)銷增大。但是探測(cè)深度的增加可以使路由機(jī)制NSAR對(duì)網(wǎng)絡(luò)狀態(tài)感知越仔細(xì),對(duì)端口轉(zhuǎn)發(fā)概率的更新越準(zhǔn)確,對(duì)路由的指導(dǎo)也越精確。所以可以根據(jù)路由機(jī)制的性能要求動(dòng)態(tài)地調(diào)整探測(cè)深度以獲得符合服務(wù)要求的路由機(jī)制。
本文主要研究了CCN的路由機(jī)制,提出了一種基于網(wǎng)絡(luò)狀態(tài)感知的路由機(jī)制NSAR。NSAR利用從內(nèi)容服務(wù)節(jié)點(diǎn)返回的數(shù)據(jù)分組收集網(wǎng)絡(luò)狀態(tài)信息,并在回傳過(guò)程中對(duì)路由節(jié)點(diǎn)上匹配端口的轉(zhuǎn)發(fā)概率進(jìn)行更新。在端口轉(zhuǎn)發(fā)概率更新算法上,本文針對(duì)有無(wú)新增端口的FIB情況提出2種更新方案,當(dāng)無(wú)新添加的轉(zhuǎn)發(fā)端口時(shí),路由節(jié)點(diǎn)將按無(wú)新添加端口的更新算法對(duì)端口轉(zhuǎn)發(fā)概率進(jìn)行更新,當(dāng)有新添加的轉(zhuǎn)發(fā)端口時(shí),節(jié)點(diǎn)將按有新添加端口的更新算法對(duì)端口轉(zhuǎn)發(fā)概率進(jìn)行更新。當(dāng)后續(xù)的興趣分組到達(dá)路由節(jié)點(diǎn)后,節(jié)點(diǎn)首先會(huì)將興趣分組往轉(zhuǎn)發(fā)概率最大的端口進(jìn)行轉(zhuǎn)發(fā),然后判斷是否有新添加的轉(zhuǎn)發(fā)端口,若有,則往該端口轉(zhuǎn)發(fā)興趣分組,隨后依據(jù)探測(cè)深度從剩余端口中隨機(jī)選擇若干個(gè)端口轉(zhuǎn)發(fā)興趣分組。仿真結(jié)果表明,與其他路由機(jī)制相比,NSAR可以在較低的網(wǎng)絡(luò)開(kāi)銷下提供最優(yōu)的轉(zhuǎn)發(fā)路徑。
由于探測(cè)深度對(duì)NSAR路由機(jī)制的性能有較大的影響,接下來(lái)的工作是探究探測(cè)深度與路由機(jī)制NSAR性能的相互關(guān)系,得到探測(cè)深度與路由性能的最優(yōu)配比。同時(shí)NSAR未對(duì)網(wǎng)絡(luò)緩存[18,19]利用作過(guò)多考慮,所以接下的工作是將網(wǎng)絡(luò)緩存利用加入到路由機(jī)制中,并對(duì)該路由算法下的網(wǎng)絡(luò)緩存命中率及內(nèi)容獲取代價(jià)作相關(guān)研究分析。
[1] Cisco. Visual networking index: forecast and methodology, 2010- 2015, white paper[EB/OL]. http://www.cisco.com/go/vni.
[2] Google. We knew the Web was big[EB/OL]. http://googleblog. blogspot. com/2008/07/we-knew-web-was-big.html.
[3] KOPONEN T, CHAWLA M, CHUN B, et al. A data-oriented (and beyond) network architecture[C]//ACM SIGCOMM. c2007:181-192.
[4] FP7 PURSUIT project[EB/OL]. http://www.fp7- pursuit.eu/PursuitWeb/.
[5] FP7 PSIRP project[EB/OL]. http://www.psirp.org/.
[6] FP7 SAIL project[EB/OL]. http://www.sail-project.eu/.
[7] FP7 4WARD project[EB/OL]. http://www.4ward-project.eu/.
[8] FP7 COMET project[EB/OL]. http://www.comet-project.org/.
[9] FP7 CONVERGENCE project[EB/OL]. http://www. ictconvergence. eu/.
[10] NSF named data networking project[EB/OL]. http://www.named- data.net/.
[11] Content centric networking project[EB/OL]. http:// www.ccnx.org/.
[12] NSF mobility first project[EB/OL]. http:// mobilityfirst.winlab. rutgers.edu/.
[13] PARC[EB/OL]. https://en.wikipedia.org/wiki/PARC.
[14] ZHANG L, ESTRIN D, BURKE J, et al. Named data networking project[R]. Tech.Report ndn-0001, PARC, 2010.
[15] EUM S, NAKAUCHI K, MURATA M, et al. CATT: potential based routing with content caching for ICN[C]//ACM SIGCOMM Workshop on Information-Centric Networking. c2012: 49-54.
[16] 葉潤(rùn)生, 徐明偉. 命名數(shù)據(jù)網(wǎng)絡(luò)中的鄰居緩存路由策略[J]. 計(jì)算機(jī)科學(xué)與探索, 2012, 6(7): 593-601.
YE R S, XU M W. Neighbor cache explore routing strategy in named data network[J]. Journal of Frontiers of Computer Science and Technology, 2012, 6(7): 593-601.
[17] National science foundation network[EB/OL]. https:// en.wikipedia. org/wiki/National_Science_Foundation_Network.
[18] CHAI W K, HE D, PSARAS I, PAVLOU G. Cache “l(fā)ess formore” in information-centric networks[C]//IFIP-TC6 Networking Conference. c2012: 758-770.
[19] PSARAS I, CHAI W K, PAVLOU G. Probabilistic in-network caching for information-centric networks[C]//ACM Workshop on Information-Centric Networking. c2012:55-60.
Network status aware routing in content-centric network
CAI Yue-ping, LIU Jun
(College of Communication Engineering, Chongqing University, Chongqing 400030, China)
To improve the efficiency of content delivery and to reduce the network overhead of content centric network (CCN), a network status aware routing (NSAR) mechanism was proposed. NSAR utilized data packets from the content server nodes to collect network statuses. The forwarding probability of the matching ports of the nodes on the path would be updated according to the network statuses. The subsequent interest packet forwarding would be based on the updated forwarding probability. Therefore the content delivery efficiency would be improved. Simulation results show that NSAR can effectively reduce the average delay of content requests and the number of packets in network as well as the network bandwidth overhead compared with the traditional routing algorithm in CCN.
content-centric network, routing mechanism, network status, status aware, forwarding probability
TP393
A
10.11959/j.issn.1000-436x.2016114
2015-08-07;
2015-12-23
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61301119);教育部—中國(guó)移動(dòng)科研基金資助項(xiàng)目(No.MCM20150102);教育部高等學(xué)校博士學(xué)科點(diǎn)專項(xiàng)科研基金資助項(xiàng)目(No.20120191120025);教育部留學(xué)歸國(guó)人員啟動(dòng)基金資助項(xiàng)目(No.1020607820140002)
The National Natural Science Foundation of China (No.61301119), Joint Research Fund of Ministry of Education and China Mobile (No.MCM20150102), Research Fund of Young Scholars for the Doctoral Program of Ministry of Education (No.20120191120025), Research Fund for Returned Overseas Chinese Scholars of Education of Ministry (No.1020607820140002)
蔡岳平(1980-),男,江蘇丹陽(yáng)人,重慶大學(xué)副教授、碩士生導(dǎo)師,主要研究方向?yàn)閿?shù)據(jù)中心網(wǎng)絡(luò)、光通信網(wǎng)絡(luò)、未來(lái)互聯(lián)網(wǎng)等。
劉軍(1990-),男,江西遂川人,重慶大學(xué)碩士生,主要研究方向?yàn)閮?nèi)容中心網(wǎng)絡(luò)、軟件定義網(wǎng)絡(luò)等。