專利名稱:一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在網(wǎng)絡(luò)中建立傳輸報文的路由技術(shù),特別涉及一種在對等
(p2p, peer to peer)網(wǎng)絡(luò)中實現(xiàn)路由的方法、系統(tǒng)及裝置。
背景技術(shù):
隨著p2p技術(shù)的發(fā)展,p2p網(wǎng)絡(luò)經(jīng)歷了第一代和第二代后,已經(jīng)發(fā)展到 了性能良好的第三代p2p網(wǎng)絡(luò)。因此,P2P網(wǎng)絡(luò)有望和NGN—起共同服務(wù) 于下一代的電信網(wǎng)。
在p2p網(wǎng)絡(luò)中,采用p2p技術(shù),p2p技術(shù)是一種用于不同用戶設(shè)備之間, 不經(jīng)過中繼設(shè)備直接交互數(shù)據(jù)或服務(wù)的技術(shù),p2p技術(shù)打破了傳統(tǒng)網(wǎng)絡(luò)的客 戶端/服務(wù)器模式,在p2p網(wǎng)絡(luò)中的每個節(jié)點地位都是對等的,具備客戶端 和服務(wù)器雙重特性,可以同時作為數(shù)據(jù)或/和服務(wù)的提供者和使用者。
如何在p2p網(wǎng)絡(luò)中建立傳輸數(shù)據(jù)或服務(wù)的路由成為了發(fā)展p2p網(wǎng)絡(luò)的關(guān) 4定問題。目前,有兩種方法分別用于在p2p網(wǎng)絡(luò)中建立路由,以下進(jìn)行詳細(xì) 說明。
第 一種在p2p網(wǎng)絡(luò)中建立路由的方法在網(wǎng)絡(luò)中引入細(xì)胞結(jié)構(gòu),在細(xì)胞的 各節(jié)點內(nèi)設(shè)置細(xì)胞內(nèi)和細(xì)胞間的路由表,用于對建立路由、路由表的維護(hù)、 節(jié)點加入、細(xì)胞分離和融合,這五種程序的操作和實現(xiàn),在快速變化點對點 環(huán)境和沒有中央服務(wù)器的情況下實現(xiàn)可擴(kuò)展的參與節(jié)點的子組織和協(xié)作路 由,為實現(xiàn)p2p網(wǎng)絡(luò)打下基礎(chǔ)。
該方法首先設(shè)置路由,過程為對草履蟲系統(tǒng)內(nèi)的每個節(jié)點用無沖突且 均勻分布的哈希方法賦予一個160位的二進(jìn)制的數(shù)字節(jié)點標(biāo)識(Nodeld), 形成首位為0,末位為216Q- 1且首尾相接的Nodeld空間;對于節(jié)點中存儲
的對象也用上述方法賦予一個160位的數(shù)字^t標(biāo)識(key),形成首位為0, 末位為216Q- 1的首尾相接的key空間;再將Nodeld的key空間分割成若干 相互即不包含又不重疊,彼此銜接的細(xì)胞,每個細(xì)胞由二元組〔左邊界,右 邊界〕來標(biāo)識(左邊界和右邊界都是數(shù)字),細(xì)胞疆界的并集覆蓋整個Nodeld 空間。這樣,對于每個節(jié)點就有兩套路由表, 一套為節(jié)點的細(xì)胞內(nèi)路由表, 包含所在細(xì)胞內(nèi)所有節(jié)點的Nodeld和網(wǎng)絡(luò)地址;另一套為節(jié)點的細(xì)胞間路 由表,由若干行組成,每行包括如下信息所要到達(dá)的細(xì)胞距離出行節(jié)點所 在的細(xì)胞中心距離、對于出行節(jié)點而言它的Nodeld、網(wǎng)絡(luò)地址和所在細(xì)胞 疆界。其中,上述距離按照以下標(biāo)準(zhǔn)選取"出發(fā)節(jié)點所在細(xì)胞的半徑叫 右邊界-左邊界|/2",以"R=(出發(fā)節(jié)點所在細(xì)胞的半徑+ l)"作為單位 步長,分別一次選取如下項Lo=Rx 2、L產(chǎn)Rx 2',L^Rx 22,Li=Rx 21小于或 等于數(shù)字空間長度的一半,即216()/2。
然后就可以根據(jù)設(shè)置的路由進(jìn)行數(shù)據(jù)傳輸了 。
該方法實現(xiàn)簡單,路由的目的是找到在包含給定的Key細(xì)胞內(nèi)和給定 的Key最接近并最靠近細(xì)胞左邊界的節(jié)點。如果給定的key在本細(xì)胞內(nèi)則使 用細(xì)胞內(nèi)路由表進(jìn)行路由,否則把路由請求發(fā)送到在細(xì)胞間路由表中距離目 標(biāo)最近并沒有超過目標(biāo)的細(xì)胞中的節(jié)點,即細(xì)胞的某個邊疆界距離目標(biāo)最 近,再由這個節(jié)點進(jìn)行細(xì)胞間;洛由。
該專利的技術(shù)核心是典型的第三代p2p技術(shù),具有高效的資源查找功 能,但是存在以下幾個方面的缺點第一個方面,該專利只是對資源進(jìn)行了 定位,即只是確定目標(biāo)資源的位置和地址,并不在源節(jié)點和目標(biāo)節(jié)點建立一 條路徑連接;第二個方面,該專利沒有對鏈路上的帶寬進(jìn)行控制,不具備對 帶寬資源的分配與回收功能,整個網(wǎng)絡(luò)處于無控制狀態(tài),造成的結(jié)果是即使 確定了某個資源的位置與地址,但源節(jié)點和目的節(jié)點之間可能沒有連接或鏈 路的帶寬不夠,兩個節(jié)點無法傳輸業(yè)務(wù)或者無法保證業(yè)務(wù)的服務(wù)質(zhì)量。
第二種在p2p網(wǎng)絡(luò)中建立路由的的核心思想為設(shè)計了一種構(gòu)建于結(jié)構(gòu) 4匕p2p網(wǎng)絡(luò)之上的pub/sub系統(tǒng)的路由方法,該系統(tǒng)包括p2p層、pub/sub
層和應(yīng)用層,p2p層中含有過濾條件表;pub/sub層建立在p2p層之上,向應(yīng) 用層提供事件的訂閱和通知服務(wù)。 該方法具備包括
首先,對所有節(jié)點進(jìn)行編碼,按照編碼的前綴將所述節(jié)點劃分為不同層 次的子空間,對于每個節(jié)點,在每個子空間中選擇一個用于轉(zhuǎn)發(fā)該子空間中 其他節(jié)點的消息的匯合節(jié)點;
其次,以所述子空間為基礎(chǔ),為每個節(jié)點建立相應(yīng)的路由表項,并記錄 各子空間相應(yīng)的匯合節(jié)點;
再次,以所述子空間為基礎(chǔ),為每個節(jié)點建立相應(yīng)的過濾條件表,記錄 各子空間所定義的訂閱條件;
最后,節(jié)點消息轉(zhuǎn)發(fā)時,首先將該消息轉(zhuǎn)發(fā)到各目標(biāo)子空間的所述匯合 節(jié)點,匯合節(jié)點處理該消息,然后按照所述匯合節(jié)點的路由表和過濾條件表, 將該消息轉(zhuǎn)發(fā)給該匯合節(jié)點所在子空間中的相應(yīng)節(jié)點。
該方法自然地與p2p網(wǎng)絡(luò)本身地路由協(xié)i義集成在一起,并利用構(gòu)建與結(jié) 構(gòu)化p2p網(wǎng)絡(luò)之上的pub/sub系統(tǒng),將p2p網(wǎng)絡(luò)分為p2p層、pub/sub層和應(yīng) 用層三個層次,如圖1所示,其中,p2p層用于將各事件代理組成一個自組 織的p2p網(wǎng)絡(luò),pub/sub層負(fù)責(zé)訂閱和事件在各事件代理之間的轉(zhuǎn)發(fā),應(yīng)用 層負(fù)責(zé)發(fā)布和接收事件。Pub/sub系統(tǒng)的路由協(xié)議是pub/sub層的路由協(xié)議, 其建立在p2p層路由協(xié)議之上。
該方法還^見定了當(dāng)一個節(jié)點動態(tài)加入時,首先進(jìn)4亍p2p層的初始化,以 構(gòu)建相應(yīng)的路由表,然后進(jìn)行pub/sub層的初始化,以構(gòu)建過濾條件表;當(dāng) 一個節(jié)點失效時,則將轉(zhuǎn)發(fā)到該失效節(jié)點的消息轉(zhuǎn)發(fā)至與該失效節(jié)點處于同 一子空間的其他節(jié)點處。
該方法采用基于編碼區(qū)間的路由方法,能夠較為自然地與p2p網(wǎng)絡(luò)本身 的路由協(xié)議集成在一起,并利用p2p網(wǎng)絡(luò)路由協(xié)議的容錯機(jī)制來提高事件傳 輸?shù)目煽啃?。只要事件的發(fā)布者與訂閱者之間在p2p網(wǎng)絡(luò)中是可達(dá)的,則訂 閱者一定能收到所訂閱的事件,且只收集到一次。該方法也具有較高的路由
效率,可以避免不必要的消息轉(zhuǎn)發(fā)。對于事件的傳播,該方法檢測目標(biāo)子網(wǎng) 中是否有對本事件感興趣的訂閱者,并且僅發(fā)送給對本事件感興趣的訂閱者。
在該方法中,使用的p2p路由算法是已有的成熟Pastry網(wǎng)絡(luò)的路由算法。 Pastry網(wǎng)絡(luò)的路由算法采用基于鍵值的路由協(xié)議,每個節(jié)點都有一個編碼, 節(jié)點之間通過有向的邊相連,節(jié)點的每個輸出邊負(fù)責(zé)一定的編碼區(qū)間。對于 每個節(jié)點而言,各輸出邊和其所負(fù)責(zé)的編碼區(qū)構(gòu)成了該節(jié)點的路由表。在 Pastry網(wǎng)絡(luò)中,所有節(jié)點的編碼構(gòu)成一個線性的地址空間,按照編碼的前綴 劃分為不同層次的子空間。Pastry網(wǎng)絡(luò)的路由表的基本原理是對于每個子 空間,本節(jié)點都要在其中找一個"代表",記錄在路由表中,將來所有要發(fā)
到該子空間中的消息,都通過該"代表"轉(zhuǎn)發(fā),如圖2所示,為節(jié)點213在 整個地址空間中的路由項示意圖,其中每個曲線箭頭代表一個路由項。
該方法的路由算法僅僅限于應(yīng)用層上,其核心思想只是針對網(wǎng)絡(luò)中的空 間分配和節(jié)點的訂閱條件,并沒有對p2p網(wǎng)絡(luò)中的節(jié)點通信過程中的帶寬分 配做描述,該方法有關(guān)節(jié)點路由的算法僅僅是資源的定位,并沒有做到控制 網(wǎng)絡(luò)中滿足通信需求的路由要求。如果在p2p網(wǎng)絡(luò)中應(yīng)用對服務(wù)質(zhì)量高要求 的多業(yè)務(wù)服務(wù)后,該方法并不能很好地保證各業(yè)務(wù)的穩(wěn)定帶寬需求,從而無 法保證p2p網(wǎng)絡(luò)中對業(yè)務(wù)需求的服務(wù)質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種在p2p網(wǎng)絡(luò)中實現(xiàn)路由的方法,該方法在保證為 業(yè)務(wù)提供穩(wěn)定的服務(wù)質(zhì)量的前提下,在p2p網(wǎng)絡(luò)中實現(xiàn)用于傳輸業(yè)務(wù)的路 由。
本發(fā)明實施例還提供一種在p2p網(wǎng)絡(luò)中實現(xiàn)路由的裝置,該裝置在保證 為業(yè)務(wù)提供穩(wěn)定的服務(wù)質(zhì)量的前提下,在p2p網(wǎng)絡(luò)中實現(xiàn)用于傳輸業(yè)務(wù)的路 由。
本發(fā)明實施例還提供一種在p2p網(wǎng)絡(luò)中實現(xiàn)路由的系統(tǒng),該系統(tǒng)在保證
為業(yè)務(wù)提供穩(wěn)定的服務(wù)質(zhì)量的前提下,在p2p網(wǎng)絡(luò)中實現(xiàn)用于傳輸業(yè)務(wù)的路 由。
根據(jù)上述目的,本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的 一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的方法,對等網(wǎng)絡(luò)中的每個節(jié)點采用遞歸建 立算法建立從自己到其他節(jié)點的虛電路,存儲包括帶寬和跳數(shù)在內(nèi)的虛電路 信息,該方法還包括
源節(jié)點接收到業(yè)務(wù)傳輸請求后,根據(jù)存儲的虛電路信息查詢符合業(yè)務(wù)傳 輸帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,將該請求發(fā)送給該節(jié)點的直連節(jié) 點,由該直連節(jié)點以及后續(xù)直連節(jié)點根據(jù)自身存儲的虛電路信息查詢符合業(yè) 務(wù)傳輸帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,直到能夠到達(dá)目的節(jié)點的倒 數(shù)第二個節(jié)點;
源節(jié)點根據(jù)查詢得到的所述多個虛電路建立傳輸業(yè)務(wù)的路由。 一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的系統(tǒng),該系統(tǒng)包括多個節(jié)點,其中, 每個節(jié)點,用于采用遞歸建立算法建立到其他節(jié)點的虛電路,且存儲包 括帶寬和跳數(shù)的該虛電路信息,在傳輸業(yè)務(wù)時,根據(jù)自身存儲的虛電路信息 分別查詢符合該業(yè)務(wù)帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,得到多個虛電 路,根據(jù)所述多個虛電路建立由源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路由。
一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的裝置,該裝置包括計算模塊、存儲模塊和
處理模塊,其中,
計算模塊,用于采用遞歸算法建立到其他節(jié)點的虛電路;
存儲模塊,用于存儲所建立虛電路的包括帶寬和跳數(shù)的虛電路信息; 處理模塊,用于處理業(yè)務(wù)傳輸,查詢存儲模塊存儲的符合該業(yè)務(wù)的帶寬 要求且能夠到達(dá)目的節(jié)點的虛電路。
從上述方案可以看出,本發(fā)明實施例以對等的方式建立起滿足帶寬要求 的同域內(nèi)任意兩個普通節(jié)點之間或域間任意兩個超級節(jié)點之間的虛電路,當(dāng) 業(yè)務(wù)請求到達(dá)后,根據(jù)業(yè)務(wù)的帶寬需求,通過設(shè)置的虛電路在源節(jié)點和目的 之間尋找并建立一條符合業(yè)務(wù)帶寬要求的路由,確保業(yè)務(wù)傳輸?shù)姆?wù)質(zhì)量。
因此,本發(fā)明實施例提供的方法、系統(tǒng)及裝置在保證為業(yè)務(wù)提供穩(wěn)定的服務(wù)
質(zhì)量的前提下,在p2p網(wǎng)絡(luò)中實現(xiàn)用于傳輸業(yè)務(wù)的路由。
圖1為現(xiàn)有技術(shù)方法二的p2p網(wǎng)絡(luò)層次結(jié)構(gòu)示意圖; 圖2為現(xiàn)有技術(shù)方法二的節(jié)點213在p2p網(wǎng)絡(luò)中的整個地址空間中的路 由項示意圖3為本發(fā)明實施例p2p網(wǎng)絡(luò)的結(jié)構(gòu)示意圖4為本發(fā)明實施例虛電路結(jié)構(gòu)示意圖5為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的方法流程圖6為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的系統(tǒng)示意圖7為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的裝置示意圖8為本發(fā)明實施例采用虛電路傳輸業(yè)務(wù)的方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明 實施例作進(jìn)一步的詳細(xì)描述。
本發(fā)明實施例以對等的方式建立起滿足帶寬要求的同域內(nèi)任意兩個普 通節(jié)點之間或域間任意兩個超級節(jié)點之間的虛電路,當(dāng)業(yè)務(wù)請求到達(dá)后,根 據(jù)業(yè)務(wù)的帶寬需求,通過設(shè)置的虛電路在源節(jié)點和目的之間尋找并建立一條 符合業(yè)務(wù)帶寬要求的路由,確保業(yè)務(wù)傳輸?shù)姆?wù)質(zhì)量。
在本實施例的p2p網(wǎng)絡(luò)中,采用分域的思想,將整個網(wǎng)絡(luò)分為多個更小 規(guī)模的域,每個域內(nèi)的節(jié)點分為普通節(jié)點(GN, General Node)和超級節(jié)點 (SN, Super Node)。分配規(guī)則可以預(yù)先設(shè)定,其中,GN是所劃分域中一 些功能較弱的路由器或服務(wù)器,負(fù)責(zé)域內(nèi)信息的路由;SN是所劃分域中功 能強(qiáng)大的路由器或服務(wù)器,負(fù)責(zé)域間信息的路由和域內(nèi)網(wǎng)絡(luò)的控制。對在一 個域內(nèi)的所有GN來說,是完全對等的;同樣,對域間的所有SN來說,也
是對等的。該網(wǎng)絡(luò)結(jié)構(gòu)體現(xiàn)了 p2p技術(shù)的思想,如圖3所示該p2p網(wǎng)絡(luò)分 為三個域,域l、域2和域3,每個域中實心圓圈(A, SN1, SN3, B, SN2) 表示SN,空心圓圈表示GN, al為源用戶終端節(jié)點,bl為目的用戶終端節(jié)點。
在本實施例中,提出了虛電路的概念,即要為p2p網(wǎng)絡(luò)中的節(jié)點分別建 立到其他節(jié)點的虛電路,并將虛電路信息進(jìn)行存儲,其中,虛電路信息包括 源節(jié)點標(biāo)識-直連節(jié)點標(biāo)識-目的節(jié)點標(biāo)識,虛電路的跳數(shù)和虛電路支持的帶寬。
虛電路是指從源節(jié)點到目的節(jié)點的邏輯鏈路,其由源節(jié)點、源節(jié)點的直 連節(jié)點和目的節(jié)點三者確定,采用源節(jié)點標(biāo)識、源節(jié)點的直連節(jié)點標(biāo)識和目 的節(jié)點標(biāo)識來指示,該虛電路對應(yīng)于該虛電路的跳數(shù)和虛電路支持的帶寬存 儲在源節(jié)點上。例如,每個節(jié)點的標(biāo)識都采用32比特的二進(jìn)制數(shù)表示,則 一條虛電路需要由96比特的二進(jìn)制數(shù)表示; 一條虛電路上源節(jié)點為Rl,直 連節(jié)點為R2和目的節(jié)點為R3,則可以將該虛電路記載為Rl-R2-R3。
對于一條虛電路,包含跳數(shù)和帶寬兩個屬性,其中,跳數(shù)是該虛電路所 經(jīng)過的節(jié)點數(shù)目,帶寬是該虛電路上所有物理鏈路的可用帶寬的最小值。
在本發(fā)明實施例中,對于源節(jié)點上的一條虛電路來說,源節(jié)點并不確切 知道這條虛電路所對應(yīng)的所有節(jié)點,源節(jié)點僅僅知道下 一跳節(jié)點是其一個直 連節(jié)點,對于其他從源節(jié)點到目的節(jié)點之間的節(jié)點,則由該直連節(jié)點到目的 節(jié)點的虛電路確定。如果該直連節(jié)點到目的節(jié)點的虛電路有多條,則采用帶 寬值最大的一條直連節(jié)點到目的節(jié)點的虛電路和源節(jié)點到直連節(jié)點的物理 鏈路,構(gòu)成源節(jié)點到目的節(jié)點的最終傳輸數(shù)據(jù)的路由。
一個節(jié)點到另一個節(jié)點的虛電路最多有d條,d為自然數(shù),在本發(fā)明實 施例,將d稱為節(jié)點的度數(shù),即和該節(jié)點直連的節(jié)點個數(shù)。
在本發(fā)明實施例中,虛電路分為域內(nèi)虛電路和域間虛電路,建立域間虛 電^各和建立域內(nèi)虛電3各的原理是相同的。
圖4為本發(fā)明實施例虛電路結(jié)構(gòu)示意圖,如圖所示,A節(jié)點和B節(jié)點之
間通過物理鏈路連接,B節(jié)點和C節(jié)點通過物理鏈路連接,在邏輯上認(rèn)為A 節(jié)點和C節(jié)點有一條虛電路。當(dāng)C節(jié)點和D節(jié)點通過物理鏈路連接后,可 以認(rèn)為A節(jié)點和D節(jié)點有一條虛電路,A節(jié)點不用知道虛電路中所有物理 鏈路的細(xì)節(jié),即不用知道C節(jié)點的存在,直接利用虛電路A節(jié)點-B節(jié)點-D 節(jié)點和D節(jié)點建立路由即可(B節(jié)點-C節(jié)點-D節(jié)點的虛電路由B節(jié)點確定)。 圖5為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的方法流程圖,其具體步驟
為
步驟501、將p2p網(wǎng)絡(luò)劃分為多個域,每個域中具有一個SN和多個GN。 其中,SN用于域間的路由建立,GN用于與同一域內(nèi)的SN或其他GN 建立域內(nèi)if各由。
步驟502、采用遞歸建立算法為SN建立到p2p網(wǎng)絡(luò)中其他SN和GN 的虛電路,且存儲該虛電路信息;采用遞歸建立算法為GN建立到同一域內(nèi) 的到SN和GN的虛電^各,且存儲該虛電路信息。
在本步驟中,虛電^^由該節(jié)點標(biāo)識、直連節(jié)點標(biāo)識和目的節(jié)點標(biāo)識來確 定,虛電路信息包括跳數(shù)和帶寬,也可以只包括帶寬。
步驟503、在p2p網(wǎng)絡(luò)中傳輸業(yè)務(wù),根據(jù)在源節(jié)點存儲的虛電路信息, 查詢到一條符合該業(yè)務(wù)帶寬要求且可以到達(dá)目的節(jié)點的虛電路,根據(jù)該虛電 路確定該業(yè)務(wù)要傳輸?shù)脑撛垂?jié)點的直連節(jié)點;對于其他從源節(jié)點到目的節(jié)點 之間的節(jié)點,則由該直連節(jié)點以及后續(xù)直連節(jié)點到目的節(jié)點的虛電路確定, 確定的這些虛電路構(gòu)成了源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路由。
在本發(fā)明實施例中,源節(jié)點可以通過傳輸業(yè)務(wù)請求觸發(fā)直連節(jié)點,或由 直連節(jié)點通過傳輸業(yè)務(wù)請求觸發(fā)后續(xù)直連節(jié)點。
步驟504、業(yè)務(wù)在確定的路由上進(jìn)行傳輸。
在本發(fā)明實施例中,節(jié)點實際上就是p2p網(wǎng)絡(luò)中的路由器,用于為業(yè)務(wù) 的傳輸提供路由。
圖6為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的系統(tǒng)示意圖,其中,該系 統(tǒng)包括至少一個節(jié)點,其中
每個節(jié)點,用于采用遞歸建立算法建立到其他節(jié)點的虛電路,且存儲包 括帶寬和跳數(shù)的該虛電路信息,在傳輸業(yè)務(wù)時,根據(jù)自身存儲的虛電路信息 分別查詢并得到符合該業(yè)務(wù)帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,得到多 個虛電路,根據(jù)所述多個虛電路建立由源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路 由,傳輸業(yè)務(wù)。
在本發(fā)明實施例中,每個節(jié)點中還包括計算模塊、存儲模塊和處理模塊,
其中,計算模塊,用于采用遞歸算法建立到其他節(jié)點的虛電路;存儲模塊, 用于存儲所建立虛電路的包括帶寬和跳數(shù)的虛電路信息;處理模塊,用于處 理業(yè)務(wù)傳輸,查詢存儲模塊存儲的符合該業(yè)務(wù)的帶寬要求且能夠到達(dá)目的節(jié) 點的虛電路。
所述節(jié)點為源節(jié)點,進(jìn)一步包括路由實現(xiàn)模塊,用于根據(jù)虛電路建立由 源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路由,傳輸業(yè)務(wù)。
圖7為本發(fā)明實施例在p2p網(wǎng)絡(luò)中實現(xiàn)路由的裝置示意圖,其中,該裝 置包括計算模塊、存儲模塊和處理模塊,其中
計算模塊,用于采用遞歸算法建立到其他節(jié)點的虛電路;
存儲模塊,用于存儲所建立虛電路的包括帶寬和跳數(shù)的虛電路信息; 處理模塊,用于處理業(yè)務(wù)傳輸,查詢存儲模塊存儲的符合該業(yè)務(wù)的帶寬
要求且到達(dá)目的節(jié)點的虛電路,根據(jù)該虛電路建立到目的節(jié)點的傳輸業(yè)務(wù)路
由,傳輸業(yè)務(wù)。
在本發(fā)明實施例中,該裝置為源節(jié)點,進(jìn)一步包括路由實現(xiàn)模塊,用于 根據(jù)虛電路建立由源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路由。
當(dāng)在p2p網(wǎng)絡(luò)中為每個節(jié)點建立好支持帶寬的虛電路后,就可以傳輸業(yè) 務(wù)了,圖8為本發(fā)明實施例采用虛電路傳輸業(yè)務(wù)的方法流程圖,其具體步驟 為
步驟801、節(jié)點接收到業(yè)務(wù)傳輸請求,查找存儲的虛電路信息,得到符 合該業(yè)務(wù)帶寬要求的到目的節(jié)點的虛電路;
步驟802、該節(jié)點向虛電路上標(biāo)識的節(jié)點(直連節(jié)點)發(fā)送業(yè)務(wù)傳輸請
求;
步驟803、該虛電路上標(biāo)識的節(jié)點(直連節(jié)點),查找存儲的虛電路信 息,得到符合該業(yè)務(wù)帶寬要求的到目的節(jié)點的虛電路;
步驟804、判斷該虛電路上標(biāo)識的節(jié)點(直連節(jié)點)是否為目的節(jié)點, 如果是,執(zhí)行步驟805;否則,轉(zhuǎn)會步驟803繼續(xù)執(zhí)行;
步驟805、從步驟801的節(jié)點到目的節(jié)點之間的節(jié)點為業(yè)務(wù)傳輸預(yù)留帶 寬(包括步驟801的節(jié)點),建立以所確定多條虛電路為基礎(chǔ)的業(yè)務(wù)傳輸路 由;
步驟806、業(yè)務(wù)通過所建立的業(yè)務(wù)傳輸路由進(jìn)行傳輸。 為了在p2p網(wǎng)絡(luò)中建立路由,本發(fā)明實施例需要對p2p網(wǎng)絡(luò)中的各個節(jié) 點建立虛電路,建立虛電路的算法為遞歸建立算法,由于建立域間虛電路和 建立域內(nèi)虛電路的原理是相同的,這里以域間虛電路的建立來說明虛電路的 遞歸建立過程。
假設(shè)有N個SN, N為自然數(shù),則p2p網(wǎng)絡(luò)中每個SN按照以下遞歸建 立算法并行建立到其他SN的虛電路。如果一個SN的度數(shù)為d,則在SN的 虛電路建立完成后,該SN到其他SN的虛電路至多為d條。
第1步SN建立SN到與其所有相鄰的SN的跳數(shù)為1的虛電路,此時 每條虛電路的直連SN和目的SN都是相同的,每條虛電路的帶寬就是對應(yīng) 的物理鏈路可用帶寬。當(dāng)所有跳數(shù)為1的虛電路建立完成后,SN將建立的 虛電路向其相鄰SN進(jìn)行廣播。
在進(jìn)行廣播時,如果SN的一個直連SN為SN2,SN并不將源SN到SN2 的虛電路廣播給SN2 (SN2已經(jīng)在建立虛電路時獲知該虛電路)。
第2步根據(jù)廣播接收到的跳數(shù)為1的虛電路的SN,將該虛電路上的 目的SN作為要建立的虛電路的目的SN,將該虛電路上的源SN作為直連 SN,建立該SN (該SN為接收到跳數(shù)為1的虛電路廣播的SN)作為源SN 的跳數(shù)為2的虛電路(所建立的虛電路上的源SN和目的SN不能相同)。 建立的虛電路帶寬就是該SN到直連SN的物理鏈路可用帶寬和該跳數(shù)為1的虛電路的帶寬最小值。
建立了跳數(shù)為2的虛電路的SN將所建立的虛電路信息進(jìn)行保存。
按照這種方式,當(dāng)所有跳數(shù)為2的虛電路建立完成后,建立跳數(shù)為2的 虛電路的SN將該虛電路廣播給其相鄰SN。
在進(jìn)行廣播時,如果SN的一個直連SN為SN2,SN并不將源SN到SN2 的虛電路廣播給SN2 (SN2已經(jīng)在建立虛電路時獲知該虛電路)。
第3步根據(jù)廣播接收到的跳數(shù)為2的虛電路的SN,將該虛電路上的 目的SN作為要建立的虛電路的目的SN,將該虛電路上的源SN作為直連 SN,建立該SN (該SN為接收到跳數(shù)為2的虛電路廣播的SN)作為源SN 的跳數(shù)為3的虛電路(所建立的虛電路上的源SN和目的SN不能相同)。 虛電路的帶寬就是該SN到直連SN的物理鏈路可用帶寬和該跳數(shù)為2的虛 電路的帶寬最小值。
如果在建立跳數(shù)為3的虛電路過程中,有兩條跳數(shù)為2的虛電路的源 SN和目的SN分別是相同的,就取帶寬最大的跳數(shù)為2的虛電路建立跳數(shù) 為3的虛電路。同時,所建立的跳數(shù)為3的虛電路的源SN和目的SN不能 相同。
建立了跳數(shù)為3的虛電路的SN將所建立的虛電路信息進(jìn)行保存。
按照這種方式,當(dāng)所有跳數(shù)為3的虛電路建立完成后,建立跳數(shù)為3的 虛電路的SN將該虛電路廣播給其相鄰SN。
在進(jìn)行廣播時,如果SN的一個直連SN為SN2,SN并不將源SN到SN2 的虛電路廣播給SN2 (SN2已經(jīng)在建立虛電路時獲知該虛電路)。
第4步根據(jù)廣播接收到的跳數(shù)為3的虛電路的SN,將該虛電路上的 目的SN作為要建立的虛電路的目的SN,將該虛電路上的源SN作為直連 SN,建立該SN (該SN為接收到跳數(shù)為3的虛電路廣播的SN)作為源SN 的跳數(shù)為4的虛電路(所建立的虛電路上的源SN和目的SN不能相同)。 虛電路的帶寬就是該SN到直連SN的物理鏈路可用帶寬和該跳數(shù)為3的虛 電路的帶寬最小值。如果在建立跳數(shù)為4的虛電路過程中,有兩條跳數(shù)為3的虛電路的源 SN和目的SN分別是相同的,就取帶寬最大的跳數(shù)為3的虛電路建立跳數(shù) 為4的虛電路。同時,所建立的跳數(shù)為4的虛電路的源SN和目的SN不能 相同。
建立了跳數(shù)為4的虛電路的SN將所建立的虛電路信息進(jìn)行保存。 按照這種方式,當(dāng)所有跳數(shù)為4的虛電路建立完成后,建立跳數(shù)為4的 虛電路的SN將該虛電路廣播給其相鄰SN。
在進(jìn)行廣播時,如果SN的一個直連SN為SN2,SN并不將源SN到SN2 的虛電路廣播給SN2 (SN2已經(jīng)在建立虛電路時獲知該虛電路)。
按照第3步或第4步的描述,建立跳數(shù)為5、 6...... N-2的虛電路。
第N-1步根據(jù)廣播接收到的跳數(shù)為N-2的虛電路的SN,將該虛電路 上的目的SN作為要建立的虛電路的目的SN,將該虛電路上的源SN作為直 連SN,建立該SN (該SN為接收到跳數(shù)為N-2的虛電路廣播的SN)作為 源SN的跳數(shù)為N-l的虛電路(所建立的虛電^^上的源SN和目的SN不能 相同)。虛電路的帶寬就是該SN到直連SN的物理鏈路可用帶寬和該跳數(shù) 為N-2的虛電路的帶寬最小值。
如果在建立跳數(shù)為N-l的虛電路過程中,有兩條跳數(shù)為N-2的虛電路的 源SN和目的SN分別是相同的,就取帶寬最大的跳數(shù)為N-2的虛電路建立 跳數(shù)為N-1的虛電路。同時,所建立的跳數(shù)為N-l的虛電路的源SN和目的 SN不能相同。
建立了跳數(shù)為N-l的虛電路的SN將所建立的虛電路信息進(jìn)行保存。 最后,SN對自身保存的虛電路信息按照如下進(jìn)行處理 根據(jù)自身保存的虛電路信息確定具有相同直連SN和目的SN的虛電路, 選擇帶寬最大的虛電路作為從SN到目的SN的虛電路,如果帶寬最大的虛 電路有多條,則選擇跳數(shù)最小的虛電路作為從SN到目的SN的虛電路,且 將所選擇的虛電路的帶寬和跳數(shù)屬性對應(yīng)該虛電路保存。
這樣,在p2p網(wǎng)絡(luò)中的每個SN就保存了到其他SN的域間虛電路信息。
相應(yīng)地,對于p2p網(wǎng)絡(luò)中的每個GN來說,也可以4姿照上述方法建立到 其他GN的域內(nèi)虛電路,并保存所建立域內(nèi)虛電路信息。
根據(jù)上述虛電路的遞歸建立方法可以看出,在每一步建立不同跳數(shù)的虛 電路時,都不允許源SN和目的SN相同的虛電路出現(xiàn),所以不會出現(xiàn)回路 的問題。
在建立完虛電路后,需要對所建立的虛電路進(jìn)行維護(hù)。當(dāng)以下幾種情況 發(fā)生時,需要維護(hù)p2p網(wǎng)絡(luò)中的虛電路或修改虛電3各第一種情況,p2p網(wǎng) 絡(luò)中的物理鏈路可用帶寬變化;第二種情況,p2p網(wǎng)絡(luò)中的虛電路變化;第 三種情況,p2p網(wǎng)絡(luò)中的節(jié)點發(fā)生故障或失效;第四種情況,p2p網(wǎng)絡(luò)中加 入了新的節(jié)點。
對于域內(nèi)虛電路和域間虛電路來說,其維護(hù)或者修改是完全相同的,本 發(fā)明實施例以域間虛電路的維護(hù)來分別說明在不同情況下虛電路的維護(hù)過 程。
第一種情況,p2p網(wǎng)絡(luò)中的物理鏈路可用帶寬變化時維護(hù)虛電路。
在p2p網(wǎng)絡(luò)工作過程中,兩個SN之間的物理鏈路的可用帶寬會不斷發(fā) 生變化,為了保證p2p網(wǎng)絡(luò)正常,本發(fā)明實施例既要及時反映p2p網(wǎng)絡(luò)可用 帶寬的變化情況,又要保證p2p網(wǎng)絡(luò)的平穩(wěn)和可靠地工作。
本發(fā)明實施例設(shè)置兩個系統(tǒng)參數(shù),分別為THS1和THS2,且按照下述 幾種維護(hù)策略響應(yīng)網(wǎng)絡(luò)中物理鏈路可用帶寬的變化。
THS1和THS2是以兆比特/秒為單位的整數(shù),是根據(jù)p2p網(wǎng)絡(luò)的性能設(shè) 置的參數(shù),假設(shè)THS1被THS2整除,商為QS,這樣寬為THS1的帶寬區(qū)間 [O,THSl]就被分割為QS個寬為THS2的帶寬區(qū)間
就被分割 為QS個寬為THS2的帶寬區(qū)間
就被分割 為QS個寬為THS2的帶寬區(qū)間[0,THS2), [THS2,2 x THS2),…,[(QS-2) x THS2,(QS-1) x THS2), [(QS-l) x THS2, THS1);假定源節(jié)點收到鄰居節(jié)點發(fā)來的以鄰居節(jié)點為源節(jié)點,節(jié)點3為目的節(jié) 點的虛電路發(fā)生變化的報文M3,源節(jié)點到鄰居節(jié)點的直連物理鏈路的可用 帶寬為D1,收到的虛電路的帶寬為D2,跳數(shù)為h;假定以源節(jié)點為源節(jié)點, 鄰居節(jié)點為直連節(jié)點,節(jié)點3為目的節(jié)點的虛電路的可用帶寬為D3,以源 節(jié)點為源節(jié)點,節(jié)點3為目的節(jié)點的所有虛電路的可用帶寬的最大值為D4;1 )源節(jié)點計算Dl和D2的最小值,記其結(jié)果為D5,如果D5和D3同 處于一個寬為THS2的帶寬區(qū)間內(nèi),或者D5、 D3>THS1,源節(jié)點不再作處 理;否則,源節(jié)點把其上以鄰居節(jié)點為直連節(jié)點,節(jié)點3為目的節(jié)點的虛電 路可用帶寬修改為D5,跳數(shù)修改為h+l,源節(jié)點計算其上所有以節(jié)點3為 目的節(jié)點的虛電路的可用帶寬的最大值,設(shè)可用帶寬最大的虛電路的直連節(jié) 點為節(jié)點4,可用帶寬為D6,跳數(shù)為hl;如果D6和D4同處于一個寬為THS2的帶寬區(qū)間內(nèi),或者D6、 D4> THS1,則源節(jié)點不再作處理;否則,源節(jié)點向周圍鄰居節(jié)點發(fā)送報文M3, 通告源節(jié)點到SN3的虛電路可用帶寬和跳數(shù)發(fā)生改變。
9、 如權(quán)利要求6所述的方法,其特征在于,所述進(jìn)行維護(hù)是在對等網(wǎng) 絡(luò)中加入了節(jié)點后進(jìn)行的,過程為加入對等網(wǎng)絡(luò)的節(jié)點向所有直連的鄰居節(jié)點發(fā)送報文,鄰居節(jié)點接收到 報文后,把保存的所有虛電路信息攜帶在返回報文中發(fā)送給該加入對等網(wǎng)絡(luò) 的節(jié)點,該加入對等網(wǎng)絡(luò)的節(jié)點收到返回報文后,根據(jù)攜帶的虛電路信息建 立該加入對等網(wǎng)絡(luò)的節(jié)點到對等網(wǎng)絡(luò)中的其它所有節(jié)點的虛電路且存儲虛 電路信息;鄰居節(jié)點建立到該加入對等網(wǎng)絡(luò)的跳數(shù)為1的虛電路且存儲虛電路信 息,對等網(wǎng)絡(luò)中的其他節(jié)點采用遞歸建立算法建立從自己到該加入對等網(wǎng)絡(luò) 的節(jié)點的虛電路,存儲包括帶寬和跳數(shù)在內(nèi)的虛電路信息。
10、 如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括 根據(jù)路由傳輸業(yè)務(wù)。
11、 一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的系統(tǒng),其特征在于,該系統(tǒng)包括多個 節(jié)點,其中,每個節(jié)點,用于采用遞歸建立算法建立到其他節(jié)點的虛電路,且存儲包 括帶寬和跳數(shù)的該虛電路信息,在傳輸業(yè)務(wù)時,根據(jù)自身存儲的虛電路信息 分別查詢符合該業(yè)務(wù)帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,得到多個虛電 路,根據(jù)所迷多個虛電路建立由源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù)的路由。
12、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述每個節(jié)點還包括計 算模塊、存儲模塊和處理模塊,其中,計算模塊,用于采用遞歸算法建立到其他節(jié)點的虛電路;存儲模塊,用于存儲所建立虛電路的包括帶寬和跳數(shù)的虛電路信息; 處理模塊,用于查詢存儲模塊存儲的符合該業(yè)務(wù)的帶寬要求且能夠到達(dá) 目的節(jié)點的虛電路。
13、 如權(quán)利要求11或12所述的系統(tǒng),其特征在于,所述節(jié)點為源節(jié)點, 進(jìn)一步包括路由實現(xiàn)模塊,用于根據(jù)虛電路建立由源節(jié)點到目的節(jié)點的傳輸 業(yè)務(wù)的i 各由。
14、 一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的裝置,其特征在于,該裝置包括計算 模塊、存儲模塊和處理模塊,其中,計算模塊,用于采用遞歸算法建立到其他節(jié)點的虛電路; 存儲模塊,用于存儲所建立虛電路的包括帶寬和跳數(shù)的虛電路信息;處理模塊,用于處理業(yè)務(wù)傳輸,查詢存儲模塊存儲的符合該業(yè)務(wù)的帶寬 要求且能夠到達(dá)目的節(jié)點的虛電路。
15、 如權(quán)利要求14所述的裝置,其特征在于,該裝置為源節(jié)點,進(jìn)一 步包括路由實現(xiàn)模塊,用于根據(jù)虛電路建立由源節(jié)點到目的節(jié)點的傳輸業(yè)務(wù) 的路由。
全文摘要
本發(fā)明公開了一種在對等網(wǎng)絡(luò)中實現(xiàn)路由的方法、系統(tǒng)及裝置,對等網(wǎng)絡(luò)中的每個節(jié)點采用遞歸建立算法建立從自己到其他節(jié)點的虛電路,存儲包括帶寬和跳數(shù)在內(nèi)的虛電路信息。源節(jié)點接收到業(yè)務(wù)傳輸請求后,根據(jù)存儲的虛電路信息查詢符合業(yè)務(wù)傳輸帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,將該請求發(fā)送給該節(jié)點的直連節(jié)點,由該直連節(jié)點以及后續(xù)直連節(jié)點根據(jù)自身存儲的虛電路信息查詢符合業(yè)務(wù)傳輸帶寬要求且能夠到達(dá)目的節(jié)點的虛電路,直到能夠到達(dá)目的節(jié)點的倒數(shù)第二個節(jié)點;源節(jié)點根據(jù)查詢得到的所述多個虛電路建立傳輸業(yè)務(wù)的路由。本發(fā)明提供的方法、系統(tǒng)及裝置在保證為業(yè)務(wù)提供穩(wěn)定的服務(wù)質(zhì)量的前提下,在p2p網(wǎng)絡(luò)中實現(xiàn)路由。
文檔編號H04L12/56GK101394339SQ20071015414
公開日2009年3月25日 申請日期2007年9月19日 優(yōu)先權(quán)日2007年9月19日
發(fā)明者何均宏, 盧光輝 申請人:華為技術(shù)有限公司;電子科技大學(xué)