新四季網

組播剪枝方法及協議無關組播路由器、二層交換機的製作方法

2023-04-24 02:29:11

專利名稱:組播剪枝方法及協議無關組播路由器、二層交換機的製作方法
技術領域:
本發明涉及組播技術領 域,具體涉及組播剪枝方法、協議無關組播路由器(PIM, Protocol Independent Multicast)及二層交換機。
背景技術:
為便於理解,首先給出如下概念說明組播一種與單播和廣播並列的通信方式,組播系統由組播源、接收者和組播組組 成。源主機只發送一份數據,這份數據中的目的地址為組播組地址;組播組中的所有接收者 都可接收到同樣的數據拷貝,並且只有組播組內的主機可以接收該數據。網際網路組管理協議(IGMP,Internet Group Management Protocol)傳輸控制協 iX / Nt^il (TCP/IP, Transmission Control Protocol/Internet Protocol)十辦H 中負責IP組播成員管理的協議,用來在IP主機和與其直接相鄰的組播路由器之間建立、維 護組播組成員關係。IGMP 窺探(IGSP, Internet Group Management Protocol Snooping)運行在二 層設備上的組播約束機制,用於管理和控制組播組。運行IGMP窺探的二層設備通過對收到 的IGMP報文進行分析,為埠和媒體接入控制(MAC,Media Access Control)組播地址建 立起映射關係,並根據該映射關係轉發組播數據。PIM 表示可以利用靜態路由或者任意單播路由協議如RIP、OSPF, IS-IS、BGP等 所生成的單播路由表為IP組播提供路由;實現維護三層設備之間的組播數據傳播。PIM協 議有四個模式PIM密集模式(DM,Dense Mode)、PIM稀疏模式(SM,Sparse Mode)、PIM源 特定組播(SSM, Source-Specific Multicast)和雙向 PIM。IP組播技術有效地解決了單點發送多點接收的問題,實現了 IP網絡中點到多點 的高效數據傳送,能夠大量節約網絡帶寬、降低網絡負載。利用網絡的組播特性,一些新的 增值業務,包括在線直播、網絡電視、遠程教育、遠程醫療、網絡電臺、實時視頻會議等互聯 網的信息服務得到了快速的發展。PIM協議是目前主流的組播路由協議。IGMP窺探和PIM窺探是主流的二層組播控 制協議,其中,PIM窺探的重要性僅次於IGMP窺探,PIM窺探用於偵聽PIM hello和PIM加 入、PIM剪枝消息,以控制組播流向有需求的路由器轉發。但是,PIM窺探交換機只有處於 PIM路由器之間才能發揮作用,處於PIM路由器和組播源之間則無法發揮作用。在點播性質的組播應用中,業界尚未很好地解決PIM路由器組播源側的流量控 制。圖1為一個組播組網示例圖,如圖1所示,組播源通過二層交換機接入,客戶端通過二 層交換機或PIM路由器接入,多個二層交換機匯聚到一個PIM路由器上。如組播源1、2分 別通過二層交換機5、6接入,二層交換機1、2匯聚到PIM路由器2上。當組播源發出的組播流通過交換機到達第一跳PIM路由器時,若該PIM路由器為 指定路由器(DR,Designated Router),則向匯合點(RP)發送源註冊消息,若RP發現本地 未建立與該組播流對應的(S,G)表項,即無客戶端點播該組播流,則向DR返回源抑制消息;此後,當有客戶端點播該組播流時,客戶端向葉路由器發送IGMP加入消息,葉路由器向RP 發送PIM加入消息,RP接收到該PIM加入消息時,向DR發送PIM加入消息,此後組播流經 由RP到達組播接收者。 現有技術的缺點如下對於組播源發出的任一組播流,無論是否有客戶端點播該組播流,該組播流都要 先經過交換機發送到第一跳PIM路由器,這樣,就增加了交換機的緩存消耗。交換機的出端 口緩存對於保證業務流,特別是視頻等帶突發性質的業務流的有序、防止丟包、減少抖動具 有重要的作用,因此,不需要轉發的數據流應該禁止其轉發,從而減少對交換機出埠緩存 的消耗。現有協議無法在鏈路層剪枝從組播源到PIM路由器之間的無用組播流。

發明內容
本發明提供組播剪枝方法及PIM路由器、二層交換機,以剪枝從組播源到PIM路由 器之間的無用組播流。本發明的技術方案是這樣實現的一種組播剪枝方法,組播源通過具備協議無關組播PIM窺探功能的二層交換機連 接到第一跳PIM路由器,該方法包括所述第一跳PIM路由器接收所述組播源發來的組播流,發現沒有接收該組播流的 需求,則從該組播流的入接口處向外發送PIM剪枝消息;或者,所述第一跳PIM路由器接收下遊PIM路由器發來的針對一個組播流的PIM剪枝消 息或者接收自身下掛客戶端發來的針對一個組播流的組管理離開消息,將該消息的接收接 口從該組播流的出接口列表中刪除,若發現已經沒有接收該組播流的需求,則從該組播流 的入接口處向外發送PIM剪枝消息。一種組播剪枝方法,組播源通過具備協議無關組播PIM窺探功能的二層交換機連 接到第一跳PIM路由器,該方法包括二層交換機接收所述第一跳PIM路由器發來的PIM剪枝消息,發現消息中的上遊 鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表中,則將該消息的接收埠作 為剪枝埠,並將該剪枝埠添加到與所述組播流對應的PIM窺探表項中,不再向所述剪 枝埠轉發所述組播流。一種PIM路由器,該PIM路由器直接通過二層交換機連接到組播源,該PIM路由器 包括第一模塊,接收所述組播源發來的組播流,發現沒有接收該組播流的需求,或者, 接收下遊PIM路由器發來的針對一個組播流的PIM剪枝消息或者接收本PIM路由器下掛客 戶端發來的針對一個組播流的組管理離開消息,將該消息的接收接口從該組播流的出接口 列表中刪除,若發現已經沒有接收該組播流的需求,則向第二模塊發送剪枝指示;第二模塊,接收所述剪枝指示,從所述組播流的入接口處向外發送PIM剪枝消息。一種具備PIM窺探功能的二層交換機,位於組播源與第一跳PIM路由器之間,該交 換機包括第一模塊,接收針對一個組播流的PIM剪枝消息,發現消息中的上遊鄰居地址不 在自身利用PIM窺探功能維護的PIM路由器列表中,則將該消息的接收埠作為剪枝埠,並將該剪枝埠添加到與所述組播流對應的PIM窺探表項中,不再向所述剪枝埠轉發所 述組播流。與現有技術相比,本發明無需對組網做出任何限制,就可剪枝從組播源到PIM路 由器之間的無用組播流,節省了帶寬和交換機的出埠緩存。


