專利名稱::基于ddmc的時(shí)延約束組播路由的方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于網(wǎng)絡(luò)通信中的路由技術(shù),具體涉及一種組播路由中建立易于在分布式環(huán)境中使用的具有時(shí)延受限的組播樹,并涉及到節(jié)點(diǎn)加入或離開的方法。
背景技術(shù):
:當(dāng)前通信網(wǎng)絡(luò)帶寬和處理能力的提高使網(wǎng)絡(luò)能提供更多的多媒體業(yè)務(wù),例如音頻/視頻會(huì)議、交互式仿真、多人游戲、分布式數(shù)據(jù)庫等。傳統(tǒng)的點(diǎn)對(duì)點(diǎn)通信和廣播己經(jīng)不能滿足人們的需求。用戶的數(shù)據(jù)要從一個(gè)終端發(fā)送到另一個(gè)終端,首先要確定傳輸路由。路由算法的主要功能是指引分組通過通信子網(wǎng)到達(dá)正確的目的節(jié)點(diǎn)。它包括兩方面的功能:第一為不同的源節(jié)點(diǎn)和目的節(jié)點(diǎn)選擇一條傳輸路徑;二是在路由選好以后,將用戶的消息正確的送到目的節(jié)點(diǎn)。目前,網(wǎng)絡(luò)中的通信方式主要包括:廣播、單播和組播等。廣播是網(wǎng)絡(luò)中最常用的方式,廣播分組的接收節(jié)點(diǎn)通常是全網(wǎng)所有成員。它主要用來傳播公共信息、拓?fù)渥兓?包括節(jié)點(diǎn)和鏈路故障)等,廣播時(shí)采用的路由算法可以有多種方法:如泛洪路由、采用生成樹的廣播方式。單播是點(diǎn)對(duì)點(diǎn)的通信方式,大多是基于最短路由算法。組播是單個(gè)節(jié)點(diǎn)將同一信息傳送到多個(gè)目的節(jié)點(diǎn)的通信方式,參與組播的多個(gè)目的節(jié)點(diǎn)組成了一個(gè)組播組,每個(gè)目的節(jié)點(diǎn)稱為組播組成員。組播技術(shù)的普及導(dǎo)致了組播主干網(wǎng)(Mbone)的快速發(fā)展。組播技術(shù)作為一種可大大節(jié)省網(wǎng)絡(luò)資源的技術(shù)在多媒體業(yè)務(wù)中有著廣泛的應(yīng)用,相應(yīng)的對(duì)組播技術(shù)提出了許多不同的要求。在這些要求中最常見的莫過于最小的網(wǎng)絡(luò)總代價(jià)和最小的端到端時(shí)延。因?yàn)樵诤芏鄬?shí)時(shí)性較強(qiáng)的多媒體應(yīng)用中,一方面要求網(wǎng)絡(luò)的總代價(jià)較小而另一方面也希望滿足一定的時(shí)延約束要求,從而就產(chǎn)生了支持服務(wù)質(zhì)量(QoS,QualityofService)的組播路由問題。群播是多點(diǎn)到多點(diǎn)的通信方式,最典型的應(yīng)用就是網(wǎng)絡(luò)即時(shí)游戲,在多方游戲中,需要將各自的狀態(tài)互相同步發(fā)送。在組播通信中,若對(duì)每個(gè)信宿單獨(dú)發(fā)送數(shù)據(jù)包,則將大大浪費(fèi)網(wǎng)絡(luò)資源,增加節(jié)點(diǎn)的處理負(fù)擔(dān),嚴(yán)重時(shí)會(huì)加劇網(wǎng)絡(luò)的擁塞。因此往往首先建立一棵組播樹,信源發(fā)出的數(shù)據(jù)包沿著組播樹進(jìn)行轉(zhuǎn)發(fā),這棵組播樹由組播路由算法決定。數(shù)據(jù)在樹的分叉處被復(fù)制,直至每個(gè)接收者。顯然,在傳遞信息的過程中,盡可能共享了鏈路,因此節(jié)省了網(wǎng)絡(luò)資源,并減輕了源節(jié)點(diǎn)的負(fù)擔(dān),對(duì)多媒體通信非常有利。而且它還有可能使接收者實(shí)時(shí)、同步地接收信息,對(duì)于支持多因此研究構(gòu)造組播樹的組播路由算法就非常重要。組播路由算法按是否允許網(wǎng)絡(luò)成員隨時(shí)加入或離開組播組分為靜態(tài)路由算法和動(dòng)態(tài)路由算法。靜態(tài)組播路由算法中,組播組成員是固定的,路由計(jì)算一次性完成,并且在一次連接過程中組播成員和組播樹都不發(fā)生改變。而動(dòng)態(tài)組播路由算法則允許組成員動(dòng)態(tài)加入或離開,組播樹在一次連接中一般會(huì)發(fā)生改變。組播路由算法按是否由一個(gè)節(jié)點(diǎn)集中運(yùn)算或分布式運(yùn)算分為集中式和分布式算法。集中式算法往往簡單、快速,但是由一個(gè)節(jié)點(diǎn)維護(hù)整個(gè)網(wǎng)絡(luò)的狀態(tài),其開銷有可能會(huì)非常大,并且當(dāng)網(wǎng)絡(luò)大時(shí),搜集整個(gè)網(wǎng)絡(luò)的狀態(tài)會(huì)變得很困難。但是在許多情況下,這些算法可以作為其它算法比較的工具,具有一定的理論意義,吸引著廣大研究者去深入研究。在分布式算法中,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都參與運(yùn)算,這些節(jié)點(diǎn)只掌握網(wǎng)絡(luò)的部分信息,通過節(jié)點(diǎn)間相互交換信息來計(jì)算路由。分布式算法相對(duì)于集中式算法較復(fù)雜且速度慢,但是它有一個(gè)顯著的優(yōu)點(diǎn):就是任何節(jié)點(diǎn)都不用保持整個(gè)網(wǎng)絡(luò)的狀態(tài)。到目前為止,集中式算法的研究較多,分布式算法的研究較少。靜態(tài)Steiner問題的定義給定圖G^V,E),V是圖G的節(jié)點(diǎn)集,E為圖G的邊集,n叫Vl為圖G的節(jié)點(diǎn)數(shù),問為圖G的E邊數(shù)或鏈路數(shù);邊的費(fèi)用函數(shù)C:E—R;多播節(jié)點(diǎn)集D^V,m=|D|;則Steine:r樹多播路由算法定義為從圖G中找出覆蓋D中所有節(jié)點(diǎn)的最小生成樹T,即使得樹的費(fèi)用Zc(e)最小,并稱該最小生成樹稱為Steiner樹,這類問題為靜態(tài)無約束組播路由問題,解決這類問題的算法稱為靜態(tài)費(fèi)用優(yōu)化組播路由算法。靜態(tài)無約束費(fèi)用優(yōu)化組播路由啟發(fā)式算法主要解決靜態(tài)Steiner問題,所得的樹稱為靜態(tài)Steiner樹。Steiner樹算法的計(jì)算量非常大,因此需要尋求有效的靜態(tài)組播路由啟發(fā)式算法。下面簡述一些經(jīng)典的啟發(fā)式算法。Alpert等人在文獻(xiàn)"AdirectcombinationofthePrimandDijkstmconstructionforimprovedperformance-drivenglobalrouting"里所提出的AH服組播路由算法來源于兩個(gè)著名的算法Prim的最小生成樹算法和Dijkstra的最短路徑樹算法,并采用基于貪婪策略的子程序?qū)烧哌M(jìn)行結(jié)合。Shaikh禾口Shin在文獻(xiàn)"Destination-drivenroutingforlow-costmulticast"中提出了目的節(jié)點(diǎn)驅(qū)動(dòng)的無約束組播路由算法(DDMC)。DDMC算法也借鑒了Prim最小生成樹算法和Dijkstm最短路徑樹算法的思想。與AHHK不同的是,DDMC算法將目的節(jié)點(diǎn)也作為一個(gè)"源節(jié)點(diǎn)"看待,即如果有目的節(jié)點(diǎn)還要連接其他節(jié)點(diǎn),那么被連接的節(jié)點(diǎn)的費(fèi)用不用再累加從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的費(fèi)用,這樣會(huì)使路由偏向目的節(jié)點(diǎn),同時(shí)組播樹的費(fèi)用較低。對(duì)于無約束問題來說,DDMC算法是有效的,但是對(duì)于時(shí)延受限問題來說,由于最終所建的組播樹容易形成很長的樹枝,可能會(huì)導(dǎo)致一些目的節(jié)點(diǎn)超過時(shí)延限制。靜態(tài)時(shí)延約束Steiner問題的定義時(shí)延約束的Steiner樹(DCST:Delay-ConstrainedSteinerTree)問題的關(guān)鍵是求在時(shí)延約束條件下費(fèi)用優(yōu)化的多播路由樹問題。下面是這一問題的定義。給定圖G^V,E)對(duì)每條邊eEE,有兩個(gè)加權(quán)函數(shù):C(e)和D(e),C(e)表示鏈路e的正實(shí)數(shù)費(fèi)用,D(e)表示傳送信息時(shí)鏈路e上經(jīng)歷的時(shí)延。對(duì)圖G,給定一個(gè)源節(jié)點(diǎn),sev,一個(gè)目的節(jié)點(diǎn)集D^V-{s}。則時(shí)延約束Steiner樹T就是一棵以s節(jié)點(diǎn)為根,能到達(dá)所有目的節(jié)點(diǎn)的樹,并且在滿足時(shí)延約束的條件下,使樹的網(wǎng)絡(luò)費(fèi)用最小,即VveD,在JD(e)《A條件下,使得Zc(e)最小。其中A為eeP(s,v)eeT正實(shí)數(shù),表示時(shí)延約束邊界,P(S,V)表示組播樹s到V經(jīng)過的路徑。Guo禾口Matta在文獻(xiàn)"QDMR:anefficientQoSdependentmulticastroutingalgorithm"中所提的QDMR算法調(diào)整了DDMC算法,使其能夠根據(jù)到目的節(jié)點(diǎn)的時(shí)延與給定的時(shí)延上限的差距來動(dòng)態(tài)調(diào)整建樹的策略。如果到目的節(jié)點(diǎn)的時(shí)延與給定的時(shí)延上限還相差很遠(yuǎn),QDMR算法就像DDMC算法一樣。如果己經(jīng)快逼近時(shí)延上限,QDMR算法將給目的節(jié)點(diǎn)較低的優(yōu)先級(jí),從而生成多分支樹以降低違反時(shí)延約束的可能性。KPP算法是DCST問題的典型算法,它由Ko即ella、Pasquale、Polyzos提出,因而稱為KPP算法。KPP算法借鑒了KMB的思想,用于在一定時(shí)延約束下優(yōu)化網(wǎng)絡(luò)費(fèi)用。KPP算法的步驟如下步驟l:對(duì)集合suD的所有節(jié)點(diǎn)為頂點(diǎn)構(gòu)造完全子圖G',G'的邊是這些節(jié)點(diǎn)對(duì)間約束費(fèi)用最低路徑,其費(fèi)用是最低約束費(fèi)用;步驟2:在時(shí)延約束下求G'的生成樹T'與Prim算法相似,每次將費(fèi)用最低的邊加入到生成樹,但各邊費(fèi)用按以下規(guī)則之一取值fCD(v,w)=或、,"ifP(v)+D(v,w)《AA-(P(v)+D(v,w))oootherwisefC(v,w)ifP(v)+D(v,w)《Afc(v,w)=j〔00otherwise其中P(v)是生成樹上從源到節(jié)點(diǎn)v的時(shí)延,C(v,w)是完全圖G'中鏈路(v,w)的費(fèi)用,D(v,w)是完全圖G'中鏈路(v,w)的時(shí)延。步驟3:把生成樹的邊還原成約束費(fèi)用最低路徑。步驟4:擴(kuò)展后的路由樹不一定是真正的路由樹,因?yàn)樗赡芎协h(huán)。KPP算法通過擴(kuò)展后的路由樹上求目的節(jié)點(diǎn)時(shí)延最優(yōu)路由樹作為最終的路由樹。KPP算法的時(shí)間復(fù)雜度主要由尋找完全圖的過程決定,為CKn^)。動(dòng)態(tài)無約束Steiner問題的定義給定一個(gè)圖G(V,E),節(jié)點(diǎn)集D^V,一組操作請(qǐng)求序列R^r。,r,,...,rk},其中r,為(X,,0,},節(jié)點(diǎn)X,EV,操作0,e(加入,刪除},D,代表在第i步操作O,后組播節(jié)點(diǎn)的集合,且要求相鄰的兩步操作不能是將一個(gè)節(jié)點(diǎn)加入,又立即將該節(jié)點(diǎn)刪除。經(jīng)過序列集R操作后相應(yīng)得到覆蓋D,的r樹序列(T。,T,,…,TK},并使得其中每一棵樹Ti的費(fèi)用最小化,則稱這一組Steiner樹為動(dòng)態(tài)Steiner樹,這類問題為動(dòng)態(tài)無約束多播路由問題。動(dòng)態(tài)時(shí)延約束Steiner問題的定義給定一個(gè)圖G(V,E),s為源節(jié)點(diǎn),一組操作請(qǐng)求序列R二W。,r,,...,rk},其中i;為(Xi,節(jié)點(diǎn)X^V,操作O,e(加入,刪除},D,代表在第i步操作O,后組播節(jié)點(diǎn)的集合,且要求相鄰的兩步操作不能是將一個(gè)節(jié)點(diǎn)加入,又立即將該節(jié)點(diǎn)刪除。經(jīng)過序列集R操作后相應(yīng)得到覆蓋D,Us的樹序列(T。,i;,…,Tj,且滿足下式,<formula>formulaseeoriginaldocumentpage10</formula>(Av,為任意正實(shí)數(shù),也可以相等)同時(shí)還要使每棵樹Tj,(0《i《l)的費(fèi)用Zc(e)最小。則稱這一組樹序列為動(dòng)態(tài)時(shí)延約束費(fèi)用優(yōu)化多播路由問題。典型的解決動(dòng)態(tài)無約束Steiner問題的啟發(fā)式算法是貪婪算法。動(dòng)態(tài)貪婪算法由B.M.Waxman所提出,實(shí)際上有關(guān)動(dòng)態(tài)組播路由算法的研究就是由他開始。動(dòng)態(tài)貪婪算法的描述如下增加一個(gè)組播節(jié)點(diǎn)在組播樹T中,要加入組播節(jié)點(diǎn)v,則先求v到T的最短路由連接(v,v,,…v,,y),該最短路由連接中只有節(jié)點(diǎn)yEVT,但是y不一定屬于D,VT是樹T的節(jié)點(diǎn)集合,將該路徑中除y節(jié)點(diǎn)外的所有節(jié)點(diǎn)和鏈路都加入到T中,由于每一次增加一個(gè)組播節(jié)點(diǎn)都是選擇到組播樹的最短路由,就成為貪婪算法名稱的由來。該算法的復(fù)雜性為0(n2)。刪除一個(gè)組播節(jié)點(diǎn):要從組播樹T中刪除一個(gè)組播節(jié)點(diǎn),則先將該節(jié)點(diǎn)打上刪除標(biāo)記,然后檢査待刪除的組播節(jié)點(diǎn)是否為葉節(jié)點(diǎn),如果是,則將該節(jié)點(diǎn)刪除,并將組播樹中度數(shù)為l的非組播節(jié)點(diǎn)刪除,直到不存在度數(shù)為l的非組播節(jié)點(diǎn),算法才停止。由于刪除度數(shù)為l的非組播節(jié)點(diǎn),只可能是沿一條樹枝修剪,所以該算法的時(shí)間復(fù)雜度為O(n)。網(wǎng)絡(luò)中求最短路的Dijkstra算法Dijkstra算法是解決帶權(quán)圖的最短路徑問題的一種貪心算法,它要一個(gè)個(gè)的找出從源節(jié)點(diǎn)s出發(fā)到所有其他節(jié)點(diǎn)的最短路徑。Dijkstra算法的本質(zhì)特征是能夠確定路徑順序,按照加權(quán)長度順序首先找出最短路徑,直至最后找出從源點(diǎn)到所有節(jié)點(diǎn)的最短路徑中最長的那一條最短路徑。算法的具體步驟如下St印0(初始化)令S二(D,§=V,Us-u^O,pred(s)二0;對(duì)V中的頂點(diǎn)j(j孝s),令初始距離標(biāo)號(hào)u,oo;VSt印l如果S=V,則Uj為節(jié)點(diǎn)s到節(jié)點(diǎn)j的最短路長(最短路可以通過數(shù)組pred所記錄的信息反向追蹤獲得),結(jié)束。否則繼續(xù)St印2;St印2從g中找到距離標(biāo)號(hào)最小的節(jié)點(diǎn)i,把它從S刪除,加入S。對(duì)于所有從節(jié)點(diǎn)i出發(fā)的弧(i,j)GA,若Uj〉u,+w,j,則令u,u'+Wij,pred(jX。轉(zhuǎn)st印l。關(guān)鍵節(jié)點(diǎn)定義及求法關(guān)鍵節(jié)點(diǎn)的定義和求法是余燕平在其博士論文"多播路由算法的研究"中提出的。關(guān)鍵節(jié)點(diǎn)指的是網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)間最短路徑經(jīng)過次數(shù)比較多的節(jié)點(diǎn)。最短路徑的求法可采用Dijkstra算法。每經(jīng)過一次,節(jié)點(diǎn)的權(quán)值加l,最后按權(quán)值大小排列,選出需要的關(guān)鍵節(jié)點(diǎn)。在建樹時(shí),如果能優(yōu)先采用包含關(guān)鍵節(jié)點(diǎn)的路徑,則有可能后面的組播成員節(jié)點(diǎn)連接到樹上的最短路徑也會(huì)經(jīng)過這些節(jié)點(diǎn),有更大可能實(shí)現(xiàn)更多的鏈路共享。若組播節(jié)點(diǎn)對(duì)之間能用最短路徑連接的話,就能在添加目的節(jié)點(diǎn)時(shí)盡量選擇共享性更高的鏈路,則可期望降低組播樹的費(fèi)用。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)中存在的不足,提供基于DDMC和貪婪算法基本思想的一種時(shí)延約束的組播路由算法,它是解決靜態(tài)時(shí)延Steiner問題的方法,且在已有組播樹的基礎(chǔ)上,可以實(shí)現(xiàn)新加目的節(jié)點(diǎn)的動(dòng)態(tài)加入,并保證所獲得組播樹的低代價(jià),同時(shí)解決了動(dòng)態(tài)時(shí)延Steiner問題。本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法通過下述技術(shù)方案予以實(shí)現(xiàn)本所述方法包括如下步驟(為了便于敘述,我們用C(u,v)代替c(u,v)/(△-Delay(u)-delay(u,v))):1)首先初始化,此時(shí)組播樹T只包含源節(jié)點(diǎn)S,其它節(jié)點(diǎn)置Cost(U^oo;2)計(jì)算關(guān)鍵節(jié)點(diǎn);3)添加節(jié)點(diǎn)到樹,搜索與s相連的節(jié)點(diǎn),選擇選擇函數(shù)Cost(u)最小且滿足Delay(u)《△的節(jié)點(diǎn)加入樹;4)再搜索與已加入樹中的節(jié)點(diǎn)u相連的所有節(jié)點(diǎn)v,a)若Cost(v)—ID(u)Cost(u)+C(u,v)并且vgT,貝廿置Cost(v)=ID(u)Cost(u)+C(u,v),Delay(v)=Delay(u)+delay(u,v),選擇Cost(v)值最小的節(jié)點(diǎn)加入扭if;b)當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹,則算法結(jié)束,刪除所有不是目的節(jié)點(diǎn)的葉節(jié)點(diǎn)即為滿足時(shí)延限制的組播樹;c)對(duì)于最后仍沒能加入樹的目的節(jié)點(diǎn)d,用從s到d的以Dijkstra算法得到的時(shí)延最短路徑加入樹。本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法與現(xiàn)有技術(shù)相比較有如下有益效果本發(fā)明方法結(jié)合了Prim和Dijkstra兩種經(jīng)典算法的思想,并采用了貪婪的策略,利用鄰節(jié)點(diǎn)的開銷和時(shí)延信息進(jìn)行組播樹的構(gòu)建。本發(fā)明指示函數(shù)算法由于樹T中從源節(jié)點(diǎn)s到節(jié)點(diǎn)u的時(shí)延是小于給定的時(shí)延上限的值的,因此對(duì)于u是目的節(jié)點(diǎn)時(shí)的指示函數(shù)的值在任何情況下都不會(huì)接近于l,且小于QDM財(cái)旨示函數(shù)的值,同時(shí)它又對(duì)目的節(jié)點(diǎn)和非目的節(jié)點(diǎn)有所區(qū)分,也能根據(jù)源節(jié)點(diǎn)到目的節(jié)點(diǎn)的時(shí)延對(duì)樹進(jìn)行動(dòng)態(tài)的調(diào)節(jié)。因此該發(fā)明的指示函數(shù)克服了QDMR的缺陷。本發(fā)明采取的鏈路選擇函數(shù)分母代表了將節(jié)點(diǎn)v加入后,合成的樹里從源節(jié)點(diǎn)s到節(jié)點(diǎn)v的剩余時(shí)延。選擇函數(shù)值較小的路徑表示它同時(shí)滿足路徑代價(jià)偏小而源節(jié)點(diǎn)到網(wǎng)絡(luò)節(jié)點(diǎn)v的剩余時(shí)延偏大的條件。本發(fā)明方法中,關(guān)鍵節(jié)點(diǎn)指的是組播對(duì)之間最短路徑通過較多的節(jié)點(diǎn)。選取一定數(shù)量的關(guān)鍵節(jié)點(diǎn),給予它們與目的節(jié)點(diǎn)一樣的優(yōu)先級(jí),就能在添加目的節(jié)點(diǎn)時(shí)盡量選擇共享性更高的鏈路,可期望降低組播樹的費(fèi)用。結(jié)合鏈路選擇函數(shù)后的最短路徑可表示為.c(u,v),m'n-△—delay(u,v)u和v均是目的節(jié)點(diǎn),計(jì)算的是上述函數(shù)值最小的路徑。這種最短路徑經(jīng)過一次的節(jié)點(diǎn)則權(quán)值加l。權(quán)值大的節(jié)點(diǎn)更有可能包含在準(zhǔn)Steiner樹中,從而實(shí)現(xiàn)更多的鏈路共享,使得樹的費(fèi)用更小。本發(fā)明方法采用新的指示函數(shù)和鏈路選擇函數(shù),綜合考慮了時(shí)延和代價(jià),有效保證了組播樹的性能,而且簡單,快速,時(shí)間復(fù)雜度低,易于在分布式環(huán)境中實(shí)現(xiàn),可用于實(shí)際的應(yīng)用系統(tǒng)中。本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法有如下附圖-圖1為本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法靜態(tài)組播樹流程結(jié)構(gòu)示意圖2為本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法實(shí)現(xiàn)節(jié)點(diǎn)動(dòng)態(tài)加入或離開流程結(jié)構(gòu)示意圖3為現(xiàn)有技術(shù)示例網(wǎng)絡(luò)原組播樹結(jié)構(gòu)示意圖;其中O源節(jié)點(diǎn),^為目的節(jié)點(diǎn),鏈路上的數(shù)字m/n代表代價(jià)/時(shí)延;圖4為本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法組播樹結(jié)構(gòu)示意圖;其中粗線路徑代表本發(fā)明方法所建組播樹。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法技術(shù)方案作進(jìn)一步描述。如圖1一圖2所示,一種基于DDMC的時(shí)延約束組播路由的方法,包括組播目的節(jié)點(diǎn)d和網(wǎng)絡(luò)節(jié)點(diǎn)v,動(dòng)態(tài)組播樹T,其特征在于所述方法包括如下步驟(為了便于敘述,我們用C(u,v)代替c(u,v)/(A-Delay(u)-delay(u,v))):1)首先初始化,此時(shí)組播樹T只包含源節(jié)點(diǎn)s,其它節(jié)點(diǎn)置Cost(u—oo;2)計(jì)算關(guān)鍵節(jié)點(diǎn);3)添加節(jié)點(diǎn)到樹,搜索與s相連的節(jié)點(diǎn),選擇選擇函數(shù)Cost(u)最小且滿足Delay(u)《△的節(jié)點(diǎn)加入樹;4)再搜索與已加入樹中的節(jié)點(diǎn)u相連的所有節(jié)點(diǎn)v,a)若Cost(v)—ID(u)Cost(u)+C(u,v)并且vgT,貝U置Cost(v)=ID(u)Cost(u)+C(u,v),Delay(v)=Delay(u)+delay(u,v),選擇Cost(v)值最小的節(jié)點(diǎn)加入豐對(duì);b)當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹,則算法結(jié)束,刪除所有不是目的節(jié)點(diǎn)的葉節(jié)點(diǎn)即為滿足時(shí)延限制的組播樹;c)對(duì)于最后仍沒能加入樹的目的節(jié)點(diǎn)d,用從s到d的以Dijkstra算法得到的時(shí)延最短路徑加入樹。所述的Dijkstra算法計(jì)算關(guān)鍵節(jié)點(diǎn),按照權(quán)值大小取0.5lDl個(gè)節(jié)點(diǎn)作為KN節(jié)點(diǎn),If(與s相連的節(jié)點(diǎn)Delay(u)《A)選擇Cost(u)最小的加入樹對(duì)與u相連的節(jié)點(diǎn)vIf(Delay(u)+d(u,v)SA且v不屬于樹T)If(Cost(v)—ID(u)Cost(u)+C(u,v))則置Cost(v)=ID(u)Cost(u)+C(u,v)Delay(v)=Delay(u)+delay(u,v)選擇其中Cost(v)值最小的節(jié)點(diǎn)加入樹,當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹則算法停止。所述的方法包括1)本發(fā)明節(jié)點(diǎn)計(jì)算指示函數(shù)為14<formula>formulaseeoriginaldocumentpage15</formula>1其它組播樹T中從源節(jié)點(diǎn)s到節(jié)點(diǎn)u的時(shí)延是小于給定的時(shí)延上限的值,因此對(duì)于u是目的節(jié)點(diǎn)的指示函數(shù)的值在任何情況下都不會(huì)接近于1,且小于QDMR指示函數(shù)的值,同時(shí)它又對(duì)目的節(jié)點(diǎn)和非目的節(jié)點(diǎn)有所區(qū)分,能根據(jù)源節(jié)點(diǎn)到目的節(jié)點(diǎn)的時(shí)延對(duì)樹進(jìn)行動(dòng)態(tài)調(diào)節(jié);2)鏈路選擇函數(shù)為1,11)0^(11)+-~當(dāng)A—Delff/u)—ddff/(wd)X)△_Etel^y(u)-del^(u^v)Cost(v):期也delay(u,v)是節(jié)點(diǎn)u到節(jié)點(diǎn)v之間鏈路的時(shí)延。函數(shù)后面部分的分母代表了將節(jié)點(diǎn)v加入后,合成的樹里從源節(jié)點(diǎn)s到節(jié)點(diǎn)v的剩余時(shí)延。該鏈路選擇函數(shù)不僅考慮了給予目的節(jié)點(diǎn)優(yōu)先級(jí),還同時(shí)給予低時(shí)延路徑一定的優(yōu)先。如果選擇Cost(v)值較低的節(jié)點(diǎn)加入樹,選擇函數(shù)可以同時(shí)最小化路徑費(fèi)用和最大化從s到節(jié)點(diǎn)v的剩余時(shí)延;3)關(guān)鍵節(jié)點(diǎn)選取組播樹之間最短路徑通過較多的關(guān)鍵節(jié)點(diǎn),給予關(guān)鍵節(jié)點(diǎn)與目的節(jié)點(diǎn)一樣的優(yōu)選級(jí),就能在添加目的節(jié)點(diǎn)時(shí)選擇共享性更主的鏈路;最短路徑為minc(u,v),U和v均是目的節(jié)點(diǎn),計(jì)算得上述函數(shù)值最小的路徑;最短路A—delay(u,v)徑經(jīng)過一次的節(jié)點(diǎn)則權(quán)值加1。權(quán)值大的節(jié)點(diǎn)更有可能包含在準(zhǔn)Steiner樹中,實(shí)現(xiàn)更多的鏈路共享。所述的指示函數(shù)算法加入關(guān)鍵節(jié)點(diǎn)思想后,其指示函數(shù)I。(u)可寫成15Delay(u)必n^-八'當(dāng)ueDuKID(u)=<jA+Delay(u)。(1其它實(shí)施例1。本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法的技術(shù)方案為基于DDMC和貪婪算法基本思想的一種時(shí)延約束的組播路由方法,它包括組播目的節(jié)點(diǎn)d和網(wǎng)絡(luò)節(jié)點(diǎn)v,動(dòng)態(tài)組播樹T,本發(fā)明的特征是在建樹過程中,給予目的節(jié)點(diǎn)d和關(guān)鍵節(jié)點(diǎn)高優(yōu)先級(jí),即如果有目的節(jié)點(diǎn)還要連接網(wǎng)絡(luò)節(jié)點(diǎn)v,那么被連接的節(jié)點(diǎn)v的費(fèi)用不是直接累加從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的費(fèi)用,而是根據(jù)到目的節(jié)點(diǎn)的時(shí)延和它與時(shí)延上限之和的差距來動(dòng)態(tài)調(diào)整建樹的策略;采用一個(gè)綜合考慮時(shí)延和代價(jià)的鏈路選擇函數(shù)來表示樹上的節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)v的費(fèi)用,選擇函數(shù)值較小的路徑表示它同時(shí)滿足路徑代價(jià)偏小而源節(jié)點(diǎn)到網(wǎng)絡(luò)節(jié)點(diǎn)v的剩余時(shí)延偏大的條件;當(dāng)有新的組播節(jié)點(diǎn)d加入,若它是在動(dòng)態(tài)組播樹上的一個(gè)中間轉(zhuǎn)發(fā)節(jié)點(diǎn),則不需做修改,令其開始接收數(shù)據(jù)即可;當(dāng)新加入的組播節(jié)點(diǎn)d不在動(dòng)態(tài)組播樹T上,則計(jì)算d到樹T中節(jié)點(diǎn)的最小費(fèi)用路徑,然后根據(jù)選擇函數(shù)進(jìn)行計(jì)算,選擇值最小的路徑連接d,若路徑均不滿足要求,則求d到樹T中節(jié)點(diǎn)的最小時(shí)延路徑,選擇其中費(fèi)用最小且滿足時(shí)延要求的路徑進(jìn)行連接;當(dāng)組播目的節(jié)點(diǎn)請(qǐng)求離開組播樹時(shí),采用貪婪算法的步驟離開組播樹。本發(fā)明一種基于DDMC的時(shí)延約束組播路由的方法主要由以下三方面組成一、指示函數(shù)在介紹本發(fā)明的指示函數(shù)之前,先介紹相關(guān)算法的指示函數(shù),便于解釋。D匿C是一種無約束的建立低代價(jià)組播樹的算法,它定義了一個(gè)新加入節(jié)點(diǎn)vgT經(jīng)由節(jié)點(diǎn)ueT的開銷Cost(v)=ID(u)Cost(u)+c(u,v)上式的Cost(v)是從源節(jié)點(diǎn)S到新加入節(jié)點(diǎn)V的路徑的總費(fèi)用。c(u,v)是從節(jié)點(diǎn)U到節(jié)點(diǎn)V的費(fèi)用。指示函數(shù)I。(u)如下定義ID(U):V—{0,1}^u)-h其它D是目的節(jié)點(diǎn)集合。當(dāng)I。(u)-0時(shí),Cost(v)-c(u,v),也就是說目的節(jié)點(diǎn)就如同新的源節(jié)點(diǎn)-樣。當(dāng)添加新節(jié)點(diǎn)連到樹T時(shí),通過目的節(jié)點(diǎn)的路徑優(yōu)先級(jí)更高。但是,這可能導(dǎo)致組播樹更象是目的節(jié)點(diǎn)的一條鏈,在時(shí)延約束Steiner問題中會(huì)使某些目的節(jié)點(diǎn)違反時(shí)延約束條件。為了有效生成一棵時(shí)延約束的低費(fèi)用樹,QDMR算法修改DDMC算法,通過檢査源節(jié)點(diǎn)到目的節(jié)點(diǎn)的時(shí)延和時(shí)延上限之間余量的大小來動(dòng)態(tài)地調(diào)整樹。那些離時(shí)延約束邊界越多的目的節(jié)點(diǎn),作為其它新加入的節(jié)點(diǎn)的父節(jié)點(diǎn)的優(yōu)先級(jí)越高。如果對(duì)某些目的節(jié)點(diǎn)而言,時(shí)延約束將要違反,那么將會(huì)利用最小時(shí)延路徑將這些節(jié)點(diǎn)加入樹。因?yàn)楂@得從源節(jié)點(diǎn)到樹上每個(gè)目的節(jié)點(diǎn)的時(shí)延非常容易,QDMR算法的指示函數(shù)如下ID(u)=Dday(u)當(dāng)"A1其它Delay(u)是指樹T中從源節(jié)點(diǎn)s到節(jié)點(diǎn)u的所有鏈路時(shí)延的總和。A是給定的時(shí)延上限。QDMR的指示函數(shù)有個(gè)很大的缺點(diǎn),那就是只有Delay(u)遠(yuǎn)遠(yuǎn)小于時(shí)延上限A時(shí)才會(huì)有效。當(dāng)Dday(u)越接近A,它對(duì)目的節(jié)點(diǎn)和非目的節(jié)點(diǎn)的區(qū)分就越小,算法就越接近于Dijkstra算法。本發(fā)明的指示函數(shù)如下:'Delay(U)當(dāng)"ID(u)=JA+Delay(u)卜其它由于樹T中從源節(jié)點(diǎn)s到節(jié)點(diǎn)u的時(shí)延是小于給定的時(shí)延上限的值的,因此對(duì)于u是目的節(jié)點(diǎn)時(shí)的指示函數(shù)的值在任何情況下都不會(huì)接近于l,且小于QDMR指示函數(shù)的值,同時(shí)它又對(duì)目的節(jié)點(diǎn)和非目的節(jié)點(diǎn)有所區(qū)分,也能根據(jù)源節(jié)點(diǎn)到目的節(jié)點(diǎn)的時(shí)延對(duì)樹進(jìn)行動(dòng)態(tài)的調(diào)節(jié)。因此該發(fā)明的指示函數(shù)克服了QDMR的缺陷。二、鏈路選擇函數(shù)對(duì)于時(shí)延受限問題而言,為無約束問題設(shè)計(jì)的DDMC算法,它只考慮了費(fèi)用最小而沒有考慮時(shí)延約束,會(huì)導(dǎo)致許多源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑不滿足時(shí)延約束。從綜合考慮時(shí)延和代價(jià)的角度出發(fā),本發(fā)明采取了一個(gè)同時(shí)衡量時(shí)延和代價(jià)的鏈路選擇函數(shù)<formula>formulaseeoriginaldocumentpage18</formula>dday(u,v)是節(jié)點(diǎn)U到節(jié)點(diǎn)v之間鏈路的時(shí)延。函數(shù)后面部分的分母代表了將節(jié)點(diǎn)V加入后,合成的樹里從源節(jié)點(diǎn)S到節(jié)點(diǎn)V的剩余時(shí)延。該鏈路選擇函數(shù)不僅考慮了給予目的節(jié)點(diǎn)優(yōu)先級(jí),還同時(shí)給予低時(shí)延路徑一定的優(yōu)先。如果選擇Cost(v)值較低的節(jié)點(diǎn)加入樹,選擇函數(shù)可以同時(shí)最小化路徑費(fèi)用和最大化從s到節(jié)點(diǎn)V的剩余時(shí)延;三、關(guān)鍵節(jié)點(diǎn)在本發(fā)明的方法中,關(guān)鍵節(jié)點(diǎn)指的是組播對(duì)之間最短路徑通過較多的節(jié)點(diǎn)。選取一定數(shù)量的關(guān)鍵節(jié)點(diǎn),給予它們與目的節(jié)點(diǎn)一樣的優(yōu)先級(jí),就能在添加目的節(jié)點(diǎn)時(shí)盡量選擇共享性更高的鏈路,可期望降低組播樹的費(fèi)用。結(jié)合鏈路選擇函數(shù)后的最短路徑可表示為min,'"、,u和v均是目的節(jié)點(diǎn),我們計(jì)算A-delay(u,v)的是上述函數(shù)值最小的路徑。這種"最短路徑"經(jīng)過一次的節(jié)點(diǎn)則權(quán)值加i。權(quán)值大的節(jié)點(diǎn)更有可能包含在準(zhǔn)Steiner樹中,從而實(shí)現(xiàn)更多的鏈路共享,使得樹的費(fèi)用更小。按照網(wǎng)絡(luò)中組播目的節(jié)點(diǎn)的個(gè)數(shù)來取脂節(jié)點(diǎn)的個(gè)數(shù),把組播冃的節(jié)點(diǎn)個(gè)數(shù)表示成ID卜那么可以取0.5問個(gè)節(jié)點(diǎn)作為KN節(jié)點(diǎn),給予它們與目的節(jié)點(diǎn)一樣的優(yōu)先級(jí)。算法加入關(guān)鍵節(jié)點(diǎn)思想后,其指示函數(shù)I。(u)可寫成Delay(u)1:A+Delay(u)1其它建樹的方法具體實(shí)施如下首先是初始化,組播樹T此時(shí)只包含源節(jié)點(diǎn)s,對(duì)于圖中其它節(jié)點(diǎn)我們置Cost(uhco,然后開始計(jì)算關(guān)鍵節(jié)點(diǎn)。接著添加節(jié)點(diǎn)到樹,搜索與S相連的節(jié)點(diǎn),選擇選擇Cost(u)最小且滿足Dday(u)《A的節(jié)點(diǎn)加入樹。再搜索與已加入樹中的節(jié)點(diǎn)U相連的所有節(jié)點(diǎn)v(C(u,v)代表c(u,v)/(△—Delay(u)—delay(u,v))),若Cost(v)—ID(u)Cost(u)+C(u,v)并且vgT,則置Cost(v)=ID(u)Cost(u)+C(u,v),Delay(v)=Delay(u)+delay(u,v),選擇Cost(v)〈直最小的節(jié)點(diǎn)加入樹。當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹,則算法結(jié)束,刪除所有不是目的節(jié)點(diǎn)的葉節(jié)點(diǎn)即為滿足時(shí)延限制的組播樹。對(duì)于最后仍沒能加入樹的目的節(jié)點(diǎn)d,用從s到d的以Dijkstra算法得到的時(shí)延最短路徑加入樹。調(diào)用Dijkstra算法計(jì)算關(guān)鍵節(jié)點(diǎn),按照權(quán)值大小取0.5lDl個(gè)初始化(組播樹T中只包含源節(jié)點(diǎn)s,圖中其它節(jié)點(diǎn)Cost(u)-oo)If(與s相連的節(jié)點(diǎn)Delay(u)、△)選擇Cost(iO最小的加入樹對(duì)與U相連的節(jié)點(diǎn)VIf(Delay(u)+d(u,v)《A且v不屬于樹T)If(Cost(v)—ID(u)Cost(u)+C(u,v))則置Cost(v)=ID(u)Cost(u)+C(u,v)Delay(v)=Delay(u)+delay(u,v)選擇其中Cost(v)值最小的節(jié)點(diǎn)加入樹當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹則算法停止結(jié)合本方法建樹過程假定網(wǎng)絡(luò)如圖3所示,源節(jié)點(diǎn)為s,目的節(jié)點(diǎn)集合為DHa,c,eh鏈路的參數(shù)為(代價(jià),時(shí)延),時(shí)延約束么=7。首先利用Dijkstra算法計(jì)算KN節(jié)點(diǎn),按權(quán)值高低排列找出l個(gè)脂節(jié)點(diǎn)。計(jì)算得h點(diǎn)為脂節(jié)點(diǎn),在下面的計(jì)算中給予它與目的節(jié)點(diǎn)一樣的優(yōu)先級(jí)。從s相連的有4個(gè)節(jié)點(diǎn)a,b,d和g。按鏈路選擇函數(shù)計(jì)算得知鏈路(s,g)代價(jià)最小,所以將g點(diǎn)、鏈路(s,g)加進(jìn)樹。計(jì)算從g點(diǎn)出發(fā)的鏈路。與g相連的有3個(gè)節(jié)點(diǎn)a,f和h。ID(g)=l。計(jì)算得知Cost(a)值最小,所以選擇將a點(diǎn),鏈路(s,a)加進(jìn)樹。計(jì)算從從a點(diǎn)出發(fā)的鏈路。與a點(diǎn)相連的有b點(diǎn)。ID(a)=#。此時(shí)因Cost(h)值最小,所以選擇將h點(diǎn),鏈路(g,h)加入樹。計(jì)算從h點(diǎn)出發(fā)的鏈路。與h點(diǎn)相連的有e,c點(diǎn)。ID(h)=#。此時(shí)Cost(e)最小,選擇將鏈路(h,e)加入樹。計(jì)算從e點(diǎn)出發(fā)的鏈路。與e相連的有f和d點(diǎn)。ID(e)=^。因Cost(c)最小,選擇將c點(diǎn),鏈路(h,c)加進(jìn)樹。如圖4所示,目的節(jié)點(diǎn)集合D^a,c,e》己全部包含進(jìn)樹,算法停止,得到滿足時(shí)延約束的組播樹。對(duì)圖3所示網(wǎng)絡(luò)原圖,用三種算法所得的不同組播樹做了詳細(xì)的比較,本方法所構(gòu)建的組播樹在源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑最大時(shí)延和總時(shí)延上略大于Dijkstm算法,遠(yuǎn)小于QDMR算法。本方法在樹的總代價(jià)和源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑最大代價(jià)上均優(yōu)于LD和QDMR算法。<table>tableseeoriginaldocumentpage21</column></row><table>四、算法的動(dòng)態(tài)性能(1)當(dāng)有新節(jié)點(diǎn)d加入如果dcT,即d是原組播樹上的一個(gè)中間轉(zhuǎn)發(fā)節(jié)點(diǎn),這時(shí)不需要對(duì)組播樹做修改,只需令d開始接收數(shù)據(jù)即可。如果dcrT,先求d到樹T中節(jié)點(diǎn)的最小費(fèi)用路徑(用c(u,d)表示),然后再根據(jù)選擇函數(shù)進(jìn)行計(jì)算Cost(d)ID(u)C—)+a^,,d,,j、當(dāng)A—Dday(u)-delay(u,d)〉0△一Delay(u)—delay(u,d)、oo其它選擇Cost(d)最小的路徑連接d。如果路徑均不滿足時(shí)延要求,則求d到樹T中節(jié)點(diǎn)的最小時(shí)延路徑,選擇其中費(fèi)用最小且滿足時(shí)延要求的路徑進(jìn)行連接。(2)目的節(jié)點(diǎn)deD請(qǐng)求離開組播樹如果d不是樹上的葉子節(jié)點(diǎn),那么可以不對(duì)組播樹作修改;如果d是組播樹上的葉子節(jié)點(diǎn),則刪除該節(jié)點(diǎn),并將組播樹中度數(shù)為1的非組播節(jié)點(diǎn)刪除,直到不存在度數(shù)為1的非組播節(jié)點(diǎn),算法停止。時(shí)間復(fù)雜度分析本方法第一步中利用Dijikstra算法求出組播節(jié)點(diǎn)端到端的最短距離,其復(fù)雜度為0(mn2);然后對(duì)每條路徑上的節(jié)點(diǎn)分別計(jì)算權(quán)值,其復(fù)雜度為O(n),共需對(duì)m(m-l)條路徑運(yùn)算,因此其復(fù)雜度為0(m2!1);第二步到第四步算法時(shí)間復(fù)雜度為O(問loglnl);若子算法完成后還有目的節(jié)點(diǎn)沒有連接到樹中,那么要用最短路加入,復(fù)雜度為0(n2)。所以算法總的時(shí)間復(fù)雜度是0(mn2)。權(quán)利要求1、一種基于DDMC的時(shí)延約束組播路由的方法,包括組播目的節(jié)點(diǎn)d和網(wǎng)絡(luò)節(jié)點(diǎn)v,動(dòng)態(tài)組播樹T,其特征在于所述方法包括如下步驟1)首先初始化,此時(shí)組播樹T只包含源節(jié)點(diǎn)s,其它節(jié)點(diǎn)置Cost(u)=∞;2)計(jì)算關(guān)鍵節(jié)點(diǎn);3)添加節(jié)點(diǎn)到樹,搜索與s相連的節(jié)點(diǎn),選擇選擇函數(shù)Cost(u)最小且滿足Delay(u)<Δ的節(jié)點(diǎn)加入樹;4)再搜索與已加入樹中的節(jié)點(diǎn)u相連的所有節(jié)點(diǎn)v,a)若Cost(v)>ID(u)Cost(u)+C(u,v)并且<mathsid="math0001"num="0001"><math><![CDATA[<mrow><mi>v</mi><mo>∉</mo><mi>T</mi><mo>,</mo></mrow>]]></math>id="icf0001"file="A2009100584080002C1.tif"wi="10"he="3"top="102"left="105"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>則置Cost(v)=ID(u)Cost(u)+C(u,v),Delay(v)=Delay(u)+delay(u,v),選擇Cost(v)值最小的節(jié)點(diǎn)加入樹;b)當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹,則算法結(jié)束,刪除所有不是目的節(jié)點(diǎn)的葉節(jié)點(diǎn)即為滿足時(shí)延限制的組播樹;c)對(duì)于最后仍沒能加入樹的目的節(jié)點(diǎn)d,用從s到d的以Dijkstra算法得到的時(shí)延最短路徑加入樹。2、根據(jù)權(quán)利要求1所述的基于DDMC的時(shí)延約束組播路由的方法,其特征在于所述的.Dijkstra算法計(jì)算關(guān)鍵節(jié)點(diǎn),按照權(quán)值大小取0.5lDl個(gè)節(jié)點(diǎn)作為KN節(jié)點(diǎn),If(與s相連的節(jié)點(diǎn)Dday(u)、A)選擇Cost(u)最小的加入樹對(duì)與u相連的節(jié)點(diǎn)vIf(Delay(u)+d(u,v)SA且v不屬于樹T)If(Cost(v)—ID(u)Cost(u)+C(u,v))則置Cost(v)=ID(u)Cost(u)+C(u,v)Delay(v)=Delay(u)+delay(u,v)選擇其中Cost(v)值最小的節(jié)點(diǎn)加入樹,當(dāng)所有目的節(jié)點(diǎn)都包含進(jìn)樹則算法停止。3、根據(jù)權(quán)利要求1所述的基于DDMC的時(shí)延約束組播路由的方法,其特征在于所述的方法包括1)本發(fā)明節(jié)點(diǎn)計(jì)算指示函數(shù)為<formula>formulaseeoriginaldocumentpage3</formula>i其它組播樹T中從源節(jié)點(diǎn)s到節(jié)點(diǎn)u的時(shí)延是小于給定的時(shí)延上限的值,因此對(duì)于u是目的節(jié)點(diǎn)的指示函數(shù)的值在任何情況下都不會(huì)接近于1,且小于QDMR指示函數(shù)的值,同時(shí)它又對(duì)目的節(jié)點(diǎn)和非目的節(jié)點(diǎn)有所區(qū)分,能根據(jù)源節(jié)點(diǎn)到目的節(jié)點(diǎn)的時(shí)延對(duì)樹進(jìn)行動(dòng)態(tài)調(diào)節(jié);2)鏈路選擇函數(shù)為<formula>formulaseeoriginaldocumentpage3</formula>其他delay(u,v)是節(jié)點(diǎn)u到節(jié)點(diǎn)v之間鏈路的時(shí)延。函數(shù)后面部分的分母代表了將節(jié)點(diǎn)V加入后,合成的樹里從源節(jié)點(diǎn)S到節(jié)點(diǎn)V的剩余時(shí)延;該鏈路選擇函數(shù)不僅考慮了給予目的節(jié)點(diǎn)優(yōu)先級(jí),還同時(shí)給予低時(shí)延路徑一定的優(yōu)先;如果選擇Cost(v)值較低的節(jié)點(diǎn)加入樹,選擇函數(shù)可以同時(shí)最小化路徑費(fèi)用和最大化從s到節(jié)點(diǎn)v的剩余時(shí)延;3)關(guān)鍵節(jié)點(diǎn)選取組播樹之間最短路徑通過較多的關(guān)鍵節(jié)點(diǎn),給予關(guān)鍵節(jié)點(diǎn)與目的節(jié)點(diǎn)一樣的優(yōu)選級(jí),就能在添加目的節(jié)點(diǎn)時(shí)選擇共享性更大的鏈路;最短路徑為minC(U,V)^,U和v均是目的節(jié)點(diǎn),計(jì)算得上述函數(shù)值最小的路徑;最短路△—delay(u,v)徑經(jīng)過一次的節(jié)點(diǎn)則權(quán)值加1;權(quán)值大的節(jié)點(diǎn)更有可能包含在準(zhǔn)Steiner樹中,實(shí)現(xiàn)更多的鏈路共享。4、根據(jù)權(quán)利要求1所述的基于DDMC的時(shí)延約束組播路由的方法,其特征在于所述的指示函數(shù)算法加入關(guān)鍵節(jié)點(diǎn)思想后,其指示函數(shù)I。(U)為<formula>formulaseeoriginaldocumentpage4</formula>5、根據(jù)權(quán)利要求1所述的基于DDMC的時(shí)延約束組播路由的方法,其特征在于所述的步驟4)中的a)步驟公式中Cost(v)I。(u)Cost(u)+C(u,v)用C(u,v)代替c(u,v)/(△-Delay(u)—delay(u,v))。全文摘要本發(fā)明屬于網(wǎng)絡(luò)通信中的路由技術(shù),具體涉及一種組播路由中建立易于在分布式環(huán)境中使用的具有時(shí)延受限的組播樹,并涉及到節(jié)點(diǎn)加入或離開的方法。本所述方法包括如下步驟1)首先對(duì)組播樹T初始化;2)計(jì)算關(guān)鍵節(jié)點(diǎn);3)添加節(jié)點(diǎn)到樹;4)再搜索與已加入樹中的節(jié)點(diǎn)u相連的所有節(jié)點(diǎn)v,選擇Cost(v)值最小的節(jié)點(diǎn)加入樹;刪除所有不是目的節(jié)點(diǎn)的葉節(jié)點(diǎn)即為滿足時(shí)延限制的組播樹。本發(fā)明方法采用新的指示函數(shù)和鏈路選擇函數(shù),綜合考慮了時(shí)延和代價(jià),有效保證了組播樹的性能,而且簡單,快速,時(shí)間復(fù)雜度低,易于在分布式環(huán)境中實(shí)現(xiàn),可用于實(shí)際的應(yīng)用系統(tǒng)中。文檔編號(hào)H04L12/18GK101527680SQ200910058408公開日2009年9月9日申請(qǐng)日期2009年2月20日優(yōu)先權(quán)日2009年2月20日發(fā)明者劉臻臻,周賢偉,張永德,張鳴魯,林大澤,黃秋香申請(qǐng)人:西部礦業(yè)股份有限公司