專利名稱:一種提高組播pim-sm協(xié)議網(wǎng)絡(luò)的健壯性的方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種通過在網(wǎng)絡(luò)組播通信中使組播PIM-SM協(xié)議的集合點信息保持一致從而提高組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性的方法。
背景技術(shù):
傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用都是用點對點的IP傳輸(單播技術(shù)),而點對多點的IP傳輸(廣播技術(shù))只限于局域網(wǎng)內(nèi)部應(yīng)用,組播技術(shù)則是在廣域網(wǎng)內(nèi)實現(xiàn)點到多點的IP傳輸技術(shù)。
20世紀80年代,斯坦福大學的博士生Steve Deering開始了三層組播技術(shù)的研究并與1991年12月發(fā)表了其博士論文——《在一種數(shù)據(jù)報網(wǎng)絡(luò)里的組播》,在該論文中描述了組播組管理IGMP協(xié)議和組播路由DVMRP協(xié)議的基礎(chǔ),成功的把組播技術(shù)推進到IP層。關(guān)于IP組播技術(shù)的探索一直在進行,在Deering博士的基礎(chǔ)上,人們陸續(xù)完成了PIM(協(xié)議無關(guān)組播協(xié)議)等組播路由協(xié)議,從而將組播協(xié)議推向整個互聯(lián)網(wǎng)。組播路由技術(shù)的基本思想是在離接收者最近的地方才復(fù)制組播數(shù)據(jù),所以可以大大節(jié)省大量重復(fù)數(shù)據(jù)傳輸時的網(wǎng)絡(luò)帶寬,因而越來越多的人相信,在今后的寬帶互聯(lián)網(wǎng)應(yīng)用中,組播技術(shù)將成為多媒體數(shù)據(jù)通信的主要路由協(xié)議之一。
PIM協(xié)議是目前應(yīng)用較為廣泛的組播路由協(xié)議,其中PIM-SM協(xié)議是其中主要應(yīng)用的協(xié)議。圖1是采用PIM-SM協(xié)議的組播數(shù)據(jù)發(fā)送示意圖。如圖1所示,PIM-SM協(xié)議可以采用共享樹進行組播數(shù)據(jù)轉(zhuǎn)發(fā),在一個共享樹中,有一個中心點,負責向一個組播組的所有接收者發(fā)送組播數(shù)據(jù)報文。當組播源發(fā)送數(shù)據(jù)的時候,數(shù)據(jù)首先要通過與組播源相連的第一跳路由器(圖示路由器A)發(fā)送到該中心點(圖示路由器B),然后由這個中心點向其他接收者沿共享樹轉(zhuǎn)發(fā)組播數(shù)據(jù)報文,這個中心點稱為集合點(Rendezvous Point,簡稱RP)。一個網(wǎng)絡(luò)中可以有多個RP,稱為候選RP。但在一個PIM-SM域中,一個組播組只和唯一的RP對應(yīng)。當這個RP由于某種原因失效后,通過RP選舉機制自動選出新的RP為這個組服務(wù)。
從組播數(shù)據(jù)源發(fā)送數(shù)據(jù)到RP的過程在PIM-SM協(xié)議中稱為注冊過程,因為注冊過程是通過把數(shù)據(jù)報文封裝在協(xié)議報文中單播發(fā)送到這個中心點,因而不能進行硬件轉(zhuǎn)發(fā),所以轉(zhuǎn)發(fā)效率比較低,因而在實際使用的時候,人們都希望這個過程越短越好。當封裝了組播數(shù)據(jù)的組播注冊報文到達RP的時候,RP會向與組播源相連的路由器發(fā)送加入報文,創(chuàng)建從組播源的第一跳路由器到RP的最短路徑組播轉(zhuǎn)發(fā)樹,一旦該轉(zhuǎn)發(fā)樹建立成功,數(shù)據(jù)沿該轉(zhuǎn)發(fā)樹到達RP,RP會向組播源的第一跳路由器發(fā)送注冊停止報文結(jié)束組播注冊狀態(tài)。
在PIM-SM協(xié)議中,RP信息的獲取和分發(fā)是通過BSR報文和候選RP通告報文進行的,BSR是自舉路由器的英文縮寫,它是PIM-SM協(xié)議中定義的一種路由器,用來擴散和維護RP信息。BSR報文是BSR發(fā)送的報文,該報文中包含有整個PIM-SM域中的所有RP信息,在PIM-SM域中的所有路由器都接收該報文中的RP信息,并利用該信息完成自身RP集的更新,RP通告報文是候選RP路由器發(fā)送的協(xié)議報文,候選RP路由器把RP信息定期發(fā)送到BSR,然后由BSR廣播到整個PIM-SM域,這個過程見圖2示意。
在RP通過自動選舉的方式完成災(zāi)難恢復(fù)功能的時候,會引起組播路由的震蕩,一個RP往往為多個組提供服務(wù),當RP切換的時候,所有相關(guān)組的組播源都會向新的RP發(fā)起新的注冊過程,前面講過,這個注冊過程的效率是比較低的,如果不能盡快的完成注冊過程,將嚴重降低系統(tǒng)性能。目前PIM-SM協(xié)議定義了在系統(tǒng)穩(wěn)定的情況下保證各路由器RP信息一致的機制,但它無法保證在RP切換時也使各路由器上的RP信息保證一致,尤其是無法保證BSR與其它非BSR路由器上的信息一致。
下面將參考圖3對造成RP信息不一致的情況進行簡要說明。圖3的示意圖用于說明造成RP信息不一致的情況。在圖2所示的網(wǎng)絡(luò)組成中,路由器C是BSR,路由器B和C是候選RP,對于組播組G,當選的RP是路由器C。最初由組播源S向路由器C完成注冊過程,以使組播數(shù)據(jù)正常轉(zhuǎn)發(fā)。當路由器C由于出現(xiàn)故障或網(wǎng)絡(luò)堵塞而被取消當選的RP資格時,作為BSR的路由器C會最先知道自己RP信息的變化以及RP信息超時,這樣路由器C會將組播組G的RP自動轉(zhuǎn)變?yōu)榫嘟M播組G較近的路由器B,但此時路由器A和B上的RP信息仍為C。此時如果組播源S向組播組G繼續(xù)發(fā)送組播數(shù)據(jù),則注冊報文會經(jīng)過路由器A和B發(fā)送至路由器C,但由于C已經(jīng)不是RP,故其不處理注冊報文。由于收不到路由器C回應(yīng)的注冊停止報文,路由器A會向路由器C繼續(xù)發(fā)送大量的PIM-SM源注冊報文。經(jīng)過一定時間后,由于路由器A收到的來自路由器C的BSR報文不包含路由器C的RP信息,所以路由器A中的路由器C的RP信息要超時,組播組G對應(yīng)的RP重新計算。因此,在超時后,A、B、C三臺路由器的RP信息才能一致,然后A向B發(fā)送注冊報文,B回應(yīng)注冊停止報文,并且組播路由恢復(fù)正常。由上面描述可以看出,路由器C上RP改變后,路由器A最終完成改變后RP信息的學習需要一段時間,在這段時間內(nèi),各路由器與BSR路由器之間的RP信息是不一致的。
在PIM-SM協(xié)議中明確指出,“BSR報文中包含RP存在的時間,各路由器從BSR報文中收取RP信息后,必須把BSR報文中RP超時時間值更新為本地的RP超時時間”,但是協(xié)議又規(guī)定,“路由器收到BSR報文后,如果BSR報文中不包含本地的RP信息,則要刪除該RP信息”。實際上,后者的規(guī)定在BSR切換的時候?qū)⒁餜P的震蕩,因此在實際應(yīng)用中大多沒有實現(xiàn)這條的規(guī)定。這樣,為了減少RP的震蕩,主要應(yīng)從RP的超時時間方面進行考慮。
現(xiàn)有技術(shù)中有一種方法可以用來減少RP的震蕩。該方法中心思想是使BSR報文中的RP超時時間與BSR上的本地RP超時時間保持一致,其具體做法是把BSR上的本地RP的超時時間寫到BSR報文中。這樣就能基本保證使PIM-SM域中的所有路由器RP信息基本保持一致。但是,由于BSR上的RP保持信息是依靠RP通告報文來刷新的,如果BSR路由器收到RP通告后再發(fā)送BSR報文,其中RP的保持時間的缺省值約為150秒,但如果時間配合不好。在發(fā)送完BSR報文后才收到RP通告報文,那么其中的保持時間是90秒,也就是說,該RP信息在其他路由器上的保持時間在90到150秒之間。因為BSR報文缺省是每60秒發(fā)送一次報文,這樣如果發(fā)生BSR報文丟失的情況,其他路由器要等120秒才能收到第二個BSR報文,所以這種方案對BSR報文的丟失太敏感,本來是為解決RP不一致提出的方案,反而造成RP震蕩,因而這種方案有較大的局限性。
考慮到最壞情況,下面就現(xiàn)有方法的按照時間把每一步和狀態(tài)做一個解釋1.相對時間0秒BSR收到RP的通告報文,BSR上RP超時時間為150秒。
2.相對時間60秒BSR發(fā)送BSR報文,當前BSR上的RP超時時間為90秒,所以發(fā)送的BSR報文中RP的超時時間為90秒。
其他路由器收到BSR報文,相應(yīng)把學到的RP超時時間設(shè)置為90秒。
3.相對時間60+1秒BSR收到RP通告報文,RP超時時間重置為150秒。
4.相對時間120秒BSR發(fā)送BSR報文,RP的超時時間為90秒,其他路由器在沒有收到BSR報文的時候,RP超時時間已經(jīng)變?yōu)?0秒,收到BSR報文后,RP超時時間重置為90秒。
請注意第4步的時候,在其他路由器沒有收到BSR報文的時候,RP超時時間已經(jīng)變?yōu)?0秒,如果有一個BSR報文丟棄,則其他路由器收到下一個BSR報文的時候會在60秒后,這樣其上的RP就已經(jīng)超時了,所以說這種方案對BSR報文的丟失非常敏感。
發(fā)明內(nèi)容
本發(fā)明就是針對現(xiàn)有技術(shù)中所存在的上述問題而做出的,其目的是提供一種能夠提高組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性的方法,該方法通過動態(tài)調(diào)整發(fā)送時間來保證RP信息的一致,從而保證了RP切換時各路由器RP信息的一致,同時保證使路由器對BSR報文的丟失不過于敏感并不會造成RP信息震蕩。
為了實現(xiàn)上述目的,本發(fā)明提供了一種提高組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性的方法,該方法包括以下步驟1)在需要發(fā)送自舉路由器報文時,自舉路由器取出自身的集合點超時時間;2)自舉路由器對所述取出的集合點超時時間與一預(yù)定時間進行比較;3)當所述取出的集合點超時時間大于或等于所述預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點保持時間;以及4)當所述取出的集合點超時時間小于所述預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點上的本地集合點超時時間。
在上述方法中,所述預(yù)定時間可以通過以下公式獲得預(yù)定時間=RP通告報文的發(fā)送間隔時間+n秒,其中n的取值應(yīng)該在1——(RP通告報文發(fā)送間隔時間/2)之間在這種情況下,所述的RP報文發(fā)送間隔時間之間優(yōu)選地按以下公式計算RP報文發(fā)送間隔時間=RP的保持時間÷2.5在上述方法中,所述n值優(yōu)選地取為10。
另外,在上述方法中,對所述RP的保持時間的值優(yōu)選地為150秒。
本發(fā)明的有益效果在于,它簡單易行,既能克服現(xiàn)有方案中BSR報文丟失造成的組播路由震蕩,又有效的保證了全網(wǎng)RP信息的一致,提高了組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性,對組播PIM-SM協(xié)議中未能涉及的部分做了較好的補充。
通過以下結(jié)合附圖做出的文字說明,本發(fā)明的上述目的、優(yōu)點及特征將變得更加清楚,在以下的附圖中圖1是PIM-SM協(xié)議組播數(shù)據(jù)沿共享樹轉(zhuǎn)發(fā)示意圖;圖2是采用PIM-SM協(xié)議的PIM-SM域的示意圖;圖3的示意圖用于說明造成RP信息不一致的情況;圖4是根據(jù)本發(fā)明實施例所述的使組播PIM-SM協(xié)議的集合點信息保持一致的方法的流程圖。
具體實施例方式
圖4是根據(jù)本發(fā)明實施例所述的使組播PIM-SM協(xié)議的集合點信息保持一致的方法的流程圖,如圖4所示,當BSR路由器發(fā)送BSR報文的時候,先取出本身RP的超時時間,并按照公式時間閾值=RP通告報文的發(fā)送間隔時間+n秒其中n的取值應(yīng)該在1——(RP通告報文發(fā)送間隔時間/2)之間計算時間閾值,實際使用中,如果網(wǎng)絡(luò)性能很好,運行PIM-SM路由器少,n值可以取小一點,反之可以取大一點。
在本實施例中,為便于處理,優(yōu)選地取n值為10秒。
在本實施例中,取RP的保持時間為150秒,RP通告報文的發(fā)送間隔時間按以下公式計算RP通告報文的發(fā)送間隔時間=RP的保持時間÷2.5其中的150秒和2.5都是PIM-SM協(xié)議的推薦值,也可以在不違背協(xié)議精神的前提下采用其他數(shù)值。
這樣,就得到了時間閥值為70秒。如果BSR上RP的超時時間大于該閾值,則RP報文中的超時時間取RP的保持時間,反之,RP報文中的超時時間取RP的當前超時時間,設(shè)置好RP超時時間后,發(fā)送BSR報文。
進一步假定BSR每60秒發(fā)送一次報文。
考慮到最壞情況,下面就本方法的按照時間把每一步和狀態(tài)做一個解釋1.相對時間0秒BSR收到RP的通告報文,BSR上RP超時時間為150秒。
2.相對時間60秒BSR發(fā)送BSR報文,當前BSR上的RP超時時間為90秒,時間閾值是(150÷2.5+10=70)70秒,所以發(fā)送的BSR報文中RP的超時時間為RP的保持時間150秒。
其他路由器收到BSR報文,相應(yīng)把學到的RP超時時間設(shè)置為150秒。
3.相對時間60+1秒BSR收到RP通告報文,RP超時時間重置為150秒。
4.相對時間120秒BSR發(fā)送BSR報文,RP的超時時間為90秒,其他路由器在沒有收到BSR報文的時候,RP超時時間已經(jīng)變?yōu)?150-60=90)90秒,收到BSR報文后,RP超時時間重置為150秒。
對比原來的方案,可以看出,在步驟4的時候,如果BSR報文丟失,其他路由器上的RP超時時間從90秒繼續(xù)減少,可以等到下一個BSR報文60秒后發(fā)送過來重新刷新RP的超時時間,也就是說,這種方案可以在最壞的情況下容忍一個BSR報文的丟失。
從另一個方面講,當RP超時的時候,其他路由器的RP超時也會同步進行,因為當BSR上的RP超時時間小于70秒的時候,BSR報文中發(fā)送的RP超時時間為BSR上RP實際超時時間,故可以保證PIM-SM域中的路由器RP信息一致。
接著上面的步驟,5.相對時間120+1秒BSR沒有收到RP的通告報文,其上的RP超時時間為90秒。
6.相對時間180秒BSR上依舊沒有收到RP通告報文,其上的RP超時時間為30秒,這樣,BSR報文要發(fā)送,RP的超時時間小于閾值,則報文中RP的超時時間為BSR上RP的超時時間30秒。其他路由器收到這個報文,把自己的RP超時時間設(shè)置為30秒。
7.相對時間210秒BSR上RP超時,其他路由器上RP也超時,所有路由器RP信息一致。
下面,對n取端點值時的情況進行分析。
當n=1的時候,即在本例中當BSR上RP超時時間小于61秒的時候,BSR報文中RP超時時間為BSR上的RP超時時間。
1.相對時間0秒BSR收到RP的通告報文,BSR上RP超時時間為150秒。
2.相對時間60秒BSR發(fā)送BSR報文,RP的超時時間為90秒,大于閾值61秒,故報文中RP的超時時間為150秒,其他路由器收到這個BSR報文,把自身的RP超時時間設(shè)置為150秒。
3.相對時間60+1秒BSR收到新的RP通告報文,RP超時時間重新設(shè)置為150秒只要RP和BSR正常,則步驟2、3將一直重復(fù)進行。其他路由器上的RP超時時間一直在90到150秒之間變化,可見只要不是連續(xù)的BSR報文丟失,就不會引起其他路由器上RP的超時。
下面考慮在RP超時的情況下的處理,即候選RP不再發(fā)送RP通告報文。
接上面步驟24.相對時間120秒BSR上RP超時時間為90秒,發(fā)送BSR報文,RP超時時間為150秒。
5.相對時間180秒BSR上RP超時時間為30秒,小于時間閾值,發(fā)送BSR報文,RP超時時間為BSR上RP的實際超時時間30秒。
6.相對時間210秒BSR和其他路由器上的RP同時超時,各路由器的RP信息保持一致因此在這種情況下,取端點值1能保證對BSR報文的丟失容忍和解決RP的同步問題,現(xiàn)在再考慮到另外一種情況,即在BSR上RP超時時間為61秒的時候,發(fā)送BSR報文的情況1.當BSR上RP超時時間為61秒的時候,發(fā)送BSR報文,因為沒有低于時間閾值,報文中RP超時時間為150秒,接收到BSR報文的其他路由器RP超時時間置為150秒。
2.60秒后,下一個BSR報文要發(fā)送,這是BSR上RP超時時間是1秒,低于時間閾值,報文中的RP超時時間為1秒,其他路由器收到該報文后,RP的超時時間改為1秒。
3.1秒后,BSR上的RP和其他路由器上的RP都超時。
因此在端點值為1的情況下,理想情況下各路由器上都能保證RP的同步和對BSR報文不連續(xù)丟失的容忍,但考慮到網(wǎng)絡(luò)延時和設(shè)備處理延時的無法定量,在后一種情況的步驟2發(fā)送BSR報文的時候,有可能本身的RP已經(jīng)超時,這樣BSR報文中就可能不包括這個超時的RP信息,因而RP的超時時間1秒不一定能正確的發(fā)布到PIM-SM的組播域中其他路由器,所以應(yīng)該謹慎使用這個邊界值。
當n=(RP通告報文的發(fā)送間隔時間/2)的時候,即本例中n為30秒的時候,時間閾值為90秒的情況下的過程1.相對時間0秒BSR收到RP的通告報文,BSR上RP超時時間為150秒。
2.相對時間60秒
BSR發(fā)送BSR報文,RP的超時時間為90秒,不小于閾值90秒,故報文中RP的超時時間為150秒,其他路由器收到這個BSR報文,把自身的RP超時時間設(shè)置為150秒。
3.相對時間60+1秒BSR收到新的RP通告報文,RP超時時間重新設(shè)置為150秒。
只要RP和BSR正常,則步驟2、3將一直重復(fù)進行。其他路由器上的RP超時時間一直在90到150秒之間變化,因此本例中n值取30的時候,能夠容忍BSR的偶然非連續(xù)丟失。
接上面步驟3,如果候選RP不再向BSR發(fā)送RP通告報文,BSR上的RP就要超時4.相對時間120秒BSR上RP超時時間為90秒,因為超時時間不小于閾值,故發(fā)送BSR報文,報文中RP的超時時間為150秒。
5.相對時間180秒BSR上RP超時時間30秒,小于閾值90秒,故發(fā)送的BSR報文中RP超時時間設(shè)置為30秒,其他路由器收到該報文后,把超時時間設(shè)置為30秒。
6.相對時間210秒BSR上RP和其他路由器上的RP同時超時。
所以再n值取上限值(RP通告報文發(fā)送時間/2)的時候,依舊能保證RP信息在各路由器上的一致。
因而,從以上的描述中可以看出,該方案的好處是,當BSR報文發(fā)生偶爾丟失的時候,接收BSR報文普通組播路由器能夠容忍這種報文的丟失,而不會引起RP信息的震蕩。
另外,本發(fā)明的優(yōu)選實施例是為說明的目的而描述的,而不是對本發(fā)明的限制。本領(lǐng)域的一般技術(shù)人員應(yīng)該意識到,在不脫離本發(fā)明的的范圍和精神的情況下,不同的改進、增減都是可能的,它們并都為本發(fā)明的權(quán)利要求所限定。
權(quán)利要求
1.一種提高組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性的方法,該方法包括以下步驟1)在需要發(fā)送自舉路由器報文時,自舉路由器取出自身的集合點超時時間;2)自舉路由器對所述取出的集合點超時時間與一預(yù)定時間進行比較;3)當所述取出的集合點超時時間大于或等于所述預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點保持時間;以及4)當所述取出的集合點超時時間小于所述預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點上的本地集合點超時時間。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)定時間通過以下公式獲得預(yù)定時間=集合點通告報文發(fā)送間隔時間+n秒其中n的取值范圍為1到(集合點通告報文發(fā)送間隔時間/2)之間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述n值取10。
4.根據(jù)權(quán)利要求1、2或3中的任何一項權(quán)利要求所述的方法,其特征在于,所述集合點保持時間為PIM-SM協(xié)議允許的時間值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述集合點保持時間為150秒。
6.根據(jù)權(quán)利要求2或3中的任何一項權(quán)利要求所述的方法,其特征在于,所述集合點通告報文發(fā)送間隔時間與所述集合點保持時間存在一定的比例關(guān)系。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述集合點保持時間為所述集合點通告報文發(fā)送間隔時間的2.5倍。
全文摘要
本發(fā)明公開了一種提高組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性的方法,包括1)在需要發(fā)送自舉路由器報文時,自舉路由器取出自身的集合點超時時間;2)自舉路由器對取出的集合點超時時間與一預(yù)定時間進行比較;3)當取出的集合點超時時間大于或等于所述預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點保持時間;以及4)當取出的集合點超時時間小于預(yù)定時間時,自舉路由器將待發(fā)送的自舉路由器報文中的集合點超時時間設(shè)置為集合點上的本地集合點超時時間。本發(fā)明簡單易行,既能克服現(xiàn)有方案中自舉路由器報文丟失造成的組播路由震蕩,又有效地保證了全網(wǎng)集合點信息的一致,從而提高了組播PIM-SM協(xié)議網(wǎng)絡(luò)的健壯性。
文檔編號H04L29/02GK1581870SQ03149999
公開日2005年2月16日 申請日期2003年8月4日 優(yōu)先權(quán)日2003年8月4日
發(fā)明者趙文鵬 申請人:華為技術(shù)有限公司