圖1為一個組播組網示例圖;圖2為本發明實施例提供的組播剪枝方法流程圖;圖3為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖;圖4為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器Rtr接收到來自下遊PIM路由器的PIM剪枝消息或者來自自身下掛客戶端發來的 IGMP離開消息後的處理流程圖;圖5為本發明實施例提供的二層交換機接收到PIM剪枝消息後的處理流程圖;圖6為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器接收到來自下遊PIM路由器的PIM加入消息後的處理流程圖;圖7為本發明實施例提供的二層交換機接收到IGMP加入消息後的處理流程圖;圖8為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器Rtr接收到IGMP加入消息後的處理流程圖;圖9為本發明實施例提供的二層交換機接收到PIM加入消息後的處理流程圖;圖10為本發明實施例提供的當第一跳PIM路由器採用PIM SM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖;圖11為本發明實施例提供的當第一跳PIM路由器採用PIM DM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖;圖12為本發明實施例提供的當第一跳PIM路由器採用PIM DM模式時,第一跳PIM 路由器Rtr接收到來自PIM鄰居的PIM嫁接消息後的處理流程圖;圖13為本發明實施例提供的PIM路由器的組成示意圖。
具體實施例方式下面結合附圖及具體實施例對本發明再作進一步詳細的說明。本發明中,假設全網使用的組管理協議版本相同,即,或統一使用IGMPv2,或 統一使用IGMPv3,或統一使用組播偵聽者發現協議版本l(MLDvl,Multicast Listener Discovery Protocol Versionl)或統一使用 MLDv2。 若本發明實施例採用的組管理協議為IGMPv2或MLDvl,則不同的組播流以組播組 標識區分;若本發明實施例採用的組管理協議為IGMPv3或MLDv2,則不同的組播流以組播 源標識+組播組標識區分。本發明中,PIM協議採用PIM SSM或PIM SM或PIM DM模式。當採用PIM SSM模 式時,IGMP版本必須是IGMPv3,IGSP版本必須是IGMPv3窺探。本發明中,具備PIM窺探功能的二層交換機新增了一個埠角色剪枝埠。當具備PIM窺探功能的二層交換機收到來自第一跳PIM路由器的針對一個組播流的PIM剪枝消 息時,該消息的接收埠就成為剪枝埠。此後,該組播流不得向該剪枝埠轉發。對於一個支持組播的二層交換機來說,其埠角色共有四個來自IGMP窺探的路 由器埠(router port)、成員埠(membership port),來自PIM窺探的剪枝埠、上遊端 口 (upstream port)。這裡,將下遊埠 (downstream port),即收到PIM加入消息的埠, 也稱為路由器埠,因為其作用與路由器埠相同,都是連接路由器的、需要轉發所有組播 流的埠。四種埠分開維護。但是,當一個埠同時具有成員埠、剪枝埠、路由器埠 三個角色中的全部或任兩個時,其埠角色的優先級順序從高到低依次為成員埠、剪枝 埠、路由器埠。對於二層轉發表項PIM窺探表項和IGMP窺探表項來說,對該埠的處 理規則是若該埠的最高優先級角色是成員埠,則二層轉發表項包含該埠 ;若該端 口的最高優先級角色是剪枝埠,則二層轉發表項不包含該埠。另外,若一個埠的角色 只是路由器埠,則認為其最高優先級角色是路由器埠,二層轉發表項包含該埠。同時,若二層交換機的PIM窺探表項中的上遊鄰居列表為空,則不需將二層交換 機的上遊埠加入到PIM窺探表項的下遊出埠列表中。其中,PIM窺探表項的內容包含 (S,G)表項,上遊鄰居列表,下遊出埠列表,等。以下以組管理協議採用IGMP為例,對本發明進行詳細說明,當組管理協議採用 MLD協議時,將本發明所有實施例中的「 IGMP」替換為「MLD」即可。圖2為本發明實施例提供的組播剪枝方法流程圖,如圖2所示,其具體步驟如下步驟201 二層交換機接收來自PIM路由器的PIM hello消息,利用IGMP窺探功 能,將該消息的接收埠設置為路由器埠 ;利用PIM窺探功能,根據該消息維護PIM路由 器列表,其中,每項PIM路由器信息包括發來PIM hello消息的PIM路由器地址和本交換 機與該PIM路由器連接的埠號。其中,發來PIM hello消息的PIM路由器地址可以從PIM hello消息的源地址字 段獲取,本交換機與PIM路由器連接的埠號即,本交換機接收PIM hello消息的埠號。對於一個PIM路由器來說,其上啟用PIM協議的接口會定時向外發送PIM hello消息。二層交換機接收到PIM hello消息後,也會將該消息向其它二層交換機轉發,其它 二層交換機收到該消息後,也進行如步驟201所述的處理。步驟202 當組播源發出的一個組播流經由路由器埠到達第一跳PIM路由器時, 第一跳PIM路由器發現沒有接收該組播流的需求,則從該組播流的入接口處向外發送針對 該組播流的PIM剪枝消息。步驟203 當第一跳PIM路由器接收到下遊PIM路由器發來的針對一個組播流的 PIM剪枝消息或者接收到自身下掛客戶端發來的針對一個組播流的IGMP離開消息時,查找 與該組播流對應的組播路由表項,將該消息的接收接口從該表項中刪除,若發現該表項的 出接口列表為空,則從該組播流的入接口處向外發送針對該組播流的P頂剪枝消息。步驟202、203中的PIM剪枝消息的發送是限速的,即不會因為一直收到相同的組 播流而頻繁發送相同的PIM剪枝消息,發送間隔預設為1分鐘一次,直到該組播流被剪枝或 本地有接收該組播流的需求。
步驟204 第一跳PIM路由器與組播源之間的二層交換機接收該PIM剪枝消息,發現該消息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表中,則將該 PIM剪枝消息的接收埠設置為剪枝埠,此後不再向剪枝埠轉發該組播流。從圖2可以看出,在下述兩種情況下,需要剪枝從組播源到第一跳PIM路由器之間 的組播流一、根本沒有接收該組播流的需求;二、之前有接收該組播流的需求,但當前要求停止接收。圖3、圖4分別給出了當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM路由 器針對上述兩種情況的詳細處理圖3為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖,如圖3所示,其具體步驟如下步驟301 第一跳PIM路由器Rtr周期性地從自身的各PIM接口向外發送PIM hello消息。步驟302:二層交換機接收PIM hello消息,利用IGMP窺探功能將該消息的接收 埠設置為路由器埠,並將PIM hello消息從自身的各埠轉發給其它二層交換機。IGMP窺探是所有支持組播的二層交換機的基本特性。具備IGMP窺探功能的交換 機將收到IGMP通用查詢報文和PIM報文的埠視為路由器埠,而將收到IGMP加入報文 的埠視為成員埠。具備IGMP窺探功能的交換機會將接收到的所有組播流都送往路由 器埠,且只會將對應組播組的組播流送往成員埠。其它二層交換機接收到PIM hello消息後,也會進行如步驟302所述的處理。步驟303 組播源發出一個組播流,該組播流經由各路由器埠到達第一跳PIM路 由器Rtr。步驟304 =Rtr判斷本地是否已建立與該組播流對應的(S,G)表項,若是,執行步驟 305 ;否則,執行步驟308。步驟305 =Rtr判斷該(S,G)表項的出接口列表是否為空,若是,執行步驟306 ;否 貝U,執行步驟307。步驟306 :Rtr更新該(S,G)表項的老化時間,並從該組播流的入接口向外發送 PIM剪枝消息,本流程結束。PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組播源的IP地 址,目的MAC地址為組播源的MAC地址。由於Rtr是從組播流的入接口向外發送PIM剪枝消息,則該消息會到達Rtr與組 播源之間的二層交換機。該二層交換機接收到該PIM剪枝消息後的處理流程見圖5所示實 施例。步驟307 :Rtr按照該出接口列表中的出接口信息,向外轉發該組播流,本流程結束。步驟308 :Rtr建立與該組播流對應的(S,G)表項,並設置表項老化時間,從該組播 流的入接口向外發送PIM剪枝消息。這裡,(S,G)表項老化時間通常為3分鐘。PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組播源的IP位址,目的MAC地址為組播源的MAC地址。若採用PIM SM模式,則本步驟中,在建立(S,G)表項後,Rtr還需向RP發送針對 該組播流的源註冊消息。

