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