專利名稱:在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法,特別是介質(zhì)訪問子層的多播,如IEEE 802.3以太網(wǎng)的多播注冊和資源預(yù)留,根據(jù)本發(fā)明,接收者能夠通過發(fā)送單個消息來達到多播注冊和資源預(yù)留的目的,從而能夠快速、高效地提供多播服務(wù)質(zhì)量的支持。
背景技術(shù):
現(xiàn)有的以太網(wǎng)多播協(xié)議主要有IEEE 802.1D中規(guī)定的多播注冊協(xié)議GMRP(GARP多播管理協(xié)議)和Cisco公司的CGMP(Cisco組管理協(xié)議),其中GMRP基于IEEE 802.1D中定義的通用屬性注冊協(xié)議GARP,它的運行過程如下想要注冊成為某個多播組G成員的設(shè)備D生成一個GMRP報文,并把該報文發(fā)到它所在的局域網(wǎng)上,其中a)報文的目的地址為GMRP多播地址01-80-C2-00-00-20。
b)報文包含多播組G的介質(zhì)訪問子層(MAC)地址。
c)當(dāng)設(shè)備D所在局域網(wǎng)的網(wǎng)橋收到該GMRP報文之后,把收到該報文的端口標(biāo)記為多播組G的轉(zhuǎn)發(fā)端口,并把該報文向其他所有處于活動狀態(tài)的端口轉(zhuǎn)發(fā)。
其它網(wǎng)橋也作類似處理,這樣,該GMRP報文就類似廣播報文那樣被發(fā)到整個局域網(wǎng)上。
CGMP是Cisco公司提出的,用于Cisco網(wǎng)橋和路由器之間交換二層和三層多播注冊信息的協(xié)議。當(dāng)Cisco路由器收到三層的多播注冊消息后,用CGMP協(xié)議通知Cisco的交換機,這樣建立三層多播組的同時也在二層建立了多播組。
GMRP和CGMP只提供多播注冊,不提供資源預(yù)留。
IEEE的駐地以太網(wǎng)RSE研究小組最近提出了簡單預(yù)留協(xié)議SRP,該協(xié)議的主要目的是為同步流提供資源預(yù)留。本申請和SRP的主要不同之處在于,SRP在多播注冊的時候不進行資源是否滿足需求的檢查,只有發(fā)送者開始發(fā)送數(shù)據(jù)之后才知道帶寬是否不足;本申請在多播注冊的時候同時進行資源檢查,只有當(dāng)資源滿足需求時才進行多播注冊。
在現(xiàn)有技術(shù)中,只包含多播注冊的技術(shù),如GMRP和CGMP等,均不能提供服務(wù)質(zhì)量的保證,由于目前越來越多的應(yīng)用如視頻播放、VoIP有著嚴格的帶寬或延遲要求,因此在以太網(wǎng)中提供服務(wù)質(zhì)量保證勢在必行。
簡單預(yù)留協(xié)議SRP在多播注冊的時候不進行資源是否滿足需求的檢查,只有發(fā)送者開始發(fā)送數(shù)據(jù)之后才知道帶寬是否不足,這樣會造成網(wǎng)絡(luò)狀態(tài)的不一致性。對于有服務(wù)質(zhì)量需求的流來說,一旦被接納,則說明該流的服務(wù)質(zhì)量一定能夠得到保證。而SRP協(xié)議不具有這種特征,即使多播請求被接納,也不一定能夠提供相應(yīng)的質(zhì)量保證,這使得SRP協(xié)議不適合為以太網(wǎng)提供服務(wù)質(zhì)量保證。
為了解決以太網(wǎng)中多播服務(wù)質(zhì)量的保證問題,我們提出了一種新的綜合多播和資源預(yù)留的解決方案。該方案中,接收者可以通過發(fā)送單個消息來達到多播注冊和資源預(yù)留的目的,從而能夠快速,高效地提供多播服務(wù)質(zhì)量的支持。
發(fā)明內(nèi)容本發(fā)明的目的是提出一種在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法,根據(jù)本發(fā)明,接收者能夠通過發(fā)送單個消息來達到多播注冊和資源預(yù)留的目的,從而能夠快速、高效地提供多播服務(wù)質(zhì)量的支持。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明,提出了一種在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法,所述方法包括以下步驟當(dāng)多播數(shù)據(jù)的接收者要加入多播組時,所述接收者生成多播加入消息,并向多播數(shù)據(jù)的發(fā)送者發(fā)送所述多播加入消息;當(dāng)接收者與發(fā)送者之間的多播數(shù)據(jù)轉(zhuǎn)發(fā)路徑上的網(wǎng)橋接收到所述多播加入消息時,判斷所述網(wǎng)橋是否存在與所述多播加入消息相對應(yīng)的多播表項;在所述網(wǎng)橋不存在與所述多播加入消息相對應(yīng)的多播表項的情況下,所述網(wǎng)橋進一步檢測是否有足夠的資源滿足多播加入消息的資源請求;如果存在足夠的資源,則所述網(wǎng)橋創(chuàng)建針對所述多播加入消息的多播表項,并接受所述多播加入消息且繼續(xù)向多播數(shù)據(jù)的發(fā)送者轉(zhuǎn)發(fā);否則,則拒絕所述多播加入消息。
優(yōu)選地,所述方法還包括步驟在所述網(wǎng)橋存在與所述多播加入消息相對應(yīng)的多播表項的情況下,所述網(wǎng)橋判斷所述多播表項的轉(zhuǎn)發(fā)端口列表是否包含接收所述多播加入消息的端口,如果斷定所述轉(zhuǎn)發(fā)端口列表不包含接收所述多播加入消息的端口,則在轉(zhuǎn)發(fā)端口列表中創(chuàng)建所述端口,并在所述端口處為所述多播加入消息預(yù)留資源。
優(yōu)選地,所述方法還包括步驟當(dāng)多播數(shù)據(jù)的接收者要離開所述多播組時,所述接收者生成多播離開消息,并向所述多播數(shù)據(jù)的發(fā)送者發(fā)送所述多播離開消息;當(dāng)接收者與發(fā)送者之間的多播數(shù)據(jù)轉(zhuǎn)發(fā)路徑上的網(wǎng)橋接收到所述多播離開消息時,判斷所述網(wǎng)橋是否存在與所述多播離開消息相對應(yīng)的多播表項;在所述網(wǎng)橋存在與所述多播離開消息相對應(yīng)的多播表項的情況下,將接收所述多播離開消息的端口從所述多播表項的所述轉(zhuǎn)發(fā)列表中刪除,并將所述多播離開消息繼續(xù)向多播數(shù)據(jù)的發(fā)送者轉(zhuǎn)發(fā)。
優(yōu)選地,在將接收所述多播離開消息的端口從所述多播表項的所述轉(zhuǎn)發(fā)列表中刪除的步驟之后,還包括步驟如果經(jīng)過刪除后的轉(zhuǎn)發(fā)列表為空,則刪除與所述轉(zhuǎn)發(fā)列表相對應(yīng)的多播表項。
優(yōu)選地,所述拒絕所述多播加入消息的步驟包括由所述網(wǎng)橋產(chǎn)生針對所述多播加入消息的否定應(yīng)答并向所述接收者轉(zhuǎn)發(fā)所述否定應(yīng)答。
優(yōu)選地,當(dāng)網(wǎng)橋接收到否定應(yīng)答時,將所述否定應(yīng)答向自身多播表項中的所有轉(zhuǎn)發(fā)端口進行轉(zhuǎn)發(fā)。
優(yōu)選地,接收到針對所述多播加入消息的否定應(yīng)答的網(wǎng)橋從其自身中刪除與所述多播加入消息相對應(yīng)的多播表項。
優(yōu)選地,在網(wǎng)橋接收到所述多播離開消息之后,所述網(wǎng)橋釋放為與所述多播離開消息相對應(yīng)的多播數(shù)據(jù)預(yù)留的資源。
本發(fā)明使以太網(wǎng)系統(tǒng)具有了多播資源預(yù)留的能力。由于本發(fā)明把多播注冊和資源預(yù)留結(jié)合在一起,因此大大降低了網(wǎng)絡(luò)中需要傳遞的消息數(shù)目以及網(wǎng)絡(luò)設(shè)備需要維護的狀態(tài)數(shù)目。另外,綜合多播和資源預(yù)留的解決方案還有助于降低網(wǎng)絡(luò)中狀態(tài)不一致的比率。
通過參考以下結(jié)合附圖對所采用的優(yōu)選實施例的詳細描述,本發(fā)明的上述目的、優(yōu)點和特征將變得顯而易見,其中圖1是示出了網(wǎng)絡(luò)拓撲圖;圖2是示出了設(shè)備R1發(fā)送多播加入消息的示意圖;圖3是示出了網(wǎng)橋B2建立多播表項,并轉(zhuǎn)發(fā)多播加入消息的示意圖;圖4是示出了網(wǎng)橋B1建立多播表項,并轉(zhuǎn)發(fā)多播加入消息的示意圖;圖5是示出了設(shè)備R1接收肯定應(yīng)答消息的示意圖;圖6是示出了設(shè)備R3發(fā)送多播加入消息的示意圖;圖7是示出了網(wǎng)橋B3建立多播表項,并轉(zhuǎn)發(fā)多播加入消息的示意圖;圖8是示出了設(shè)備R3接收肯定應(yīng)答消息的示意圖;圖9是示出了設(shè)備R1發(fā)送多播離開消息的示意圖;圖10是示出了網(wǎng)橋B2刪除端口狀態(tài)和多播表項,并轉(zhuǎn)發(fā)多播離開消息的示意圖;圖11是示出了網(wǎng)橋B1刪除端口狀態(tài)示意圖;以及圖12是示出了全網(wǎng)狀態(tài)的定期刷新的示意圖。
具體實施方式為了在以太網(wǎng)中提供服務(wù)質(zhì)量保證,提出了根據(jù)本發(fā)明的綜合多播和資源預(yù)留的方法,該方法包括以下幾個部分。
以太網(wǎng)網(wǎng)橋的多播變量定義網(wǎng)橋使用多播表項來記錄多播組的注冊和資源預(yù)留信息。每一個表項所包含的變量如下√接收端口即該多播組的上游網(wǎng)橋所對應(yīng)的端口。上游的控制信息和多播數(shù)據(jù)都應(yīng)該來自接收端口。
√轉(zhuǎn)發(fā)端口列表一組端口。當(dāng)網(wǎng)橋接收到來自上游的多播數(shù)據(jù)時,應(yīng)該把該數(shù)據(jù)向轉(zhuǎn)發(fā)端口列表中的所有端口進行轉(zhuǎn)發(fā)。
√刷新定時器(RTimer)控制著網(wǎng)橋向上游定期發(fā)送刷新消息的定時器。當(dāng)RTimer超時后,網(wǎng)橋向上游發(fā)送刷新消息。
√狀態(tài)表明該表項當(dāng)前所處的狀態(tài)。其中■“等待狀態(tài)”表明網(wǎng)橋已經(jīng)為該多播組建立了多播表項,但它還沒有收到來自上游網(wǎng)橋的加入確認信息;■“完成狀態(tài)”表明網(wǎng)橋已經(jīng)為該多播組建立了多播表項,且它已經(jīng)收到來自上游網(wǎng)橋的加入確認信息。
√轉(zhuǎn)發(fā)端口列表中的每個端口也對應(yīng)著一個定時器,即端口超時定時器(PTimer)。當(dāng)PTimer超時后,網(wǎng)橋則把該端口從轉(zhuǎn)發(fā)端口列表中刪除。
網(wǎng)絡(luò)中傳遞的消息定義多播加入消息接收者使用多播加入消息來通知網(wǎng)橋和發(fā)送者它想要接收某類多播數(shù)據(jù)。除此外,接收者和網(wǎng)橋還定期發(fā)送多播消息,從而保持上游網(wǎng)橋和發(fā)送者的狀態(tài)。
除了要加入的多播組的信息外,多播加入消息中還包括資源請求信息,以便網(wǎng)橋或發(fā)送者能夠根據(jù)該信息進行資源預(yù)留。
多播離開消息接收者和網(wǎng)橋使用多播離開消息通知上游網(wǎng)橋和發(fā)送者它們不想再接收某類多播數(shù)據(jù)。
肯定應(yīng)答消息發(fā)送者或網(wǎng)橋使用肯定應(yīng)答消息通知接收者已經(jīng)成功加入多播組否定應(yīng)答消息發(fā)送者或網(wǎng)橋使用否定應(yīng)答消息通知接收者加入多播組失敗以太網(wǎng)網(wǎng)橋的行為定義處理多播加入消息當(dāng)網(wǎng)橋接收到多播加入消息后,首先檢測自己是否有和該消息對應(yīng)的表項。如果沒有找到對應(yīng)的表項,或者接收到多播加入消息的端口不在該表項的轉(zhuǎn)發(fā)端口列表中,則網(wǎng)橋進一步檢測是否有足夠的資源滿足多播加入消息的資源請求。根據(jù)檢測結(jié)果,網(wǎng)橋做如下操作如果網(wǎng)橋沒有足夠的資源滿足多播加入消息的資源請求,則該網(wǎng)橋生成一個否定應(yīng)答消息,把該消息發(fā)往多播加入消息的發(fā)送者,并丟棄加入消息。
如果網(wǎng)橋有足夠的資源,則該網(wǎng)橋的行為取決于網(wǎng)橋是否有對應(yīng)表項,以及該表項的狀態(tài),具體的來說 如果網(wǎng)橋沒有對應(yīng)表項,則創(chuàng)建一個表項,其中表項的狀態(tài)為“等待”,表項的接收端口為多播加入消息的目的MAC地址對應(yīng)端口,表項的轉(zhuǎn)發(fā)端口列表中包含且只包含接收多播加入消息的端口。表項創(chuàng)建以后,網(wǎng)橋為轉(zhuǎn)發(fā)端口列表中的每個端口啟動一個定時器(PTimer),并在端口為該多播組保留資源。最后,網(wǎng)橋把該多播加入消息向多播加入消息的目的MAC地址對應(yīng)端口進行轉(zhuǎn)發(fā)。
如果網(wǎng)橋包含對應(yīng)表項,且該表項的狀態(tài)為“等待”,則該網(wǎng)橋檢查在該表項的轉(zhuǎn)發(fā)端口列表是否已經(jīng)包含接收多播加入消息的端口。如果不包含,則網(wǎng)橋把該端口加入到轉(zhuǎn)發(fā)端口列表中,啟動該端口的定時器,并在端口為該多播組保留資源;如果包含,則該網(wǎng)橋重啟該端口的定時器。最后,網(wǎng)橋該多播加入消息向多播加入消息的目的MAC地址對應(yīng)端口進行轉(zhuǎn)發(fā)。
如果網(wǎng)橋包含對應(yīng)表項,且該表項的狀態(tài)為“完成”,則該網(wǎng)橋檢查在該表項的轉(zhuǎn)發(fā)端口列表是否已經(jīng)包含接收多播加入消息的端口。
如果不包含,則網(wǎng)橋把該端口加入到轉(zhuǎn)發(fā)端口列表中,啟動該端口的定時器,并在端口為該多播組保留資源。接著,該網(wǎng)橋生成一個肯定應(yīng)答消息,并把該消息發(fā)往多播加入消息的發(fā)送者; 如果包含,則該網(wǎng)橋重啟該端口的定時器。
處理多播離開消息當(dāng)網(wǎng)橋接收到多播離開消息后,它首先檢測自己是否有和該消息對應(yīng)的表項。并根據(jù)結(jié)果做以下操作。
如果網(wǎng)橋沒有對應(yīng)表項,或者接收多播離開消息的端口不在對應(yīng)表項的轉(zhuǎn)發(fā)端口列表中,則丟棄該多播離開消息; 如果網(wǎng)橋包含對應(yīng)表項,且接收多播離開消息的端口在對應(yīng)表項的轉(zhuǎn)發(fā)端口列表中,則該網(wǎng)橋從轉(zhuǎn)發(fā)端口列表中刪除該端口,并釋放在該端口上為該多播組保留的資源。如果刪除后轉(zhuǎn)發(fā)端口列表為空,則意味著目前已經(jīng)沒有設(shè)備需要網(wǎng)橋保留該多播組的注冊信息,因此網(wǎng)橋刪除該表項,并把多播離開消息向該消息的目的MAC地址對應(yīng)端口進行轉(zhuǎn)發(fā)。
處理肯定應(yīng)答消息當(dāng)網(wǎng)橋接收到肯定應(yīng)答消息后,它首先檢測自己是否有和該消息對應(yīng)的表項。并根據(jù)結(jié)果做以下操作。
如果網(wǎng)橋沒有對應(yīng)表項,或者接收多播離開消息的端口和對應(yīng)表項的接收端口不一致,則丟棄該多播離開消息;
如果網(wǎng)橋?qū)?yīng)表項的狀態(tài)為“等待”,且接收多播離開消息的端口和對應(yīng)表項的接收端口相同,則網(wǎng)橋把該表項的狀態(tài)改為“完成”,并啟動刷新定時器RTimer。最后,該網(wǎng)橋把肯定應(yīng)答消息向該消息的目的MAC地址對應(yīng)端口進行轉(zhuǎn)發(fā)。
如果網(wǎng)橋?qū)?yīng)表項的狀態(tài)為“完成”,且接收多播離開消息的端口和對應(yīng)表項的接收端口相同,則網(wǎng)橋檢查該消息的目的MAC地址是否是自己的MAC地址,如果不是,該網(wǎng)橋把肯定應(yīng)答消息向該消息的目的MAC地址對應(yīng)端口進行轉(zhuǎn)發(fā)。
處理否定應(yīng)答消息當(dāng)網(wǎng)橋接收到肯定應(yīng)答消息后,它首先檢測自己是否有和該消息對應(yīng)的表項。并根據(jù)結(jié)果做以下操作。
如果網(wǎng)橋沒有對應(yīng)表項,或者接收多播離開消息的端口和對應(yīng)表項的接收端口不一致,則丟棄該多播離開消息; 如果網(wǎng)橋包含對應(yīng)表項,且接收多播離開消息的端口和對應(yīng)表項的接收端口相同,則該網(wǎng)橋把該消息向?qū)?yīng)表項的轉(zhuǎn)發(fā)端口列表中的所有端口轉(zhuǎn)發(fā),并刪除該表項,釋放所有相關(guān)的資源。
處理時鐘超時當(dāng)定時器PTimer超時后,網(wǎng)橋的行為和從該定時器對應(yīng)端口收到定時器對應(yīng)表項的多播離開消息相同。
當(dāng)定時器RTimer超時后,網(wǎng)橋重新啟動RTimer,并向RTimer對應(yīng)表項的多播組的發(fā)送者發(fā)送多播加入消息。該消息的目的地址為多播組發(fā)送者的MAC地址,源地址為網(wǎng)橋的MAC地址。
發(fā)送者的行為定義處理多播加入消息當(dāng)發(fā)送者接收到多播加入消息后,首先檢測自己是否有和該消息對應(yīng)的表項。如果沒有找到對應(yīng)的表項,則發(fā)送者丟棄該消息。不做任何操作。
如果發(fā)送者有對應(yīng)表項,且接收到多播加入消息的端口在該表項的轉(zhuǎn)發(fā)端口列表中,則發(fā)送者重啟該端口對應(yīng)的PTimer。
如果發(fā)送者有對應(yīng)表項,且接收到多播加入消息的端口不在該表項的轉(zhuǎn)發(fā)端口列表中,則進一步檢測是否有足夠的資源滿足多播加入消息的資源請求。根據(jù)檢測結(jié)果,做如下操作√如果發(fā)送者沒有足夠的資源滿足多播加入消息的資源請求,則生成一個否定應(yīng)答消息,把該消息發(fā)往多播加入消息的發(fā)送者,并丟棄加入消息。
√如果發(fā)送者有足夠的資源,則網(wǎng)橋把該端口加入到轉(zhuǎn)發(fā)端口列表中,啟動該端口的定時器PTimer,并在端口為該多播組保留資源。接著,該發(fā)送者生成一個肯定應(yīng)答消息,并把該消息發(fā)往接收者。
處理多播離開消息當(dāng)發(fā)送者接收到多播離開消息后,首先檢測自己是否有和該消息對應(yīng)的表項。如果沒有找到對應(yīng)的表項,則發(fā)送者丟棄該消息。不做任何操作。
如果發(fā)送者有對應(yīng)表項,且接收到多播加入消息的端口在該表項的轉(zhuǎn)發(fā)端口列表中,則該網(wǎng)橋從轉(zhuǎn)發(fā)端口列表中刪除該端口,并釋放在該端口上為該多播組保留的資源。
如果發(fā)送者有對應(yīng)表項,且接收到多播加入消息的端口不在該表項的轉(zhuǎn)發(fā)端口列表中,則發(fā)送者丟棄該消息。不做任何操作。
處理肯定應(yīng)答消息當(dāng)發(fā)送者接收到肯定應(yīng)答消息后,丟棄該消息,不做任何操作。
處理否定應(yīng)答消息當(dāng)發(fā)送者接收到否定應(yīng)答消息后,丟棄該消息,不做任何操作。
接收者的行為定義處理多播加入消息當(dāng)接收者接收到多播加入消息后,丟棄該消息,不做任何操作。
處理多播離開消息當(dāng)接收者接收到多播離開消息后,丟棄該消息,不做任何操作。
處理肯定應(yīng)答消息當(dāng)接收者接收到肯定應(yīng)答消息后,啟動RTimer,并準(zhǔn)備接收多播數(shù)據(jù)。
處理否定應(yīng)答消息當(dāng)接收者接收到否定應(yīng)答消息后,刪除相應(yīng)的多播表項。
a.發(fā)明的實施例我們使用圖1中的拓撲來詳細說明本發(fā)明的實施過程,圖中詳細給出了網(wǎng)橋的每個端口(用小圓圈表示)。為了能夠更清楚地表示資源預(yù)留,端口后面還用多個長方形格子給出了該端口資源的占用情況。格子的顏色為深色則表示資源已經(jīng)被預(yù)留,否則表示該資源可用。
設(shè)備加入多播組當(dāng)接收者R1想要接收多播組1的數(shù)據(jù)時,它生成一個多播加入消息,消息中包括該多播數(shù)據(jù)的多播組信息,以及需要請求的資源,并把該多播加入消息發(fā)送給多播數(shù)據(jù)的發(fā)送者,如圖2所示。
當(dāng)接收者R1所在子網(wǎng)的網(wǎng)橋B2接收到該多播加入消息后,按照處理規(guī)則對該消息進行處理。由于B2目前沒有該多播表項,且B2的端口p2.2有足夠的資源,因此B2創(chuàng)建該表項,把端口p2.1作為該表項的接收端口,并把端口p2.2添加到轉(zhuǎn)發(fā)端口列表中,并在端口p2.2上為該多播組保留資源;最后,網(wǎng)橋B2把該消息通過端口p2.1進行轉(zhuǎn)發(fā)。如圖3所示。
當(dāng)網(wǎng)橋B1接收到該多播加入消息后,按照處理規(guī)則對該消息進行處理。其處理過程和B2類似,即添加多播表項,把端口p1.1作為接收端口,把端口p1.2添加到轉(zhuǎn)發(fā)端口列表中,并保留資源,并通過端口p1.1轉(zhuǎn)發(fā)該消息。如圖4所示。
當(dāng)發(fā)送者S1接收到該多播加入消息后,首先檢測是否有足夠的資源滿足多播加入消息的資源請求。由于發(fā)送者有足夠的資源,因此把該端口加入到轉(zhuǎn)發(fā)端口列表中,啟動該端口的定時器PTimer,并在端口為該多播組保留資源。接著,發(fā)送者生成一個肯定應(yīng)答消息,并把該消息發(fā)往接收者??隙☉?yīng)答消息經(jīng)過網(wǎng)橋B1和B2,最終到達接收者R1。如圖5所示。
當(dāng)另一個接收者R3想要加入多播組時,它同樣生成一個多播加入消息,并把該多播加入消息發(fā)送給多播數(shù)據(jù)的發(fā)送者。如圖6所示。
當(dāng)接收者R3所在子網(wǎng)的網(wǎng)橋B3接收到該多播加入消息后,由于B3目前沒有該多播表項,且B3的端口p3.2有足夠的資源,因此B3創(chuàng)建該表項,把端口p3.1作為該表項的接收端口,并把端口p3.2添加到轉(zhuǎn)發(fā)端口列表中,并在端口p3.2上為該多播組保留資源;最后,網(wǎng)橋B3把該消息通過端口p3.1進行轉(zhuǎn)發(fā)。如圖7所示。
當(dāng)網(wǎng)橋B1接收到該多播加入消息后,檢測端口p1.3上是否有足夠的資源滿足多播加入消息的資源請求。由于B1有足夠的資源,因此把該端口加入到轉(zhuǎn)發(fā)端口列表中,啟動該端口的定時器PTimer,并在端口為該多播組保留資源。由于B1已經(jīng)有該多播表項,因此B1直接回復(fù)肯定應(yīng)答消息,而無需繼續(xù)向上轉(zhuǎn)發(fā)。肯定應(yīng)答消息經(jīng)過網(wǎng)橋B3,最終到達接收者R3。如圖8所示。
設(shè)備離開多播組當(dāng)設(shè)備R1想要離開網(wǎng)絡(luò)時,它生成一個多播離開消息,消息中包括該多播數(shù)據(jù)的多播組信息,并把該多播加入消息發(fā)送給多播數(shù)據(jù)的發(fā)送者,如圖9所示。
當(dāng)接收者R1所在子網(wǎng)的網(wǎng)橋B2接收到該多播離開消息后,把端口p2.2從轉(zhuǎn)發(fā)端口列表中刪除。由于刪除后轉(zhuǎn)發(fā)端口列表為空,因此網(wǎng)橋B2刪除多播表項,并把該消息通過端口p2.1進行轉(zhuǎn)發(fā),如圖10所示。
當(dāng)網(wǎng)橋B1接收到該多播加入消息后,把端口p1.2從轉(zhuǎn)發(fā)端口列表中刪除。由于刪除后轉(zhuǎn)發(fā)端口列表還包含p1.3,因此網(wǎng)橋B1并不轉(zhuǎn)發(fā)該消息,如圖11所示。
狀態(tài)的定期刷新為了使得本方法能夠適應(yīng)網(wǎng)絡(luò)拓撲變更和設(shè)備當(dāng)機等意外情況,轉(zhuǎn)發(fā)端口列表中的每個端口都有對應(yīng)的定時器。如果一段時間該端口沒有收到多播加入消息,則定時器超時,從而網(wǎng)橋可以把相應(yīng)端口從轉(zhuǎn)發(fā)端口列表中刪除。為了防止正常情況下定時器超時,除發(fā)送者外所有多播樹上的成員都需要定期向上游設(shè)備發(fā)送多播加入消息,如圖12所示。
本發(fā)明使以太網(wǎng)系統(tǒng)具有了多播資源預(yù)留的能力。由于本發(fā)明把多播注冊和資源預(yù)留結(jié)合在一起,因此大大降低了網(wǎng)絡(luò)中需要傳遞的消息數(shù)目以及網(wǎng)絡(luò)設(shè)備需要維護的狀態(tài)數(shù)目。另外,綜合多播和資源預(yù)留的解決方案還有助于降低網(wǎng)絡(luò)中狀態(tài)不一致的比率。
盡管以上已經(jīng)結(jié)合本發(fā)明的優(yōu)選實施例示出了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將會理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對本發(fā)明進行各種修改、替換和改變。因此,本發(fā)明不應(yīng)由上述實施例來限定,而應(yīng)由所附權(quán)利要求
及其等價物來限定。
權(quán)利要求
1.一種在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法,所述方法包括以下步驟當(dāng)多播數(shù)據(jù)的接收者要加入多播組時,所述接收者生成多播加入消息,并向多播數(shù)據(jù)的發(fā)送者發(fā)送所述多播加入消息;當(dāng)接收者與發(fā)送者之間的多播數(shù)據(jù)轉(zhuǎn)發(fā)路徑上的網(wǎng)橋接收到所述多播加入消息時,判斷所述網(wǎng)橋是否存在與所述多播加入消息相對應(yīng)的多播表項;在所述網(wǎng)橋不存在與所述多播加入消息相對應(yīng)的多播表項的情況下,所述網(wǎng)橋進一步檢測是否有足夠的資源滿足多播加入消息的資源請求;如果存在足夠的資源,則所述網(wǎng)橋創(chuàng)建針對所述多播加入消息的多播表項,并接受所述多播加入消息且繼續(xù)向多播數(shù)據(jù)的發(fā)送者轉(zhuǎn)發(fā);否則,則拒絕所述多播加入消息。
2.根據(jù)權(quán)利要求
1所述的方法,其特征在于在所述網(wǎng)橋存在與所述多播加入消息相對應(yīng)的多播表項的情況下,所述網(wǎng)橋判斷所述多播表項的轉(zhuǎn)發(fā)端口列表是否包含接收所述多播加入消息的端口,如果斷定所述轉(zhuǎn)發(fā)端口列表不包含接收所述多播加入消息的端口,則在轉(zhuǎn)發(fā)端口列表中創(chuàng)建所述端口,并在所述端口處為所述多播加入消息預(yù)留資源。
3.根據(jù)權(quán)利要求
1所述的方法,其特征在于還包括步驟當(dāng)多播數(shù)據(jù)的接收者要離開所述多播組時,所述接收者生成多播離開消息,并向所述多播數(shù)據(jù)的發(fā)送者發(fā)送所述多播離開消息;當(dāng)接收者與發(fā)送者之間的多播數(shù)據(jù)轉(zhuǎn)發(fā)路徑上的網(wǎng)橋接收到所述多播離開消息時,判斷所述網(wǎng)橋是否存在與所述多播離開消息相對應(yīng)的多播表項;在所述網(wǎng)橋存在與所述多播離開消息相對應(yīng)的多播表項的情況下,將接收所述多播離開消息的端口從所述多播表項的所述轉(zhuǎn)發(fā)列表中刪除,并將所述多播離開消息繼續(xù)向多播數(shù)據(jù)的發(fā)送者轉(zhuǎn)發(fā)。
4.根據(jù)權(quán)利要求
3所述的方法,其特征在于在將接收所述多播離開消息的端口從所述多播表項的所述轉(zhuǎn)發(fā)列表中刪除的步驟之后,還包括步驟如果經(jīng)過刪除后的轉(zhuǎn)發(fā)列表為空,則刪除與所述轉(zhuǎn)發(fā)列表相對應(yīng)的多播表項。
5.根據(jù)權(quán)利要求
1所述的方法,其特征在于所述拒絕所述多播加入消息的步驟包括由所述網(wǎng)橋產(chǎn)生針對所述多播加入消息的否定應(yīng)答并向所述接收者轉(zhuǎn)發(fā)所述否定應(yīng)答。
6.根據(jù)權(quán)利要求
5所述的方法,其特征在于當(dāng)網(wǎng)橋接收到否定應(yīng)答時,將所述否定應(yīng)答向自身多播表項中的所有轉(zhuǎn)發(fā)端口進行轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求
5所述的方法,其特征在于接收到針對所述多播加入消息的否定應(yīng)答的網(wǎng)橋從其自身中刪除與所述多播加入消息相對應(yīng)的多播表項。
8.根據(jù)權(quán)利要求
3所述的方法,其特征在于在網(wǎng)橋接收到所述多播離開消息之后,所述網(wǎng)橋釋放為與所述多播離開消息相對應(yīng)的多播數(shù)據(jù)預(yù)留的資源。
專利摘要
根據(jù)本發(fā)明,提出了一種在計算機和通信網(wǎng)絡(luò)中執(zhí)行多播注冊和資源預(yù)留的方法,所述方法包括以下步驟當(dāng)多播數(shù)據(jù)的接收者要加入多播組時,所述接收者生成多播加入消息,并向多播數(shù)據(jù)的發(fā)送者發(fā)送所述多播加入消息;當(dāng)接收者與發(fā)送者之間的多播數(shù)據(jù)轉(zhuǎn)發(fā)路徑上的網(wǎng)橋接收到所述多播加入消息時,判斷所述網(wǎng)橋是否存在與所述多播加入消息相對應(yīng)的多播表項;在所述網(wǎng)橋不存在與所述多播加入消息相對應(yīng)的多播表項的情況下,所述網(wǎng)橋進一步檢測是否有足夠的資源滿足多播加入消息的資源請求;如果存在足夠的資源,則所述網(wǎng)橋創(chuàng)建針對所述多播加入消息的多播表項,并接受所述多播加入消息且繼續(xù)向多播數(shù)據(jù)的發(fā)送者轉(zhuǎn)發(fā);否則,則拒絕所述多播加入消息。
文檔編號H04L29/06GK1996932SQ200510135915
公開日2007年7月11日 申請日期2005年12月31日
發(fā)明者吳起, 黃周松 申請人:北京三星通信技術(shù)研究有限公司, 三星電子株式會社導(dǎo)出引文BiBTeX, EndNote, RefMan