圖4為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器Rtr接收到來自下遊PIM路由器的PIM剪枝消息或者來自自身下掛客戶端發來的 IGMP離開消息後的處理流程圖,如圖4所示,其具體步驟如下步驟401 第一跳PIM路由器Rtr接收下遊PIM路由器發來的針對一個組播流的 PIM剪枝消息或者接收來自自身下掛客戶端發來的針對一個組播流的IGMP離開消息,在本 地查找到與該組播流對應的(S,G)表項,按照現有PIM協議處理該(S,G)表項。當一個組播接收者不再接收一個組播流時,該組播接收者會向自身的葉路由器發 送針對該組播流的IGMP離開消息,葉路由器接收該IGMP離開消息後,向RP發送針對該組 播流的PIM剪枝消息,RP會向第一跳PIM路由器方向轉發該PIM剪枝消息。按照現有PIM協議,Rtr通常會將PIM剪枝消息的接收接口從該(S,G)表項的出 接口列表中刪除。步驟402 :Rtr判斷(S,G)表項的出接口列表是否為空,若是,執行步驟403 ;否則, 執行步驟404。步驟403 =Rtr從該組播流的入接口處向外發送PIM剪枝消息,本流程結束。本步驟中的PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組 播源的IP位址,目的MAC地址為組播源的MAC地址。由於Rtr是從組播流的入接口向外發送PIM剪枝消息,則該消息會到達Rtr與組 播源之間的二層交換機。該二層交換機接收到該PIM剪枝消息後的處理流程見圖5所示實 施例。步驟404 =Rtr不作進一步處理。第一跳PIM路由器發出的PIM剪枝消息會到達位於組播源與該第一跳PIM路由器 之間的二層交換機。圖5為本發明實施例提供的二層交換機接收到PIM剪枝消息後的處理 流程圖,如圖5所示,其具體步驟如下步驟501 二層交換機接收針對一個組播流的PIM剪枝消息。步驟502 二層交換機判斷該PIM剪枝消息中的上遊鄰居地址(upstream neighbor address)是否在自身利用PIM窺探功能維護的PIM路由器列表中,若是,執行步 驟503 ;否則,執行步驟504。步驟503 二層交換機按照現有的PIM窺探協議處理,本流程結束。若PIM剪枝消息中的上遊鄰居地址在利用PIM窺探功能維護的PIM路由器列表 中,則說明二層交換機位於PM路由器之間,則按照現有的PIM窺探協議處理即可;否則,說 明二層交換機位於組播源和第一跳PIM路由器之間,則要採用本發明實施例提供的處理步 驟,即步驟504 509。步驟504 二層交換機判斷本地是否存在該組播流的PIM窺探表項,若是,執行步 驟505 ;否則,執行步驟506。步驟505 二層交換機將PIM剪枝消息的接收埠加入到該PIM窺探表項的下遊 出埠列表中,同時標記該埠為剪枝埠,執行步驟507。
步驟506 二層交換機根據該PIM剪枝消息,在本地生成PIM窺探表項。其中,PIM 窺探表項中的上遊埠,即根據PIM剪枝消息的目的MAC地址在單播MAC表項中查找到的 出埠 ;PIM窺探表項中的上遊鄰居列表為空;且,將PIM剪枝消息的接收埠加入到該表 項的下遊出埠列表中,並標記該埠為剪枝埠 ;同時,將本交換機上除了上遊埠外的 其它所有PIM鄰居埠加入到該PIM窺探表項的下遊出埠列表中,執行步驟507。由於對於任一組播流來說,若未建立針對該組播流的PIM窺探表項,則二層交換 機默認是將該組播流向除了上遊埠外的所有PIM鄰居埠轉發的,因此,本步驟中,在建 立了針對一個組播流的PIM窺探表項後,應該將除已標記為剪枝埠外的其它所有除了上 遊埠外的PIM鄰居埠都加入到該PIM窺探表項的下遊出埠列表中來,以保證此後收 到該組播流後,該組播流仍能夠向該除了上遊埠外的其它所有PIM鄰居埠轉發。步驟507 二層交換機根據本地的PIM窺探表項和IGMP窺探表項,判斷是否有轉 發PIM剪枝消息對應的組播流的需求,即判斷本地的PIM窺探表項和IGMP窺探表項中是否 存在與該組播流對應的最高埠角色優先級為成員埠或路由器埠的埠,若是,執行 步驟508 ;否則,執行步驟509。步驟508 二層交換機不轉發PIM剪枝消息,本流程結束。 步驟509 二層交換機根據PIM剪枝消息的單播目的MAC地址,在單播MAC表項中 查找到出埠,將該PIM剪枝消息從該出埠轉發出去。該PIM剪枝消息會到達組播源。本實施例中,可以為PIM窺探表項中的剪枝埠設置生命值,剪枝埠的生命值 為PIM路由器上對應組播流的(S,G)表項生命值的1/3,默認為1分鐘。這樣PM DR可以 每隔1分鐘收到一份該組播流。當剪枝埠的生命值一到,則將PIM窺探表項中所有剪枝 埠暫時恢復成路由器埠,以使得該埠可以轉發組播流,但是若在剪枝埠的生命值 到達後的預設時間內未收到任何針對所述組播流的PIM剪枝消息,則將該埠徹底恢復成 路由器埠,同時判斷該PIM窺探表項中是否還包含其它剪枝埠,若否,則刪除該PIM窺 探表項,以節約表項資源。若在剪枝埠的生命值到達後的預設時間內收到任何針對所述 組播流的PIM剪枝消息,則將該埠恢復為剪枝埠,並重設該剪枝埠的生命值。對於被剪枝的組播流,此後當有設備點播該組播流時,需要嫁接該組播流。在下述 三種情況下,需要嫁接從組播源到第一跳PIM路由器之間的組播流一、當下遊PIM路由器下掛的客戶端點播該組播流時,此時,該客戶端會向下遊 PIM路由器發送IGMP加入消息,下遊PIM路由器接收到IGMP加入消息後,向第一跳PIM路 由器發送PIM加入消息;二、當二層交換機下掛的客戶端點播該組播流時,此時,該客戶端會向該二層交換 機發送IGMP加入消息;三、當第一跳PIM路由器下掛的客戶端點播該組播流時,此時,該客戶端會向第一 跳PIM路由器發送IGMP加入消息。以下給出本發明實施例提供的嫁接組播流的相關處理過程。圖6為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器接收到來自下遊PIM路由器的PIM加入消息後的處理流程圖,如圖6所示,其具體步 驟如下
步驟601 第一跳PIM路由器Rtr接收下遊PIM路由器發來的針對一個組播流的 PIM加入消息,在本地查找到與該組播流對應的(S,G)表項。當第一跳PIM路由器的下遊PIM路由器下掛一臺客戶端時,如圖1所示,其中,PIM 路由器2為第一跳PIM路由器,PIM路由器1為PIM路由器2的下遊PIM路由器,PIM路由 器1下掛一客戶端1,若該客戶端點播一個組播流,則會向該下遊PIM路由器發送針對該組 播流的IGMP加入消息,下遊PIM路由器接收到該IGMP加入消息時,會向第一跳PIM路由器, 如圖1中的PIM路由器2發送針對該組播流的PIM加入消息。步驟602 :Rtr判斷該(S,G)表項的出接口列表是否為空,若是,執行步驟603 ;否 貝U,執行步驟604。步驟603 =Rtr將該PIM加入消息的接收接口加入到該(S,G)表項的出接口列表 中,根據該消息的目的IP位址查找本地的單播路由表項,從單播路由表項中的出接口發送 PIM加入消息,本流程結束。這裡,PIM加入消息的目的IP位址、目的MAC地址分別是組播源的IP位址、MAC地 址。PIM加入消息會經過Rtr與組播源之間的二層交換機到達組播源,二層交換機接收到 PIM加入消息後的處理流程見圖9所示實施例。為防止PIM加入消息丟失以保證儘快獲得組播流,Rtr可以以較高頻率發送PIM加 入消息,直到接收到該組播流。步驟604 =Rtr按照現有PIM協議處理該PIM加入消息。圖7為本發明實施例提供的二層交換機接收到IGMP加入消息後的處理流程圖,如 圖7所示,其具體步驟如下步驟701 二層交換機接收針對一個組播流的IGMP加入消息。本步驟中的IGMP加入消息來自二層交換機下掛的客戶端。步驟702 二層交換機在本地查找與該組播流對應的IGMP窺探表項,將該消息的 接收埠作為成員埠加入到查找到的IGMP窺探表項中,並向本交換機上除接收埠外 的所有路由器埠、剪枝埠以及PIM窺探表項中的上遊鄰居轉發該IGMP加入消息。該IGMP加入消息可能會到達其它二層交換機或者到達第一跳PIM路由器,當其它 二層交換機接收到該IGMP加入消息時,其處理流程與本實施例相同,當第一跳PIM路由器 接收到該IGMP加入消息後的處理流程見圖8所示實施例。圖8為本發明實施例提供的當第一跳PIM路由器採用PIM SSM模式時,第一跳PIM 路由器Rtr接收到IGMP加入消息後的處理流程圖,如圖8所示,其具體步驟如下步驟801 第一跳PIM路由器Rtr接收針對一個組播流的IGMP加入消息。本步驟中的IGMP加入消息的來源有如下兩種情況來源一、當第一跳PIM路由器下掛一臺客戶端時,如圖1所示,PIM路由器2為第一 跳PIM路由器,其下掛一客戶端2,若該客戶端點播一個組播流,則該客戶端會向第一跳PIM 路由器發送IGMP加入消息。來源二、當第一跳PIM路由器與組播源之間的二層交換機下掛一客戶端時,如圖 1所示,PIM路由器2為第一跳PIM路由器,PIM路由器2與組播源1、2之間的二層交換機 1下掛一客戶端3,若該客戶端3點播一個組播流,則該客戶端3會向該二層交換機1發送 IGMP加入消息,二層交換機1會將該IGMP加入消息轉發給第一跳PIM路由器。
步驟802 :Rtr判斷本地是否已建立與該組播流對應的(S,G)表項,若是,執行步驟 803 ;否則,執行步驟808。步驟803 :Rtr判斷該(S,G)表項的出接口列表是否為空,若是,執行步驟804 ;否 貝U,執行步驟807。

