
本發(fā)明涉及內(nèi)容中心網(wǎng)絡(luò)路由領(lǐng)域,特別是一種基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法。
背景技術(shù):
:CCN(ContentCentricNetwork)通過(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有兩種基本的包格式,即興趣包(InterestPacket)和數(shù)據(jù)包(DataPacket)。興趣包是請(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ā)信息表(ForwardingInformationBase,F(xiàn)IB)、待定興趣表(PendingInterestTable,PIT)和內(nèi)容存儲(chǔ)表(ContentStore,CS)。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ā)端口。由于初始的FIB采用泛洪的方式建立,并使用廣播含有內(nèi)容名字的鏈路狀態(tài)數(shù)據(jù)包的方式更新FIB中的條目,因此對(duì)于同一個(gè)提供者會(huì)有多條路徑到達(dá),體現(xiàn)在FIB中就是同一個(gè)內(nèi)容名稱前綴對(duì)應(yīng)多個(gè)轉(zhuǎn)發(fā)端口。在原始CCN路由設(shè)計(jì)中,當(dāng)路由節(jié)點(diǎn)在FIB中查找到關(guān)于某個(gè)內(nèi)容名稱前綴存在多個(gè)轉(zhuǎn)發(fā)端口時(shí),將會(huì)向所有的轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)興趣包,這種全轉(zhuǎn)發(fā)方式會(huì)使網(wǎng)絡(luò)中流量增多進(jìn)而容易造成網(wǎng)絡(luò)的擁塞,降低網(wǎng)絡(luò)傳輸效率。其他常用的轉(zhuǎn)發(fā)機(jī)制有隨機(jī)轉(zhuǎn)發(fā)機(jī)制和最短路徑轉(zhuǎn)發(fā)機(jī)制。隨機(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ì)量很難保證。為了解決如何為CCN中的興趣包選擇路徑進(jìn)行路由,國(guó)內(nèi)外學(xué)者進(jìn)行了大量研究。面向內(nèi)容名稱的CCN路由方案:命名數(shù)據(jù)鏈路狀態(tài)路由(Named-dataLinkStateRouting,NSLR)通過(guò)廣播鏈路狀態(tài)聲明LSA(LinkStateAdvertisement)來(lái)建立網(wǎng)絡(luò)拓?fù)浜蛡鞑?nèi)容名稱前綴的可達(dá)性。當(dāng)鏈路發(fā)生故障或者故障恢復(fù)時(shí),以及本地內(nèi)容提供者注冊(cè)的內(nèi)容名稱前綴發(fā)生變化時(shí),內(nèi)容路由器都會(huì)向網(wǎng)絡(luò)中廣播LSA。NLSR廣播的LSA包含兩種,即鄰接LSA和前綴LSA。鄰接LSA用來(lái)聲明和某內(nèi)容路由器相連的所有鏈路,前綴LSA用來(lái)聲明在某內(nèi)容路由器上注冊(cè)的某一個(gè)內(nèi)容名稱前綴。每個(gè)內(nèi)容路由器都會(huì)周期性的刷新它要廣播的LSA每一個(gè)內(nèi)容路由器維持一個(gè)LSD(LinkStateDatabase),來(lái)存儲(chǔ)收到的所有LSA。當(dāng)某一內(nèi)容名稱前綴有多個(gè)下一跳接口時(shí),對(duì)于該內(nèi)容名稱前綴的所有下一跳接口,先保留某一個(gè)接口,刪除其他所有接口,然后使用Dijkstra算法計(jì)算利用這個(gè)接口到達(dá)某個(gè)目標(biāo)節(jié)點(diǎn)的代價(jià)。對(duì)該內(nèi)容名稱前綴的所有下一跳接口都重復(fù)上面的過(guò)程,計(jì)算出利用每個(gè)接口到達(dá)某個(gè)目標(biāo)節(jié)點(diǎn)的代價(jià)。之后,利用上面計(jì)算出每個(gè)下一跳接口到達(dá)某個(gè)目標(biāo)節(jié)點(diǎn)的代價(jià),對(duì)所有下一跳接口進(jìn)行排序。對(duì)于每一個(gè)目標(biāo)節(jié)點(diǎn)再重復(fù)以上過(guò)程,直至到達(dá)內(nèi)容提供者。該路由機(jī)制可以有效減少網(wǎng)絡(luò)中冗余流量,但是每個(gè)內(nèi)容路由器對(duì)每個(gè)下一跳接口均需要逐一計(jì)算相應(yīng)的代價(jià),當(dāng)下一跳端口較多或路由路徑較長(zhǎng)時(shí),復(fù)雜度較大。面向網(wǎng)內(nèi)緩存的CCN路由方案:CATT(CacheAwareTargetidenTification)將一個(gè)或多個(gè)CATT節(jié)點(diǎn)CATN(CacheAwareTargetNode)部署在自治域的邊緣,CATN的數(shù)量由自治域的大小決定。在一個(gè)自治域內(nèi)的所有用戶均知道其本地CATN的位置,并將自己的內(nèi)容資源發(fā)布到CATN上。任何請(qǐng)求首先都被轉(zhuǎn)發(fā)到其自治域內(nèi)的本地CATN上,收到請(qǐng)求的CATN首先查找其本地緩存中是否存在相應(yīng)內(nèi)容資源,如果存在,迅速響應(yīng)請(qǐng)求;如果不存在,CATN將請(qǐng)求轉(zhuǎn)發(fā)到相鄰的CATN中。CATT采用了將內(nèi)容提供者的初始內(nèi)容資源和網(wǎng)內(nèi)緩存中的所有緩存副本整合進(jìn)路由過(guò)程中,提高了網(wǎng)內(nèi)緩存的可用性。同時(shí)該機(jī)制還為內(nèi)容緩存提供了一種自適應(yīng)的査找機(jī)制和基于內(nèi)容的臨近程度及內(nèi)容質(zhì)量的路由選擇機(jī)制。該路由機(jī)制能夠獲得一個(gè)近似最佳的路由性能,但是路由過(guò)程較復(fù)雜。面向服務(wù)質(zhì)量的CCN路由方案:SoCCeR(ServicesoverContent-CentricRouting)通過(guò)在CCN的網(wǎng)絡(luò)層上增加了一個(gè)探測(cè)層實(shí)現(xiàn)該路由機(jī)制。SoCCeR基于蟻群優(yōu)化算法(AntConleyOptimal,ACO)。ACO算法模擬了媽蟻覓食的過(guò)程,利用螞蟻每次尋路覓食時(shí)留下的信息素把通往同一覓食地點(diǎn)的不同方向覓食的螞蟻收斂到一條路徑上,SoCCeR利用ACO的這一特性,擴(kuò)展了CCN網(wǎng)絡(luò)中內(nèi)容請(qǐng)求路由選擇。CCN的FIB將一個(gè)內(nèi)容名稱前綴映射到幾個(gè)可提供服務(wù)的下一跳端口,路由的選擇問(wèn)題是從這幾個(gè)可提供服務(wù)的端口中選出一個(gè)最佳的端口完成這次內(nèi)容請(qǐng)求。選擇端口時(shí)考慮負(fù)載、路徑擁塞、帶寬、抖動(dòng)等因素。SoCCeR增加了一個(gè)信息素表,這個(gè)表關(guān)聯(lián)了內(nèi)容名稱前綴,可提供服務(wù)的端口,以及各個(gè)服務(wù)端口的信息素值。FIB表選取信息素值最高的端口作為唯一路由端口。SoCCeR會(huì)周期性釋放探測(cè)包地收集各服務(wù)端口的狀態(tài)信息。該算法能夠優(yōu)化路由到負(fù)載較輕的轉(zhuǎn)發(fā)端口,使服務(wù)請(qǐng)求有選擇性的路由,并且對(duì)網(wǎng)絡(luò)和服務(wù)的狀態(tài)變化有較高適應(yīng)性,但周期釋放探測(cè)包增加了網(wǎng)絡(luò)的開(kāi)銷因此,需要一種基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的之一是提出一種基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法,解決現(xiàn)有內(nèi)容中心網(wǎng)絡(luò)的全轉(zhuǎn)發(fā)方式帶來(lái)的內(nèi)容分發(fā)效率低,冗余數(shù)據(jù)多及網(wǎng)絡(luò)開(kāi)銷較大等一系列問(wèn)題。該方法通過(guò)控制器收集網(wǎng)絡(luò)狀態(tài),并在控制器端計(jì)算各轉(zhuǎn)發(fā)端口的轉(zhuǎn)發(fā)概率,并將興趣包轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)概率最大的轉(zhuǎn)發(fā)概率的端口的路由方法。本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:本發(fā)明提供的基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法,包括控制器、請(qǐng)求者和提供者;包括以下步驟:首先,收集網(wǎng)絡(luò)狀態(tài)信息:控制器通過(guò)控制信道動(dòng)態(tài)地收集網(wǎng)絡(luò)狀態(tài)信息,并根據(jù)網(wǎng)絡(luò)狀態(tài)信息利用轉(zhuǎn)發(fā)概率更新算法動(dòng)態(tài)地更新各內(nèi)容路由器的匹配端口的轉(zhuǎn)發(fā)概率;所述網(wǎng)絡(luò)狀態(tài)信息包括數(shù)據(jù)包從當(dāng)前節(jié)點(diǎn)到達(dá)服務(wù)器的傳輸時(shí)延、當(dāng)前路由節(jié)點(diǎn)下一跳的負(fù)載和該路徑上的服務(wù)器節(jié)點(diǎn)負(fù)載;其次,更新端口轉(zhuǎn)發(fā)概率:所述轉(zhuǎn)發(fā)概率更新算法,輸入所述網(wǎng)絡(luò)狀態(tài)信息和各個(gè)端口的當(dāng)前的轉(zhuǎn)發(fā)概率,輸出為更新后的各個(gè)端口的轉(zhuǎn)發(fā)概率;最后,根據(jù)興趣包在內(nèi)容路由器中的存在狀態(tài)進(jìn)行將興趣包轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大的端口。進(jìn)一步,在收集網(wǎng)絡(luò)狀態(tài)信息的過(guò)程中,如果出現(xiàn)以下兩種情況時(shí),網(wǎng)絡(luò)元件會(huì)主動(dòng)向控制器報(bào)告狀態(tài):(1)節(jié)點(diǎn)或鏈路故障:當(dāng)節(jié)點(diǎn)或鏈路故障時(shí),通往該節(jié)點(diǎn)的所有端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá),當(dāng)鏈路故障時(shí),該鏈路所連接的兩端端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá);(2)新的內(nèi)容提供者加入:當(dāng)有新的內(nèi)容提供者加入時(shí),會(huì)在連接該提供者的內(nèi)容路由器的轉(zhuǎn)發(fā)信息表中增加一個(gè)轉(zhuǎn)發(fā)端口并將當(dāng)前的轉(zhuǎn)發(fā)概率置零,等待下一次更新。進(jìn)一步,所述轉(zhuǎn)發(fā)概率更新算法過(guò)程中的步驟具體如下:利用加權(quán)方法按照以下公式計(jì)算各個(gè)端口的狀態(tài)綜合參數(shù):其中,α,β,γ和分別表示T(i),H(i),LR(i)和LS(i)的權(quán)重;T(i)表示從端口i到內(nèi)容提供者的時(shí)延;H(i)表示從端口i到內(nèi)容提供者的路徑長(zhǎng)度;LR(i)表示端口i下一跳內(nèi)容路由器的負(fù)載;LS(i)表示端口i所對(duì)應(yīng)的內(nèi)容提供者的負(fù)載;對(duì)狀態(tài)綜合參數(shù)按照以下公式進(jìn)行歸一化處理得到增長(zhǎng)概率:其中,ρ是網(wǎng)絡(luò)狀態(tài)的權(quán)重;按照以下公式進(jìn)行更新轉(zhuǎn)發(fā)概率:Pnew(i)=(1-ρ)*Pold(i)+ρ*ΔP(i);其中,Pnew(i)表示端口i更新前的轉(zhuǎn)發(fā)概率;Pold(i)表示端口i更新后的轉(zhuǎn)發(fā)概率。進(jìn)一步,所述更新端口轉(zhuǎn)發(fā)概率具體步驟如下:首先根據(jù)收集的網(wǎng)絡(luò)狀態(tài)利用加權(quán)方法計(jì)算各個(gè)端口的狀態(tài)綜合參數(shù),然后對(duì)該參數(shù)進(jìn)行歸一化處理得到增長(zhǎng)概率,最后根據(jù)歸一化的增長(zhǎng)概率和當(dāng)前的轉(zhuǎn)發(fā)概率利用加權(quán)方法得到更新后的轉(zhuǎn)發(fā)概率;得到各端口的轉(zhuǎn)發(fā)概率之后,控制器將從中選擇轉(zhuǎn)發(fā)概率最大的端口下發(fā)指令,數(shù)據(jù)平面的路由節(jié)點(diǎn)將會(huì)依據(jù)指令執(zhí)行相應(yīng)的轉(zhuǎn)發(fā)機(jī)制。進(jìn)一步,所述轉(zhuǎn)發(fā)興趣包的轉(zhuǎn)發(fā)機(jī)制包括兩種情況:一是當(dāng)興趣包在內(nèi)容路由器中存在匹配項(xiàng)時(shí),則將興趣包轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大的端口,該端口已由控制器指定;二是如果興趣包在內(nèi)容路由器中不存在匹配項(xiàng)時(shí),則興趣包將被轉(zhuǎn)發(fā)至控制器,由控制器選擇一條最短路徑進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明的目的之二是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點(diǎn):本發(fā)明提供的基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法,利用控制器動(dòng)態(tài)收集網(wǎng)絡(luò)狀態(tài)信息,并利用收集的狀態(tài)信息動(dòng)態(tài)更新內(nèi)容路由器中的各個(gè)匹配端口的轉(zhuǎn)發(fā)概率。隨后,控制器從匹配端口中選擇轉(zhuǎn)發(fā)概率最大的端口作為興趣包的轉(zhuǎn)發(fā)端口,并通過(guò)控制信道向內(nèi)容路由器下發(fā)指令。后續(xù)的興趣包到達(dá)內(nèi)容路由器并匹配到轉(zhuǎn)發(fā)端口后,會(huì)往控制器指定的轉(zhuǎn)發(fā)概率最大的端口轉(zhuǎn)發(fā)興趣包。本方法可以降低內(nèi)容請(qǐng)求的平均時(shí)延,可以降低網(wǎng)絡(luò)中傳輸?shù)呐d趣包數(shù),還可以降低網(wǎng)絡(luò)帶寬開(kāi)銷。本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo)和特征在某種程度上將在隨后的說(shuō)明書中進(jìn)行闡述,并且在某種程度上,基于對(duì)下文的考察研究對(duì)本領(lǐng)域技術(shù)人員而言將是顯而易見(jiàn)的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)可以通過(guò)下面的說(shuō)明書來(lái)實(shí)現(xiàn)和獲得。附圖說(shuō)明本發(fā)明的附圖說(shuō)明如下。圖1為進(jìn)行網(wǎng)絡(luò)開(kāi)銷仿真時(shí)所使用的14節(jié)點(diǎn)網(wǎng)絡(luò)拓?fù)鋱D;圖2為當(dāng)網(wǎng)絡(luò)負(fù)載變化時(shí),四種機(jī)制的平均請(qǐng)求時(shí)延的對(duì)比;圖3為平均包到達(dá)速率變化時(shí),四種機(jī)制的網(wǎng)絡(luò)中流通的興趣包數(shù)的對(duì)比;圖4為請(qǐng)求者數(shù)量變化時(shí),四種機(jī)制的傳輸帶寬開(kāi)銷的對(duì)比;圖5為在本發(fā)明SD-STAR實(shí)施例實(shí)現(xiàn)流程圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。實(shí)施例1如圖所示,本實(shí)施例提供的基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法,包括控制器、請(qǐng)求者和提供者,請(qǐng)求者是服務(wù)需求者,它通過(guò)向網(wǎng)絡(luò)發(fā)出興趣包表達(dá)自己的內(nèi)容需求,而提供者是服務(wù)提供者,它通過(guò)返回?cái)?shù)據(jù)包響應(yīng)請(qǐng)求者的內(nèi)容請(qǐng)求,控制器是網(wǎng)絡(luò)的管理者,它通過(guò)收集網(wǎng)絡(luò)的狀態(tài)信息來(lái)規(guī)劃興趣包和興趣包的路由路徑;包括以下步驟:首先,收集網(wǎng)絡(luò)狀態(tài)信息:控制器通過(guò)控制信道動(dòng)態(tài)地收集網(wǎng)絡(luò)狀態(tài)信息,并根據(jù)網(wǎng)絡(luò)狀態(tài)信息利用轉(zhuǎn)發(fā)概率更新算法動(dòng)態(tài)地更新各內(nèi)容路由器的匹配端口的轉(zhuǎn)發(fā)概率;所述網(wǎng)絡(luò)狀態(tài)信息包括數(shù)據(jù)包從當(dāng)前節(jié)點(diǎn)到達(dá)服務(wù)器的傳輸時(shí)延、當(dāng)前路由節(jié)點(diǎn)下一跳的負(fù)載和該路徑上的服務(wù)器節(jié)點(diǎn)負(fù)載;其次,更新端口轉(zhuǎn)發(fā)概率:所述轉(zhuǎn)發(fā)概率更新算法,輸入所述網(wǎng)絡(luò)狀態(tài)信息和各個(gè)端口的當(dāng)前的轉(zhuǎn)發(fā)概率,輸出為更新后的各個(gè)端口的轉(zhuǎn)發(fā)概率;在收集網(wǎng)絡(luò)狀態(tài)信息的過(guò)程中,如果出現(xiàn)以下兩種情況時(shí),網(wǎng)絡(luò)元件會(huì)主動(dòng)向控制器報(bào)告狀態(tài):(1)節(jié)點(diǎn)或鏈路故障:當(dāng)節(jié)點(diǎn)或鏈路故障時(shí),通往該節(jié)點(diǎn)的所有端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá),當(dāng)鏈路故障時(shí),該鏈路所連接的兩端端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá);(2)新的內(nèi)容提供者加入:當(dāng)有新的內(nèi)容提供者加入時(shí),會(huì)在連接該提供者的內(nèi)容路由器的轉(zhuǎn)發(fā)信息表中增加一個(gè)轉(zhuǎn)發(fā)端口并將當(dāng)前的轉(zhuǎn)發(fā)概率置零,等待下一次更新。最后,根據(jù)興趣包在內(nèi)容路由器中的存在狀態(tài)進(jìn)行將興趣包轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大的端口。所述轉(zhuǎn)發(fā)興趣包的轉(zhuǎn)發(fā)機(jī)制包括兩種情況:一是當(dāng)興趣包在內(nèi)容路由器中存在匹配項(xiàng)時(shí),則將興趣包轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大的端口,該端口已由控制器指定;二是如果興趣包在內(nèi)容路由器中不存在匹配項(xiàng)時(shí),則興趣包將被轉(zhuǎn)發(fā)至控制器,由控制器選擇一條最短路徑進(jìn)行轉(zhuǎn)發(fā)。所述轉(zhuǎn)發(fā)概率更新算法過(guò)程中的步驟具體如下:利用加權(quán)方法按照以下公式計(jì)算各個(gè)端口的狀態(tài)綜合參數(shù):其中,α,β,γ和分別表示T(i),H(i),LR(i)和LS(i)的權(quán)重;T(i)表示從端口i到內(nèi)容提供者的時(shí)延;H(i)表示從端口i到內(nèi)容提供者的路徑長(zhǎng)度;LR(i)表示端口i下一跳內(nèi)容路由器的負(fù)載;LS(i)表示端口i所對(duì)應(yīng)的內(nèi)容提供者的負(fù)載;對(duì)狀態(tài)綜合參數(shù)按照以下公式進(jìn)行歸一化處理得到增長(zhǎng)概率:其中,ρ是網(wǎng)絡(luò)狀態(tài)的權(quán)重;按照以下公式進(jìn)行更新轉(zhuǎn)發(fā)概率:Pnew(i)=(1-ρ)*Pold(i)+ρ*ΔP(i);其中,Pnew(i)表示端口i更新前的轉(zhuǎn)發(fā)概率;Pold(i)表示端口i更新后的轉(zhuǎn)發(fā)概率。所述更新端口轉(zhuǎn)發(fā)概率具體步驟如下:首先根據(jù)收集的網(wǎng)絡(luò)狀態(tài)利用加權(quán)方法計(jì)算各個(gè)端口的狀態(tài)綜合參數(shù),然后對(duì)該參數(shù)進(jìn)行歸一化處理得到增長(zhǎng)概率,最后根據(jù)歸一化的增長(zhǎng)概率和當(dāng)前的轉(zhuǎn)發(fā)概率利用加權(quán)方法得到更新后的轉(zhuǎn)發(fā)概率;得到各端口的轉(zhuǎn)發(fā)概率之后,控制器將從中選擇轉(zhuǎn)發(fā)概率最大的端口下發(fā)指令,數(shù)據(jù)平面的路由節(jié)點(diǎn)將會(huì)依據(jù)指令執(zhí)行相應(yīng)的轉(zhuǎn)發(fā)機(jī)制。實(shí)施例2本實(shí)施例提供的更新端口轉(zhuǎn)發(fā)概率,當(dāng)一個(gè)周期內(nèi)的網(wǎng)絡(luò)狀態(tài)信息收集完畢后,控制器將會(huì)根據(jù)收集的網(wǎng)絡(luò)狀態(tài)更新各轉(zhuǎn)發(fā)端口的轉(zhuǎn)發(fā)概率。不失一般性,假設(shè)需要更新某個(gè)路由器上的端口i,下表中列出使用的參數(shù)的含義:參數(shù)含義T(i)從端口i到內(nèi)容提供者的時(shí)延H(i)從端口i到內(nèi)容提供者的路徑長(zhǎng)度LR(i)端口i下一跳內(nèi)容路由器的負(fù)載LS(i)端口i所對(duì)應(yīng)的內(nèi)容提供者的負(fù)載Pold(i)端口i更新前的轉(zhuǎn)發(fā)概率Pnew(i)端口i更新后的轉(zhuǎn)發(fā)概率對(duì)于某個(gè)內(nèi)容路由器中某個(gè)內(nèi)容名稱前綴所對(duì)應(yīng)的所有匹配轉(zhuǎn)發(fā)端口,它們的轉(zhuǎn)發(fā)概率和為1。假設(shè)P(i)表示端口i的轉(zhuǎn)發(fā)概率,N是該內(nèi)容路由器中某個(gè)內(nèi)容名稱前綴所對(duì)應(yīng)的匹配轉(zhuǎn)發(fā)端口數(shù)目,則有:首先控制器根據(jù)收集的網(wǎng)絡(luò)狀態(tài)利用加權(quán)方法計(jì)算各個(gè)端口的狀態(tài)綜合參數(shù):其中α,β,γ和分別表示T(i),H(i),LR(i)和LS(i)的權(quán)重,α,β,γ和的值可以依據(jù)不同的網(wǎng)絡(luò)需求進(jìn)行調(diào)整。這里只列舉四個(gè)網(wǎng)絡(luò)狀態(tài)因子,所以四個(gè)因子的權(quán)重和為1,即然后對(duì)該參數(shù)進(jìn)行歸一化處理得到增長(zhǎng)概率:考慮網(wǎng)絡(luò)的突變性,我們采用加權(quán)的方法更新端口的轉(zhuǎn)發(fā)概率,ρ是網(wǎng)絡(luò)狀態(tài)的權(quán)重,如果ρ越接近0,則表示更新后的轉(zhuǎn)發(fā)概率越接近更新前的轉(zhuǎn)發(fā)概率,受網(wǎng)絡(luò)狀態(tài)的影響較小;如果ρ越接近1,則表示更新后的轉(zhuǎn)發(fā)概率受網(wǎng)絡(luò)狀態(tài)的影響較大,更新公式如下:Pnew(i)=(1-ρ)*Pold(i)+ρ*ΔP(i)需要注意的是,當(dāng)出現(xiàn)以下兩種情況時(shí),路由方法將執(zhí)行如下操作:(1)節(jié)點(diǎn)或鏈路故障:當(dāng)節(jié)點(diǎn)或鏈路故障時(shí),控制器將通往該節(jié)點(diǎn)的所有端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá);當(dāng)鏈路故障時(shí),控制器將該鏈路所連接的兩端端口的轉(zhuǎn)發(fā)概率將被置零,設(shè)為不可達(dá)。(2)新的內(nèi)容提供者加入:當(dāng)有新的內(nèi)容提供者加入時(shí),控制器將會(huì)在連接該提供者的內(nèi)容路由器的轉(zhuǎn)發(fā)信息表中增加一個(gè)轉(zhuǎn)發(fā)端口并將當(dāng)前的轉(zhuǎn)發(fā)概率置零,等待下一次更新。最后根據(jù)歸一化的增長(zhǎng)概率和當(dāng)前的轉(zhuǎn)發(fā)概率利用加權(quán)方法得到更新后的轉(zhuǎn)發(fā)概率。得到各端口的轉(zhuǎn)發(fā)概率之后,控制器將從中選擇轉(zhuǎn)發(fā)概率最大的端口下發(fā)指令,數(shù)據(jù)平面的路由節(jié)點(diǎn)將會(huì)依據(jù)指令執(zhí)行相應(yīng)的轉(zhuǎn)發(fā)機(jī)制。本實(shí)施例提供的轉(zhuǎn)發(fā)機(jī)制包括兩種情況:當(dāng)興趣包在內(nèi)容路由器中存在匹配項(xiàng)時(shí),則將興趣包轉(zhuǎn)發(fā)至端口轉(zhuǎn)發(fā)概率最大的端口,該端口已由控制器指定;如果興趣包在內(nèi)容路由器中不存在匹配項(xiàng)時(shí),該興趣包將會(huì)被轉(zhuǎn)發(fā)至控制器,由控制器為其選擇一條最短路徑進(jìn)行轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)興趣包:當(dāng)一個(gè)興趣包到達(dá)內(nèi)容路由器時(shí),內(nèi)容路由器會(huì)從該興趣包中提取內(nèi)容名稱并在內(nèi)容存儲(chǔ)表中查找是否有相應(yīng)的內(nèi)容,如果有,則直接將內(nèi)容返回給請(qǐng)求者,并將興趣包丟棄。如果沒(méi)有,則繼續(xù)查找待定興趣表中是否相應(yīng)的記錄,如果有,則將興趣包丟棄,并在待定興趣表中的相關(guān)條目中加入興趣包的輸入端口。如果沒(méi)有,則在待定興趣表中增加條目記錄輸入端口,并在轉(zhuǎn)發(fā)興趣表中查找是否有匹配項(xiàng),如果有,則將興趣包轉(zhuǎn)發(fā)至控制器指定的轉(zhuǎn)發(fā)端口,該轉(zhuǎn)發(fā)端口具有最大的轉(zhuǎn)發(fā)概率。如果沒(méi)有,則將興趣包轉(zhuǎn)發(fā)給控制器,由控制器為其指定一條最短轉(zhuǎn)發(fā)路徑。實(shí)施例3本實(shí)施例通過(guò)實(shí)驗(yàn)仿真說(shuō)明技術(shù)效果,仿真拓?fù)淙鐖D1所示,仿真參數(shù)設(shè)置:鏈路帶寬100Gbps,請(qǐng)求者數(shù)目3000,用戶帶寬需求服從泊松分布,平均需求為40Mbps,總請(qǐng)求頻率100-1000次每秒,T(i),H(i),LR(i)和LS(i)的權(quán)重α,β,γ和分別設(shè)為0.4,0.2,0.2和0.2,網(wǎng)絡(luò)狀態(tài)的權(quán)重ρ設(shè)為0.5。并在同等環(huán)境下將本方法與傳統(tǒng)的隨機(jī)轉(zhuǎn)發(fā)機(jī)制,最短路徑轉(zhuǎn)發(fā)機(jī)制和全轉(zhuǎn)發(fā)機(jī)制進(jìn)行對(duì)比。本實(shí)施例可以降低內(nèi)容請(qǐng)求的平均時(shí)延。如圖2所示,隨著網(wǎng)絡(luò)負(fù)載的增大,四種路由機(jī)制的內(nèi)容請(qǐng)求平均時(shí)延逐漸增加。這是由于隨著網(wǎng)絡(luò)負(fù)載的增加,網(wǎng)絡(luò)發(fā)生擁塞的可能性增加,導(dǎo)致網(wǎng)絡(luò)的時(shí)延增加。對(duì)比分析可以看出,四種路由機(jī)制中,平均時(shí)延最小的是基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法SD-STAR。這是因?yàn)镾D-STAR在選擇路由路徑時(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í)延最小。本實(shí)施例還可以降低網(wǎng)絡(luò)中傳輸?shù)呐d趣包數(shù)。如圖3所示,隨著平均包到達(dá)速率的增加,四種路由機(jī)制的網(wǎng)絡(luò)流通興趣包的數(shù)量均逐漸增大。這是因?yàn)殡S著平均包到達(dá)速率的增加,單位時(shí)間內(nèi)到達(dá)網(wǎng)絡(luò)興趣包數(shù)增多。對(duì)比分析可以看出,四種路由機(jī)制中,網(wǎng)絡(luò)流通的興趣包數(shù)量最少的是最短路徑轉(zhuǎn)發(fā)機(jī)制SPF,其次是基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法SD-STAR,且兩者非常接近;SD-STAR選擇網(wǎng)絡(luò)狀態(tài)最優(yōu)的路徑進(jìn)行轉(zhuǎn)發(fā),此路徑可能不是跳數(shù)最少,而SPF是選擇跳數(shù)最少的端口轉(zhuǎn)發(fā)興趣包,故運(yùn)行SD-STAR的網(wǎng)絡(luò)中流通的興趣包數(shù)比要比SPF多。本數(shù)量還可以降低網(wǎng)絡(luò)帶寬開(kāi)銷。如圖4所示,隨著用戶數(shù)量的增加,四種路由機(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ì)比分析,四種路由策略的帶寬開(kāi)銷最小的是最短路徑轉(zhuǎn)發(fā)機(jī)制SPF,其次是基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法SD-STAR,且兩者非常接近。SPF選擇跳數(shù)最少的路徑進(jìn)行轉(zhuǎn)發(fā),占用的鏈路資源最少,帶寬開(kāi)銷也最小;SD-STAR選擇網(wǎng)絡(luò)狀態(tài)最優(yōu)的路徑進(jìn)行轉(zhuǎn)發(fā),此路徑可能不是跳數(shù)最少的,故其所占用的鏈路資源比SPF多,帶寬開(kāi)銷比SPF大,但二者非常接近。本實(shí)施例提供的控制信息的傳輸選擇帶外鏈接,如圖5所示,圖5為基于軟件定義的內(nèi)容中心網(wǎng)絡(luò)路由方法的具體流程圖,具體步驟如下:步驟501:網(wǎng)絡(luò)初始時(shí),在內(nèi)容注冊(cè)階段,內(nèi)容提供者1發(fā)布內(nèi)容Content可達(dá)性信息,該信息在網(wǎng)絡(luò)中進(jìn)行廣播,各內(nèi)容路由器A、B、C和D據(jù)此在建立各自的轉(zhuǎn)發(fā)信息表FIB,控制器為同一個(gè)內(nèi)容路由器上的FIB中Content的列出所有轉(zhuǎn)發(fā)端口賦予相同的轉(zhuǎn)發(fā)概率。步驟502:控制器收集網(wǎng)絡(luò)狀態(tài)信息(5.1,5.2,5.3,5.4,5.5,5.6),并根據(jù)這些狀態(tài)信息在控制器端更新各個(gè)端口的轉(zhuǎn)發(fā)概率,并得到各個(gè)內(nèi)容路由器中轉(zhuǎn)發(fā)概率最大的端口,通過(guò)控制信道下發(fā)指令(5.7,5.8,5.9,5.10)。步驟503:當(dāng)請(qǐng)求者1和2發(fā)出請(qǐng)求內(nèi)容Content的興趣包后(5.11,5.12),當(dāng)興趣包到達(dá)內(nèi)容路由器A后,先檢索CS中是否有內(nèi)容Content,若有則返回?cái)?shù)據(jù),并丟棄興趣包,若沒(méi)有則檢索PIT中是否有該興趣包的記錄,若有則將該興趣包的輸入端口記錄在PIT相應(yīng)條目中,并丟棄興趣包,若沒(méi)有則創(chuàng)建一個(gè)新條目,記錄該興趣包輸入端口。當(dāng)檢索完P(guān)IT后,將將檢索FIB。當(dāng)FIB中存在內(nèi)容Content的條目時(shí),會(huì)將該興趣包從控制器指定的轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)出去,該端口具有最大的轉(zhuǎn)發(fā)概率,在本實(shí)施例中,內(nèi)容交換機(jī)A中控制器指定的轉(zhuǎn)發(fā)端口為PortA-C,內(nèi)容交換機(jī)C中控制器指定的轉(zhuǎn)發(fā)端口為PortC-提供者1,興趣包將會(huì)逐跳轉(zhuǎn)發(fā)至提供者1(5.13,5.14)。步驟504:內(nèi)容提供者1收到請(qǐng)求內(nèi)容Content的興趣包后會(huì)發(fā)出包含內(nèi)容Content的數(shù)據(jù)包。該數(shù)據(jù)包依據(jù)內(nèi)容路由器C和A的PIT一路回傳至請(qǐng)求者1和請(qǐng)求者2處(5.15,5.16,5.17,5.18),完成了一次內(nèi)容請(qǐng)求。最后說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍當(dāng)中。當(dāng)前第1頁(yè)1 2 3