轉發組播數據的方法、系統及路由器的製作方法
2024-02-04 06:41:15
專利名稱:轉發組播數據的方法、系統及路由器的製作方法
技術領域:
本發明涉及通信技術領域,尤其涉及一種轉發組播數據的方法、系統及路由器。
背景技術:
組播是一種把數據從一點傳送到多點的新興技術,相對於單播而言,因其具有降低伺服器負荷、控制網絡流量、減少冗餘流量等優點,已經被廣泛應用於IPTV(Internet Protocol Television)業務、遠程教學等領域,以實現音頻/視頻流發布、簡訊息發布、數據發布、信息公告、同步資源等。
在組播技術中,通常要應用PIM SSM(Protocol Independent MulticastSource Specific Multicast指定源協議無關組播)協議、及IGMP(InternetGroup Management Protocol Internet網際網路組管理)協議;其中,PIM SSM協議是能夠在發送者與接受者之間建立一條最短路徑轉發樹的組播路由協議,如圖1所示,接收者欲接收組播數據,其通過與其直連的路由器D向上遊路由器C發送特定源組加入報文,例如(s,g)Join,s代表數據源,g代表組播組,Join是報文的一種類型,路由器C再逐級向上遊路由器轉發所述源組加入報文(s,g)Join,直到最終在發送者與接收者之間建立起一條最短轉發路徑樹,發送者將組播數據沿著這條最短路徑樹發送給接收者。如圖中所示,路由器C轉發所述報文給路由器B、路由器A,路由器A再通知發送者,之後,組播數據通過路由器A、B、C、D到達接收者;其中,我們定義與發送者直連的路由器A為源端路由器,假設路由器B不支持組播協議,則定義與其相鄰的下遊路由器C為組播邊界路由器,這裡路由器B可以是多個不支持組播協議的路由器組,這些路由器組組成非組播區域。
IGMP協議是IP協議的一部分,是組播組的成員管理協議,它主要負責兩方面事情
IGMP協議允許路由器和主機之間相互告知有關組播傳輸的操作要求,例如,主機告知路由器其要動態地加入或者退出組播組,該協議也允許主機間交流組播傳輸信息的狀態報文;IGMP協議負責通告網絡上組播組的成員變化狀況,以便路由協議及時更新路由,讓路由器及時獲知網絡中主機欲加入組播組的信息、及在每一個路由器接口上維護組播組成員關係表,例如,某路由器在其接口上通過IGMP協議獲知一主機發出的欲接收某組播組數據的報文信息,則該路由器就會利用PIM SSM協議建立一條從發送者到接收者之間的最短轉發路徑樹,在此最短轉發路徑樹上接收並轉發組播組的所有數據給接收者。
但是,如果源端(發送者)與接收端(接收者)的路徑上有一臺或者幾臺路由器不支持PIM SSM協議,則源端與接收端的轉發路徑樹就建立不起來,所以,當遇到運營商的網絡中部分路由器不支持組播協議時,需要將網絡中所有的路由器進行升級並對組播進行配置,以支持組播協議,顯然這樣的代價是巨大的。
發明內容
為此,本發明的實施例所要解決的技術問題是提供一種轉發組播數據的方法、系統及路由器,使得當網絡中有部分路由器不支持組播協議時,不需要對所有路由器進行升級,就能完成組播數據的轉發。
於是,本發明的實施例提供了一種轉發組播數據的方法,用於當組播邊界路由器的上遊路由器不支持組播協議時完成組播數據的轉發,包括組播邊界路由器獲知源路由器的IP位址,並利用所述IP位址向源路由器發送註冊加入報文;所述源路由器根據接收到的所述註冊加入報文獲取所述組播邊界路由器的IP位址,並向所述組播邊界路由器發送攜帶有組播數據的註冊報文;所述組播邊界路由器通過所述攜帶有組播數據的註冊報文獲取組播數據,並轉發所述組播數據。
本發明實施例還提供了一種轉發組播數據的系統,用於當組播邊界路由器的上遊路由器不支持組播協議時完成組播數據的轉發,包括組播邊界路由器和源路由器;所述組播邊界路由器,用於獲知源路由器的IP位址,並利用所述IP位址向源路由器發送註冊加入報文,並接收所述源路由器發送的註冊報文,獲取並轉發組播數據;所述源路由器,用於接收源路由器發送的所述註冊加入報文,並獲取所述組播邊界路由器的IP位址,向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
本發明實施例還提供了一種路由器,用於實現對組播數據的轉發,包括註冊報文接收單元、源路由器IP位址獲取單元、註冊加入報文發送單元和組播數據轉發單元;所述源路由器IP位址獲取單元,用於獲取所述源路由器的IP位址;所述註冊加入報文發送單元,用於利用所述源路由器的IP位址向所述源路由器發送註冊加入報文;所述註冊報文接收單元,用於接收所述源路由器發送的註冊報文;所述組播數據轉發單元,用於通過解封裝所述註冊報文獲取組播數據,並轉發所述組播數據。
本發明實施例還提供了一種路由器,用於實現組播數據的轉發,包括註冊加入報文接收單元,用於接收所述組播邊界路由器發送的註冊加入報文;組播邊界路由器IP位址獲取單元,用於通過所述註冊加入報文獲取所述組播邊界路由器的IP位址;註冊報文發送單元,用於封裝組播數據,並向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
可見,採用本發明實施例的技術方案,當網絡中有部分路由器不支持組播協議時,只需要對源端路由器和組播邊界路由器進行升級就可以實現穿越非組播區域的組播數據的傳遞,完成組播數據的轉發,從而不再需要對系統中所有路由器進行升級。
圖1為現有技術中各網絡成員轉發組播數據的示意圖;圖2為本發明實現轉發組播數據方法的流程圖;圖3為本發明所述方法一實施例流程示意圖;圖4為圖3中停止轉發組播數據一種情況流程示意圖;圖5為圖3中停止轉發組播數據另一種情況流程示意圖;圖6為本發明實施例的轉發組播數據的系統結構示意圖;圖7為本發明實施例的組播邊界路由器結構示意圖;圖8為本發明實施例的源路由器結構示意圖。
具體實施例方式
下面,結合附圖對本發明的實施例進行詳細描述。
當組播邊界路由器的上遊路由器不支持組播協議而仍然要完成組播數據的轉發時,可以在組播邊界路由器和源路由器之間動態建立一個單播轉發組播數據的隧道,用於穿越非組播區域來實現組播數據的轉發,按照此思路實現的組播數據轉發,只需要升級組播邊界路由器和源路由器就可以實現跨越非組播區域的組播數據的轉發業務,而不再需要對網絡中所有路由器進行升級。
為此,如圖2所示,採用如下步驟實現組播數據的轉發步驟10,組播邊界路由器獲知源路由器的IP位址,並利用該IP位址單播向源路由器發送註冊加入報文;步驟11,源路由器接收到所述註冊加入報文後,以此獲取組播邊界路由器的IP位址,並通過該IP位址單播向組播邊界路由器發送攜帶有組播數據的註冊報文;
步驟12,組播邊界路由器通過攜帶有組播數據的註冊報文獲取組播數據,並轉發該組播數據。
這樣,通過註冊加入報文,源路由器就獲得了組播邊界路由器的IP位址,利用該IP位址,源路由器單播向組播邊界路由器發送攜帶有組播數據的註冊報文,組播邊界路由器解封裝該註冊報文以獲得組播數據,並向其下遊路由器轉發組播數據,最後到達接收者。
為進一步加以說明,如圖3所示,設定路由器A、C、D、E、F支持組播,支持PIM SSM協議,路由器E、F為最後一跳路由器,支持IGMPv3協議,用於接收主機A、B的加入信息,路由器A與伺服器直連,為第一跳路由器,即源路由器,路由器B不支持組播,不支持PIM SSM協議,這裡,需要強調的是,路由器B可以是一個路由器或者是多個路由器組成的路由器組,路由器B組成了非組播區域,路由器C為組播邊界路由器;首先,假設主機A向路由器E上報要接收源組加入信息為(s,g)Join的組播數據,則,路由器E收到IGMPv3協議的報告後,向其上遊路由器D發送PIM SSM協議的(s,g)Join報文,路由器D轉發PIM SSM協議的(s,g)Join報文給路由器C,路由器C收到(s,g)Join報文後,在準備向其上遊路由器B發送(s,g)Join報文時,發現路由器B不支持PIM SSM協議,也就是說,路由器C發現其上遊路由器B接口沒有PIM鄰居,於是,路由器C開始嘗試建立與第一跳路由器A之間的單播隧道,以完成組播數據的轉發;路由器C向路由器B發送存活時間TTL(Time To Live)為1的數據報文,該報文中的目的地址為伺服器的IP位址,有關TTL數據報文的格式;路由器B收到TTL數據報文後,丟棄該報文並返回一個ICMP(InternetControl Message Protocal)超時報文,路由器C收到該超時報文後,將TTL加1後,繼續向路由器B發送TTL數據報文,路由器B收到該報文後,轉發該報文給路由器B的上級路由器A,路由器A轉發該報文給伺服器,伺服器返回埠不可達報文。這樣,路由器C就找到了到達伺服器路徑上的各跳路由器的IP位址,因此就可以獲得第一跳路由器,即路由器A的IP位址;其中,路由器B與伺服器之間可以有多級路由器,路由器B轉發的所述報文依次經路由器B的上級路由器轉發,最後到達伺服器,伺服器返回埠不可達報文;這裡,所述上遊路由器都返回一超時報文,而伺服器返回的是一埠不可達報文,其中,所述路由器返回動作詳見ICMP協議。
以上為本發明實施例給出的組播邊界路由器獲取源路由器的IP位址的一種方法,在實際應用中,也可以採取其它方式獲取源路由器的IP位址。
按照路由器A的IP位址,路由器C向路由器A發送註冊加入報文,該註冊加入報文的格式如下0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|PIM Ver|Type| | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Group Address(Encoded-Group format)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address(Encoded-Unicast format) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+其中,Type類型欄位拓展到9,用於標識該報文為註冊加入報文;GroupAddress(Encoded-Group format)為組地址(封裝組格式),用於標識主機A要加入的組地址,Source Address(Encoded-Unicast format)為源地址(封裝單播格式),用於標識主機A要加入的源地址,即組播數據所在的源地址;註冊加入報文中的單播IP位址,其IP位址頭部源地址填寫組播邊界路由器C的IP位址,目的地址填寫第一跳路由器A的IP位址;至此,路由器A與組播邊界路由器C的單播隧道就建立起來了;
該註冊加入報文是對PIM SSM報文類型的拓展,詳細可參見RFC2362標準;第一跳路由器A收到註冊加入報文後,從該報文IP位址頭部的源地址中提取出組播邊界路由器C的IP位址,然後通過註冊報文將組播數據通過單播隧道發送到組播邊界路由器C;其中,註冊報文的單播IP位址,其IP位址頭部源地址填寫路由器A的IP位址,目的地址填寫組邊界路由器C的IP位址;註冊報文的格式也採用PIM SSM註冊報文格式;組播邊界路由器C收到註冊報文後,解封裝該註冊報文,以獲得組播數據;之後,組播邊界路由器C利用PIM SSM協議,從其接口處轉發所述的組播數據。
當需要停止利用單播隧道進行組播數據的轉發時,一般有兩種可能的情況第一種情況組播邊界路由器感知到無人接收組播數據,組播邊界路由器向第一跳路由器發送註冊停止報文,請求剪掉單播隧道;如圖4所示,主機A不想接收組播數據時,向其上遊路由器E發送剪枝報文(s,g)prune,路由器E逐級向上遊路由器轉發該剪枝報文,直到組播邊界路由器C收到為止;其中,剪枝報文,詳見PIM SSM協議,採用PIM SSM中的register-stop報文類型;組播邊界路由器C收到剪枝報文後,向路由器A單播發送註冊離開報文;路由器A收到註冊離開報文後,剪掉單播隧道,路由器A不再單播向組播邊界路由器發送報文;其中,註冊離開報文採用PIM SSM中的register-stop報文類型;IP位址頭部源地址填寫組播邊界路由器C的IP位址,IP位址頭部目的地址填寫第一跳路由器A的IP位址;第二種情況組播邊界路由器的上遊路由器接口重新獲得鄰居信息,非組播區域的路由器開始支持組播協議時,組播邊界路由器單播向第一跳路由器發送註冊離開報文,請求剪掉單播隧道;如圖5所示,組播邊界路由器C的上遊路由器B接口重新獲得鄰居信息,非組播區域的路由器B開始支持組播協議時,此時路由器C會發現有正常的組播數據到達,於是,組播邊界路由器C經單播隧道向路由器A發送註冊離開報文,路由器A收到註冊離開報文後,剪掉單播隧道,路由器A不再單播向組播邊界路由器發送報文。
本發明實施例還提供了一種轉發組播數據的系統,如圖6所示,轉發組播數據的系統20,包括組播邊界路由器21和源路由器22;轉發組播數據的系統20,用於當組播邊界路由器的上遊路由器不支持組播,不支持PIM SSM協議時,完成對組播數據的轉發;這裡,需要強調的是,組播邊界路由器的上遊路由器可以是一個路由器或者是多個路由器組成的路由器組;組播邊界路由器21,用於獲知源路由器22的IP位址,利用所述IP位址向源路由器22發送註冊加入報文,並接收所述源路由器22發送的註冊報文,獲取並轉發組播數據;源路由器22,用於接收源路由器發送的所述註冊加入報文,並獲取所述組播邊界路由器的IP位址,向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
所述組播邊界路由器21,如圖7所示,包括註冊報文接收單元211、源路由器IP位址獲取單元212、註冊加入報文發送單元213和組播數據轉發單元214;其中,源路由器IP位址獲取單元212,用於獲取源路由器22的IP位址;
註冊加入報文發送單元213,用於利用所述源路由器22的IP位址向源路由器22發送註冊加入報文;所述註冊加入報文包含組播邊界路由器的IP位址;註冊報文接收單元211,用於接收源路由器22發送的註冊報文,所述註冊報文包含組播數據;組播數據轉發單元214,用於通過解封裝所述註冊報文獲取組播數據,並轉發所述組播數據。
其中,組播邊界路由器21,還可以包括檢測單元215,用於檢測是否收到剪枝報文或者檢測是否接收到組播邊界路由器的上遊路由器轉發的組播數據,若為是,則發送檢測信息;註冊離開報文發送單元216,用於接收所述檢測信息,向源路由器22發送註冊離開報文,請求停止發送註冊報文。
所述源路由器22,如圖8所示,包括註冊加入報文接收單元221,用於接收組播邊界路由器21發送的註冊加入報文;組播邊界路由器IP位址獲取單元222,用於通過所述註冊加入報文獲取組播邊界路由器21的IP位址;註冊報文發送單元223,用於封裝組播數據,並向組播邊界路由器21發送攜帶有組播數據的註冊報文。
其中,源路由器22,還可以包括註冊離開報文接收單元224,用於接收組播邊界路由器21發送的註冊離開報文;註冊離開報文處理單元225,用於通知註冊報文發送單元223,停止註冊報文的發送。
本發明實施例還提供了一種路由器,用於實現對組播數據的轉發,即本發明實施例所述系統中提到的組播邊界路由器21,如圖7所示,包括
註冊報文接收單元211、源路由器IP位址獲取單元212、註冊加入報文發送單元213和組播數據轉發單元214;其中,源路由器IP位址獲取單元212,用於獲取源路由器22的IP位址;註冊加入報文發送單元213,用於利用所述源路由器22的IP位址向源路由器22發送註冊加入報文;所述註冊加入報文包含組播邊界路由器的IP位址;註冊報文接收單元211,用於接收源路由器22發送的註冊報文,所述註冊報文包含組播數據;組播數據轉發單元214,用於通過解封裝所述註冊報文獲取組播數據,並轉發所述組播數據;其中,組播邊界路由器21,還可以包括檢測單元215,用於檢測是否收到剪枝報文或者檢測是否接收到組播邊界路由器的上遊路由器轉發的組播數據,若為是,則發送檢測信息;註冊離開報文發送單元216,用於接收所述檢測信息,向源路由器22發送註冊離開報文,請求停止發送註冊報文。
本發明實施例還提供了一種路由器,用於實現組播數據的轉發,即本發明實施例所述系統中提到的源路由器22,如圖8所示,包括註冊加入報文接收單元221,用於接收組播邊界路由器21發送的註冊加入報文;組播邊界路由器IP位址獲取單元222,用於通過所述註冊加入報文獲取組播邊界路由器21的IP位址;註冊報文發送單元223,用於封裝組播數據,並向組播邊界路由器21發送攜帶有組播數據的註冊報文。
其中,源路由器22,還可以包括註冊離開報文接收單元224,用於接收組播邊界路由器21發送的註冊離開報文;
註冊離開報文處理單元225,用於通知註冊報文發送單元223,停止註冊報文的發送。
綜上所述,當網絡中有部分路由器不支持組播協議時,只需要對源端路由器和組播邊界路由器進行升級就可以實現穿越非組播區域,就能完成組播數據的轉發,從而不再需要對所有路由器進行升級。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種轉發組播數據的方法,用於當組播邊界路由器的上遊路由器不支持組播協議時完成組播數據的轉發,其特徵在於,包括組播邊界路由器獲知源路由器的IP位址,並利用所述IP位址向源路由器發送註冊加入報文;所述源路由器根據接收到的所述註冊加入報文獲取所述組播邊界路由器的IP位址,並向所述組播邊界路由器發送攜帶有組播數據的註冊報文;所述組播邊界路由器通過所述攜帶有組播數據的註冊報文獲取組播數據,並轉發所述組播數據。
2.根據權利要求1所述的方法,其特徵在於,所述組播邊界路由器獲知源路由器IP位址的步驟,具體包括組播邊界路由器向其上遊路由器發送數據報文,其目的地址為組播數據源的發送者的IP位址;所述上遊路由器返回一超時報文,所述組播數據源的發送者返回一埠不可達報文;組播邊界路由器根據所述上遊路由器返回的超時報文查找與發送者直連的源路由器的IP位址。
3.根據權利要求1所述的方法,其特徵在於,所述註冊加入報文通過拓展的註冊加入報文的類型欄位進行標識。
4.根據權利要求1所述的方法,其特徵在於,還包括組播邊界路由器收到剪枝報文時,向源路由器發送註冊離開報文;所述源路由器停止向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
5.根據權利要求1所述的方法,其特徵在於,還包括組播邊界路由器收到其上遊路由器發送的組播數據時,向源路由器發送註冊離開報文;所述源路由器停止向所述邊界組播路由器發送攜帶有組播數據的註冊報文。
6.一種轉發組播數據的系統,用於當組播邊界路由器的上遊路由器不支持組播協議時完成組播數據的轉發,其特徵在於,包括組播邊界路由器和源路由器;所述組播邊界路由器,用於獲知源路由器的IP位址,並利用所述IP位址向源路由器發送註冊加入報文,並接收所述源路由器發送的註冊報文,獲取並轉發組播數據;所述源路由器,用於接收源路由器發送的所述註冊加入報文,並獲取所述組播邊界路由器的IP位址,向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
7.根據權利要求6所述的系統,其特徵在於,所述組播邊界路由器,包括註冊報文接收單元、源路由器IP位址獲取單元、註冊加入報文發送單元和組播數據轉發單元;所述源路由器IP位址獲取單元,用於獲取所述源路由器的IP位址;所述註冊加入報文發送單元,用於利用所述源路由器的IP位址向所述源路由器發送註冊加入報文;所述註冊報文接收單元,用於接收所述源路由器發送的註冊報文;所述組播數據轉發單元,用於通過解封裝所述註冊報文獲取組播數據,並轉發所述組播數據。
8.根據權利要求7所述的系統,其特徵在於,所述組播邊界路由器,還包括組播數據檢測單元,用於檢測是否收到剪枝報文或者是否接收到組播邊界路由器的上遊路由器轉發的組播數據,若為是,則發送檢測信息;註冊離開報文發送單元,用於接收所述檢測信息,向所述源路由器發送註冊離開報文,請求停止發送註冊報文。
9.根據權利要求6所述的系統,其特徵在於,所述源路由器,包括註冊加入報文接收單元,用於接收所述組播邊界路由器發送的註冊加入報文;組播邊界路由器IP位址獲取單元,用於通過所述註冊加入報文獲取所述組播邊界路由器的IP位址;註冊報文發送單元,用於封裝組播數據,並向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
10.根據權利要求9所述的系統,其特徵在於,所述源路由器,還包括註冊離開報文接收單元,用於接收所述組播邊界路由器發送的註冊離開報文;註冊離開報文處理單元,用於通知所述註冊報文發送單元,停止註冊報文的發送。
11.一種路由器,用於實現對組播數據的轉發,其特徵在於,包括註冊報文接收單元、源路由器IP位址獲取單元、註冊加入報文發送單元和組播數據轉發單元;所述源路由器IP位址獲取單元,用於獲取所述源路由器的IP位址;所述註冊加入報文發送單元,用於利用所述源路由器的IP位址向所述源路由器發送註冊加入報文;所述註冊報文接收單元,用於接收所述源路由器發送的註冊報文;所述組播數據轉發單元,用於通過解封裝所述註冊報文獲取組播數據,並轉發所述組播數據。
12.根據權利要求11所述的路由器,其特徵在於,還包括檢測單元,用於檢測是否收到剪枝報文或者檢測是否接收到組播邊界路由器的上遊路由器轉發的組播數據,若為是,則發送檢測信息;註冊離開報文發送單元,用於接收所述檢測信息,向所述源路由器發送註冊離開報文,請求停止發送註冊報文。
13.一種路由器,用於實現組播數據的轉發,其特徵在於,包括註冊加入報文接收單元,用於接收所述組播邊界路由器發送的註冊加入報文;組播邊界路由器IP位址獲取單元,用於通過所述註冊加入報文獲取所述組播邊界路由器的IP位址;註冊報文發送單元,用於封裝組播數據,並向所述組播邊界路由器發送攜帶有組播數據的註冊報文。
14.根據權利要求13所述的路由器,其特徵在於,還包括註冊離開報文接收單元,用於接收所述組播邊界路由器發送的註冊離開報文;註冊離開報文處理單元,用於通知所述註冊報文發送單元,以停止註冊報文的發送。
全文摘要
本發明的實施例提供了一種轉發組播數據的方法、系統及路由器,用於當組播邊界路由器的上遊路由器不支持組播協議時完成組播數據的轉發。其中,所述轉發組播數據的方法,包括組播邊界路由器獲知源路由器的IP位址,利用該IP位址向源路由器發送註冊加入報文;源路由器獲取組播邊界路由器的IP位址,並發送註冊報文;所述組播邊界路由器獲取組播數據,並轉發。採用本發明實施例提供的技術方案,當網絡中有部分路由器不支持組播協議時,只需要對源端路由器和組播邊界路由器進行升級就可以實現穿越非組播區域的組播數據的傳遞,完成組播數據的轉發,從而不再需要對系統中所有路由器進行升級。
文檔編號H04L29/06GK1988507SQ20061016236
公開日2007年6月27日 申請日期2006年12月14日 優先權日2006年12月14日
發明者陳重, 程松明, 周小牛, 張海峰 申請人:華為技術有限公司