步驟804 :Rtr判斷該IGMP加入消息是否來自指向組播源的接口,若是,執行步驟 805 ;否則,執行步驟806。IGMP加入消息來自指向組播源的接口,即該IGMP加入消息的來源屬於步驟801中 的來源二,此時,無需將該IGMP加入消息的接收接口添加到對應(S,G)表項的出接口列表 中,也不發送PIM加入消息。步驟805 =Rtr不作進一步處理,本流程結束。步驟806 =Rtr將該IGMP加入消息的接收接口添加到該(S,G)表項的出接口列表 中,並向組播源S方向發送針對該組播流的PIM加入消息,本流程結束。這裡,PIM加入消息的目的IP位址、目的MAC地址分別是組播源的IP位址、MAC地 址。PIM加入消息會經過Rtr與組播源之間的二層交換機到達組播源,二層交換機接收到 PIM加入消息後的處理流程見圖9所示實施例。為防止PIM加入消息丟失以保證儘快獲得組播流,可以以較高頻率發送PIM加入 消息,直到接收到該組播流。步驟807 =Rtr按照現有PIM協議處理,本流程結束。這裡,按照現有PIM協議,Rtr會將IGMP加入消息的接收接口添加到(S,G)表項 的出接口列表中。步驟808 =Rtr按照現有PIM協議處理。這裡,按照現有PIM協議,Rtr會建立與組播流對應的(S,G)表項,然後將IGMP加 入消息的接收接口添加到該(S,G)表項的出接口列表中。圖9為本發明實施例提供的二層交換機接收到PIM加入消息後的處理流程圖,如 圖9所示,其具體步驟如下步驟901 二層交換機接收針對一個組播流的PIM加入消息。步驟902 二層交換機判斷PIM加入消息中的上遊鄰居地址是否在利用PIM窺探 功能維護的PIM路由器列表中,若是,執行步驟903;否則,執行步驟904。步驟903 二層交換機按照現有PIM窺探協議處理,本流程結束。步驟904 二層交換機判斷本地是否存在該組播流的PIM窺探表項,若是,執行步 驟905 ;否則,執行步驟906。步驟905 二層交換機判斷PIM加入消息的接收埠是否為該PIM窺探表項的剪 枝埠,若是,執行步驟907 ;否則,執行步驟906。步驟906 二層交換機不作進一步處理,本流程結束。步驟907 二層交換機根據本地的PIM窺探表項和IGMP窺探表項,判斷除了 PIM加 入消息的接收埠外,是否已有其它埠有轉發該組播流的需求,若是,執行步驟908;否 貝丨J,執行步驟909。步驟908 二層交換機不轉發該PIM加入消息,轉至步驟910。步驟909 二層交換機根據PIM加入消息的目的IP位址查找本地的單播路由表項,從單播路由表項中的出接口轉發該PIM加入消息,執行步驟910。步驟910 二層交換機將PIM窺探表項的下遊出埠列表中該PIM加入消息的接 收埠的剪枝標記刪除,以將該PIM加入消息的接收埠恢復為路由器埠繼續轉發該組
播流。 步驟911 二層交換機判斷是否PIM窺探表項的下遊出埠列表中已不包含任何 剪枝埠且上遊鄰居列表為空,若是,執行步驟912;否則,執行步驟913。步驟912 二層交換機刪除該PIM窺探表項,以節約表項資源,本流程結束。步驟913 二層交換機不作進一步處理。圖10為本發明實施例提供的當第一跳PIM路由器採用PIM SM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖,如圖10所示,其具體步驟如下步驟1001 第一跳PIM路由器Rtr周期性地從自身的各PM接口向外發送PIM hello消息。步驟1002 二層交換機接收PIM hello消息,利用IGMP窺探功能將該消息的接收 埠設置為路由器埠,並將PIM hello消息從自身的各埠轉發給其它二層交換機。其它二層交換機接收到PIM hello消息後,也會進行如步驟1002所述的處理。步驟1003 組播源發出一個組播流,該組播流經由各路由器埠到達第一跳PIM 路由器Rtr。步驟1004 =Rtr判斷本地是否已建立與該組播流對應的(S,G)表項,若是,執行步 驟1005 ;否則,執行步驟1008。步驟1005 :Rtr判斷該(S,G)表項的出接口列表是否為空,若是,執行步驟1006 ; 否則,執行步驟1007。步驟1006 :Rtr更新該(S,G)表項的老化時間,並從該組播流的入接口向外發送 PIM剪枝消息,本流程結束。PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組播源的IP地 址,目的MAC地址為組播源的MAC地址。由於Rtr是從組播流的入接口向外發送PIM剪枝消息,則該消息會到達Rtr與組 播源之間的二層交換機。該二層交換機接收到該PIM剪枝消息後的處理流程見圖5所示實 施例。步驟1007 :Rtr按照該出接口列表中的出接口信息,向外轉發該組播流,本流程結
束ο步驟1008 =Rtr建立與該組播流對應的(S,G)表項,並設置表項老化時間。這裡,(S,G)表項老化時間通常為3分鐘。步驟1009 :Rtr判斷自身是否為DR,若是,執行步驟1011 ;否則,執行步驟1010。步驟1010 =Rtr不作進一步處理,本流程結束。步驟1011 =Rtr向RP發送針對該組播流的源註冊消息。步驟1012 :Rtr接收到RP返回的針對該組播流的源註冊停止消息,判斷該組播流 對應的(S,G)表項的出接口列表是否為空,若是,執行步驟1013;否則,執行步驟1014。當RP接收到針對該組播流的源註冊消息後,若發現有針對該組播流的接收者,則 會先向Rtr返回針對該組播流的PIM加入消息,然後再向Rtr發送針對該組播流的源註冊停止消息,Rtr收到P IM加入消息後會將該消息的接收埠添加到該組播流對應的(S,G) 表項的出接口中;若RP發現沒有針對該組播流的接收者,則直接向Rtr返回針對該組播流 的源註冊停止消息。步驟1013 :Rtr從該組播流的入接口向外發送PIM剪枝消息,本流程結束。PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組播源的IP地 址,目的MAC地址為組播源的MAC地址。同樣,由於Rtr是從組播流的入接口向外發送PIM剪枝消息,則該消息會到達Rtr 與組播源之間的二層交換機。該二層交換機接收到該PIM剪枝消息後的處理流程見圖5所 示實施例。步驟1014 :Rtr按照該出接口列表中的出接口信息,向外轉發該組播流。 當第一跳PIM路由器採用雙向PIM模式且為非DR時,第一跳PIM路由器接收到組 播流後的處理流程與第一跳PIM路由器採用PIM SM模式且為非DR時接收到組播流後的處 理流程相同。另外,當第一跳PIM路由器採用PIM SM模式或者採用雙向PIM模式時,當第一跳 PIM路由器由非DR變為DR時,第一跳PIM路由器要針對自身已建立的每個(S,G)表項,向 組播源方向發送一個PIM加入消息。當第一跳PIM路由器採用PIM SM模式時,第一跳PIM路由器Rtr接收到來自下遊 PIM路由器的PIM剪枝消息或者來自自身下掛客戶端發來的IGMP離開消息後的處理流程與 第一跳PIM路由器採用PIM SSM模式時的處理流程相同,具體可見圖4所示實施例。當第一跳PIM路由器採用PIM SM模式時,第一跳PIM路由器接收到來自下遊PIM 路由器的PIM加入消息後的處理流程與第一跳PIM路由器採用PIM SSM模式時的處理流程 相同,具體可見圖6所示實施例。當第一跳PIM路由器採用PIM SM模式時,第一跳PIM路由器Rtr接收到IGMP加 入消息後的處理流程與第一跳PIM路由器採用PIM SSM模式時的處理流程相同,具體可見 圖8所示實施例。圖11為本發明實施例提供的當第一跳PIM路由器採用PIM DM模式時,第一跳PIM 路由器接收到組播流後的處理流程圖,如圖11所示,其具體步驟如下步驟1101 第一跳PIM路由器Rtr周期性地從自身的各PIM接口向外發送PIM hello消息。步驟1102 二層交換機接收PIM hello消息,利用IGMP窺探功能將該消息的接收 埠設置為路由器埠,並將PIM hello消息從自身的各埠轉發給其它二層交換機。其它二層交換機接收到PIM hello消息後,也會進行如步驟1102所述的處理。步驟1103 組播源發出一個組播流,該組播流經由各路由器埠到達第一跳PIM 路由器Rtr。步驟1104 =Rtr判斷本地是否已建立與該組播流對應的(S,G)表項,若是,執行步 驟1105 ;否則,執行步驟1106。步驟1105 =Rtr更新該(S,G)表項的老化時間,轉至步驟1107。步驟1106 =Rtr建立針對該組播流的(S,G)表項,並設置表項老化時間,同時,向 自身的所有下遊PIM鄰居轉發該組播流,若接收到一個下遊PIM鄰居返回的PIM剪枝消息,則將該PIM剪枝消息的接收接口作為剪枝接口添加到(S,G)表項的出接口列表中,若接收 到一個下遊PIM鄰居返回的PIM嫁接消息,則將該PIM嫁接消息的接收接口作為轉發接口 添加到該(S,G)表項的出接口列表中,直至與下遊PIM鄰居連接的所有接口都已添加到該 (S,G)表項為止。這裡,(S,G)表項老化時間通常為3分鐘。 步驟1107 :Rtr判斷是否該(S,G)表項的所有出接口都為剪枝接口,若是,執行步 驟1108 ;否則,執行步驟1109。步驟1108 :Rtr從該組播流的入接口向外發送PIM剪枝消息,本流程結束。PIM剪枝消息的上遊鄰居地址為組播源的IP位址,目的IP位址是組播源的IP地 址,目的MAC地址為組播源的MAC地址。由於Rtr是從組播流的入接口向外發送PIM剪枝消息,則該消息會到達Rtr與組 播源之間的二層交換機。該二層交換機接收到該PIM剪枝消息後的處理流程見圖5所示實 施例。步驟1109 =Rtr將該組播流向(S,G)表項的各轉發出接口轉發。圖12為本發明實施例提供的當第一跳PIM路由器採用PIM DM模式時,第一跳PIM 路由器Rtr接收到來自PIM鄰居的PIM嫁接消息後的處理流程圖,如圖12所示,其具體步 驟如下步驟1201 :Rtr接收PIM鄰居發來的針對一個組播流的PIM嫁接消息,在本地查找 到與該組播流對應的(S,G)表項。步驟1202 Rtr判斷該(S,G)表項的出接口列表是否為空,若是,執行步驟1203 ; 否則,執行步驟1204。步驟1203 =Rtr將該PIM嫁接消息的接收接口加入到該(S,G)表項的出接口列表 中,根據該消息的目的IP位址查找本地的單播路由表項,從單播路由表項中的出接口發送 PIM加入消息,本流程結束。這裡,PIM加入消息的目的IP位址、目的MAC地址分別是組播源的IP位址、MAC地 址。PIM加入消息會經過Rtr與組播源之間的二層交換機到達組播源,二層交換機接收到 PIM加入消息後的處理流程見圖9所示實施例。為防止PIM加入消息丟失以保證儘快獲得組播流,Rtr可以以較高頻率發送PIM加 入消息,直到接收到該組播流。步驟1204 =Rtr按照現有PIM協議處理該PIM嫁接消息。當第一跳PIM路由器採用PIM DM模式時,第一跳PIM路由器Rtr接收到來自下遊 PIM路由器的PIM剪枝消息或者來自自身下掛客戶端發來的IGMP離開消息後的處理流程與 第一跳PIM路由器採用PIM SSM模式時的處理流程相同,具體可見圖4所示實施例。當第一跳PIM路由器採用PIM DM模式時,第一跳PIM路由器Rtr接收到IGMP加 入消息後的處理流程與第一跳PIM路由器採用PIM SSM模式時的處理流程相同,具體可見 圖8所示實施例。圖13為本發明實施例提供的PIM路由器的組成示意圖,該PIM路由器為第一跳 PIM路由器,直接通過具備PIM窺探功能的二層交換機連接到組播源,如圖13所示,該PIM 路由器包括第一模塊和第二模塊,其中
第一模塊接收所述組播源發來的組播流,發現沒有接收該組播流的需求,或者, 接收下遊PIM路由器發來的針對一個組播流的PIM剪枝消息或者接收本PIM路由器下掛客 戶端發來的針對一個組播流的組管理離開消息,將該消息的接收接口從該組播流的出接口 列表中刪除,若發現已經沒有接收該組播流的需求,則向第二模塊發送剪枝指示。 這裡,組管理離開消息為IGMP離開消息或MLD離開消息。第二模塊接收所述剪枝指示,從所述組播流的入接口處向外發送PIM剪枝消息。當PIM路由器採用PIM SSM模式,或者採用PIM SM且不作為DR時,第一模塊可包 括第一子模塊接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊。第二子模塊接收第一子模塊發來的組播流信息,發現本地未建立與所述組播流 對應的組播路由表項,或者雖建立了與所述組播流對應的組播路由表項但該表項的出接口 列表為空,則確定沒有接收該組播流的需求,向第二模塊發送剪枝指示。當PIM路由器採用PIM SM且作為DR時,第一模塊可包括第一子模塊接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊。第二子模塊接收第一子模塊發來的組播流信息,若發現本地雖建立了與所述組 播流對應的組播路由表項但該表項的出接口列表為空,則確定沒有接收該組播流的需求, 向第二模塊發送剪枝指示;或者,發現本地未建立與所述組播流對應的組播路由表項,則建 立與所述組播流對應的組播路由表項,並向匯合點RP發送針對該組播流的源註冊消息,當 收到RP返回的源註冊停止消息時,若發現該組播路由表項的出接口列表為空,則確定沒有 接收該組播流的需求,向第二模塊發送剪枝指示。當PIM路由器採用PIM DM時,第一模塊可包括第一子模塊接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊。第二子模塊接收第一子模塊發來的組播流信息,若發現本地雖建立了與所述組 播流對應的組播路由表項但該表項的所有出接口都為剪枝接口,則確定沒有接收該組播流 的需求,向第二模塊發送剪枝指示;或者,發現本地未建立與所述組播流對應的組播路由表 項,則建立與所述組播流對應的組播路由表項,並向自身的所有下遊PIM鄰居轉發該組播 流,若接收到一個下遊PIM鄰居返回的PIM剪枝消息,則將該PIM剪枝消息的接收接口作為 剪枝接口添加到該組播路由表項的出接口列表中,若接收到一個下遊PIM鄰居返回的PIM 嫁接消息,則將該PIM嫁接消息的接收接口作為轉發接口添加到該組播路由表項的出接口 列表中,當將與所有下遊PIM鄰居連接的接口都添加到該組播路由表項的出接口列表中 時,若發現該組播路由表項的所有出接口都為剪枝接口,則確定沒有接收該組播流的需求, 向第二模塊發送剪枝指示。在實際應用中,當PIM路由器採用PM SM模式或PIM SSM模式時,PIM路由器還 可包括第三模塊,用於接收下遊PIM路由器發來的針對所述組播流的PIM加入消息或者自 身下掛客戶端發來的針對所述組播流的組管理加入消息,向所述組播源方向發送PIM加入 消息。第三模塊還可用於,當接收到下遊PIM路由器發來的針對所述組播流的PIM加入 消息之後,判斷本地是否已建立與所述組播流對應的組播路由表項,若是且該組播路由表 項的出接口列表為空,則將所述PIM加入消息的接收接口添加到該組播路由表項的出接口列表中,並執行所述向組播源方向發送PIM加入消息的動作。在實際應用中,當PIM路由器採用PIM SM模式或PIM SSM模式或PIM DM模式時, PIM路由器還可包括第四模塊,接收自身下掛客戶端發來的針對所述組播流的組管理加 入消息,向所述組播源方向發送PIM加入消息。第四模塊還可用於,當接收到自身下掛客戶端發來的針對所述組播流的組管理加 入消息之後,判斷本地是否已建立與所述組播流對應的組播路由表項,若是且該組播路由 表項的出接口列表為空,則將所述組管理加入消息的接收接口添加到該組播路由表項的出 接口列表中,並執行所述向組播源方向發送PIM加入消息的動作。當PIM路由器採用PIM SM模式且不為DR時,或者採用雙向PIM模式且不為DR時, PIM路由器還可包括第五模塊,當本PIM路由器由不為DR變為DR時,針對本PIM路由器 已建立的針對每個組播流的組播路由表項,向組播源方向發送針對該組播流的PIM加入消 肩、ο當PIM路由器採用PIM DM時,還可包括第六模塊,用於接收下遊PIM鄰居發來的 針對所述組播流的PIM嫁接消息,向所述組播源方向發送PIM加入消息。

