專利名稱:二層組播流轉(zhuǎn)發(fā)方法和二層組播設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域中的組播技術(shù),尤其涉及一種二層組播設(shè)備中組播流的轉(zhuǎn)發(fā)方法和二層組播設(shè)備。
背景技術(shù):
隨著網(wǎng)絡(luò)中流媒體、視頻電視以及視頻會議等多媒體技術(shù)的不斷發(fā)展,IP組播技術(shù)已經(jīng)成為互聯(lián)網(wǎng)中的一項重要內(nèi)容?,F(xiàn)有技術(shù)中實現(xiàn)組播技術(shù)方法的原理如下利用IGMP(Internet Group Management Protocol,互聯(lián)網(wǎng)組播管理協(xié)議)或者MLD(Multicast Listener Discovery,組播偵聽發(fā)現(xiàn))維護組播組關(guān)系,IGMP(IPv4中)或MLD(IPv6中)運行于網(wǎng)絡(luò)末端與用戶終端直連的三層網(wǎng)絡(luò)設(shè)備上,用于對組播用戶終端加入或離開組播組進行動態(tài)管理,并建立三層組播轉(zhuǎn)發(fā)表項。
同時,利用運行于二層網(wǎng)絡(luò)設(shè)備上的如IGMP Snooping(Internet GroupManagement Protocol Snooping,互聯(lián)網(wǎng)組播管理協(xié)議窺探)或者MLD Snooping(Multicast Listener Discovery Snooping,組播偵聽發(fā)現(xiàn)窺探)對配置了IGMP協(xié)議或MLD協(xié)議的三層網(wǎng)絡(luò)設(shè)備與用戶終端之間的IGMP報文或MLD報文進行窺探,根據(jù)報告報文或離開報文在二層網(wǎng)絡(luò)設(shè)備上建立和維護組播轉(zhuǎn)發(fā)表項,通過該組播轉(zhuǎn)發(fā)表項,可以實現(xiàn)組播組與VLAN(Virtual Local AreaNetwork,虛擬局域網(wǎng))內(nèi)成員端口的關(guān)系,當屬于某一VLAN的用戶終端發(fā)送報告報文要求加入指定的組播組后,只需把該組播數(shù)據(jù)流復(fù)制到需要接收該組播流的用戶終端對應(yīng)的端口下,進而實現(xiàn)組播業(yè)務(wù)。
該方法的應(yīng)用場景實例如圖1所示,具有IGMP Snooping功能的二層交換設(shè)備的端口1、端口2、端口3與用戶終端連接,端口4連接支持IGMP協(xié)議的三層網(wǎng)絡(luò)設(shè)備如路由器,四個端口都屬于同一個VLAN100;當與端口1相連的用戶終端1希望加入組播組230.1.1.1時,發(fā)送加入組播組230.1.1.1的IGMP報告報文給路由器;該報告報文首先經(jīng)過IGMP Snooping設(shè)備,IGMPSnooping設(shè)備根據(jù)該報告報文窺探到VLAN100的端口1上連接了一個加入組播組230.1.1.1的用戶,這樣當三層網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)的組播組230.1.1.1的組播數(shù)據(jù)流到達IGMP Snooping設(shè)備時,IGMP Snooping設(shè)備根據(jù)自身維護的組播轉(zhuǎn)發(fā)表項,將組播組230.1.1.1的組播流向端口1轉(zhuǎn)發(fā),而不需要向其他端口轉(zhuǎn)發(fā)該組播流。
IGMP Snooping協(xié)議和MLD Snooping協(xié)議解決了組播流VLAN內(nèi)廣播的問題,實現(xiàn)了按需復(fù)制組播數(shù)據(jù)流。但是當二層組播設(shè)備端口上連接的用戶終端連續(xù)大批量點播組播組時,會導(dǎo)致二層組播設(shè)備建立大量沒有實際組播流量轉(zhuǎn)發(fā)的組播組表項和組播轉(zhuǎn)發(fā)表項,在二層組播設(shè)備上沒有組播組上限的情況下,連續(xù)大批量點播組播組會產(chǎn)生大量的表項,從而將會占用大量的設(shè)備軟硬件資源,甚至導(dǎo)致系統(tǒng)資源耗盡;二層組播設(shè)備上存在組播組上限的情況下,當用戶終端連續(xù)大批量點播組播組的數(shù)量超過二層組播設(shè)備支持的組播組上限時,將嚴重影響到正常用戶的加入離開,導(dǎo)致二層設(shè)備基本無法使用。
針對這一問題,現(xiàn)有技術(shù)中提出了一種在IGMP Snooping的基礎(chǔ)上利用ACL(Access Control List,訪問控制列表)實現(xiàn)組播業(yè)務(wù)的方法。該方法首先對使用組播業(yè)務(wù)的用戶終端進行ACL設(shè)置,當組播用戶終端的IP地址與ACL中的地址匹配時,該組播用戶終端可以加入并使用相應(yīng)的組播業(yè)務(wù);如果組播用戶終端的IP地址與ACL中的地址不匹配,則該組播用戶終端不能使用相應(yīng)的組播業(yè)務(wù)。該方法在實現(xiàn)組播業(yè)務(wù)時,雖然規(guī)則非常簡單,也能夠?qū)M播用戶進行一定的管理,但是要確定每一端口上允許/不允許加入哪些組播組的過濾規(guī)則非常困難,并且隨著網(wǎng)絡(luò)規(guī)劃的變化需要不斷調(diào)整過濾規(guī)則,因而缺少靈活性,適應(yīng)性差。
發(fā)明內(nèi)容
本發(fā)明要解決的問題是提供一種二層組播設(shè)備中組播流轉(zhuǎn)發(fā)方法和二層組播設(shè)備,以解決現(xiàn)有技術(shù)中因用戶終端大批量點播組播組而導(dǎo)致對組播設(shè)備軟件和硬件造成巨大負荷的問題。
為達到上述目的,本發(fā)明提供一種二層組播流轉(zhuǎn)發(fā)方法,包括以下步驟A、二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的報告報文時,判斷所述組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否存在,不存在時,進行步驟B;B、所述二層組播設(shè)備接收所述組播組的數(shù)據(jù)流,并根據(jù)所述數(shù)據(jù)流建立組播組表項和組播轉(zhuǎn)發(fā)表項。
所述步驟B中的組播組表項是根據(jù)所述組播數(shù)據(jù)流的目的IP地址建立的,組播轉(zhuǎn)發(fā)表項則是根據(jù)所述組播數(shù)據(jù)流的目的IP或MAC地址建立。
所述步驟B中建立的組播組表項和/或組播轉(zhuǎn)發(fā)表項的端口為空。
如果是第一個用戶終端首次發(fā)起加入組播組時,則所述步驟B之后還包括所述二層組播設(shè)備將虛擬局域網(wǎng)內(nèi)所有端口加入組播轉(zhuǎn)發(fā)表項,將所述組播組的數(shù)據(jù)流進行廣播;所述二層組播設(shè)備判斷在設(shè)定的時間內(nèi)是否有用戶終端端口集加入,有則所述廣播停止,在組播組表項和組播轉(zhuǎn)發(fā)表項中只保留所述加入的端口集,并保持向所述端口集發(fā)送所述組播組的數(shù)據(jù)流;否則將所述組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口集刪除。
如果是第一個用戶終端首次發(fā)起加入組播組時,則所述步驟B之前還可以包括所述二層組播設(shè)備將所述報告報文中的組播組和端口信息存儲在高速緩沖區(qū)中;所述步驟B之后還包括所述二層組播設(shè)備讀取所述高速緩沖區(qū)中的所述組播組和端口信息,將端口加入到所述組播組的組播組表項和組播轉(zhuǎn)發(fā)表項中,并將所述組播組的數(shù)據(jù)流向所述端口發(fā)送。
所述二層組播設(shè)備接收到三層網(wǎng)絡(luò)設(shè)備發(fā)送的特定組查詢報文時,若存在所述組播組表項和組播轉(zhuǎn)發(fā)表項尚未建立、或所述組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口為空的情況,所述二層組播設(shè)備將所述特定組查詢報文向所有用戶終端端口發(fā)送。
所述二層組播設(shè)備接收到用戶終端發(fā)送的離開報文時,若存在所述組播組表項和組播轉(zhuǎn)發(fā)表項尚未建立、或所述用戶終端端口不在所述組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口集的情況,所述二層組播設(shè)備將所述離開報文向三層網(wǎng)絡(luò)設(shè)備發(fā)送。
所述二層組播設(shè)備在設(shè)定時間內(nèi)沒有檢測到所述組播組的數(shù)據(jù)流經(jīng)過時,將所述組播組表項和組播轉(zhuǎn)發(fā)表項刪除。
本發(fā)明還提供一種二層組播設(shè)備,包括組播信息控制單元和組播報文控制單元;所述組播信息控制單元,在接收到組播流時建立組播組表項和組播轉(zhuǎn)發(fā)表項,并維護所述組播組表項和組播轉(zhuǎn)發(fā)表項的修改、和/或刪除;所述組播報文控制單元,根據(jù)所述組播信息控制單元維護的組播組表項和組播轉(zhuǎn)發(fā)表項控制用戶終端與三層網(wǎng)絡(luò)設(shè)備間報文的轉(zhuǎn)發(fā)。
所述組播信息控制單元進一步包括組播組表項成員端口控制子單元和組播轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)端口控制子單元;所述組播組表項成員端口控制子單元,在接收到組播流時建立組播組表項,在所有端口中選擇組播組的成員端口并對組播組表項進行相應(yīng)的修改、和/或刪除;所述組播轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)端口控制子單元,在接收到組播流時建立組播轉(zhuǎn)發(fā)表項,并對組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口進行相應(yīng)的修改、和/或刪除。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明通過利用組播流觸發(fā)組播組表項和組播轉(zhuǎn)發(fā)表項的建立,減輕了二層組播設(shè)備處理IGMP報文或MLD報文的負擔,減少了組播組管理報文造成的資源消耗,對于支持IGMP Snooping或MLD Snooping的二層組播設(shè)備,只需作少量修改即可實現(xiàn)本方案。本發(fā)明解決了用戶反復(fù)或輪流點播組播組對組播設(shè)備硬件和軟件造成的沖擊,降低了二層組播設(shè)備資源的占用率,同時提高了二層組播設(shè)備軟件硬件資源的利用率,優(yōu)化了二層組播設(shè)備的處理性能。
圖1是現(xiàn)有技術(shù)中二層組播設(shè)備維護組播組與用戶終端端口的示意圖;圖2是本發(fā)明中二層組播流轉(zhuǎn)發(fā)方法的流程圖;圖3是本發(fā)明中二層組播流轉(zhuǎn)發(fā)方法的另一流程圖;圖4是本發(fā)明中二層組播流轉(zhuǎn)發(fā)方法的再一流程圖;圖5是本發(fā)明中二層組播設(shè)備處理IGMP特定組查詢報文方法的流程圖;圖6是本發(fā)明中二層組播設(shè)備處理IGMP離開報文方法的流程圖;圖7是本發(fā)明中二層組播設(shè)備刪除組播組表項和組播轉(zhuǎn)發(fā)表項方法的流程圖;圖8是本發(fā)明中二層組播設(shè)備刪除組播組表項和組播轉(zhuǎn)發(fā)表項方法的另一流程圖;圖9是本發(fā)明中二層組播設(shè)備刪除組播組表項和組播轉(zhuǎn)發(fā)表項方法的再一流程圖;圖10是本發(fā)明中二層組播設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明公開了一種二層組播流轉(zhuǎn)發(fā)方法,其核心思想為由二層組播設(shè)備根據(jù)組播數(shù)據(jù)流來維護二層組播組表項和組播轉(zhuǎn)發(fā)表項的建立和刪除。而IGMP協(xié)議報文或MLD協(xié)議報文僅用于更新組播組和組播轉(zhuǎn)發(fā)表項的端口集信息,不再涉及組播組表項和組播轉(zhuǎn)發(fā)表項的建立和刪除。對于當前沒有組播流在轉(zhuǎn)發(fā)的組播組,在接收到加入該組播組的報告報文時,二層組播設(shè)備并不立即創(chuàng)建組播組表項和組播轉(zhuǎn)發(fā)表項,以解決現(xiàn)有技術(shù)中因用戶終端大批量點播組播組而導(dǎo)致對組播設(shè)備軟件和硬件造成巨大負荷的問題。以下分別按照組播組和組播轉(zhuǎn)發(fā)表項的創(chuàng)建、查詢、刷新和刪除流程來具體描述本發(fā)明方案。
本發(fā)明方案下的組播組和組播轉(zhuǎn)發(fā)表項的創(chuàng)建在用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送IGMP報告報文或MLD報告報文、加入組播組時,二層組播設(shè)備在偵聽到該用戶終端發(fā)送的報告報文后,首先判斷二層組播設(shè)備上是否已經(jīng)存在該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項,如果存在則按照現(xiàn)有技術(shù)處理,將該用戶終端端口加入該組播組。如果不存在,則二層組播設(shè)備將暫時不進行任何操作,只有在收到三層網(wǎng)絡(luò)設(shè)備發(fā)送的該組播組的組播數(shù)據(jù)流時,二層組播設(shè)備才根據(jù)組播數(shù)據(jù)流的組播組地址,在二層組播設(shè)備上建立與該組播組對應(yīng)的組播組表項和組播轉(zhuǎn)發(fā)表項,其中組播組表項成員端口為空,組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口也為空。也就是說,本發(fā)明中組播組的組播組表項和組播轉(zhuǎn)發(fā)表項的建立,是由三層組播設(shè)備發(fā)送的組播流觸發(fā)的。
在組播組和組播轉(zhuǎn)發(fā)表項的創(chuàng)建過程中,以二層組播設(shè)備處理用戶終端發(fā)送的IGMP報文的過程為例,該二層組播流轉(zhuǎn)發(fā)方法如圖2所示,包括以下步驟步驟s201、二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的IGMP報告報文;步驟s202、二層組播設(shè)備判斷該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否已經(jīng)建立,如果已經(jīng)建立則進行步驟s206,否則進行步驟s203;步驟s203、二層組播設(shè)備接收三層網(wǎng)絡(luò)設(shè)備發(fā)送的組播數(shù)據(jù)流;步驟s204、二層組播設(shè)備根據(jù)該數(shù)據(jù)流的組播組地址,建立組播組表項,該組播組表項的成員端口為空;步驟s205、二層組播設(shè)備根據(jù)該數(shù)據(jù)流的組播組IP地址(二層設(shè)備支持IP轉(zhuǎn)發(fā))或者MAC(Media Access Control,媒體訪問控制)地址(二層設(shè)備只支持MAC轉(zhuǎn)發(fā)),建立組播轉(zhuǎn)發(fā)表項并結(jié)束,該組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口為空;步驟s206、二層組播設(shè)備將該用戶終端端口添加到已存在的組播組表項的成員端口集與組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口集中并結(jié)束。
采用上述步驟s201~步驟s206所述方法實現(xiàn)本發(fā)明時,由于初次建立的組播組表項中無成員端口,且組播轉(zhuǎn)發(fā)表項中不包括任何轉(zhuǎn)發(fā)目的端口,這樣在沒有端口加入該組播組時,組播流匹配到一個不包括任何轉(zhuǎn)發(fā)目的端口的空組播轉(zhuǎn)發(fā)表項,避免了沒有任何目的端口的未知組播流在VLAN內(nèi)廣播的情況。但是,當組播組的第一個用戶終端發(fā)送IGMP報告報文或MLD報告報文加入組播組時,由于二層組播設(shè)備沒有建立任何組播組表項和組播轉(zhuǎn)發(fā)表項;這樣,當組播流已經(jīng)從三層網(wǎng)絡(luò)設(shè)備到達二層組播設(shè)備時,二層組播設(shè)備的組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口仍為空,因此會導(dǎo)致第一個用戶終端的第一個請求、以及其他在組播流從三層網(wǎng)絡(luò)設(shè)備到達二層組播設(shè)備前發(fā)送報告報文的用戶終端加入該組播組的請求失敗。在預(yù)定的時間內(nèi)用戶終端需要發(fā)起第二次加入組播組的請求,以實現(xiàn)用戶終端加入特定的組播組。但這樣會導(dǎo)致用戶終端最終獲取組播流的時間延遲。如果系統(tǒng)不能容忍這種情況發(fā)生,優(yōu)選地,以下提供兩種解決方法(1)在二層組播設(shè)備根據(jù)組播流建立組播組表項和組播轉(zhuǎn)發(fā)表項后,將VLAN內(nèi)的所有端口加入組播轉(zhuǎn)發(fā)表項中,進行VLAN內(nèi)廣播,這樣,先前點播的用戶終端自然會在發(fā)起第一次請求報文后即時收到組播流,而當有端口再加入該組播組時,將該端口添加到組播組表項中,并將組播轉(zhuǎn)發(fā)表項中的其他未請求加入該組播組的端口從該組播轉(zhuǎn)發(fā)表項刪除。
該二層組播流轉(zhuǎn)發(fā)方法如圖3所示,包括步驟s301、二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的IGMP報告報文;步驟s302、二層組播設(shè)備判斷該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否已經(jīng)建立,如果已經(jīng)建立則進行步驟s311,否則進行步驟s303;步驟s303、二層組播設(shè)備接收三層網(wǎng)絡(luò)設(shè)備發(fā)送的組播數(shù)據(jù)流;步驟s304、二層組播設(shè)備根據(jù)該數(shù)據(jù)流的組播組地址,建立組播組表項,該組播組表項的成員端口為空;步驟s305、二層組播設(shè)備根據(jù)發(fā)送該數(shù)據(jù)流的組播組IP地址(二層設(shè)備支持IP轉(zhuǎn)發(fā))或者MAC地址(二層設(shè)備只支持MAC轉(zhuǎn)發(fā)),建立組播轉(zhuǎn)發(fā)表項,該組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口為空;
步驟s306、二層組播設(shè)備將VLAN內(nèi)所有端口加入組播轉(zhuǎn)發(fā)表項中,進行VLAN內(nèi)廣播,此時第一個用戶終端即可收到點播的組播流;步驟s307、系統(tǒng)設(shè)定的最長廣播時間內(nèi)無端口加入該組播時,進行步驟s308,否則進行步驟s309;該系統(tǒng)設(shè)定的最長廣播時間為上游設(shè)備的IGMP通用查詢的間隔時間(默認為125秒);步驟s308、刪除該組播轉(zhuǎn)發(fā)表項中的所有未請求加入該組播組的端口并結(jié)束;步驟s309、將新加入的端口集加入組播組表項,并將組播轉(zhuǎn)發(fā)表項中的除新加入的端口集之外的其他端口刪除;步驟s310、保持向新加入的端口集發(fā)送組播流并結(jié)束;步驟s311、二層組播設(shè)備將該用戶終端端口添加到已存在的組播組表項的成員端口集與組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口集中并結(jié)束。
方法(2)二層組播設(shè)備在從端口收到IGMP報告報文或MLD報告報文時,將加入的組播組與端口記錄在高速緩沖區(qū)中,當二層組播設(shè)備根據(jù)從三層網(wǎng)絡(luò)設(shè)備收到的組播流、建立組播組表項和組播轉(zhuǎn)發(fā)表項時,將高速緩沖區(qū)中記錄的端口加入該組播組表項和組播轉(zhuǎn)發(fā)表項中,組播組就會向先前發(fā)送IGMP報告報文或MLD報告報文的端口轉(zhuǎn)發(fā)組播數(shù)據(jù)流。
該方法涉及到高速緩沖區(qū)中組播組與端口信息的建立、更新、讀取、刪除等操作,而在高速緩沖區(qū)中記錄的信息只包括少量的必要信息,其信息量與正常建立組播組和組播轉(zhuǎn)發(fā)表項的信息量相比,操作時需要的資源要少的多,因此不會對系統(tǒng)的運行造成很大負擔,不會影響系統(tǒng)的性能。
該二層組播流轉(zhuǎn)發(fā)方法如圖4所示,具體包括步驟s401、二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的IGMP報告報文;步驟s402、二層組播設(shè)備判斷該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否已經(jīng)建立,如果已經(jīng)建立則進行步驟s410,否則進行步驟s403;步驟s403、二層組播設(shè)備將發(fā)送該報告報文的端口和該報告報文要加入的組播組存儲到二層組播設(shè)備的高速緩沖區(qū)中;步驟s404、二層組播設(shè)備接收三層網(wǎng)絡(luò)設(shè)備發(fā)送的組播數(shù)據(jù)流;步驟s405、二層組播設(shè)備根據(jù)該組播數(shù)據(jù)流的組播組地址,建立組播組表項,該組播組表項的成員端口為空;步驟s406、二層組播設(shè)備根據(jù)該接收到的組播數(shù)據(jù)流的組播組IP地址(二層設(shè)備支持IP轉(zhuǎn)發(fā))或者MAC地址(二層設(shè)備只支持MAC轉(zhuǎn)發(fā)),建立組播轉(zhuǎn)發(fā)表項,該組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口為空;步驟s407、二層組播設(shè)備讀取高速緩沖區(qū)中存儲的端口與組播組信息;步驟s408、二層組播設(shè)備將端口添加到與該端口的組播組相匹配的組播組表項與組播轉(zhuǎn)發(fā)表項中;步驟s409、二層組播設(shè)備向該端口發(fā)送組播數(shù)據(jù)流并結(jié)束;步驟s410、二層組播設(shè)備將該用戶終端端口添加到已存在的組播組表項的成員端口集與組播轉(zhuǎn)發(fā)表項的轉(zhuǎn)發(fā)目的端口集中并結(jié)束。
采用如圖2所示、步驟s201~步驟s206所述方法實現(xiàn)本發(fā)明時,在二層組播設(shè)備轉(zhuǎn)發(fā)三層網(wǎng)絡(luò)設(shè)備下發(fā)的查詢報文時,對于通用查詢報文的處理,與現(xiàn)有技術(shù)一致,要求二層組播設(shè)備將通用查詢報文向VLAN中的所有端口轉(zhuǎn)發(fā)。
對于特定組查詢報文(例如三層網(wǎng)絡(luò)設(shè)備在需要查詢特定組播組是否存在成員、或收到某一端口的離開報文、或某一端口的老化時間定時器超時等)的處理,按照現(xiàn)有技術(shù)規(guī)定,只需要向成員端口轉(zhuǎn)發(fā)即可。但由于在本發(fā)明中,二層組播設(shè)備在組播組的組播數(shù)據(jù)流到來之前不會建立該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項,以及在組播數(shù)據(jù)流剛到來時組播組表項和組播轉(zhuǎn)發(fā)表項的端口為空,因此在三層網(wǎng)絡(luò)設(shè)備要求向特定成員端口發(fā)送特定組查詢報文時,二層組播設(shè)備無法判斷哪些端口是成員端口。為了解決該問題,在本發(fā)明中,為了讓所有成員端口接收到特定組查詢報文,二層組播設(shè)備將特定組查詢報文向VLAN內(nèi)所有端口轉(zhuǎn)發(fā)。
本發(fā)明中,二層組播設(shè)備對三層網(wǎng)絡(luò)設(shè)備發(fā)送的IGMP特定組查詢報文的具體處理流程如圖5所示,包括步驟步驟s501、二層組播設(shè)備接收三層網(wǎng)絡(luò)設(shè)備發(fā)送的IGMP特定組查詢報文;
步驟s502、二層組播設(shè)備發(fā)現(xiàn)組播組表項和組播轉(zhuǎn)發(fā)表項尚未建立或組播組表項的成員端口和組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)目的端口為空;步驟s503、二層組播設(shè)備將IGMP特定組查詢報文向VLAN內(nèi)所有端口發(fā)送并結(jié)束。
采用如圖2所示、步驟s201~步驟s206所述方法實現(xiàn)本發(fā)明時,當在組播組表項和組播轉(zhuǎn)發(fā)表項建立前、以及組播組表項和組播轉(zhuǎn)發(fā)表項中的端口為空時,如果此時二層組播設(shè)備收到VLAN內(nèi)用戶終端發(fā)送的IGMP離開報文或MLD離開報文(即多播偵聽已完成報文),在這種情況下,二層組播設(shè)備在接收到來自上述這些用戶終端發(fā)送的離開報文時,為了能夠讓三層網(wǎng)絡(luò)設(shè)備正確維護三層組播組地址轉(zhuǎn)發(fā)表,需要將離開報文向三層網(wǎng)絡(luò)設(shè)備發(fā)送。除此之外,由于在二層組播設(shè)備上的組播組表項和組播轉(zhuǎn)發(fā)表項不存在或端口集中不包括上述這些用戶終端端口,因此二層組播設(shè)備不需要進行其他處理。
本發(fā)明中,二層組播設(shè)備對用戶終端端口發(fā)送的IGMP離開報文的處理流程如圖6所示,包括步驟步驟s601、二層組播設(shè)備接收用戶終端發(fā)送的IGMP離開報文;步驟s602、二層組播設(shè)備將該IGMP離開報文向三層網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā);步驟s603、二層組播設(shè)備判斷組播組表項和組播轉(zhuǎn)發(fā)表項是否已經(jīng)建立,若已經(jīng)建立則進行步驟s604,否則不進行任何處理并結(jié)束;步驟s604、二層組播設(shè)備判斷組播組表項的成員端口集和組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)目的端口集中是否包括該用戶終端端口,如果包括則進行步驟s605,否則不進行任何處理并結(jié)束;步驟s605、按照現(xiàn)有技術(shù)中對離開報文的處理要求,向發(fā)送IGMP離開報文的端口發(fā)送IGMP特定組查詢報文,對該用戶終端是否離開進行確認;步驟s606、二層組播設(shè)備判斷該用戶終端端口在系統(tǒng)設(shè)定的離開確認時間內(nèi)是否響應(yīng),如果有響應(yīng)則不作任何處理并結(jié)束,否則進行步驟s607;步驟s607、二層組播設(shè)備將該用戶終端端口從組播組表項和組播轉(zhuǎn)發(fā)表項的端口集中刪除并結(jié)束。
本發(fā)明方案下的組播組和組播轉(zhuǎn)發(fā)表項的刷新機制與現(xiàn)有實現(xiàn)方式相比,沒有本質(zhì)區(qū)別。區(qū)別僅在于在本發(fā)明中,組播組表項和組播轉(zhuǎn)發(fā)表項在建立后,對組播組表項中成員端口和組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)目的端口的刷新由二層組播設(shè)備根據(jù)用戶終端端口發(fā)送的加入報文或離開報文進行維護,而組播組表項的刷新則是由組播數(shù)據(jù)流觸發(fā)實現(xiàn)。
本發(fā)明方案下的組播組和組播轉(zhuǎn)發(fā)表項的刪除本發(fā)明中,在組播組表項和組播轉(zhuǎn)發(fā)表項建立后,當在設(shè)定時間內(nèi)沒有檢測到組播組的數(shù)據(jù)流經(jīng)過時,二層組播設(shè)備將刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項。這與現(xiàn)有技術(shù)中二層組播設(shè)備在組播組表項中的全部成員端口離開后、立即將組播組的組播組表項與組播轉(zhuǎn)發(fā)表項刪除的過程不同。
本發(fā)明中二層組播設(shè)備定時檢測組播組表項和組播轉(zhuǎn)發(fā)表項、刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項的核心思想如圖7所示,包括步驟步驟s701、二層組播設(shè)備定時檢測組播組表項和組播轉(zhuǎn)發(fā)表項中的端口是否為空,若為空,進行步驟s702;不為空時,二層組播設(shè)備不進行任何處理并結(jié)束;步驟s702、二層組播設(shè)備判斷系統(tǒng)的一個等待周期內(nèi),是否有組播組的組播流從二層組播設(shè)備經(jīng)過;若沒有則進行步驟s703,否則不進行任何操作并結(jié)束;步驟s703、二層組播設(shè)備刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項并結(jié)束。
具體而言,本發(fā)明中,二層組播設(shè)備在用戶終端離開后,檢測組播流并刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項的處理流程如圖8所示,包括步驟步驟s801、二層組播設(shè)備接收到用戶終端發(fā)送IGMP離開報文;步驟s802、二層組播將該IGMP離開報文向三層網(wǎng)絡(luò)設(shè)備發(fā)送;步驟s803、二層組播設(shè)備向發(fā)送IGMP離開報文的端口發(fā)送IGMP特定組查詢報文,對該用戶終端是否離開進行確認;步驟s804、二層組播設(shè)備判斷該用戶終端端口在系統(tǒng)設(shè)定的離開確認時間內(nèi)是否響應(yīng),如果有響應(yīng)則不作任何處理并結(jié)束,否則進行步驟s805;
步驟s805、將該用戶終端端口從組播組表項和組播轉(zhuǎn)發(fā)表項中刪除;步驟s806、二層組播設(shè)備判斷是否組播組中所有成員都已離開,如果未都離開則不做任何處理并結(jié)束,否則進行步驟s807;步驟s807、二層組播設(shè)備判斷經(jīng)過系統(tǒng)的一個等待周期內(nèi)是否有組播流經(jīng)過,如果有則不做任何處理并結(jié)束,否則進行步驟s808;步驟s808、二層組播設(shè)備刪除組播組表項與組播轉(zhuǎn)發(fā)表項并結(jié)束。
另外一種情況下,為了節(jié)約二層組播設(shè)備的軟硬件資源,在因某種原因而導(dǎo)致三層網(wǎng)絡(luò)設(shè)備發(fā)送的組播流中斷的情況下,若二層組播設(shè)備在經(jīng)過系統(tǒng)的一個等待周期后仍未發(fā)現(xiàn)該組播流經(jīng)過,即使組播組表項和組播轉(zhuǎn)發(fā)表項中的端口集不為空,二層組播設(shè)備仍將刪除該組播組的組播組表項和組播轉(zhuǎn)發(fā)表項。
此情況下的二層組播設(shè)備刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項的處理流程如圖9所示,包括步驟步驟s901、二層組播設(shè)備判斷系統(tǒng)的一個等待周期內(nèi),是否有組播組的組播流從二層組播設(shè)備經(jīng)過;若有則進行步驟s902,否則不進行任何操作并結(jié)束。
步驟s902、二層組播設(shè)備刪除該組播組的組播組表項與組播轉(zhuǎn)發(fā)表項并結(jié)束。
本發(fā)明還公開了一種二層組播設(shè)備,如圖10所示,該二層組播設(shè)備10包括組播信息存儲單元101、組播信息控制單元102、組播報文控制單元103、定時器單元104、三層網(wǎng)絡(luò)設(shè)備側(cè)接口105和用戶終端側(cè)接口106。
其中,組播信息存儲單元101存儲組播組表項和組播轉(zhuǎn)發(fā)表項。
組播信息控制單元102管理組播組表項和組播轉(zhuǎn)發(fā)表項的建立、和/或修改、和/或刪除,其中組播組表項和組播轉(zhuǎn)發(fā)表項的建立由從三層網(wǎng)絡(luò)設(shè)備接收到的組播流觸發(fā);該單元進一步包括組播組表項成員端口控制子單元1021,在接收到組播流時建立組播組表項,在所有端口中選擇組播組的成員端口并對組播組表項進行相應(yīng)的修改、和/或刪除;以及組播轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)端口控制子單元1022,在接收到組播流時建立組播轉(zhuǎn)發(fā)表項,并對組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)目的端口進行相應(yīng)修改、和/或刪除。
組播報文控制單元103,根據(jù)組播信息控制單元維護的組播組表項和組播轉(zhuǎn)發(fā)表項,控制用戶終端與三層網(wǎng)絡(luò)設(shè)備間的報告報文、和/或查詢報文、和/或離開報文的轉(zhuǎn)發(fā)。定時器單元104用于組播數(shù)據(jù)流轉(zhuǎn)發(fā)過程中的記時。三層網(wǎng)絡(luò)設(shè)備側(cè)接口105和用戶終端側(cè)接口106分別用于該二層組播設(shè)備與三層網(wǎng)絡(luò)設(shè)備間、該二層組播設(shè)備與用戶終端間的報文和信息的交互。
以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種二層組播流轉(zhuǎn)發(fā)方法,其特征在于,包括以下步驟A、二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的報告報文時,判斷所述組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否存在,不存在時,進行步驟B;B、所述二層組播設(shè)備接收所述組播組的數(shù)據(jù)流,并根據(jù)所述數(shù)據(jù)流建立組播組表項和組播轉(zhuǎn)發(fā)表項。
2.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,所述步驟B中的組播組表項是根據(jù)所述組播數(shù)據(jù)流的目的IP地址建立的,組播轉(zhuǎn)發(fā)表項則是根據(jù)所述組播數(shù)據(jù)流的目的IP或MAC地址建立。
3.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,所述步驟B中建立的組播組表項和/或組播轉(zhuǎn)發(fā)表項的端口為空。
4.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,如果是第一個用戶終端首次發(fā)起加入組播組時,則所述步驟B之后還包括所述二層組播設(shè)備將虛擬局域網(wǎng)內(nèi)所有端口加入組播轉(zhuǎn)發(fā)表項,將所述組播組的數(shù)據(jù)流進行廣播;所述二層組播設(shè)備判斷在設(shè)定的時間內(nèi)是否有用戶終端端口集加入,有則所述廣播停止,在組播組表項和組播轉(zhuǎn)發(fā)表項中只保留所述加入的端口集,并保持向所述端口集發(fā)送所述組播組的數(shù)據(jù)流;否則將所述組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口集刪除。
5.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,如果是第一個用戶終端首次發(fā)起加入組播組時,則所述步驟B之前還可以包括所述二層組播設(shè)備將所述報告報文中的組播組和端口信息存儲在高速緩沖區(qū)中;所述步驟B之后還包括所述二層組播設(shè)備讀取所述高速緩沖區(qū)中的所述組播組和端口信息,將端口加入到所述組播組的組播組表項和組播轉(zhuǎn)發(fā)表項中,并將所述組播組的數(shù)據(jù)流向所述端口發(fā)送。
6.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,所述二層組播設(shè)備接收到三層網(wǎng)絡(luò)設(shè)備發(fā)送的特定組查詢報文時,若存在所述組播組表項和組播轉(zhuǎn)發(fā)表項尚未建立、或所述組播轉(zhuǎn)發(fā)表項中的端口為空的情況,所述二層組播設(shè)備將所述特定組查詢報文向所有用戶終端端口發(fā)送。
7.如權(quán)利要求1所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,所述二層組播設(shè)備接收到用戶終端發(fā)送的離開報文時,若存在所述組播組表項和組播轉(zhuǎn)發(fā)表項尚未建立、或所述用戶終端端口不在所述組播轉(zhuǎn)發(fā)表項中的端口集的情況,所述二層組播設(shè)備將所述離開報文向三層網(wǎng)絡(luò)設(shè)備發(fā)送。
8.如權(quán)利要求7所述二層組播流轉(zhuǎn)發(fā)方法,其特征在于,所述二層組播設(shè)備在設(shè)定時間內(nèi)沒有檢測到所述組播組的數(shù)據(jù)流經(jīng)過時,將所述組播組表項和組播轉(zhuǎn)發(fā)表項刪除。
9.一種二層組播設(shè)備,其特征在于,包括組播信息控制單元和組播報文控制單元;所述組播信息控制單元,在接收到組播流時建立組播組表項和組播轉(zhuǎn)發(fā)表項,并維護所述組播組表項和組播轉(zhuǎn)發(fā)表項的修改、和/或刪除;所述組播報文控制單元,根據(jù)所述組播信息控制單元維護的組播組表項和組播轉(zhuǎn)發(fā)表項控制用戶終端與三層網(wǎng)絡(luò)設(shè)備間報文的轉(zhuǎn)發(fā)。
10.如權(quán)利要求9所述二層組播設(shè)備,其特征在于,所述組播信息控制單元進一步包括組播組表項成員端口控制子單元和組播轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)端口控制子單元;所述組播組表項成員端口控制子單元,在接收到組播流時建立組播組表項,在所有端口中選擇組播組的成員端口并對組播組表項進行相應(yīng)的修改、和/或刪除;所述組播轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)端口控制子單元,在接收到組播流時建立組播轉(zhuǎn)發(fā)表項,并對組播轉(zhuǎn)發(fā)表項中的轉(zhuǎn)發(fā)端口進行相應(yīng)的修改、和/或刪除。
全文摘要
本發(fā)明公開了一種二層組播流的轉(zhuǎn)發(fā)方法,包括以下步驟A.二層組播設(shè)備偵聽到用戶終端向三層網(wǎng)絡(luò)設(shè)備發(fā)送的加入組播組的報告報文時,判斷所述組播組的組播組表項和組播轉(zhuǎn)發(fā)表項是否存在,不存在時,進行步驟B;B.所述二層組播設(shè)備接收所述組播組的數(shù)據(jù)流,并根據(jù)所述數(shù)據(jù)流建立組播組表項和組播轉(zhuǎn)發(fā)表項。本發(fā)明還公開了一種二層組播設(shè)備,包括組播信息控制單元和組播報文控制單元。本發(fā)明解決了用戶反復(fù)或輪流點播組播組對組播設(shè)備硬件和軟件造成的沖擊,降低了二層組播設(shè)備資源的占用率,同時提高了二層組播設(shè)備軟件硬件資源的利用率,優(yōu)化了二層組播設(shè)備的處理性能。
文檔編號H04L12/56GK1980246SQ20061016210
公開日2007年6月13日 申請日期2006年12月7日 優(yōu)先權(quán)日2006年12月7日
發(fā)明者哈達 申請人:杭州華為三康技術(shù)有限公司