一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議的制作方法
【專利摘要】本發(fā)明涉及一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議,在由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的自治系統(tǒng)網(wǎng)絡(luò)中,通過運(yùn)行求取從源節(jié)點(diǎn)到每個終端發(fā)現(xiàn)若干條邊不相交的最短路徑的路由算法,來建立所有鏈路開銷總和最小的組播連接;源節(jié)點(diǎn)還對組播連接的路徑上的每臺路由器運(yùn)行基于組播網(wǎng)絡(luò)編碼向量分配的編碼函數(shù)指派算法,來確定各個路由器處理組播報(bào)文時應(yīng)當(dāng)使用的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則。本發(fā)明能夠建立更優(yōu)化的組播連接,提高組播網(wǎng)絡(luò)的容量,實(shí)現(xiàn)帶寬的有效利用。
【專利說明】一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議
【技術(shù)領(lǐng)域】
[0001]本發(fā)明特別涉及一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議。
【背景技術(shù)】
[0002]目前,網(wǎng)絡(luò)上的通信模式發(fā)生了新的變化:早期以支持點(diǎn)對點(diǎn)的通信(Unicast)為主,例如電話、文件傳輸、網(wǎng)頁瀏覽等;后來,點(diǎn)對多點(diǎn)的通信(Multicast)開始流行,例如視頻會議、直播電視、應(yīng)用層組播、互動游戲等。網(wǎng)絡(luò)業(yè)務(wù)的類型也從低帶寬型向高帶寬型發(fā)展,例如近年來涌現(xiàn)了視頻、音頻、照片等各種高碼率業(yè)務(wù)。這些新變化導(dǎo)致了用戶對網(wǎng)絡(luò)帶寬競爭的加劇。隨著用戶規(guī)模的增長,這種帶寬的競爭將進(jìn)一步被激化。如何有效地使用帶寬,成為目前急需解決的熱點(diǎn)問題之一。
[0003]網(wǎng)絡(luò)編碼(Network Coding)為帶寬的節(jié)省提供了一個有效的手段。2000年電氣和電子工程師協(xié)會的刊物(IEEE Transactions)的一篇論文中指出,網(wǎng)絡(luò)編碼使得網(wǎng)絡(luò)節(jié)點(diǎn)對于報(bào)文(Packet)不僅可以進(jìn)行傳統(tǒng)的“存儲、轉(zhuǎn)發(fā)”操作,還可以進(jìn)行編碼操作,這樣可以提高組播網(wǎng)絡(luò)的容量。與此同時,網(wǎng)絡(luò)節(jié)點(diǎn)上的處理能力與存儲容量也在快速地增長,為網(wǎng)絡(luò)編碼的實(shí)行提供了很有利的硬件條件:除了用于報(bào)文存儲、轉(zhuǎn)發(fā)的資源以外,還剩下很豐富的其它資源,足以執(zhí)行網(wǎng)絡(luò)編碼。近年來,許多研究者已經(jīng)把目光轉(zhuǎn)移到如何利用網(wǎng)絡(luò)編碼來達(dá)到帶寬的有效利用。
[0004]最初,許多研究者主要考慮在由端節(jié)點(diǎn)所組成的應(yīng)用層組播網(wǎng)絡(luò)上實(shí)行網(wǎng)絡(luò)編碼。這樣能利用端節(jié)點(diǎn)本身的計(jì)算和存儲能力,但是卻不能達(dá)到很高的網(wǎng)絡(luò)容量。主要是因?yàn)槎斯?jié)點(diǎn)一般無法清楚地知道底層的物理網(wǎng)絡(luò)拓?fù)?,從而無法建立很優(yōu)的組播連接(Multicast Connection)。為了消除這個障礙,作者在前期的一個工作中提出了在由路由器組成的網(wǎng)絡(luò)上實(shí)行網(wǎng)絡(luò)編碼。這種設(shè)計(jì)不同于應(yīng)用層上的網(wǎng)絡(luò)編碼,它可以使網(wǎng)絡(luò)容量更加接近理論上界。它是指允許路由器對接收到的IP報(bào)文的載荷進(jìn)行編碼、封裝,然后把新產(chǎn)生的報(bào)文發(fā)送出去。也就是,網(wǎng)絡(luò)編碼執(zhí)行在路由器上,而不是在端節(jié)點(diǎn)上。由于很清楚地知道底層的拓?fù)?,路由器可以建立更?yōu)的組播連接。然而,要實(shí)現(xiàn)路由器上的網(wǎng)絡(luò)編碼,有較大挑戰(zhàn)。需要建立新的組網(wǎng)方法、路由協(xié)議、路由器結(jié)構(gòu)等。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議,能夠在路由器組成的網(wǎng)絡(luò)上實(shí)行網(wǎng)絡(luò)編碼,建立優(yōu)化的組播連接,提高組播網(wǎng)絡(luò)的容量,實(shí)現(xiàn)帶寬的有效利用。
[0006]為了到達(dá)上述目的,本發(fā)明的技術(shù)方案是提供一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議,應(yīng)用于由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的自治系統(tǒng)網(wǎng)絡(luò),通過運(yùn)行路由算法來求取從源節(jié)點(diǎn)s到每個終端t發(fā)現(xiàn)h條邊不相交的最短路徑,從而建立所有鏈路開銷總和最小的組播連接;
[0007]設(shè)源節(jié)點(diǎn)是與一個組的源主機(jī)相連的源路由器;終端是與一個組的接收主機(jī)相連的路由器;τ是一個非空的接收節(jié)點(diǎn)集;i為變量;所述組播路由協(xié)議的路由算法中,為每個終端ti e T,分別維護(hù)以下的兩個數(shù)據(jù)結(jié)構(gòu)和一個變量:
[0008]一個集合Pi,包含了從源節(jié)點(diǎn)s到終端\的邊不相交的路徑;
[0009]一個二維矩陣Wi [N] [N],包含了拓?fù)鋱DG中的所有邊,但是不包含集合Pi的路徑上的所有邊;N是路由器集合V中的節(jié)點(diǎn)數(shù);其中的一個元素WiU] [k],j e N、k e N表示從節(jié)點(diǎn)\到節(jié)點(diǎn)Vk的有向鏈路上的開銷值,如果從節(jié)點(diǎn)\到節(jié)點(diǎn)Vk的有向鏈路是集合Pi的路徑上的一條邊時,WiU] [k]設(shè)置為無窮大;
[0010]變量hi,是集合Pi中的邊不相交的路徑個數(shù)。
[0011]優(yōu)選地,所述組播路由協(xié)議的路由算法,包含以下過程:
[0012]進(jìn)行主循環(huán),如果有變量i,使hi〈h,則繼續(xù)主循環(huán),否則退出主循環(huán);h是一個預(yù)先指定的常數(shù);
[0013]在主循環(huán)之內(nèi)進(jìn)行的第一循環(huán)中,在二維矩陣Wi [N] [N]中查找從源節(jié)點(diǎn)s到每個終端ti e T的最短路徑,從查找到的最短路徑中選擇最短的一條路徑(s,…,tm)加入到集合Pm中,再使變量hm的數(shù)值加I ;tm是路徑(s,…,tm)的終端節(jié)點(diǎn);
[0014]在主循環(huán)之內(nèi)進(jìn)行的第二循環(huán)中,將路徑(S,…,tm)上的所有邊的開銷值設(shè)置為無窮大,從二維矩陣Wm[N ] [N]中刪除該路徑(S,…,tm)上的所有邊;
[0015]在主循環(huán)之內(nèi)進(jìn)行的第三循環(huán)中,對于除了終端節(jié)點(diǎn)k之外的每個終端& e τ,設(shè)置二維矩陣Wm[N] [N]中的路徑(S,…,tm)上的每條邊的開銷值為O ;
[0016]之后,所述主循環(huán)輸出到達(dá)每個終端ti e T的路徑的集合Pi。
[0017]優(yōu)選地,由主循環(huán)輸出的路徑作為組播連接的路徑,對該路徑上的每臺路由器運(yùn)行編碼函數(shù)的指派算法,來確定各個路由器處理組播報(bào)文時應(yīng)當(dāng)使用的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則;
[0018]編碼函數(shù)的指派算法包含進(jìn)行組播網(wǎng)絡(luò)的編碼向量分配的以下過程:
[0019]確定組播網(wǎng)絡(luò)的最小子樹圖,依據(jù)最小子樹圖中子樹的個數(shù),并確保每個編碼子樹至少具有k個父子樹;確定網(wǎng)絡(luò)編碼的符號域并生成相應(yīng)的編碼向量,從源節(jié)點(diǎn)到接收節(jié)點(diǎn),依次分配給不同的源節(jié)點(diǎn)和編碼點(diǎn),每一編碼點(diǎn)將所獲得的編碼向量傳遞給子樹中的其他點(diǎn),并且使每一接收節(jié)點(diǎn)η條輸入邊的全局編碼向量中任意k個線性無關(guān)。
[0020]優(yōu)選地,作為源節(jié)點(diǎn)的源路由器將編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,沿著以該源路由器為根的最小生成樹,發(fā)布至組播連接上所有其他的路由器,使其他的路由器根據(jù)各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則對組播報(bào)文進(jìn)行相應(yīng)處理直到組播連接結(jié)束;
[0021]當(dāng)組播連接結(jié)束時,當(dāng)源路由器收到與之連接的源主機(jī)發(fā)送的組播停止請求時,或者當(dāng)源路由器在最近發(fā)送的組播報(bào)文之后設(shè)定的定時器超時時,所述源路由器沿著最小生成樹發(fā)布停止請求,使最小生成樹上的任意一個路由器將所保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則刪除。
[0022]優(yōu)選地,組播連接過程中,源主機(jī)向組播連接發(fā)送組播報(bào)文的過程如下:
[0023]源主機(jī)把組播報(bào)文P發(fā)送到與之直接相連的源路由器;源路由器把組播報(bào)文P的載荷分割為字節(jié)數(shù)相等的多個片段,根據(jù)網(wǎng)絡(luò)編碼協(xié)議將多個片段對應(yīng)封裝形成多個IP報(bào)文,并沿著源路由器與接收路由器之間多條不相交的路徑,分別發(fā)送所述IP報(bào)文至接收路由器;
[0024]組播連接上的任意一臺路由器收到任意一個IP報(bào)文時,根據(jù)收到的IP報(bào)文中的網(wǎng)絡(luò)編碼協(xié)議字段及該路由器保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,對收到的IP報(bào)文的載荷進(jìn)行編碼并重新封裝形成新的IP報(bào)文,并根據(jù)轉(zhuǎn)發(fā)規(guī)則發(fā)送新的IP報(bào)文;
[0025]組播連接上的任意一臺路由器所連接的主機(jī)屬于組播報(bào)文P對應(yīng)的組的成員時,該路由器執(zhí)行解碼,從而根據(jù)其接收到的由組播報(bào)文P衍生的IP報(bào)文來恢復(fù)出原始的組播報(bào)文P。
[0026]優(yōu)選地,組播連接過程中,所述自治系統(tǒng)網(wǎng)絡(luò)中與主機(jī)連接的路由器,根據(jù)其收到的該主機(jī)加入或退出一個組時向該路由器發(fā)送的報(bào)告,來更新該路由器內(nèi)存中的組成員關(guān)系表;
[0027]所述路由器還構(gòu)造表示有組成員更新的更新報(bào)文,并沿著以該路由器為根的最小生成樹,向自治系統(tǒng)網(wǎng)絡(luò)中所有其他的路由器發(fā)送所述更新報(bào)文,使其他的路由器對各自內(nèi)存中的組成員關(guān)系表進(jìn)行更新;
[0028]所述更新報(bào)文記載有在組成員關(guān)系表中加入或刪除一個組,或者在一個組中加入或刪除一個主機(jī)的更新情況。
[0029]優(yōu)選地,所述源路由器在收到所在組中有組成員更新的更新報(bào)文后,更新內(nèi)存中的組成員關(guān)系表,并發(fā)布組播停止請求使組播連接上所有其他的路由器刪除各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則;而且,所述源路由器重新執(zhí)行路由算法及編碼函數(shù)的指派算法,來建立一個新的組播連接并形成相應(yīng)的新的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,并發(fā)送新的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則至新的組播連接上的所有其他路由器。
[0030]優(yōu)選地,所述自治系統(tǒng)網(wǎng)絡(luò)中的任意一臺路由器,周期性地通過每個端口分別發(fā)送問候報(bào)文,并接收與其直接連接的鄰居路由器發(fā)送的應(yīng)答報(bào)文,來判斷所述鄰居路由器的可達(dá)性。
[0031]優(yōu)選地,所述自治系統(tǒng)網(wǎng)絡(luò)中的任意一臺路由器,其構(gòu)造表示該路由器所在鏈路最新狀態(tài)的鏈路更新報(bào)文,并通過洪泛方式發(fā)送該鏈路更新報(bào)文至自治系統(tǒng)網(wǎng)絡(luò)中所有其他的路由器;所述鏈路更新報(bào)文的存活時間為任意兩臺路由器之間的最大跳數(shù);
[0032]其他的路由器根據(jù)收到的鏈路更新報(bào)文,來更新各自存放自治系統(tǒng)網(wǎng)絡(luò)內(nèi)部所有鏈路最新狀態(tài)的數(shù)據(jù)庫,并進(jìn)一步通過洪泛方式發(fā)送該鏈路更新報(bào)文至各自的鄰居路由器。
[0033]本發(fā)明的另一個技術(shù)方案是提供一種基于支持網(wǎng)絡(luò)編碼的組播路由協(xié)議實(shí)現(xiàn)的組播方法,其包含以下過程:
[0034]在由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的自治系統(tǒng)網(wǎng)絡(luò)中,通過運(yùn)行求取從源節(jié)點(diǎn)到每個終端發(fā)現(xiàn)若干條邊不相交的最短路徑的路由算法,來建立所有鏈路開銷總和最小的組播連接;
[0035]作為源節(jié)點(diǎn)的源路由器,對組播連接的路徑上的每臺路由器運(yùn)行基于組播網(wǎng)絡(luò)編碼向量分配的編碼函數(shù)指派算法,來確定各個路由器處理組播報(bào)文時應(yīng)當(dāng)使用的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,并沿著以該源路由器為根的最小生成樹發(fā)布;
[0036]組播連接過程中,源路由器將源主機(jī)向其發(fā)送的組播報(bào)文分割,并根據(jù)網(wǎng)絡(luò)編碼協(xié)議封裝后,沿著源路由器與接收路由器之間多條不相交的路徑分別發(fā)送封裝后的多個報(bào)文;
[0037]組播連接的路徑上的任意一臺路由器根據(jù)網(wǎng)絡(luò)編碼協(xié)議字段及該路由器保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,對收到的報(bào)文進(jìn)行直接存儲轉(zhuǎn)發(fā)、或編碼后重新封裝并轉(zhuǎn)發(fā)、或解碼并將恢復(fù)出的組播報(bào)文發(fā)送至接收主機(jī);
[0038]源路由器在組播連接結(jié)束時,會沿著最小生成樹發(fā)布組播停止請求,使最小生成樹上的任意一個路由器將各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則刪除。
[0039]綜上所述,本發(fā)明提供的支持網(wǎng)絡(luò)編碼的組播路由協(xié)議,能夠在路由器組成的自治系統(tǒng)網(wǎng)絡(luò)上實(shí)現(xiàn)組播開銷最小化并進(jìn)行網(wǎng)絡(luò)編碼,從而建立優(yōu)化的組播連接,提高組播網(wǎng)絡(luò)的容量,實(shí)現(xiàn)帶寬的有效利用。本發(fā)明的新組播路由協(xié)議完全在路由器執(zhí)行,而對于任何一臺用戶電腦都是透明的。任何一臺用戶電腦都不需要知道在網(wǎng)絡(luò)層上所執(zhí)行的新組播路由協(xié)議。
【專利附圖】
【附圖說明】
[0040]圖1是本發(fā)明的路由協(xié)議中進(jìn)行路由器鄰居發(fā)現(xiàn)過程的示意圖;
[0041]圖2是本發(fā)明的路由協(xié)議中路由算法的流程圖。
【具體實(shí)施方式】
[0042]本發(fā)明提供的一種支持網(wǎng)絡(luò)編碼的新路由協(xié)議(CODERP),是域內(nèi)路由協(xié)議,即只能用在一個自治系統(tǒng)(AS, Autonomous System)之內(nèi)進(jìn)行路由選擇。如果沒有特殊的聲明,則下文中所說的網(wǎng)絡(luò)都是指在一個自治系統(tǒng)AS之內(nèi)的由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的網(wǎng)絡(luò)。一個AS是指在一個地理區(qū)域之內(nèi)的由一個組織或機(jī)構(gòu)統(tǒng)一管理的一組路由器所組成的有界網(wǎng)絡(luò),其中每臺路由器都擁有一致的路由協(xié)議。
[0043]本發(fā)明所述的路由協(xié)議,包含以下部分:鄰居(Neighbor)的發(fā)現(xiàn)與鏈路狀態(tài)(Link State)的測量;AS內(nèi)鏈路狀態(tài)更新的洪泛(Flooding);組成員關(guān)系(Group Member)的維護(hù)與發(fā)布;基于網(wǎng)絡(luò)編碼的組播連接建立;網(wǎng)絡(luò)編碼報(bào)文的傳輸。
[0044]1、鄰居的發(fā)現(xiàn)與鏈路狀態(tài)的測量;
[0045]如圖1所示,當(dāng)一臺路由器加電運(yùn)行之后,它需要知道它的各個鄰居是否可達(dá)(Reachable)。為此,它向它的每一個端口發(fā)出一個問候報(bào)文(Hello Packet),其存活時間(TTL, Time To Live)為1,表明它最遠(yuǎn)只能到達(dá)直接連接的鄰居。當(dāng)一個鄰居收到問候報(bào)文,它就返回一個應(yīng)答報(bào)文(ACK Packet)。根據(jù)應(yīng)答報(bào)文是否收到,路由器就可以確定它的各個鄰居的可達(dá)性。它啟動一個定時器,如果在定時器超時之前收到應(yīng)答報(bào)文,則可以認(rèn)為鄰居可達(dá),否則就是不可達(dá)。每臺路由器在運(yùn)行過程中,還需要每隔一個固定的時間、周期性地向它的各個鄰居發(fā)送問候報(bào)文,以確定最近是否有鄰居停止運(yùn)行或啟動運(yùn)行。
[0046]同時,根據(jù)應(yīng)答報(bào)文的收到時間,路由器還可以計(jì)算到任何一個鄰居的延時。為了取得精確的延時值,路由器可以發(fā)送多次問候報(bào)文,最后計(jì)算平均延時。利用其它測量方法,還可以獲得鏈路的帶寬、距離、能量等數(shù)據(jù)。
[0047]2、鏈路狀態(tài)更新在AS內(nèi)部的洪泛發(fā)布;
[0048]當(dāng)一臺路由器所連接的某條鏈路的狀態(tài)改變時,它就構(gòu)造一個報(bào)文,把這條鏈路的最新狀態(tài)信息裝入進(jìn)去,并通過洪泛的方式發(fā)送給AS內(nèi)的所有其它路由器。報(bào)文的TTL設(shè)為AS內(nèi)任意兩臺路由器之間的最大跳數(shù)。這樣既能保證所有其它路由器都收到這種報(bào)文,又能減少溢出到AS之外的報(bào)文數(shù)量。[0049]當(dāng)其它任何一臺路由器收到這種報(bào)文之后,就立即更新內(nèi)存中的鏈路狀態(tài)數(shù)據(jù)庫,重新構(gòu)造一個AS內(nèi)部的新拓?fù)鋱D,并繼續(xù)以洪泛的方式把更新報(bào)文轉(zhuǎn)發(fā)給它的所有鄰居。這里,鏈路狀態(tài)數(shù)據(jù)庫是指用于存放AS內(nèi)部的所有鏈路的最新狀態(tài)的庫,其格式如表I所示,其中Rl、R2等代表路由器。而拓?fù)鋱D是指一個由若干結(jié)點(diǎn)和若干邊所構(gòu)成的網(wǎng)絡(luò)圖,其中結(jié)點(diǎn)代表路由器,邊代表鏈路,邊上的數(shù)值代表鏈路的開銷(例如延遲、帶寬等)。由于采用洪泛更新,所以AS內(nèi)所有路由器的鏈路狀態(tài)數(shù)據(jù)庫和拓?fù)鋱D總是完全同步的。
[0050]下文中,除非特別聲明,節(jié)點(diǎn)都只是指路由器而不是主機(jī),終端或終端節(jié)點(diǎn)都是指與一個組的接收主機(jī)相連的路由器。拓?fù)鋱DG是指由AS內(nèi)所有路由器所組成的圖,不包括與路由器相連的主機(jī)。
[0051]表1鏈路狀態(tài)數(shù)據(jù)庫的格式
【權(quán)利要求】
1.一種支持網(wǎng)絡(luò)編碼的組播路由協(xié)議,其特征在于,應(yīng)用于由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的自治系統(tǒng)網(wǎng)絡(luò),通過運(yùn)行路由算法來求取從源節(jié)點(diǎn)S到每個終端t發(fā)現(xiàn)h條邊不相交的最短路徑,從而建立所有鏈路開銷總和最小的組播連接; 設(shè)源節(jié)點(diǎn)是與一個組的源主機(jī)相連的源路由器;終端是與一個組的接收主機(jī)相連的路由器;T是一個非空的接收節(jié)點(diǎn)集;i為變量;所述組播路由協(xié)議的路由算法中,為每個終端ti e T,分別維護(hù)以下的兩個數(shù)據(jù)結(jié)構(gòu)和一個變量: 一個集合Pi,包含了從源節(jié)點(diǎn)s到終端\的邊不相交的路徑; 一個二維矩陣Wi [N] [N],包含了拓?fù)鋱DG中的所有邊,但是不包含集合Pi的路徑上的所有邊;N是路由器集合V中的節(jié)點(diǎn)數(shù);其中的一個元素WiU] [k],j e N、k e N表示從節(jié)點(diǎn)Vj到節(jié)點(diǎn)vk的有向鏈路上的開銷值,如果從節(jié)點(diǎn)\到節(jié)點(diǎn)Vk的有向鏈路是集合Pi的路徑上的一條邊時,WiU] [k]設(shè)置為無窮大; 變量hi;是集合Pi中的邊不相交的路徑個數(shù)。
2.如權(quán)利要求1所述的組播路由協(xié)議,其特征在于, 所述組播路由協(xié)議的路由算法,包含以下過程: 進(jìn)行主循環(huán),如果有變量i,使hi〈h,則繼續(xù)主循環(huán),否則退出主循環(huán);h是一個預(yù)先指定的常數(shù); 在主循環(huán)之內(nèi)進(jìn)行的第一循環(huán)中,在二維矩陣WJN] [N]中查找從源節(jié)點(diǎn)s到每個終端h e T的最短路徑,從查找到的最短路徑中選擇最短的一條路徑(s,…,tm)加入到集合Pm中,再使變量匕的數(shù)值加I ;tm是路徑(s,…,tm)的終端節(jié)點(diǎn); 在主循環(huán)之內(nèi)進(jìn)行的第二循環(huán)中,將路徑(s,…,tm)上的所有邊的開銷值設(shè)置為無窮大,從二維矩陣Wm[N] [N]中刪除該路徑(S,…,tm)上的所有邊; 在主循環(huán)之內(nèi)進(jìn)行的第三循環(huán)中,對于除了終端節(jié)點(diǎn)1之外的每個終端\ e T,設(shè)置二維矩陣Wm[N] [N]中的路徑(s,…,tm)上的每條邊的開銷值為O ; 之后,所述主循環(huán)輸出到達(dá)每個終端\ e T的路徑的集合Pp
3.如權(quán)利要求2所述的組播路由協(xié)議,其特征在于, 由主循環(huán)輸出的路徑作為組播連接的路徑,對該路徑上的每臺路由器運(yùn)行編碼函數(shù)的指派算法,來確定各個路由器處理組播報(bào)文時應(yīng)當(dāng)使用的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則; 編碼函數(shù)的指派算法包含進(jìn)行組播網(wǎng)絡(luò)的編碼向量分配的以下過程: 確定組播網(wǎng)絡(luò)的最小子樹圖,依據(jù)最小子樹圖中子樹的個數(shù),并確保每個編碼子樹至少具有k個父子樹;確定網(wǎng)絡(luò)編碼的符號域并生成相應(yīng)的編碼向量,從源節(jié)點(diǎn)到接收節(jié)點(diǎn),依次分配給不同的源節(jié)點(diǎn)和編碼點(diǎn),每一編碼點(diǎn)將所獲得的編碼向量傳遞給子樹中的其他點(diǎn),并且使每一接收節(jié)點(diǎn)η條輸入邊的全局編碼向量中任意k個線性無關(guān)。
4.如權(quán)利要求3所述的組播路由協(xié)議,其特征在于, 作為源節(jié)點(diǎn)的源路由器將編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,沿著以該源路由器為根的最小生成樹,發(fā)布至組播連接上所有其他的路由器,使其他的路由器根據(jù)各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則對組播報(bào)文進(jìn)行相應(yīng)處理直到組播連接結(jié)束; 當(dāng)組播連接結(jié)束時,當(dāng)源路由器收到與之連接的源主機(jī)發(fā)送的組播停止請求時,或者當(dāng)源路由器在最近發(fā)送的組播報(bào)文之后設(shè)定的定時器超時時,所述源路由器沿著最小生成樹發(fā)布停止請求,使最小生成樹上的任意一個路由器將所保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則刪除。
5.如權(quán)利要求4所述的組播路由協(xié)議,其特征在于, 組播連接過程中,源主機(jī)向組播連接發(fā)送組播報(bào)文的過程如下: 源主機(jī)把組播報(bào)文P發(fā)送到與之直接相連的源路由器;源路由器把組播報(bào)文P的載荷分割為字節(jié)數(shù)相等的多個片段,根據(jù)網(wǎng)絡(luò)編碼協(xié)議將多個片段對應(yīng)封裝形成多個IP報(bào)文,并沿著源路由器與接收路由器之間多條不相交的路徑,分別發(fā)送所述IP報(bào)文至接收路由器; 組播連接上的任意一臺路由器收到任意一個IP報(bào)文時,根據(jù)收到的IP報(bào)文中的網(wǎng)絡(luò)編碼協(xié)議字段及該路由器保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,對收到的IP報(bào)文的載荷進(jìn)行編碼并重新封裝形成新的IP報(bào)文,并根據(jù)轉(zhuǎn)發(fā)規(guī)則發(fā)送新的IP報(bào)文; 組播連接上的任意一臺路由器所連接的主機(jī)屬于組播報(bào)文P對應(yīng)的組的成員時,該路由器執(zhí)行解碼,從而根據(jù)其接收到的由組播報(bào)文P衍生的IP報(bào)文來恢復(fù)出原始的組播報(bào)文P。
6.如權(quán)利要求 4所述的組播路由協(xié)議,其特征在于, 組播連接過程中,所述自治系統(tǒng)網(wǎng)絡(luò)中與主機(jī)連接的路由器,根據(jù)其收到的該主機(jī)加入或退出一個組時向該路由器發(fā)送的報(bào)告,來更新該路由器內(nèi)存中的組成員關(guān)系表; 所述路由器還構(gòu)造表示有組成員更新的更新報(bào)文,并沿著以該路由器為根的最小生成樹,向自治系統(tǒng)網(wǎng)絡(luò)中所有其他的路由器發(fā)送所述更新報(bào)文,使其他的路由器對各自內(nèi)存中的組成員關(guān)系表進(jìn)行更新; 所述更新報(bào)文記載有在組成員關(guān)系表中加入或刪除一個組,或者在一個組中加入或刪除一個主機(jī)的更新情況。
7.如權(quán)利要求6所述的組播路由協(xié)議,其特征在于, 所述源路由器在收到所在組中有組成員更新的更新報(bào)文后,更新內(nèi)存中的組成員關(guān)系表,并發(fā)布組播停止請求使組播連接上所有其他的路由器刪除各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則;而且,所述源路由器重新執(zhí)行路由算法及編碼函數(shù)的指派算法,來建立一個新的組播連接并形成相應(yīng)的新的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,并發(fā)送新的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則至新的組播連接上的所有其他路由器。
8.如權(quán)利要求1所述的組播路由協(xié)議,其特征在于, 所述自治系統(tǒng)網(wǎng)絡(luò)中的任意一臺路由器,周期性地通過每個端口分別發(fā)送問候報(bào)文,并接收與其直接連接的鄰居路由器發(fā)送的應(yīng)答報(bào)文,來判斷所述鄰居路由器的可達(dá)性。
9.如權(quán)利要求1所述的組播路由協(xié)議,其特征在于, 所述自治系統(tǒng)網(wǎng)絡(luò)中的任意一臺路由器,其構(gòu)造表示該路由器所在鏈路最新狀態(tài)的鏈路更新報(bào)文,并通過洪泛方式發(fā)送該鏈路更新報(bào)文至自治系統(tǒng)網(wǎng)絡(luò)中所有其他的路由器;所述鏈路更新報(bào)文的存活時間為任意兩臺路由器之間的最大跳數(shù); 其他的路由器根據(jù)收到的鏈路更新報(bào)文,來更新各自存放自治系統(tǒng)網(wǎng)絡(luò)內(nèi)部所有鏈路最新狀態(tài)的數(shù)據(jù)庫,并進(jìn)一步通過洪泛方式發(fā)送該鏈路更新報(bào)文至各自的鄰居路由器。
10.一種基于支持網(wǎng)絡(luò)編碼的組播路由協(xié)議實(shí)現(xiàn)的組播方法,其特征在于,包 含以下過程: 在由一組支持網(wǎng)絡(luò)編碼的路由器所構(gòu)成的自治系統(tǒng)網(wǎng)絡(luò)中,通過運(yùn)行求取從源節(jié)點(diǎn)到每個終端發(fā)現(xiàn)若干條邊不相交的最短路徑的路由算法,來建立所有鏈路開銷總和最小的組播連接; 作為源節(jié)點(diǎn)的源路由器,對組播連接的路徑上的每臺路由器運(yùn)行基于組播網(wǎng)絡(luò)編碼向量分配的編碼函數(shù)指派算法,來確定各個路由器處理組播報(bào)文時應(yīng)當(dāng)使用的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,并沿著以該源路由器為根的最小生成樹發(fā)布;組播連接過程中,源路由器將源主機(jī)向其發(fā)送的組播報(bào)文分割,并根據(jù)網(wǎng)絡(luò)編碼協(xié)議封裝后,沿著源路由器與接收路由器之間多條不相交的路徑分別發(fā)送封裝后的多個報(bào)文;組播連接的路徑上的任意一臺路由器根據(jù)網(wǎng)絡(luò)編碼協(xié)議字段及該路由器保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則,對收到的報(bào)文進(jìn)行直接存儲轉(zhuǎn)發(fā)、或編碼后重新封裝并轉(zhuǎn)發(fā)、或解碼并將恢復(fù)出的組播報(bào)文 發(fā)送至接收主機(jī); 源路由器在組播連接結(jié)束時,會沿著最小生成樹發(fā)布組播停止請求,使最小生成樹上的任意一個路由器將各自保存的編碼系數(shù)及轉(zhuǎn)發(fā)規(guī)則刪除。
【文檔編號】H04L12/761GK103986661SQ201410240778
【公開日】2014年8月13日 申請日期:2014年5月30日 優(yōu)先權(quán)日:2014年5月30日
【發(fā)明者】林珉 申請人:上海珉智信息科技有限公司