第六模塊還可用於,當接收到下遊PIM鄰居發來的針對所述組播流的PIM嫁接消 息之後,判斷本地是否已建立與所述組播流對應的組播路由表項,若是且該組播路由表項 的出接口列表為空,則將所述PIM嫁接消息的接收接口添加到該組播路由表項的出接口列 表中,並執行所述向組播源方向發送PIM加入消息的動作。以下給出本發明實施例提供的具備PIM窺探功能的交換機的組成,該二層交換機 位於組播源與第一跳PIM路由器之間,該交換機主要包括第一模塊、第二模塊和第三模 塊,其中第一模塊接收針對一個組播流的PIM剪枝消息,若發現消息中的上遊鄰居地址 不在自身利用PIM窺探功能維護的PIM路由器列表中,則將該消息的接收埠作為剪枝端 口,並將該剪枝埠添加到與所述組播流對應的PIM窺探表項中,不再向所述剪枝埠轉 發所述組播流。第一模塊還可用於,為所述剪枝埠設置剪枝時間,且,當該剪枝時間到達後,開 始允許向所述剪枝埠轉發所述組播流。第一模塊還可用於,為該剪枝埠設置生命值,其中,該剪枝埠的生命值小於所 述第一跳PIM路由器上與所述PIM剪枝消息對應的組播流的組播路由表項的生命值,且,當 該剪枝埠的生命值到達時,將該剪枝埠暫時恢復為路由器埠,若在預設時長內未接 收到針對所述組播流的PIM剪枝消息,則將所述埠徹底恢復為路由器埠 ;否則,則將所 述埠恢復為剪枝埠,並重置該剪枝埠的生命值。當發現PIM剪枝消息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路 由器列表中之後,第一模塊還可用於,若發現本地未建立與所述組播流對應的PIM窺探表 項,則建立與所述組播流對應的PIM窺探表項,其中,PIM窺探表項的上遊鄰居列表為空,且 將本交換機上除了上遊埠外的其它所有PIM鄰居埠加入到該表項的下遊出埠列表 中,執行所述將該剪枝埠添加到與所述組播流對應的PIM窺探表項中的動作;且,根據本 地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消息對應的組播流的需求, 若是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消息。
當發現消息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表 中之後,第一模塊還可用於,若發現本地已建立與所述組播流對應的PIM窺探表項,則直接 執行所述將該剪枝埠添加到與所述組播流對應的PIM窺探表項中的動作;且,根據本地 的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消息對應的組播流的需求,若 是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消息。這裡,當二層 交換機採用IGMP協議時,組管理窺探表項為IGMP窺探表項;當二層 交換機採用MLD協議時,組管理窺探表項為MLD窺探表項。第二模塊接收針對一個組播流的PIM加入消息,發現消息中的上遊鄰居地址不 在自身利用PIM窺探功能維護的PIM路由器列表中,若發現本地有該PIM加入消息對應組 播流的PIM窺探表項,且該PIM加入消息的接收埠為所述PIM窺探表項的剪枝埠,則根 據本地PIM窺探表項和組管理窺探表項判斷本交換機除了該PIM加入消息的接收埠外, 是否還有其它埠有接收所述組播流的需求,若是,不轉發該PIM加入消息,否則,向組播 源方向轉發所述PIM加入消息。第二模塊還可用於,在向組播源方向轉發所述PIM加入消息後,將所述PIM加入消 息的接收埠從所述PIM窺探表項中刪除,將所述接收埠恢復為路由器埠。第三模塊接收針對一個組播流的組管理加入消息,將該消息的接收埠作為成 員埠加入到所述組播流的組管理窺探表項中,並向本交換機上除接收埠外的所有路由 器埠、剪枝埠以及PIM窺探表項中的上遊鄰居轉發該組管理加入消息。這裡,組管理加入消息為IGMP加入消息或MLD加入消息。從本發明各實施例的實施方式上看,這些實施方式屬於電腦程式發明(當然, 本發明並不排除硬體的實施方式),其本質將體現為一個電腦程式產品,其可以承載於多 種存儲介質中。通過上述介紹本領域技術人員清楚本發明可以是一個電腦程式產品,該 電腦程式產品包括若干指令,用於讓一個硬體平臺,如本發明實施例中的第一跳PIM路 由器以及位於組播源和第一跳PIM路由器之間的二層交換,完成本發明各實施例提供的方 法。從設備層面理解,一個基於本發明的系統可以包括上述電腦程式產品以及運行該計 算機程序的硬體平臺。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
權利要求
1.一種組播剪枝方法,組播源通過具備協議無關組播PIM窺探功能的二層交換機連接 到第一跳PIM路由器,其特徵在於,該方法包括所述第一跳PIM路由器接收所述組播源發來的組播流,發現沒有接收該組播流的需 求,則從該組播流的入接口處向外發送PIM剪枝消息;或者,所述第一跳PIM路由器接收下遊PIM路由器發來的針對一個組播流的PIM剪枝消息或 者接收自身下掛客戶端發來的針對一個組播流的組管理離開消息,將該消息的接收接口從 該組播流的出接口列表中刪除,若發現已經沒有接收該組播流的需求,則從該組播流的入 接口處向外發送PIM剪枝消息。
2.根據權利要求1所述的方法,其特徵在於,當所述第一跳PIM路由器採用PIMSSM模 式,或者採用PIM SM模式且不為指定路由器DR,或者採用雙向PIM模式且不為DR時,所述第一跳PIM路由器接收所述組播源發來的組播流,發現沒有接收該組播流的需求 包括第一跳PIM路由器接收所述組播源發來的組播流,發現本地未建立與所述組播流對應 的組播路由表項,或者雖建立了與所述組播流對應的組播路由表項但該表項的出接口列表 為空,則確定沒有接收該組播流的需求。
3.根據權利要求1所述的方法,其特徵在於,當所述第一跳PIM路由器採用PIMSM且 為DR時,所述第一跳PIM路由器接收所述組播源發來的組播流,發現沒有接收該組播流的需求 包括第一跳PIM路由器接收所述組播源發來的組播流,發現本地雖建立了與所述組播流對 應的組播路由表項但該表項的出接口列表為空,則確定沒有接收該組播流的需求;或者,發 現本地未建立與所述組播流對應的組播路由表項,則建立與所述組播流對應的組播路由表 項,並向匯合點RP發送針對該組播流的源註冊消息,當收到RP返回的源註冊停止消息時, 若發現該組播路由表項的出接口列表為空,則確定沒有接收該組播流的需求。
4.根據權利要求1所述的方法,其特徵在於,當所述第一跳PIM路由器採用PIMDM時,所述第一跳PIM路由器接收所述組播源發來的組播流,發現沒有接收該組播流的需求包括第一跳PIM路由器接收所述組播源發來的組播流,發現本地雖建立了與所述組播流 對應的組播路由表項但該表項的所有出接口都為剪枝接口,則確定沒有接收該組播流的需 求;或者,發現本地未建立與所述組播流對應的組播路由表項,則建立與所述組播流對應的 組播路由表項,並向自身的所有下遊PIM鄰居轉發該組播流,若接收到一個下遊PIM鄰居返 回的PIM剪枝消息,則將該PIM剪枝消息的接收接口作為剪枝接口添加到該組播路由表項 的出接口列表中,若接收到一個下遊PIM鄰居返回的PIM嫁接消息,則將該PIM嫁接消息的 接收接口作為轉發接口添加到該組播路由表項的出接口列表中,當將與所有下遊PIM鄰居 連接的接口都添加到該組播路由表項的出接口列表中時,若發現該組播路由表項的所有出 接口都為剪枝接口,則確定沒有接收該組播流的需求。
5.根據權利要求1所述的方法,其特徵在於,所述方法進一步包括當所述第一跳PIM路由器為PIM SSM模式或PIM SM模式時,所述第一跳PIM路由器接 收下遊PIM路由器發來的針對所述組播流的PIM加入消息,向所述組播源方向發送PIM加入消息;或者,當所述第一跳PIM路由器為PIM SSM模式或PIM SM模式或PM DM模式時,所述 第一跳PIM路由器接收自身下掛客戶端發來的針對所述組播流的組管理加入消息,向所述 組播源方向發送PIM加入消息。
6.根據權利要求5所述的方法,其特徵在於,所述第一跳PIM路由器接收下遊PIM路由 器發來的針對所述組播流的PIM加入消息或者接收自身下掛客戶端發來的針對所述組播 流的組管理加入消息之後、向所述組播源方向發送PIM加入消息之前進一步包括第一跳PIM路由器判斷本地是否已建立與所述組播流對應的組播路由表項,若是且 該組播路由表項的出接口列表為空,則將所述PIM加入消息或組管理加入消息的接收接口 添加到該組播路由表項的出接口列表中,並執行所述向組播源方向發送PIM加入消息的動 作。
7.根據權利要求1所述的方法,其特徵在於,當所述第一跳PIM路由器採用PIMSM模 式且不為DR時,或者採用雙向PIM模式且不為DR時,所述方法進一步包括第一跳PIM路由器由不為DR變為DR,針對自身已建立的針對每個組播流的組播路由表 項,向組播源方向發送針對該組播流的PIM加入消息。
8.根據權利要求1所述的方法,其特徵在於,當所述第一跳PIM路由器採用PIMDM時, 所述方法進一步包括第一跳PIM路由器接收下遊PIM鄰居發來的針對所述組播流的PIM嫁接消息,向所述 組播源方向發送PIM加入消息。
9.根據權利要求8所述的方法,其特徵在於,所述第一跳PIM路由器接收下遊PIM鄰居 發來的針對所述組播流的PIM嫁接消息之後、向所述組播源方向發送PIM加入消息之前進 一步包括第一跳PIM路由器判斷本地是否已建立與所述組播流對應的組播路由表項,若是且該 組播路由表項的出接口列表為空,則將所述PIM嫁接消息的接收接口添加到該組播路由表 項的出接口列表中,並執行所述向組播源方向發送PIM加入消息的動作。
10.一種組播剪枝方法,組播源通過具備協議無關組播PIM窺探功能的二層交換機連 接到第一跳PIM路由器,其特徵在於,該方法包括二層交換機接收所述第一跳PIM路由器發來的PIM剪枝消息,發現消息中的上遊鄰居 地址不在自身利用PIM窺探功能維護的PIM路由器列表中,則將該消息的接收埠作為剪 枝埠,並將該剪枝埠添加到與所述組播流對應的PIM窺探表項中,不再向所述剪枝端 口轉發所述組播流。
11.根據權利要求10所述的方法,其特徵在於,所述二層交換機將該消息的接收埠 作為剪枝埠的同時進一步包括為該剪枝埠設置剪枝時間,且,當該剪枝時間到達後,開始允許向所述剪枝埠轉發所述組播流。
12.根據權利要求10所述的方法,其特徵在於,所述二層交換機將該消息的接收埠 作為剪枝埠的同時進一步包括二層交換機為該剪枝埠設置生命值,其中,該剪枝埠的生命值小於所述第一跳PIM 路由器上與所述PIM剪枝消息對應的組播流的組播路由表項的生命值,且,當該剪枝埠的生命值到達時,將該剪枝埠暫時恢復為路由器埠,若在預設時長內未接收到針對所 述組播流的PIM剪枝消息,則將所述埠徹底恢復為路由器埠 ;否則,則將所述埠恢復 為剪枝埠,並重置該剪枝埠的生命值。
13.根據權利要求10所述的方法,其特徵在於,所述二層交換機發現消息中的上遊鄰 居地址不在自身利用PIM窺探功能維護的PIM路由器列表中之後、將該消息的接收埠作 為剪枝埠之前進一步包括二層交換機發現本地未建立與所述組播流對應的PIM窺探表項,則建立與所述組播流 對應的PIM窺探表項,其中,PIM窺探表項的上遊鄰居列表為空,且將本交換機上除了上遊 埠外的其它所有PIM鄰居埠加入到該表項的下遊出埠列表中;且,所述將該剪枝埠添加到與所述組播流對應的PIM窺探表項中之後進一步包括二層交換機根據本地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消 息對應的組播流的需求,若是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消 肩、ο
14.根據權利要求10所述的方法,其特徵在於,所述二層交換機發現消息中的上遊鄰 居地址不在自身利用PIM窺探功能維護的PIM路由器列表中之後、將該消息的接收埠作 為剪枝埠之前進一步包括二層交換機發現本地已建立與所述組播流對應的PIM窺探表項;且,所述二層交換機將該剪枝埠添加到與所述組播流對應的PIM窺探表項中之後進 一步包括二層交換機根據本地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消 息對應的組播流的需求,若是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消 肩、ο
15.根據權利要求13或14所述的方法,其特徵在於,預先設定對於二層交換機上的 任一埠,若該埠的角色包括成員埠、剪枝埠和路由器埠中的全部或任意兩個, 則該埠的各角色的優先級順序從高到低依次為成員埠、剪枝埠、路由器埠 ;所述二層交換機根據本地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪 枝消息對應的組播流的需求包括二層交換機判斷本地的PIM窺探表項和組管理窺探表項中是否存在與該組播流對應 的最高埠角色優先級為成員埠或路由器埠的埠,且,若是,則確定有轉發PIM剪枝消息對應的組播流的需求;否則,確定沒有轉發PIM剪 枝消息對應的組播流的需求。
16.根據權利要求10所述的方法,其特徵在於,所述方法進一步包括二層交換機接收所述第一跳PIM路由器發來的PIM加入消息,發現消息中的上遊鄰居 地址不在自身利用PIM窺探功能維護的PIM路由器列表中,若發現本地有該PIM加入消息 對應組播流的PIM窺探表項,且該PIM加入消息的接收埠為所述PIM窺探表項的剪枝端 口,則根據本地PIM窺探表項和組管理窺探表項判斷本交換機除了該PIM加入消息的接收 埠外,是否還有其它埠有接收所述組播流的需求,若是,不轉發該PIM加入消息,否則, 向組播源方向轉發所述PIM加入消息。
17.根據權利要求16所述的方法,其特徵在於,所述二層交換機向組播源方向轉發所述PIM加入消息之後進一步包括二層交換機將所述PIM加入消息的接收埠從所述PIM窺探表項中刪除,將所述接收 埠恢復為路由器埠。
18.根據權利要求10所述的方法,其特徵在於,所述方法進一步包括二層交換機接收針對一個組播流的組管理加入消息,將該消息的接收埠作為成員端 口加入到所述組播流的組管理窺探表項中,並向本交換機上除接收埠外的所有路由器端 口、剪枝埠以及PIM窺探表項中的上遊鄰居轉發該組管理加入消息。
19.根據權利要求10所述的方法,其特徵在於,所述二層交換機支持網際網路組管理協 議IGMP或組播偵聽者發現協議MLD協議。
20.一種PIM路由器,該PIM路由器直接通過二層交換機連接到組播源,其特徵在於,該 PIM路由器包括第一模塊,接收所述組播源發來的組播流,發現沒有接收該組播流的需求,或者,接收 下遊PIM路由器發來的針對一個組播流的PIM剪枝消息或者接收本PIM路由器下掛客戶端 發來的針對一個組播流的組管理離開消息,將該消息的接收接口從該組播流的出接口列表 中刪除,若發現已經沒有接收該組播流的需求,則向第二模塊發送剪枝指示;第二模塊,接收所述剪枝指示,從所述組播流的入接口處向外發送PIM剪枝消息。
21.根據權利要求20所述的PIM路由器,其特徵在於,當所述第一跳PIM路由器採用 PIM SSM模式,或者採用PIM SM且不作為指定路由器DR,或者採用雙向PIM模式且不作為 DR時,所述第一模塊包括第一子模塊,接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊;第二子模塊,接收第一子模塊發來的組播流信息,發現本地未建立與所述組播流對應 的組播路由表項,或者雖建立了與所述組播流對應的組播路由表項但該表項的出接口列表 為空,則確定沒有接收該組播流的需求,向第二模塊發送剪枝指示。
22.根據權利要求20所述的PIM路由器,其特徵在於,當所述第一跳PIM路由器採用 PIM SM且作為DR時,所述第一模塊包括第一子模塊,接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊;第二子模塊,接收第一子模塊發來的組播流信息,若發現本地雖建立了與所述組播流 對應的組播路由表項但該表項的出接口列表為空,則確定沒有接收該組播流的需求,向第 二模塊發送剪枝指示;或者,發現本地未建立與所述組播流對應的組播路由表項,則建立與 所述組播流對應的組播路由表項,並向匯合點RP發送針對該組播流的源註冊消息,當收到 RP返回的源註冊停止消息時,若發現該組播路由表項的出接口列表為空,則確定沒有接收 該組播流的需求,向第二模塊發送剪枝指示。
23.根據權利要求20所述的PIM路由器,其特徵在於,當所述第一跳PIM路由器採用 PIM DM時,所述第一模塊包括第一子模塊,接收所述組播源發來的組播流,將該組播流信息發送給第二子模塊;第二子模塊,接收第一子模塊發來的組播流信息,若發現本地雖建立了與所述組播流 對應的組播路由表項但該表項的所有出接口都為剪枝接口,則確定沒有接收該組播流的需求,向第二模塊發送剪枝指示;或者,發現本地未建立與所述組播流對應的組播路由表項, 則建立與所述組播流對應的組播路由表項,並向自身的所有下遊PIM鄰居轉發該組播流, 若接收到一個下遊PIM鄰居返回的PIM剪枝消息,則將該PIM剪枝消息的接收接口作為剪 枝接口添加到該組播路由表項的出接口列表中,若接收到一個下遊PIM鄰居返回的PIM嫁 接消息,則將該PIM嫁接消息的接收接口作為轉發接口添加到該組播路由表項的出接口列 表中,當將與所有下遊PIM鄰居連接的接口都添加到該組播路由表項的出接口列表中時, 若發現該組播路由表項的所有出接口都為剪枝接口,則確定沒有接收該組播流的需求,向 第二模塊發送剪枝指示。
24.根據權利要求20所述的PIM路由器,其特徵在於,當所述PIM路由器採用PIMSM 模式或PIM SSM模式時,所述PIM路由器進一步包括第三模塊,接收下遊PIM路由器發來的針對所述組播流的PIM加入消息,向所述組播源 方向發送PIM加入消息;或者,當所述PIM路由器採用PIM SM模式或PIM SSM模式或PIM DM模式時,所述PIM 路由器進一步包括第三模塊,接收自身下掛客戶端發來的針對所述組播流的組管理加入消息,向所述組 播源方向發送PIM加入消息。
25.根據權利要求M所述的PIM路由器,其特徵在於,所述第三模塊進一步用於,當接收到下遊PIM路由器發來的針對所述組播流的PIM加入消息或者自身下掛客戶端發來的針對所述組播流的組管理加入消息之後,判斷本地是否已建立與所述組播流對應的 組播路由表項,若是且該組播路由表項的出接口列表為空,則將所述PIM加入消息或組管 理加入消息的接收接口添加到該組播路由表項的出接口列表中,並執行所述向組播源方向 發送PIM加入消息的動作。
26.根據權利要求20所述的PIM路由器,其特徵在於,當所述第一跳PIM路由器採用 PIM SM模式且不為DR時,或者採用雙向PIM模式且不為DR時,所述PIM路由器進一步包 括第四模塊,當本PIM路由器由不為DR變為DR時,針對本PIM路由器已建立的針對每個 組播流的組播路由表項,向組播源方向發送針對該組播流的PIM加入消息。
27.根據權利要求20所述的PIM路由器,其特徵在於,當所述第一跳PIM路由器採用 PIM DM時,所述PIM路由器進一步包括第五模塊,接收下遊PIM鄰居發來的針對所述組播流的PIM嫁接消息,向所述組播源方 向發送PIM加入消息。
28.根據權利要求27所述的PIM路由器,其特徵在於,所述第五模塊進一步用於,當接收到下遊PIM鄰居發來的針對所述組播流的PIM嫁接消息之後,判斷本地是否已建立與所述組播流對應的組播路由表項,若是且該組播路由表項的出接口列表為空,則將 所述PIM嫁接消息的接收接口添加到該組播路由表項的出接口列表中,並執行所述向組播 源方向發送PIM加入消息的動作。
29.一種具備PIM窺探功能的二層交換機,位於組播源與第一跳PIM路由器之間,其特 徵在於,該交換機包括第一模塊,接收針對一個組播流的PIM剪枝消息,發現消息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表中,則將該消息的接收埠作為剪枝埠,並將 該剪枝埠添加到與所述組播流對應的PIM窺探表項中,不再向所述剪枝埠轉發所述組播流。
30.根據權利要求四所述的交換機,其特徵在於,所述第一模塊進一步用於,為所述 剪枝埠設置剪枝時間,且,當該剪枝時間到達後,開始允許向所述剪枝埠轉發所述組播 流。
31.根據權利要求四所述的交換機,其特徵在於,所述第一模塊進一步用於,為該剪枝 埠設置生命值,其中,該剪枝埠的生命值小於所述第一跳PIM路由器上與所述PIM剪枝 消息對應的組播流的組播路由表項的生命值,且,當該剪枝埠的生命值到達時,將該剪枝 埠暫時恢復為路由器埠,若在預設時長內未接收到針對所述組播流的PIM剪枝消息, 則將所述埠徹底恢復為路由器埠 ;否則,則將所述埠恢復為剪枝埠,並重置該剪枝 埠的生命值。
32.根據權利要求四所述的交換機,其特徵在於,所述第一模塊進一步用於,當發現 PIM剪枝消息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表中之後, 若發現本地未建立與所述組播流對應的PIM窺探表項,則建立與所述組播流對應的PIM窺 探表項,其中,PIM窺探表項的上遊鄰居列表為空,,且將本交換機上除了上遊埠外的其它 所有PIM鄰居埠加入到該表項的下遊出埠列表中,執行所述將該剪枝埠添加到與所 述組播流對應的PIM窺探表項中的動作;且,根據本地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消息對應的組 播流的需求,若是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消息。
33.根據權利要求四所述的交換機,其特徵在於,所述第一模塊進一步用於,當發現消 息中的上遊鄰居地址不在自身利用PIM窺探功能維護的PIM路由器列表中之後,若發現本 地已建立與所述組播流對應的PIM窺探表項,則直接執行所述將該剪枝埠添加到與所述 組播流對應的PIM窺探表項中的動作;且,根據本地的PIM窺探表項和組管理窺探表項,判斷是否有轉發PIM剪枝消息對應的組 播流的需求,若是,則不轉發PIM剪枝消息;否則,向組播源方向轉發PIM剪枝消息。
34.根據權利要求四所述的交換機,其特徵在於,所述交換機進一步包括第二模塊,接收針對一個組播流的PIM加入消息,發現消息中的上遊鄰居地址不在自 身利用PIM窺探功能維護的PIM路由器列表中,若發現本地有該PIM加入消息對應組播流 的PIM窺探表項,且該PIM加入消息的接收埠為所述PIM窺探表項的剪枝埠,則根據本 地PIM窺探表項和組管理窺探表項判斷本交換機除了該PIM加入消息的接收埠外,是否 還有其它埠有接收所述組播流的需求,若是,不轉發該PIM加入消息,否則,向組播源方 向轉發所述PIM加入消息。
35.根據權利要求34所述的交換機,其特徵在於,所述第二模塊進一步用於,在向組播 源方向轉發所述PIM加入消息後,將所述PIM加入消息的接收埠從所述PIM窺探表項中 刪除,將所述接收埠恢復為路由器埠。
36.根據權利要求四所述的交換機,其特徵在於,所述交換機進一步包括第三模塊, 接收針對一個組播流的組管理加入消息,將該消息的接收埠作為成員埠加入到所述組 播流的組管理窺探表項中,並向本交換機上除接收埠外的所有路由器埠、剪枝埠以及PIM窺探表項中的上遊鄰居轉發該組管理加入消息。
全文摘要
本發明公開了組播剪枝方法及協議無關組播路由器、二層交換機。組播源通過二層交換機連接到第一跳PIM路由器。方法包括第一跳PIM路由器接收組播源發來的組播流,發現沒有接收該組播流的需求;或者,接收下遊PIM路由器發來的針對一個組播流的PIM剪枝消息或者接收自身下掛客戶端發來的針對一個組播流的組管理離開消息,發現已經沒有接收該組播流的需求,則從組播流的入接口處向外發送PIM剪枝消息。本發明剪枝了從組播源到第一跳PIM路由器之間的無用組播流。
文檔編號H04L12/56GK102075417SQ20101061322
公開日2011年5月25日 申請日期2010年12月21日 優先權日2010年9月30日
發明者劉宇, 周迪, 陳乾業, 陳旭盛 申請人:杭州華三通信技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