專利名稱:Ip網(wǎng)絡(luò)中為多播會話建立虛擬分發(fā)網(wǎng)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)通信技術(shù)領(lǐng)域,特別涉及IP網(wǎng)絡(luò)中的多播(Multicast)傳送方法。
技術(shù)背景多播是一種有效的點到多點或多點到多點傳送方法。目前,IP網(wǎng)絡(luò)中提供的主要業(yè)務(wù), 如信息檢索,電子郵件,即時通信等,都是建立數(shù)據(jù)包的單播傳送(即點到點傳送)技術(shù) 之上。而許多新興的業(yè)務(wù),如Internet電視(即IPTV)、大型網(wǎng)絡(luò)會議、大型分布式仿真 等,涉及到大量計算機(jī)的同時交互,如果仍然采用單播,將浪費大量網(wǎng)絡(luò)帶寬資源,并且 性能難以保證。而多播提供了一種有效的點到多點以及多點到多點傳送機(jī)制,是這些業(yè)務(wù) 順利開展的關(guān)鍵。為了支持IP網(wǎng)絡(luò)上的多播,人們提出了許多方案,其中目前得到應(yīng)用的方案主要有兩種IP多播和應(yīng)用層多播。但是,IP多播存在一系列部署和應(yīng)用上的難題如不具備可漸進(jìn)部署的能力,多播業(yè)務(wù)的不可管理和控制,域間多播不具備可擴(kuò)展性等等,這些問題 限制了 IP多播的大規(guī)模部署及應(yīng)用。另一方面,應(yīng)用層多播又難以滿足未來多播業(yè)務(wù)的 需要,如對高速實時視頻廣播業(yè)務(wù)的支持。針對現(xiàn)有IP多播方案存在的問題,本專利的發(fā)明人提出了一種"IP網(wǎng)絡(luò)中基于虛擬分發(fā)網(wǎng)的多播傳送方法"并申請專利(申請?zhí)枮?00710099365. 4)。這種方法如下首先, 在網(wǎng)絡(luò)中為每個多播會話建立一個虛擬分發(fā)網(wǎng);所述的虛擬分發(fā)網(wǎng)由IP網(wǎng)絡(luò)中的多個節(jié)點通過虛鏈路連接而成,其中,該節(jié)點包括參與多播會話的所有用戶主機(jī)和選定的其他節(jié)點;由虛鏈路連接的兩個節(jié)點互稱為對方的虛鄰居;該虛擬分發(fā)網(wǎng)具有一個唯一的IP地 址標(biāo)識,用來區(qū)分一個IP網(wǎng)絡(luò)中的多個虛擬分發(fā)網(wǎng);虛擬分發(fā)網(wǎng)上的每個節(jié)點建立并維 護(hù)一個分發(fā)表,其中每個表項至少包括虛擬分發(fā)網(wǎng)的標(biāo)識、虛鄰居列表、控制數(shù)據(jù)包在 虛鄰居之間的轉(zhuǎn)發(fā)權(quán)限標(biāo)志集合;然后,在虛擬分發(fā)網(wǎng)中,發(fā)送主機(jī)發(fā)送業(yè)務(wù)數(shù)據(jù)時,將 接收主機(jī)的IP地址設(shè)置為虛擬分發(fā)網(wǎng)的IP地址標(biāo)識;虛擬分發(fā)網(wǎng)上的每個節(jié)點對IP數(shù) 據(jù)包進(jìn)行分發(fā),直到IP數(shù)據(jù)包被傳送到虛擬分發(fā)網(wǎng)中的所有接收主機(jī)。上述專利發(fā)明具 有許多優(yōu)點,如支持網(wǎng)絡(luò)層多播的逐步部署、'更好地適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的動態(tài)變化、支持多播 數(shù)據(jù)包的雙向傳送,并提供了一種簡單有效的多播傳送控制方法。這些優(yōu)點有利于網(wǎng)絡(luò)層 多播的部署。但是,上述專利(申請?zhí)枮?00710099365.4)只給出了所要建立的虛擬分發(fā)網(wǎng)的特征, 可'以采用任何方法來建立滿足上述特征描述的虛擬分發(fā)網(wǎng)。 一個實現(xiàn)上述專利中的建立虛 擬分發(fā)網(wǎng)的最簡單的方法就是由網(wǎng)絡(luò)管理員以及用戶直接對參加虛擬分發(fā)網(wǎng)的所有節(jié)點 的分發(fā)表進(jìn)行配置。但是這種手工建立虛擬分發(fā)網(wǎng)的方法存在許多問題第一,這種手工建立的方法不具備擴(kuò)展性。當(dāng)參加多播會話的節(jié)點較少時,還可以通過手工方式來建立虛擬分發(fā)網(wǎng)。當(dāng)參加多播會話的節(jié)點達(dá)到幾百萬時,要求網(wǎng)絡(luò)管理員及 用戶主機(jī)對參加虛擬分發(fā)網(wǎng)的節(jié)點逐一配置是不可接受的。第二,這種手工建立的方法也無法適應(yīng)用戶主機(jī)的動態(tài)性。如果用戶主機(jī)是一起加入 或一次性加入,網(wǎng)絡(luò)管理員可根據(jù)這些用戶主機(jī)的分布來選擇合適的多播路由器以構(gòu)成虛 擬分發(fā)網(wǎng)。但是,在實際多播會話中,用戶主機(jī)是動態(tài)加入和退出的,這就意味著,網(wǎng)絡(luò) 管理員需要根據(jù)用戶主機(jī)的動態(tài)加入和退出來調(diào)整虛擬分發(fā)網(wǎng),這將給網(wǎng)絡(luò)管理員帶來巨 大的任務(wù)量,并且也無法保證虛擬分發(fā)網(wǎng)能夠快速適應(yīng)用戶主機(jī)的變化。此夕卜,上述專利(申請?zhí)枮?00710099365. 4)中還存在另外一個問題,由于采用轉(zhuǎn)發(fā) 權(quán)限標(biāo)志集合來控制多播數(shù)據(jù)包的傳送,虛擬分發(fā)網(wǎng)上的每個節(jié)點除了配置虛鄰居外,還 需要配置一個最大規(guī)模為NXN比特的轉(zhuǎn)發(fā)權(quán)限標(biāo)志集合,其中,N為當(dāng)前節(jié)點的虛鄰居的 個數(shù),這不但增加分發(fā)表項占用的存儲空間,還給虛擬分發(fā)網(wǎng)的建立增加了復(fù)雜性,特別 是當(dāng)虛擬分發(fā)網(wǎng)的規(guī)模較大時。綜上所述,為了保證這種基于虛擬分發(fā)網(wǎng)的多播傳送方法能夠適應(yīng)大規(guī)模的、動態(tài)的 多播會話,對虛擬分發(fā)網(wǎng)的結(jié)構(gòu)進(jìn)行簡化并研究可自動建立虛擬分發(fā)網(wǎng)的方法是急待解決 的問題。發(fā)明內(nèi)容本發(fā)明的目的是為克服已有技術(shù)的不足之處,提供一種簡化的虛擬分發(fā)網(wǎng)結(jié)構(gòu),以及在IP網(wǎng)絡(luò)中自動為多播會話建立這種虛擬分發(fā)網(wǎng)的方法。該方法具有以下優(yōu)點支持網(wǎng) 絡(luò)運營商對多播會話的管理,支持用戶主機(jī)的動態(tài)加入,支持多播的漸進(jìn)部署,保證所建 立的虛擬分發(fā)網(wǎng)能夠有效節(jié)約多播傳送所占用的帶寬資源。本發(fā)明提出的建立虛擬分發(fā)網(wǎng)的方法,其特征在于,所述的虛擬分發(fā)網(wǎng)由多個虛擬分 發(fā)網(wǎng)節(jié)點通過虛鏈路連接而成,所述的多個虛擬分發(fā)網(wǎng)節(jié)點至少包括所有參加多播會話的 用戶主^l和l個具有多播功能的路由器節(jié)點,所述的虛鏈路是指連接虛擬分發(fā)網(wǎng)節(jié)點的邏 輯傳送通道,由虛鏈路連接的兩個節(jié)點互稱為對方的虛鄰居;虛擬分發(fā)網(wǎng)具有一個唯一的 虛擬分發(fā)網(wǎng)標(biāo)識,用來區(qū)分一個IP網(wǎng)絡(luò)中的多個虛擬分發(fā)網(wǎng);在該虛擬分發(fā)網(wǎng)的部分節(jié) 點或全部節(jié)點上建立并維護(hù)一個分發(fā)表,所述的部分節(jié)點至少包括虛擬分發(fā)網(wǎng)上的所有路 由器,所述的分發(fā)表由l個或l個以上分發(fā)表項組成,其中的每個分發(fā)表項對應(yīng)著一個虛 擬分發(fā)網(wǎng)且至少包括下述內(nèi)容虛擬分發(fā)網(wǎng)標(biāo)識、1個或1個以上虛鄰居的IP地址;建立虛擬分發(fā)網(wǎng)的方法包括以下步驟-1)多播會話的發(fā)起者直接或通過一個用戶管理節(jié)點向IP網(wǎng)絡(luò)中的多播會話管理服務(wù) 器提出建立多播會話的請求;所述的多播會話管理服務(wù)器由網(wǎng)絡(luò)管理者設(shè)置,用于負(fù)責(zé)維 護(hù)一個多播會話信息庫;所述的多播會話信息庫由多個表項組成,其中每個表項對應(yīng)一個 多播會話,并包含該多播會話的相關(guān)信息;所述的多播會話的相關(guān)信息包括多播會話的標(biāo) 識,多播會話的發(fā)起者、多播會話的建立時間、多播會話的持續(xù)時間或多播會話對應(yīng)的虛 擬分發(fā)網(wǎng)的標(biāo)識之中的一項或多項;2) 多播會話管理服務(wù)器在收到建立多播會話的請求后,向網(wǎng)絡(luò)管理者轉(zhuǎn)發(fā)請求,由 網(wǎng)絡(luò)管理者決定是否接受該請求,或根據(jù)網(wǎng)絡(luò)的當(dāng)前狀態(tài)和發(fā)起者的請求自動判斷是否接 受該請求,多播會話管理服務(wù)器將對多播會話建立請求的處理結(jié)果直接或通過用戶管理節(jié) 點返回給多播會話的發(fā)起者;3) —旦接受建立多播會話的請求,多播會話管理服務(wù)器將為該多播會話建立一個初 始的虛擬分發(fā)網(wǎng);所述的初始虛擬分發(fā)網(wǎng)至少包括一個節(jié)點,該節(jié)點由多播會話管理服務(wù) 器或網(wǎng)絡(luò)管理員來指定,該初始虛擬分發(fā)網(wǎng)的標(biāo)識由多播會話管理服務(wù)器或其指定的虛擬 分發(fā)網(wǎng)節(jié)點來分配;然后,多播會話管理服務(wù)器將該多播會話的相關(guān)信息保存到多播會話 信息庫,并將該虛擬分發(fā)網(wǎng)的標(biāo)識直接或通過用戶管理節(jié)點返回給多播會話的發(fā)起者;4) 多播會話的發(fā)起者或其用戶管理節(jié)點將虛擬分發(fā)網(wǎng)的標(biāo)識通告給每個參加多播會 話的用戶主機(jī);5) 每個參加多播會話的用戶主機(jī)通過主動方式或被動方式加入到該多播會話所對應(yīng) 的虛擬分發(fā)網(wǎng);所述的主動方式是指首先,用戶主機(jī)獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址;然 后,用戶主機(jī)直接向該虛擬分發(fā)網(wǎng)節(jié)點發(fā)出加入請求消息,該加入請求被傳送到該虛擬分 發(fā)網(wǎng)節(jié)點,或者在傳送過程中被虛擬分發(fā)網(wǎng)上的其他節(jié)點截獲;最后,由該虛擬分發(fā)網(wǎng)節(jié) 點或截獲加入請求的節(jié)點將用戶主機(jī)添加到虛擬分發(fā)網(wǎng)中;所述的被動方式是指首先,用戶主機(jī)將加入多播會話的請求發(fā)送給一個中間節(jié)點, 該中間節(jié)點已經(jīng)獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址;然后,由該中間節(jié)點向虛擬分 發(fā)網(wǎng)的該現(xiàn)有節(jié)點發(fā)出添加用戶主機(jī)的請求,最后,該虛擬分發(fā)網(wǎng)節(jié)點在接收到中間節(jié)點 的添加請求后,將用戶主機(jī)添加到虛擬分發(fā)網(wǎng)中;6) 當(dāng)所有參加多播會話的用戶主機(jī)都加入到該多播會話所對應(yīng)的虛擬分發(fā)網(wǎng)時,虛 擬分發(fā)網(wǎng)即建立完畢。所述的步驟3)中分配給初始虛擬分發(fā)網(wǎng)的標(biāo)識可以是該虛擬分發(fā)網(wǎng)上某個節(jié)點的一 個IP單播地址,所述的步驟5)中用戶主機(jī)或中間節(jié)點獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點 可為直接通過虛擬分發(fā)網(wǎng)的標(biāo)識獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點。所述的步驟3)中還可包括多播會話管理服務(wù)器將虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地 址直接或通過用戶管理節(jié)點返回給多播會話的發(fā)起者,所述的步驟5)中用戶主機(jī)獲取虛擬 分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點可為多播會話的發(fā)起者或用戶管理節(jié)點向每個參加多播會話的 用戶主機(jī)通告虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的IP地址。所述的步驟5)中用戶主機(jī)或多播會話的發(fā)起者或多播用戶管理節(jié)點獲取虛擬分發(fā)網(wǎng) 上的一個現(xiàn)有節(jié)點可為在IP網(wǎng)絡(luò)中設(shè)置一個映射服務(wù)器,用來維護(hù)從虛擬分發(fā)網(wǎng)的標(biāo) 識到虛擬分發(fā)網(wǎng)上一個或多個現(xiàn)有節(jié)點的對應(yīng)關(guān)系,用戶主機(jī)或多播會話的發(fā)起者或用戶 管理節(jié)點査詢該服務(wù)器,來獲取虛擬分發(fā)網(wǎng)的一個現(xiàn)有節(jié)點。所述的步驟5)中某個虛擬分發(fā)網(wǎng)節(jié)點在接收用戶主機(jī)的加入請求或接收到中間節(jié)點的添加請求后,將該用戶主機(jī)添加到虛擬分發(fā)網(wǎng)的方法,可包括如下步驟51) 從接收請求的虛擬分發(fā)網(wǎng)節(jié)點起,在虛擬分發(fā)網(wǎng)上尋找該用戶主機(jī)的初始鄰節(jié)點, 并將添加用戶主機(jī)的請求傳遞給該初始鄰節(jié)點;所述的初始鄰節(jié)點是指虛擬分發(fā)網(wǎng)上最靠 近該用戶主機(jī)的1個路由器節(jié)點;52) 該用戶主機(jī)的初始鄰節(jié)點在IP網(wǎng)絡(luò)中尋找一個具有多播功能且不在該虛擬分發(fā)網(wǎng) 上的中間路由器節(jié)點,所述的中間路由器節(jié)點比初始鄰節(jié)點或其他多播路由器節(jié)點都更靠 近該用戶主機(jī),同時也比初始鄰節(jié)點或其他多播路由器節(jié)點都更靠近該初始鄰節(jié)點的某一 個現(xiàn)有虛鄰居節(jié)點;如果存在中間路由器節(jié)點,則初始鄰節(jié)點將該中間路由器節(jié)點添加為 初始鄰節(jié)點的虛鄰居,并由該中間路由器將該用戶主機(jī)以及該初始鄰節(jié)點的該現(xiàn)有虛鄰居 節(jié)點添加為該中間路由器的虛鄰居,初始鄰節(jié)點則和該現(xiàn)有虛鄰居解除虛鄰居關(guān)系;如果 不存在中間路由器節(jié)點,則初始鄰節(jié)點直接將該用戶主機(jī)添加為初始鄰節(jié)點的虛鄰居。所述的步驟51)中從接收請求的虛擬分發(fā)網(wǎng)節(jié)點起,在虛擬分發(fā)網(wǎng)上尋找該用戶主機(jī) 的初始鄰節(jié)點可為在該虛擬分發(fā)網(wǎng)上,每個接收添加用戶主機(jī)請求的虛擬分發(fā)網(wǎng)節(jié)點在 該虛擬分發(fā)網(wǎng)節(jié)點的虛鄰居中尋找一個更靠近該用戶主機(jī)的路由器節(jié)點,如果存在,則該 虛擬分發(fā)網(wǎng)節(jié)點將添加用戶主機(jī)的請求轉(zhuǎn)交給該更靠近用戶主機(jī)的路由器節(jié)點;如果不存 在,則當(dāng)前接收請求的虛擬分發(fā)網(wǎng)節(jié)點為該用戶主機(jī)的初始鄰節(jié)點。所述的步驟52)中在IP網(wǎng)絡(luò)中尋找一個具有多播功能且不在該虛擬分發(fā)網(wǎng)上的中間 路由器節(jié)點,具體可包括在該初始鄰節(jié)點上,比較該初始鄰節(jié)點到每個虛鄰居的傳送路徑與到該用戶主機(jī)的傳 送路徑,判斷是否存在一個或多個分叉路由器;所述的分叉路由器指的是從初始鄰節(jié)點 到一個特定虛鄰居的傳送路徑和到該用戶主機(jī)的傳送路徑在此分叉路由器之前完全重合, 在此分叉路由器之后不再相同;如果不存在任何分叉路由器,則無法找到中間路由器節(jié)點;如果存在多個分叉路由器, 則選擇重合度最大的分叉路由器,然后,再判斷找到的該分叉路由器是否具有多播功能;如果該分叉路由器具有多播功能,則該分叉路由器即為所要尋找的中間路由器;如果 該分叉路由器不具備多播功能,則尋找該分叉路由器的一個替代的多播路由器;所述的替 代的多播路由器是離該分叉路由器最近的一個多播路由器;如果該替代的多播路由器不在 虛擬分發(fā)網(wǎng)上,則該替代多播路由器即為所要尋找的中間路由器,否則,無法找到中間路 由器。與手工建立虛擬分發(fā)網(wǎng)的方法相比較,本發(fā)明的有益效果包括-實現(xiàn)了虛擬分發(fā)網(wǎng)的自動建立。虛擬分發(fā)網(wǎng)的整個建立過程中可以不需要網(wǎng)絡(luò)管理員 的#與。適應(yīng)用戶主機(jī)的動態(tài)加入。虛擬分發(fā)網(wǎng)的建立是一個逐步生長的過程,而不是一次性 建立的過程。多播會話中每增加一個用戶,虛擬分發(fā)網(wǎng)上即添加相應(yīng)的用戶主機(jī)以及為節(jié) 約帶寬而可能添加的具有多播功能的路由器節(jié)點。保證所建立的虛擬分發(fā)網(wǎng)能夠有效地節(jié)約多播傳送所占用的帶寬資源。在虛擬分發(fā)網(wǎng)的建立過程中,除了添加參與多播會話的用戶主機(jī)外,還會根據(jù)需要添加那些可以有效節(jié) 約多播傳送帶寬的路由器節(jié)點。此外,與現(xiàn)有的IP多播方案相比較,本發(fā)明的有益效果包括支持網(wǎng)絡(luò)運營商對多播會話的管理。由于多播會話將占用網(wǎng)絡(luò)中的大量帶寬資源并要 求在路由器上保存對應(yīng)的狀態(tài)信息,因此,網(wǎng)絡(luò)運營商需要了解當(dāng)前網(wǎng)絡(luò)中的多播會話的 各種信息并對多播會話進(jìn)行管理和計費。多播會話管理服務(wù)器可以為上述管理和計費提供 依據(jù)。支持多播的漸進(jìn)部署。對于網(wǎng)絡(luò)運營商來說,不可能同時將所有的單播路由器都同時 升級或更新為可以支持虛擬分發(fā)網(wǎng)的多播路由器,因此,當(dāng)IP網(wǎng)絡(luò)中只有部分路由器具 有多播功能時,該方法仍可保證虛擬分發(fā)網(wǎng)的順利建立及其多播傳送性能。
圖1為本發(fā)明方法的一種實施示例網(wǎng)絡(luò)的示意圖。圖2為本發(fā)明方法的建立多播會話時的實體交互的示意圖(無用戶管理節(jié)點)。圖3為本發(fā)明方法的多播會話信息庫的示意圖(無用戶管理節(jié)點)。圖4為本發(fā)明方法的虛擬分發(fā)網(wǎng)拓?fù)浣⑦^程的示意圖。圖5為本發(fā)明方法的單播路由器與其替代多播路由器對應(yīng)關(guān)系的示意圖。圖6為本發(fā)明方法的建立多播會話時的實體交互的示意圖(有用戶管理節(jié)點)。圖7為本發(fā)明方法的多播會話信息庫的示意圖(有用戶管理節(jié)點)。
具體實施方式
本發(fā)明的方法結(jié)合附圖及實施例詳細(xì)說明如下本發(fā)明方法的一種實施例的IP網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。該示例網(wǎng)絡(luò)由九臺路由器(R0 R8)、參與多播會話的七臺用戶主機(jī)(A G)和兩臺服務(wù)器(S和U)組成。為簡化起見, 圖1中沒有給出其他不參加多播會話的用戶主機(jī),但不應(yīng)認(rèn)為此IP網(wǎng)絡(luò)中只包含參加多 播會話的用戶主機(jī)。在九臺路由器中,有四臺路由器支持基于虛擬分發(fā)網(wǎng)的多播傳送,分 別是路由器R0、 R3、 R5和R7 (圖中用黑圓圈表示),其他五臺路由器為單播路由器,不支 持多播功能,之所以這樣設(shè)置,是為了演示該虛擬分發(fā)網(wǎng)的建立方法可支持多播的漸進(jìn)部 署。在兩臺服務(wù)器中,S為多播會話管理服務(wù)器,該服務(wù)器的地址由網(wǎng)絡(luò)管理者公開,如 在網(wǎng)絡(luò)管理者設(shè)定的網(wǎng)站上公布,IP網(wǎng)絡(luò)中的任何多播會話的發(fā)起者均可以獲得該服務(wù)器 的地址;U為多播會話的用戶管理節(jié)點,如果該多播會話需要對用戶進(jìn)行管理,那么可以 在多播會話中使用該用戶管理節(jié)點,而如果該多播會話面對所有用戶開放,可以不必在多 播舍話中使用用戶管理節(jié)點,在下面的實施例中,將分別給出一個未采用用戶管理節(jié)點的 方案和一個采用了用戶管理節(jié)點的方案。在圖l的網(wǎng)絡(luò)中,每條鏈路都給出長度(用數(shù)字 l或2來表明),這些鏈路長度信息將用于確定每個節(jié)點上的單播路由(包括距離向量路由 協(xié)議如RIP或者鏈路狀態(tài)路由協(xié)議如0SPF中),本實施例假定單播路由均為沿最短路徑進(jìn) 行傳送。這些單播路由信息將用于虛擬分發(fā)網(wǎng)的構(gòu)造中,以保證所建立的虛擬分發(fā)網(wǎng)能夠保證多播分組的最佳傳送性能。假定多播會話的發(fā)起者為Tom, Tom當(dāng)前使用的主機(jī)為A。以下內(nèi)容描述了在這個IP 網(wǎng)絡(luò)中實施本發(fā)明方法的過程,分為兩個實施例無用戶管理節(jié)點和有用戶管理節(jié)點。這 些描述只是示意性的說明本發(fā)明,而不應(yīng)被視作對本發(fā)明內(nèi)容的限制。實施例l.無用戶管理節(jié)點下的虛擬分發(fā)網(wǎng)建立方法虛擬分發(fā)網(wǎng)的建立步驟如下1) 如圖2所示,會話發(fā)起者Tom (所在的用戶主機(jī)為A)向多播會話管理服務(wù)器S發(fā) 送一個建立多播會話的請求。該請求信息中除了攜帶會話發(fā)起者的地址外,還可以攜帶其 他信息,例如,所要建立的多播會話的一些特征,如預(yù)計該多播會話的用戶規(guī)模有多大, 該多播會話的用戶可能分布的網(wǎng)絡(luò)區(qū)域,該多播會話預(yù)計要持續(xù)的時間,該多播會話準(zhǔn)備 支持的業(yè)務(wù)(音頻、視頻)等等。2) 多播會話管理服務(wù)器S收到該建立多播會話的請求后,可以根據(jù)該建立多播會話的 請求信息以及當(dāng)前網(wǎng)絡(luò)資源是否滿足所要建立的多播會話等,自動對該請求進(jìn)行處理,來 確定是否接受該請求, 一旦決定接收請求,則向多播會話的發(fā)起者返回處理結(jié)果。如果不 同意建立多播會話請求,則可以給出具體的原因,如發(fā)起者無權(quán)利,或網(wǎng)絡(luò)資源不支持等。 本實施例,假定多播會話管理服務(wù)器S同意建立多播會話,并將該結(jié)果返回給會話發(fā)起者 Tora,如圖2所示。3) 多播會話管理服務(wù)器S在同意Tom的請求后,將為該新的多播會話建立一個初始的 虛擬分發(fā)網(wǎng)。這個初始的虛擬分發(fā)網(wǎng)上的節(jié)點只包括一個路由器節(jié)點RO,該節(jié)點是由多播 會話管理服務(wù)器S指定的。為了建立這個初始的虛擬分發(fā)網(wǎng),S直接向路由器RO發(fā)送一個 控制消息,請求RO為該多播會話分配一個虛擬分發(fā)網(wǎng)標(biāo)識并加入到該虛擬分發(fā)網(wǎng)。R0在 收到該控制消息后,首先,從自己預(yù)留的IP單播地址空間中分配一個IP地址(166. 111.64.3)作為新建的虛擬分發(fā)網(wǎng)的標(biāo)識。然后,R0在分發(fā)表中(如果沒有分發(fā)表, 則建立一個)加入一個與該虛擬分發(fā)網(wǎng)對應(yīng)的分發(fā)表項,其虛擬分發(fā)網(wǎng)標(biāo)識為 166.111.64.3,其虛鄰居列表為空。最后,RO將與該多播會話對應(yīng)的虛擬分發(fā)網(wǎng)的標(biāo)識返 回給多播會話管理服務(wù)器S。多播會話管理服務(wù)器S收到RO的回應(yīng)信息后,將該多播會話 對應(yīng)的信息添加到多播會話信息庫,如圖3所示,該多播會話信息庫由若干表項組成,其 中第二個表項對應(yīng)剛建立的這個多播會話,表項的內(nèi)容包括了多播會話標(biāo)識,多播會話的 發(fā)起者,多播會話的啟動時間,多播會話的持續(xù)時間,該多播會話所對應(yīng)的虛擬分發(fā)網(wǎng)的 標(biāo)識。最后,多播會話管理服務(wù)器將該虛擬分發(fā)網(wǎng)的標(biāo)識(166.111.64.3)返回給多播會 話的發(fā)起者Tom,如圖2所示。4) 多播會話的發(fā)起者Tom在獲得虛擬分發(fā)網(wǎng)的標(biāo)識后,可以將此虛擬分發(fā)網(wǎng)標(biāo)識通過 各種方式通告給任何想要參加該多播會話的用戶,如通過網(wǎng)站、郵箱等等。本實施例假設(shè) 其他用戶主機(jī)B G通過某個網(wǎng)站得知了該多播會話對應(yīng)的虛擬分發(fā)網(wǎng)標(biāo)識。5) 每個參加該多播會話的用戶主機(jī)均可采用主動方式或被動方式加入該多播會話所 對應(yīng)的虛擬分發(fā)網(wǎng),本實施例假定用戶主機(jī)均利用主動方式來加入該多播會話在主動方式中,用戶主機(jī)首先獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址,由于在前面的步驟3)中本實施例采用了一個單播地址來標(biāo)識虛擬分發(fā)網(wǎng),該單播地址同時標(biāo)識了該 虛擬分發(fā)網(wǎng)的主節(jié)點RO。因此,這些用戶主機(jī)可以由虛擬分發(fā)網(wǎng)的標(biāo)識直接得到虛擬分發(fā) 網(wǎng)的一個現(xiàn)有節(jié)點R0的標(biāo)識。當(dāng)然,當(dāng)采用其他方式來標(biāo)識虛擬分發(fā)網(wǎng)時,用戶主機(jī)可 以采用其他方式來獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點,如多播會話管理服務(wù)器S在建立初 始虛擬分發(fā)網(wǎng)時,直接將虛擬分發(fā)網(wǎng)上的一個節(jié)點的地址返回給多播會話的發(fā)起者,再由 該發(fā)起者來通知各參加多播會話的用戶主機(jī)。又或者在網(wǎng)絡(luò)中設(shè)置一個映射服務(wù)器,來保 存虛擬分發(fā)網(wǎng)的標(biāo)識與其現(xiàn)有節(jié)點之間的對應(yīng)關(guān)系,用戶主機(jī)直接向該映射服務(wù)器發(fā)送查 詢請求。上述方法的一個特例就是,采用域名來標(biāo)識虛擬分發(fā)網(wǎng),那么通過域名解析的方 法可以獲得該虛擬分發(fā)網(wǎng)上的一個或多個現(xiàn)有節(jié)點的IP地址。每個用戶主機(jī)直接向R0發(fā)送加入請求,該加入請求的數(shù)據(jù)包的源地址為用戶主機(jī)的 地址,目的地址為虛擬分發(fā)網(wǎng)的標(biāo)識(同時也是RO的單播地址)。在路由器對加入請求的 處理方式上,本實施例存在兩種情況 一種情況是虛擬分發(fā)網(wǎng)上的多播路由器啟動了截獲 功能,即當(dāng)接收到每個數(shù)據(jù)包時,路由器要檢查其目的地址是否是當(dāng)前多播路由器加入的 某個虛擬分發(fā)網(wǎng)的地址(即檢査是否存在與該目的地址對應(yīng)的分發(fā)表項),在這種情況下, 該加入請求數(shù)據(jù)包可能在送到R0之前被虛擬分發(fā)網(wǎng)上的其他路由器截獲并進(jìn)行處理;另 一種情況是虛擬分發(fā)網(wǎng)上的多播路由器沒有啟動截獲功能,那么加入請求將被傳送到路由 器R0。本實施例假定虛擬分發(fā)網(wǎng)上的每個多播路由器都啟用了截獲功能。此外,本實施例 還假定虛擬分發(fā)網(wǎng)上的每個路由器上可以獲得網(wǎng)絡(luò)的拓?fù)湫畔?例如,這些路由器上運行 的單播路由協(xié)議是0SPF或IS-IS時),從而計算出到每個用戶主機(jī)的最短路徑。當(dāng)虛擬分發(fā)網(wǎng)上的路由器截獲到每個用戶主機(jī)的加入請求后,可以采用以下過程來添 加該用戶主機(jī)首先,從接收請求的虛擬分發(fā)網(wǎng)節(jié)點起,在虛擬分發(fā)網(wǎng)上尋找該用戶主機(jī) 的初始鄰節(jié)點,并將添加用戶主機(jī)的請求傳遞給該初始鄰節(jié)點;所述的初始鄰節(jié)點是指虛 擬分發(fā)網(wǎng)上最靠近該用戶主機(jī)的1個路由器節(jié)點;然后,該用戶主機(jī)的初始鄰節(jié)點在IP 網(wǎng)絡(luò)中尋找一個具有多播功能且不在該虛擬分發(fā)網(wǎng)上的中間路由器節(jié)點,所述的中間路由 器節(jié)點比初始鄰節(jié)點或其他多播路由器節(jié)點都更靠近該用戶主機(jī),同時也比初始鄰節(jié)點或 其他多播路由器節(jié)點都更靠近該初始鄰節(jié)點的某一個現(xiàn)有虛鄰居節(jié)點;如果存在中間路由 器節(jié)點,則初始鄰節(jié)點將該中間路由器節(jié)點添加為初始鄰節(jié)點的虛鄰居,并由該中間路由 器將該用戶主機(jī)以及該初始鄰節(jié)點的該現(xiàn)有虛鄰居節(jié)點添加為該中間路由器的虛鄰居,初 始鄰節(jié)點則和該現(xiàn)有虛鄰居解除虛鄰居關(guān)系;.如果不存在中間路由器節(jié)點,則初始鄰節(jié)點直接將該用戶主機(jī)添加為初始鄰節(jié)點的虛鄰居。下面將以每個用戶主機(jī)為例來介紹添加用戶主機(jī)的過程用戶主機(jī)A的加入當(dāng)前虛擬分發(fā)網(wǎng)上只有一個路由器節(jié)點,即RO。用戶主機(jī)A的加 入請求將被傳送到R0。 R0收到該請求后,由于虛鄰居中不存在路由器節(jié)點,因此,R0即 為用戶主機(jī)A的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)A的路由器節(jié)點。由于不存 在任何其他虛鄰居,RO找不到中間路由器節(jié)點,直接將用戶主機(jī)A添加為虛鄰居,虛擬分 發(fā)網(wǎng)的拓?fù)淙鐖D4 (a)所示。用戶主機(jī)B的加入與用戶主機(jī)A的加入類似,用戶主機(jī)B的加入請求將被傳送到R0。顯然,R0收到該請求后,由于虛鄰居中不存在路由器節(jié)點,因此,RO即為用戶主機(jī)B的 初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)B的路由器節(jié)點。在路由器R0上,開始尋 找一個到達(dá)用戶主機(jī)A和用戶主機(jī)B的中間路由器節(jié)點。R0比較到A的傳送路徑RO->A和 到新用戶主機(jī)B的傳送路徑R0-〉R1->R2-〉B,這兩個傳送路徑不存在任何分叉路由器,因 此,RO找不到中間路由器節(jié)點,R0直接將用戶主機(jī)B添加為RO的虛鄰居,虛擬分發(fā)網(wǎng)的 拓?fù)淙鐖D4 (b)所示。用戶主機(jī)C的加入與用戶主機(jī)B的加入類似,用戶主機(jī)C的加入請求將被傳送到R0。 RO收到該請求后,由于RO的虛鄰居中不存在路由器節(jié)點,因此,RO即為用戶主機(jī)C的初 始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)C的路由器節(jié)點。此時,在路由器RO上,開 始尋找一個中間路由器節(jié)點。R0發(fā)現(xiàn)到虛鄰居A或虛鄰居B的傳送路徑與到新用戶主機(jī)C 的傳送路徑均不存在任何分叉路由器,因此,RO找不到中間路由器,這時RO直接將用戶 主機(jī)C添加為RO的虛鄰居,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4 (c)所示。用戶主機(jī)D的加入與用戶主機(jī)C的加入類似,用戶主機(jī)D的加入請求將被傳送到R0。 顯然,由于虛擬分發(fā)網(wǎng)上不存在其他的路由器節(jié)點,RO為用戶主機(jī)D的初始鄰節(jié)點,即虛 擬分發(fā)網(wǎng)上最靠近用戶主機(jī)D的路由器節(jié)點。此時,RO開始尋找中間路由器節(jié)點,在路由 器R0上,發(fā)現(xiàn)到虛鄰居A或虛鄰居B的傳送路徑與到新用戶主機(jī)D的傳送路徑之間均不 存在分叉節(jié)點,但到現(xiàn)有虛鄰居C的傳送路徑R0-〉R3->R4->R5-〉C和到新用戶主機(jī)D的傳 送路徑R0-〉R3-〉R4-〉R5-〉R8->D之間存在著一個分叉路由器R5,且該分叉路由器支持基于 虛擬分發(fā)網(wǎng)的多播功能,因此,該分叉路由器為所要尋找的中間路由器。R0將R5添加為 自己的虛鄰居,R5則將新用戶主機(jī)D以及R0的特定虛鄰居C添加為虛鄰居,最后RO解除 同原有虛鄰居C之間的相鄰關(guān)系,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4 (d)所示。用戶主機(jī)E的加入用戶主機(jī)E的加入請求將沿著最短路徑向R0傳送E-〉R8-> R5->R4->R3->R0,由于虛擬分發(fā)網(wǎng)上的所有多播路由器啟動了截獲功能,因此,路由器R5 將截獲該加入請求。在虛擬分發(fā)網(wǎng)上,R5從其虛鄰居中找不到一個更靠近用戶主機(jī)E的路 由器節(jié)點,因此,R5為用戶主機(jī)E的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近E的多播路由器。 在R5上,開始尋找中間路由器。在路由器R5上,比較到現(xiàn)有虛鄰居C的傳送路徑和到用 戶主機(jī)E的傳送路徑,發(fā)現(xiàn)不存在交叉節(jié)點,R5再比較到現(xiàn)有虛鄰居D的傳送路徑 R5-〉R8-〉D和到該新用戶主機(jī)E的傳送路徑R5-〉R8-〉E。顯然,在這兩條傳送路徑上,存 在一個分叉路由器R8。但是,分叉路由器R8并不具備多播功能,因此,R5繼續(xù)尋找一個 與R8距離最近的多播路由器,作為R8的替代分發(fā)節(jié)點。本實施例假定每個單播路由器的 替代節(jié)點在建立虛擬分發(fā)網(wǎng)之前就已經(jīng)確定,并通告給網(wǎng)絡(luò)中的所有多播路由器節(jié)點,該 替代關(guān)系如圖5所示。R8的替代多播路由器為R5,由于R5己經(jīng)在虛擬分發(fā)網(wǎng)上,因此, R5沒有找到中間路由器節(jié)點。R5直接將用戶主機(jī)E添加為R5的虛鄰居,虛擬分發(fā)網(wǎng)的拓 撲如圖4 (e)所示。用戶主機(jī)F的加入用戶主機(jī)F的加入請求將沿著最短路徑向R0傳送F-〉R7-〉 R4-〉R3-〉R0,由于中途并沒有任何路由器位于虛擬分發(fā)網(wǎng)上,該加入請求將被傳送到R0。 在虛擬分發(fā)網(wǎng)上,R0發(fā)現(xiàn)當(dāng)前的虛鄰居中的路由器R5到用戶主機(jī)F的距離比R0到用戶主 機(jī)F的距離更短,因此,R0將添加用戶主機(jī)F的請求遞交給路由器R5,在路由器R5從其虛鄰居中找不到比R5更靠近用戶主機(jī)F的路由器節(jié)點,因此,路由器R5即是用戶主機(jī)F 的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上距離用戶主機(jī)F最近的路由器節(jié)點。在路由器R5上,開 始尋找中間路由器節(jié)點。R5分別將其到虛鄰居R0、 C、 D、 E的傳送路徑與到該新用戶主機(jī) F的傳送路徑R5->R4->R7-〉F進(jìn)行比較,顯然,在到虛鄰居R0的路徑R5->R4->R3->R0與 到F的路徑R5-〉R4-〉R7-〉F之間存在一個分叉路由器R4,但是R4并不具備多播功能。從 圖5中可得到R4的替代多播路由器為R3,且R3不在當(dāng)前虛擬分發(fā)網(wǎng)上,因此,R3為R5 找到的一個中間路由器節(jié)點。R5將R3添加為自身的虛鄰居,R3將R0和F添加為自己的 虛鄰居,最后R5解除同R0的虛鄰居關(guān)系,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4 (f)所示。用戶主機(jī)G的加入用戶主機(jī)G的加入請求將沿這最短路徑向RO傳送G->R6-> R3-〉R0,由于虛擬分發(fā)網(wǎng)上的多播路由器啟動了截獲功能,因此,路由器R3將截獲該加 入請求。在虛擬分發(fā)網(wǎng)上,R3發(fā)現(xiàn)其虛鄰居中沒有被它更靠近G的路由器,因此,R3為 用戶主機(jī)G的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)G的路由器節(jié)點。R3開始尋找 中間路由器節(jié)點。在路由器R3上,分別比較R3到現(xiàn)有虛鄰居R0、R5、F的傳送路徑R3-〉R0、 R3->R4->R5、 R3-〉R4-〉R7->F和到該用戶主機(jī)G的路徑R3-〉R6-〉G,發(fā)現(xiàn)都不存在分叉路 由器,因此,R3找不到中間路由器節(jié)點,因此,R3直接將用戶主機(jī)G添加為R3的虛鄰居, 至此,虛擬分發(fā)網(wǎng)建立完畢,如圖4 (g)所示。在上述虛擬分發(fā)網(wǎng)節(jié)點添加用戶主機(jī)的過程中,還可以使用其他方法來尋找初始鄰節(jié) 點和中間路由器,例如, 一種尋找初始鄰節(jié)點的方法就是設(shè)置一個服務(wù)器記錄該虛擬分發(fā) 網(wǎng)的當(dāng)前拓?fù)?,每個接收到請求的虛擬分發(fā)網(wǎng)節(jié)點則查詢該服務(wù)器,獲取離待添加用戶主 機(jī)最近的路由器節(jié)點。而一種尋找中間路由器節(jié)點的方法也通過查詢初始鄰節(jié)點向IP 網(wǎng)絡(luò)種所有具有多播功能但不在該虛擬分發(fā)網(wǎng)上的路由器發(fā)送查詢信息,每個接收到該信 息的路由器均可返回各自到新用戶主機(jī)及初始鄰節(jié)點的所有虛鄰居的距離,然后從中找出 最大程度上節(jié)約帶寬的路由器作為中間路由器。實施例2.有用戶管理節(jié)點下的虛擬分發(fā)網(wǎng)建立方法在本實施例下,服務(wù)器U將作為一個用戶管理節(jié)點,來管理所有參加多播的用戶主機(jī), 所有用戶主機(jī)在參加多播會話前,都在該服務(wù)器U上注冊并登陸。 虛擬分發(fā)網(wǎng)的建立步驟如下l)如圖6所示,會話發(fā)起者Tom (所在的用戶主機(jī)為A)通過用戶管理節(jié)點U向多播 會話管理服務(wù)器S發(fā)送一個建立多播會話的請求,此時,從會話管理服務(wù)器的角度來看, 用戶管理節(jié)點U是多播會話發(fā)起者的代理。該請求信息中除了攜帶會話發(fā)起者的代理的地 址外,還可以攜帶其他信息,例如,所要建立的多播會話的一些特征,如預(yù)計該多播會話 的用戶規(guī)模有多大,該多播會話的用戶可能分布的網(wǎng)絡(luò)區(qū)域,該多播會話預(yù)計要持續(xù)的時 間,該多播會話準(zhǔn)備支持的業(yè)務(wù)(音頻、視頻)等等。.2)多播會話管理服務(wù)器S收到該建立多播會話的請求后,可以根據(jù)該建立多播會話的 請求信息以及當(dāng)前網(wǎng)絡(luò)資源是否滿足所要建立的多播會話等,自動對該請求進(jìn)行處理,來 確定是否接受該請求, 一旦決定接收請求,則向多播會話的發(fā)起者的代理返回處理結(jié)果。 如果不同意建立多播會話請求,則可以給出具體的原因,如發(fā)起者無權(quán)利,或網(wǎng)絡(luò)資源不 支持等。本實施例,假定多播會話管理服務(wù)器S同意建立多播會話,并將該結(jié)果返回用戶管理節(jié)點U,并由U進(jìn)一步返回給會話發(fā)起者Tom,如圖6所示。3) 多播會話管理服務(wù)器S在同意建立多播會話的請求后,將為該新的多播會話建立一 個初始的虛擬分發(fā)網(wǎng)。這個初始的虛擬分發(fā)網(wǎng)上的節(jié)點只包括一個路由器節(jié)點RO,該節(jié)點 是由多播會話管理服務(wù)器S指定的。為了建立這個初始的虛擬分發(fā)網(wǎng),S直接向路由器RO 發(fā)送一個控制消息,請求RO為該多播會話分配一個虛擬分發(fā)網(wǎng)標(biāo)識并加入到該虛擬分發(fā) 網(wǎng)。RO在收到該控制消息后,首先,從自己預(yù)留的IP單播地址空間中分配一個IP地址(166. 111. 64.3)作為新建的虛擬分發(fā)網(wǎng)的標(biāo)識。然后,RO在分發(fā)表中(如果沒有分發(fā)表, 則建立一個)加入一個與該虛擬分發(fā)網(wǎng)對應(yīng)的分發(fā)表項,其虛擬分發(fā)網(wǎng)標(biāo)識為 166.111.64.3,其虛鄰居列表為空。最后,RO將與該多播會話對應(yīng)的虛擬分發(fā)網(wǎng)的標(biāo)識返 回給多播會話管理服務(wù)器S。多播會話管理服務(wù)器S收到RO的回應(yīng)信息后,將該多播會話 對應(yīng)的信息添加到多播會話信息庫,如圖7中多播會話信息庫的第2個表項對應(yīng)著該多播 會話,與圖3不同的是,此時多播會話的發(fā)起者記錄的是用戶管理節(jié)點。最后,多播會話 管理服務(wù)器再將該虛擬分發(fā)網(wǎng)的標(biāo)識(166.111.64.3)返回給用戶管理節(jié)點U以及多播會 話的發(fā)起者Tom,如圖6所示。4) 用戶管理節(jié)點U在獲得虛擬分發(fā)網(wǎng)的標(biāo)識后,可以將此虛擬分發(fā)網(wǎng)標(biāo)識直接通告給 當(dāng)前想要參加該多播會話的用戶A G。5) 每個參加該多播會話的用戶主機(jī)均可采用主動方式或被動方式加入該多播會話所 對應(yīng)的虛擬分發(fā)網(wǎng),本實施例假定用戶主機(jī)均利用被動方式來加入該多播會話在被動方式中,每個參加多播會話的用戶主機(jī)A G依次向用戶管理節(jié)點U提出加入 多播會話的請求,在用戶管理節(jié)點U上,由虛擬分發(fā)網(wǎng)的標(biāo)識獲取虛擬分發(fā)網(wǎng)的一個現(xiàn)有 節(jié)點RO,然后,用戶管理節(jié)點U依次向虛擬分發(fā)網(wǎng)的主節(jié)點RO發(fā)送一個添加請求,請求 添加各用戶主機(jī)。RO收到這些添加請求后的添加過程如下RO添加用戶主機(jī)A: RO收到該請求后,由于虛鄰居中沒有任何路由器節(jié)點,因此,RO 即為用戶主機(jī)A的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)A的路由器節(jié)點。由于不 存在任何其他虛鄰居,RO找不到中間路由器節(jié)點,直接將用戶主機(jī)A添加為虛鄰居,虛擬 分發(fā)網(wǎng)的拓?fù)淙鐖D4(a)所示。RO添加用戶主機(jī)B: RO收到該請求后,由于虛鄰居中沒有任何路由器節(jié)點,因此,RO 即為用戶主機(jī)B的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)B的路由器節(jié)點。在路由 器RO上,開始尋找一個到達(dá)用戶主機(jī)A和用戶主機(jī)B的中間路由器節(jié)點。RO比較到A的 傳送路徑RO-〉A(chǔ)和到新用戶主機(jī)B的傳送路徑R0->R1->R2-〉B,這兩個傳送路徑不存在任 何分叉路由器,因此,RO找不到中間路由器節(jié)點,RO直接將用戶主機(jī)B添加為RO的虛鄰 居,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4(b)所示。RO添加用戶主機(jī)C: RO收到該請求后,由于虛鄰居中沒有任何路由器節(jié)點,因此,R0 即為用戶主機(jī)C的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)C的路由器節(jié)點。此時, 在路由器RO上,開始尋找一個中間路由器節(jié)點。R0發(fā)現(xiàn)到虛鄰居A或虛鄰居B的傳送路 徑與到新用戶主機(jī)C的傳送路徑均不存在任何分叉路由器,因此,RO找不到中間路由器, 這時R0直接將用戶主機(jī)C添加為R0的虛鄰居,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4(c)所示。RO添加用戶主機(jī)D: RO收到該請求后,由于虛鄰居中沒有任何路由器節(jié)點,因此,R0即為用戶主機(jī)D的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上最靠近用戶主機(jī)D的路由器節(jié)點。此時, RO開始尋找中間路由器節(jié)點,在路由器R0上,發(fā)現(xiàn)到虛鄰居A或虛鄰居B的傳送路徑與 到新用戶主機(jī)D的傳送路徑之間均不存在分叉節(jié)點,但是從R0到現(xiàn)有虛鄰居C的傳送路 徑RO-〉R3->R4-〉R5-〉C和到新用戶主機(jī)D的傳送路徑RO-〉R3-〉R4-〉R5_〉R8->D之間存在著 一個分叉路由器R5,且該分叉路由器支持基于虛擬分發(fā)網(wǎng)的多播功能,因此,該分叉路由 器為所要尋找的中間路由器。R0將R5添加為自己的虛鄰居,R5則將新用戶主機(jī)D以及R0 的特定虛鄰居C添加為虛鄰居,最后RO解除同原有虛鄰居C之間的相鄰關(guān)系,虛擬分發(fā) 網(wǎng)的拓?fù)淙鐖D4(d)所示。RO添加用戶主機(jī)E: RO收到該請求后,發(fā)現(xiàn)其虛鄰居中的路由器R5到用戶主機(jī)E的 距離比RO到用戶主機(jī)E的距離更短,因此,R0將添加用戶主機(jī)E的請求傳遞給路由器R5, R5從其虛鄰居中找不到更靠近用戶主機(jī)E的路由器節(jié)點,因此,R5為用戶主機(jī)E的初始 鄰節(jié)點。在R5上,開始尋找中間路由器。在路由器R5上,比較到現(xiàn)有虛鄰居C的傳送路 徑和到用戶主機(jī)E的傳送路徑,發(fā)現(xiàn)不存在交叉節(jié)點,R5再比較到現(xiàn)有虛鄰居D的傳送路 徑R5-〉R8-〉D和到該新用戶主機(jī)E的傳送路徑R5-〉R8-〉E。顯然,在這兩條傳送路徑上, 存在一個分叉路由器R8。但是,分叉路由器R8并不具備多播功能,因此,R5繼續(xù)尋找一 個與R8距離最近的多播路由器,作為R8的替代分發(fā)節(jié)點。本實施例假定每個單播路由器 的替代的多播路由器在建立虛擬分發(fā)網(wǎng)之前就已經(jīng)確定,并通告給網(wǎng)絡(luò)中的所有多播路由 器節(jié)點,該替代關(guān)系如圖5所示。R8的替代多播路由器為R5,由于R5已經(jīng)在虛擬分發(fā)網(wǎng) 上,因此,R5沒有找到中間路由器節(jié)點。R5直接將用戶主機(jī)E添加為R5的虛鄰居,虛擬 分發(fā)網(wǎng)的拓?fù)淙鐖D4(e)所示。RO添加用戶主機(jī)F: R0收到請求后,發(fā)現(xiàn)其虛鄰居中的路由器R5到用戶主機(jī)F的距 離比RO到用戶主機(jī)F的距離更短,因此,R0將添加用戶主機(jī)F的請求遞交給路由器R5, 在路由器R5從其虛鄰居中找不到比R5更靠近用戶主機(jī)F的路由器節(jié)點,因此,路由器R5 即是用戶主機(jī)F的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上距離用戶主機(jī)F最近的路由器節(jié)點。在路 由器R5上,開始尋找中間路由器節(jié)點。R5分別將從R5到虛鄰居R0、 C、 D、 E的傳送路徑 與到該新用戶主機(jī)F的傳送路徑R5-〉R4-〉R7-〉F進(jìn)行比較,顯然,在到虛鄰居R0的路徑 R5->R4->R3-〉R0與到F的路徑R5-〉R4-〉R7-〉F之間存在一個分叉路由器R4,但是R4并不 具備多播功能。從圖5中可得到R4的替代多播路由器為R3,且R3不在當(dāng)前虛擬分發(fā)網(wǎng)上, 因此,R3為R5找到的一個中間路由器節(jié)點。R5將R3添加為自身的虛鄰居,R3將R0和F 添加為自己的虛鄰居,最后R5解除同R0的虛鄰居關(guān)系,虛擬分發(fā)網(wǎng)的拓?fù)淙鐖D4(f)所示。RO添加用戶主機(jī)G: RO收到請求后,犮現(xiàn)其虛鄰居中的路由器R3到用戶主機(jī)G的距 離比RO到用戶主機(jī)G的距離更短,因此,R0將添加用戶主機(jī)G的請求遞交給路由器R3, 在路由器R3從其虛鄰居中找不到比R3更靠近用戶主機(jī)G的路由器節(jié)點,因此,路由器R3 即是用戶主機(jī)G的初始鄰節(jié)點,即虛擬分發(fā)網(wǎng)上距離用戶主機(jī)G最近的路由器節(jié)點。R3開 始尋找中間路由器節(jié)點。在路由器R3上,分別比較R3到現(xiàn)有虛鄰居R0、 R5、 F的傳送路 徑R3->R0、 R3->R4-〉R5、 R3-〉R4-〉R7-〉F和到該用戶主機(jī)G的路徑R3-〉R6-〉G,發(fā)現(xiàn)都不 存在分叉路由器,因此,R3找不到中間路由器節(jié)點,因此,R3直接將用戶主機(jī)G添加為 R3的虛鄰居,至此,虛擬分發(fā)網(wǎng)建立完畢,如圖4 (g)所示。
權(quán)利要求
1、一種IP網(wǎng)絡(luò)中為多播會話建立虛擬分發(fā)網(wǎng)的方法,其特征在于,所述的虛擬分發(fā)網(wǎng)由多個虛擬分發(fā)網(wǎng)節(jié)點通過虛鏈路連接而成,所述的多個虛擬分發(fā)網(wǎng)節(jié)點至少包括所有參加多播會話的用戶主機(jī)和1個具有多播功能的路由器節(jié)點,所述的虛鏈路是指連接虛擬分發(fā)網(wǎng)節(jié)點的邏輯傳送通道,由虛鏈路連接的兩個節(jié)點互稱為對方的虛鄰居;虛擬分發(fā)網(wǎng)具有一個唯一的虛擬分發(fā)網(wǎng)標(biāo)識,用來區(qū)分一個IP網(wǎng)絡(luò)中的多個虛擬分發(fā)網(wǎng);在該虛擬分發(fā)網(wǎng)的部分節(jié)點或全部節(jié)點上建立并維護(hù)一個分發(fā)表,所述的部分節(jié)點至少包括虛擬分發(fā)網(wǎng)上的所有路由器,所述的分發(fā)表由1個或1個以上分發(fā)表項組成,其中的每個分發(fā)表項對應(yīng)著一個虛擬分發(fā)網(wǎng)且至少包括下述內(nèi)容虛擬分發(fā)網(wǎng)標(biāo)識、1個或1個以上虛鄰居的IP地址;建立虛擬分發(fā)網(wǎng)的方法包括以下步驟1)多播會話的發(fā)起者直接或通過一個用戶管理節(jié)點向IP網(wǎng)絡(luò)中的多播會話管理服務(wù)器提出建立多播會話的請求;所述的多播會話管理服務(wù)器由網(wǎng)絡(luò)管理者設(shè)置,用于負(fù)責(zé)維護(hù)一個多播會話信息庫;所述的多播會話信息庫由多個表項組成,其中每個表項對應(yīng)一個多播會話,并包含該多播會話的相關(guān)信息;所述的多播會話的相關(guān)信息包括多播會話的標(biāo)識,多播會話的發(fā)起者、多播會話的建立時間、多播會話的持續(xù)時間或多播會話對應(yīng)的虛擬分發(fā)網(wǎng)的標(biāo)識之中的一項或多項;2)多播會話管理服務(wù)器在收到建立多播會話的請求后,向網(wǎng)絡(luò)管理者轉(zhuǎn)發(fā)請求,由網(wǎng)絡(luò)管理者決定是否接受該請求,或根據(jù)網(wǎng)絡(luò)的當(dāng)前狀態(tài)和發(fā)起者的請求自動判斷是否接受該請求,多播會話管理服務(wù)器將對多播會話建立請求的處理結(jié)果直接或通過用戶管理節(jié)點返回給多播會話的發(fā)起者;3)一旦接受建立多播會話的請求,多播會話管理服務(wù)器將為該多播會話建立一個初始的虛擬分發(fā)網(wǎng);所述的初始虛擬分發(fā)網(wǎng)至少包括一個節(jié)點,該節(jié)點由多播會話管理服務(wù)器或網(wǎng)絡(luò)管理員來指定,該初始虛擬分發(fā)網(wǎng)的標(biāo)識由多播會話管理服務(wù)器或其指定的虛擬分發(fā)網(wǎng)節(jié)點來分配;然后,多播會話管理服務(wù)器將該多播會話的相關(guān)信息保存到多播會話信息庫,并將該虛擬分發(fā)網(wǎng)的標(biāo)識直接或通過用戶管理節(jié)點返回給多播會話的發(fā)起者;4)多播會話的發(fā)起者或其用戶管理節(jié)點將虛擬分發(fā)網(wǎng)的標(biāo)識通告給每個參加多播會話的用戶主機(jī);5)每個參加多播會話的用戶主機(jī)通過主動方式或被動方式加入到該多播會話所對應(yīng)的虛擬分發(fā)網(wǎng);所述的主動方式是指首先,用戶主機(jī)獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址;然后,用戶主機(jī)直接向該虛擬分發(fā)網(wǎng)節(jié)點發(fā)出加入請求消息,該加入請求被傳送到該虛擬分發(fā)網(wǎng)節(jié)點,或者在傳送過程中被虛擬分發(fā)網(wǎng)上的其他節(jié)點截獲;最后,由該虛擬分發(fā)網(wǎng)節(jié)點或截獲加入請求的節(jié)點將用戶主機(jī)添加到虛擬分發(fā)網(wǎng)中;所述的被動方式是指首先,用戶主機(jī)將加入多播會話的請求發(fā)送給一個中間節(jié)點,該中間節(jié)點已經(jīng)獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址;然后,由該中間節(jié)點向虛擬分發(fā)網(wǎng)的該現(xiàn)有節(jié)點發(fā)出添加用戶主機(jī)的請求,最后,該虛擬分發(fā)網(wǎng)節(jié)點在接收到中間節(jié)點的添加請求后,將用戶主機(jī)添加到虛擬分發(fā)網(wǎng)中;6)當(dāng)所有參加多播會話的用戶主機(jī)都加入到該多播會話所對應(yīng)的虛擬分發(fā)網(wǎng)時,虛擬分發(fā)網(wǎng)即建立完畢。
2、 如權(quán)利要求l所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步驟3)中分配 給初始虛擬分發(fā)網(wǎng)的標(biāo)識是該虛擬分發(fā)網(wǎng)上某個節(jié)點的一個IP單播地址,所述的步驟5) 中用戶主機(jī)或中間節(jié)點獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點為直接通過虛擬分發(fā)網(wǎng)的標(biāo)識 獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點。
3、 如權(quán)利要求l所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步驟3)中還包 括多播會話管理服務(wù)器將虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點的地址直接或通過用戶管理節(jié)點 返回給多播會話的發(fā)起者,所述的步驟5)中用戶主機(jī)獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點 為多播會話的發(fā)起者或用戶管理節(jié)點向每個參加多播會話的用戶主機(jī)通告虛擬分發(fā)網(wǎng)上 的一個現(xiàn)有節(jié)點的IP地址。
4、 如權(quán)利要求1所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步驟5)中用戶 主機(jī)或多播會話的發(fā)起者或多播用戶管理節(jié)點獲取虛擬分發(fā)網(wǎng)上的一個現(xiàn)有節(jié)點為在IP 網(wǎng)絡(luò)中設(shè)置一個映射服務(wù)器,用來維護(hù)從虛擬分發(fā)網(wǎng)的標(biāo)識到虛擬分發(fā)網(wǎng)上一個或多個現(xiàn) 有節(jié)點的對應(yīng)關(guān)系,用戶主機(jī)或多播會話的發(fā)起者或用戶管理節(jié)點查詢該服務(wù)器,來獲取 虛擬分發(fā)網(wǎng)的 一個現(xiàn)有節(jié)點。
5、 如權(quán)利要求l、 2、 3或4所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步 驟5)中某個虛擬分發(fā)網(wǎng)節(jié)點在接收用戶主機(jī)的加入請求或接收到中間節(jié)點的添加請求后, 將該用戶主機(jī)添加到虛擬分發(fā)網(wǎng)的方法,包括如下步驟(51) 從接收請求的虛擬分發(fā)網(wǎng)節(jié)點起,在虛擬分發(fā)網(wǎng)上尋找該用戶主機(jī)的初始鄰節(jié)點, 并將添加用戶主機(jī)的請求傳遞給該初始鄰節(jié)點;所述的初始鄰節(jié)點是指虛擬分發(fā)網(wǎng)上最靠 近該用戶主機(jī)的1個路由器節(jié)點;(52) 該用戶主機(jī)的初始鄰節(jié)點在IP網(wǎng)絡(luò)中尋找一個具有多播功能且不在該虛擬分發(fā)網(wǎng) 上的中間路由器節(jié)點,所述的中間路由器節(jié)點比初始鄰節(jié)點或其他多播路由器節(jié)點都更靠 近該用戶主機(jī),同時也比初始鄰節(jié)點或其他多播路由器節(jié)點都更靠近該初始鄰節(jié)點的某一 個現(xiàn)有虛鄰居節(jié)點;如果存在中間路由器節(jié)點,則初始鄰節(jié)點將該中間路由器節(jié)點添加為 初始鄰節(jié)點的虛鄰居,并由該中間路由器將該用戶主機(jī)以及該初始鄰節(jié)點的該現(xiàn)有虛鄰居 節(jié)點添加為該中間路由器的虛鄰居,初始鄰節(jié)點則和該現(xiàn)有虛鄰居解除虛鄰居關(guān)系;如果 不存在中間路由器節(jié)點,則初始鄰節(jié)點直接將該用戶主機(jī)添加為初始鄰節(jié)點的虛鄰居。
6、 如權(quán)利要求5所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步驟51)中從接收請求的虛擬分發(fā)網(wǎng)節(jié)點起,在虛擬分發(fā)網(wǎng)上尋找該用戶主機(jī)的初始鄰節(jié)點為在該虛擬分發(fā)網(wǎng)上,每個接收添加用戶主機(jī)請求的虛擬分發(fā)網(wǎng)節(jié)點在該虛擬分發(fā)網(wǎng)節(jié)點的虛鄰居 中尋找一個更靠近該用戶主機(jī)的路由器節(jié)點,如果存在,則該虛擬分發(fā)網(wǎng)節(jié)點將添加用戶主機(jī)的請求轉(zhuǎn)交給該更靠近用戶主機(jī)的路由器節(jié)點;如果不存在,則當(dāng)前接收請求的虛擬 分發(fā)網(wǎng)節(jié)點為該用戶主機(jī)的初始鄰節(jié)點。
7、 如權(quán)利要求5所述的虛擬分發(fā)網(wǎng)的建立方法,其特征在于,所述的步驟52)中在 IP網(wǎng)絡(luò)中尋找一個具有多播功能且不在該虛擬分發(fā)網(wǎng)上的中間路由器節(jié)點,具體包括在該初始鄰節(jié)點上,比較該初始鄰節(jié)點到每個虛鄰居的傳送路徑與到該用戶主機(jī)的傳 送路徑,判斷是否存在一個或多個分叉路由器;所述的分叉路由器指的是從初始鄰節(jié)點 到一個特定虛鄰居的傳送路徑和到該用戶主機(jī)的傳送路徑在此分叉路由器之前完全重合, 在此分叉路由器之后不再相同;如果不存在任何分叉路由器,則無法找到中間路由器節(jié)點;如果存在多個分叉路由器, 則選擇重合度最大的分叉路由器,然后,再判斷找到的該分叉路由器是否具有多播功能;如果該分叉路由器具有多播功能,則該分叉路由器即為所要尋找的中間路由器;如果 該分叉路由器不具備多播功能,則尋找該分叉路由器的一個替代的多播路由器;所述的替 代的多播路由器是離該分叉路由器最近的一個多播路由器;如果該替代的多播路由器不在 虛擬分發(fā)網(wǎng)上,則該替代多播路由器即為所要尋找的中間路由器,否則,無法找到中間路 由器。
全文摘要
本發(fā)明涉及IP網(wǎng)絡(luò)中為多播會話建立虛擬分發(fā)網(wǎng)的方法,屬于計算機(jī)通信技術(shù)領(lǐng)域。該方法包括,多播會話的發(fā)起者向網(wǎng)絡(luò)中的多播會話管理服務(wù)器提出建立多播會話的請求;多播會話管理服務(wù)器一旦接收請求,即為該多播會話建立一個初始的虛擬分發(fā)網(wǎng),并將其標(biāo)識返回給多播會話的發(fā)起者;多播會話的發(fā)起者將該虛擬分發(fā)網(wǎng)標(biāo)識進(jìn)一步通告給參加多播會話的用戶主機(jī);每個參加該多播會話的用戶主機(jī)可以通過主動方式加入該虛擬分發(fā)網(wǎng)或通過被動方式添加到該虛擬分發(fā)網(wǎng)。本發(fā)明簡化了虛擬分發(fā)網(wǎng)的結(jié)構(gòu),支持虛擬分發(fā)網(wǎng)的自動建立,支持網(wǎng)絡(luò)運營商對多播會話的管理、支持多播的漸進(jìn)部署并保證多播傳送的性能。
文檔編號H04L12/18GK101247311SQ20081010237
公開日2008年8月20日 申請日期2008年3月21日 優(yōu)先權(quán)日2008年3月21日
發(fā)明者姜紅旗, 林孝康 申請人:清華大學(xué)