專利名稱::一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及組播技術(shù),特別是涉及一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法和裝置。
背景技術(shù):
:互聯(lián)網(wǎng)組管理協(xié)議窺〗笨(IGMPSnooping,InternetGroupManagementProtocolSnooping)是一種運行在二層網(wǎng)絡(luò)設(shè)備的協(xié)議,主要用于管理和控制組播組。運行IGMPSnooping的二層網(wǎng)絡(luò)設(shè)備可以對接收到的IGMP報文進行分析,為端口和組播地址建立起映射關(guān)系,然后根據(jù)建立的映射關(guān)系從端口轉(zhuǎn)發(fā)組播數(shù)據(jù)。目前,IGMP的版本1和版本2可以支持轉(zhuǎn)發(fā)由用戶指定任意源的組播數(shù)據(jù),即任意源(ASM,Any-Source)組播模式。而IGMP的版本3支持轉(zhuǎn)發(fā)由用戶指定特定源的組播數(shù)據(jù),即特定源(SSM,Source-SpecificMulticast)組播模式。另外,IGMP的版本3還可以兼容IGMP的版本1和版本2。不管二層網(wǎng)絡(luò)設(shè)備運行IGMP協(xié)議的哪個版本,通常都需要事先設(shè)定工作模式,并按照設(shè)定的模式進行工作。為了更好的說明上述幾種模式,下面用一個簡單的例子進行描述。圖1是一個用于組播業(yè)務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。如圖1所示,假設(shè)服務(wù)器A~C是節(jié)目源,服務(wù)器A和C提供組Gl的組播數(shù)據(jù),服務(wù)器B提供組G2的組播數(shù)據(jù);交換機D是轉(zhuǎn)發(fā)組播數(shù)據(jù)的二層網(wǎng)絡(luò)設(shè)備;用戶E、F是接收組播節(jié)目的終端;交換機D的端口X1、X2分別對應(yīng)用戶E、F。交換機D工作在特定源組播模式的情況下,如果用戶E要求接收來源于服務(wù)器A的組G1的組播數(shù)據(jù),則可以向交換機D發(fā)送攜帶有服務(wù)器A和組G1信息的報告(report)報文,服務(wù)器A和組G1信息可以用二元組(A,Gl)表示,其中,A表示源IP地址,G1表示組IP地址。交換機D接收到用戶E發(fā)送的report報文后,將在服務(wù)器A、組Gl和端口XI之間建立映射關(guān)系1,即(A,Gl)->X1。同樣,如果用戶F要求接收來自服務(wù)器B的組G2的組播數(shù)據(jù),交換機D將在服務(wù)器B、組G2和端口X2之間建立映射關(guān)系2,即(B,G2)->X2。上述2條映射關(guān)系通常會寫入交換機D自身專門負責(zé)地址匹配和數(shù)據(jù)轉(zhuǎn)發(fā)的硬件子系統(tǒng)中。這樣,當(dāng)硬件子系統(tǒng)接收到某個數(shù)據(jù)報文時,可以按照建立的映射關(guān)系快速地進行地址匹配和數(shù)據(jù)轉(zhuǎn)發(fā)。比如交換機D接收到來自服務(wù)器A的組G1的數(shù)據(jù)報文時,其硬件子系統(tǒng)將數(shù)據(jù)報文中攜帶的二元組(A,Gl)信息與上述保存的2條映射關(guān)系進行匹配,并在與映射關(guān)系1匹配成功時,將接收到的數(shù)據(jù)報文直接從該映射關(guān)系中對應(yīng)的端口XI轉(zhuǎn)發(fā)給用戶E。交換機D工作在任意源組播模式的情況下,如果用戶E要求接收來自任意源的組G1的組播數(shù)據(jù),則可以向交換機D發(fā)送攜帶組G1信息的report報文,任意源和組G1信息可以用二元組(*,Gl)表示,其中,"*"表示任意源,"G1"表示組IP地址。交換機D接收到用戶E發(fā)送的report報文后,將在組Gl和端口XI之間建立映射關(guān)系1,即(*,Gl)->X1。同樣,如果用戶F要求接收來自任意源的組G2的組播數(shù)據(jù),交換機D將在組G2和端口X2之間建立映射關(guān)系2,即(*,G2)->X2。上述2條映射關(guān)系也會寫入交換機D自身專門負責(zé)地址匹配和數(shù)據(jù)轉(zhuǎn)發(fā)的硬件子系統(tǒng)中。這樣,當(dāng)硬件子系統(tǒng)接收到某個數(shù)據(jù)報文時,也可以按照建立的映射關(guān)系快速地進行地址匹配和數(shù)據(jù)轉(zhuǎn)發(fā)。比如交換機D接收到來自服務(wù)器A的組Gl的數(shù)據(jù)報文,雖然數(shù)據(jù)報文中仍然攜帶有二元組(A,Gl)信息,但由于硬件子系統(tǒng)工作在任意源組播模式下,將忽略對數(shù)據(jù)報文來源的匹配。即硬件子系統(tǒng)僅將數(shù)據(jù)報文中二元組信息的G1與保存的2條映射關(guān)系進行匹配,并在與映射關(guān)系1匹配成功時,將接收到的數(shù)據(jù)報文直接從該映射關(guān)系中對應(yīng)的端口XI轉(zhuǎn)發(fā)給用戶E。上述是特定源組播模式和任意源組播模式的基本工作原理。需要注意的是,不管交換機D運行哪個協(xié)議版本,其硬件子系統(tǒng)通常是按照事先指定的模式工作。實際應(yīng)用中,雖然某些硬件子系統(tǒng)可以兼容特定源組播沖莫式和任意源組播模式,如Marvell公司的系列芯片PUMA/CH3/xCAT,但在一次匹配過程中仍立的映射關(guān)系。比如用戶E要求接收來自任意源的組G1的組播數(shù)據(jù),并向交換機D發(fā)送攜帶有組G1信息的report報文;用戶F要求接收來自服務(wù)器A的組G1的組播數(shù)據(jù),并向交換機D發(fā)送服務(wù)器A和組Gl信息的report報文。在這種情況下,交換機D既會將組Gl和端口XI這個映射關(guān)系寫入硬件子系統(tǒng),也會將服務(wù)器A、組G1和端口X2這個映射關(guān)系寫入硬件子系統(tǒng)。假設(shè)硬件子系統(tǒng)此時已經(jīng)保存有20個映射關(guān)系,其中映射關(guān)系110包括屬于指定了特定源的映射關(guān)系,而映射關(guān)系1120則屬于指定任意源的映射關(guān)系。如果硬件子系統(tǒng)工作在特定源組播模式,那么在接收到來自服務(wù)器A的數(shù)據(jù)報文時,硬件子系統(tǒng)只匹配映射關(guān)系1~10,而不會匹配映射關(guān)系11~20。也就是說,如果工作在特定源組播模式,硬件子系統(tǒng)只能成功匹配到(A,Gl)-〉X2這個映射關(guān)系,并將接收到的數(shù)據(jù)報文通過端口X2轉(zhuǎn)發(fā)給用戶F。此時,雖然用戶E也要求接收組G1的組播數(shù)據(jù),但由于硬件子系統(tǒng)并不會匹配映射關(guān)系11~20,也就不會匹配到(*,Gl)->XI這個映射關(guān)系,從而不會通過端口XI向用戶E轉(zhuǎn)發(fā)數(shù)據(jù)報文。反之,如果工作在任意源組播模式,硬件子系統(tǒng)只能匹配到(*,Gl)-〉Xl這個映射關(guān)系,并通過端口XI向用戶E轉(zhuǎn)發(fā)數(shù)據(jù)報文,而不會轉(zhuǎn)發(fā)給用戶F。當(dāng)然,可兼容特定源組播模式和任意源組播模式的硬件子系統(tǒng)還可能會在某種情況下從一種工作模式轉(zhuǎn)換為另一種工作模式,但不管在哪種情況下轉(zhuǎn)換,如何轉(zhuǎn)換,一旦確定其工作模式,硬件子系統(tǒng)就只能按照其確定的工作模式進行匹配。而實際應(yīng)用中,雖然存在不同用戶要求接收相同組播數(shù)據(jù)的情況,但由于各用戶指定的數(shù)據(jù)來源可能是特定源也可能是任意源,那么按照上述現(xiàn)有技術(shù)的方案,二層網(wǎng)絡(luò)設(shè)備很難在確定的工作模式下同時滿足多種用戶的需要,不利于組播業(yè)務(wù)的推廣應(yīng)用。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的第一個發(fā)明目的是提供一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法,在硬件子系統(tǒng)確定的工作模式下,既滿足指定特定源的用戶需求,又滿足指定任意源的用戶需求,有利于組播業(yè)務(wù)的推廣應(yīng)用。本發(fā)明的第二個發(fā)明目的是提供一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的設(shè)備,在硬件子系統(tǒng)確定的工作模式下,既滿足指定特定源的用戶需求,又滿足指定任意源的用戶需求,有利于組播業(yè)務(wù)的推廣應(yīng)用。為了達到上述第一個發(fā)明目的,本發(fā)明提出的技術(shù)方案為一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法,該方法包括以下步驟在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中;在接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,硬件子系統(tǒng)按照事先設(shè)置的特定源組播模式將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)才艮文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。上述方案中,該方法進一步包括在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的^艮告報文時,建立源IP地址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。上述方案中,在接收到用戶指定任意源的包括組IP地址的報告報文時,該方法進一步包括判斷是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接將所述指定任意源的用戶所對應(yīng)的端口添加到已建立的端口集合中。上述方案中,在所述硬件子系統(tǒng)匹配不成功時,該方法進一步包括接收由硬件子系統(tǒng)上報的匹配不成功的組播數(shù)據(jù)報文,查詢是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組^番數(shù)據(jù)才艮文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中;否則,丟棄上報的組播數(shù)據(jù)報文。上述方案中,在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,該方法進一步包括將所述建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合。上述方案中,在所述標記未處理的端口集合后,當(dāng)后續(xù)接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的才艮告才艮文時,該方法進一步包括判斷是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在所述建立源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。為了達到上述第二個發(fā)明目的,本發(fā)明提出的技術(shù)方案為一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的設(shè)備,該設(shè)備包括收發(fā)單元,用于通過端口接收和發(fā)送設(shè)備自身與外部交互的報文;硬件子系統(tǒng),用于在通過收發(fā)單元接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,按照事先設(shè)置的特定源組播模式將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進4亍匹配,并將組4番數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶;還用于將自身無法處理的報文透傳給軟件子系統(tǒng)處理;軟件子系統(tǒng),在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。上述方案中,所述軟件子系統(tǒng)包括第一判別單元,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。上述方案中,所述軟件子系統(tǒng)還包括第一處理單元,用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的^^告才艮文時,建立源IP地址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。上述方案中,所述軟件子系統(tǒng)進一步包括存儲單元,用于保存建立的端口集合;第二判斷單元,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,判斷存儲單元中是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接在存儲單元中將所述指定任意源的用戶所對應(yīng)的端口添加到已建立的端口集合中;所述第一處理單元還用于接收由硬件子系統(tǒng)上報的匹配不成功的組播數(shù)據(jù)報文,查詢存儲單元是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組播數(shù)據(jù)報文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中;否則,丟棄上報的組播數(shù)據(jù)報文。上述方案中,所述第一判別單元還用于在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,則將所述建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合;所述第一處理單元進一步用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,判斷存儲單元是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。綜上所述,本發(fā)明提出一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法和設(shè)備,由于將指定任意源的報告報文按照建立特定源映射關(guān)系的形式寫入硬件子系統(tǒng),從而實現(xiàn)即可以將組播數(shù)據(jù)報文轉(zhuǎn)發(fā)給指定特定源的用戶,也可以轉(zhuǎn)發(fā)給指定任意源的用戶,滿足了不同用戶的需求,有利于組播業(yè)務(wù)的進一步推廣應(yīng)用。圖1是利用現(xiàn)有技術(shù)方案用于組播業(yè)務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。圖2是本發(fā)明方法實施例中用于組播業(yè)務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。圖3是本發(fā)明方法實施例一的流程圖。圖4是本發(fā)明方法實施例二的流程圖。圖5是本發(fā)明方法實施例三的流程圖。圖6是實現(xiàn)本發(fā)明方案的設(shè)備結(jié)構(gòu)示意圖。圖7是實現(xiàn)本發(fā)明方案的設(shè)備中軟件子系統(tǒng)內(nèi)部結(jié)構(gòu)的一個實施例。具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明作進一步地詳細描述。本發(fā)明的技術(shù)方案是在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中;在接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,硬件子系統(tǒng)按照事先設(shè)置的特定源組地址和組IP地址進行匹配,并將組播數(shù)據(jù)|艮文/人匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。也就是說,本發(fā)明的硬件子系統(tǒng)按照特定源組播模式進行工作。那么,為了同時滿足指定從特定源和從任意源接收組播數(shù)據(jù)的不同用戶需求,本發(fā)明在接收到用戶指定任意源的包括組IP地址的報告報文時,并不像現(xiàn)有技術(shù)一樣建立指定任意源的映射關(guān)系,而是將其轉(zhuǎn)化為指定特定源的映射關(guān)系保存在硬件子系統(tǒng)中。這樣,建立的映射關(guān)系中的端口可能是指定特定源的用戶對應(yīng)的端口,也可能是指定任意源的用戶對應(yīng)的端口,還可能既包括指定特定源的用戶對應(yīng)的端口,又包括指定任意源的用戶對應(yīng)的端口。那么,在硬件子系統(tǒng)接收到組播數(shù)據(jù)報文并匹配成功時,只需要按照特定源組播模式匹配映射關(guān)系,就可以達到在確定的工作模式下同時滿足多種用戶需求的目的。實際應(yīng)用中,同樣組播組的數(shù)據(jù)可以由不同的源提供,比如若干服務(wù)器提供某一個相同的組播節(jié)目。在這種情況下,如果硬件子系統(tǒng)中并沒有建立針對其中某個服務(wù)器的映射關(guān)系,那么在接收到該服務(wù)器提供的組播數(shù)據(jù)報文時,將無法與自身已經(jīng)建立的任何映射關(guān)系匹配上。針對上述情況,本發(fā)明可以進一步考察匹配不成功的組播數(shù)據(jù)是否是指定任意源的用戶要求接收的數(shù)據(jù),如果是,則可以建立相應(yīng)的映射關(guān)系,并將所有指定從任意源接收該組播數(shù)據(jù)的用戶對應(yīng)的端口添加到映射關(guān)系中。當(dāng)然,為了準確添加用戶對應(yīng)的端口,可以先將指定任意源的用戶記錄下來,其方法具體為在接收到用戶指定任意源的包括組IP地址的報告報文時,可以判斷是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接將所述指定任意源的用戶所對應(yīng)的端口添加到已建13立的端口集合中。相應(yīng)地,在所述硬件子系統(tǒng)匹配不成功時,該方法進一步包括接收由硬件子系統(tǒng)上報的匹配不成功的組播數(shù)據(jù)報文,查詢是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組播數(shù)據(jù)報文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中;否則,丟棄上報的組播數(shù)據(jù)報文。也就是說,指定任意源的用戶對應(yīng)的端口不但可以添加到已有的特定源的映射關(guān)系中,然后根據(jù)硬件子系統(tǒng)中已有的映射關(guān)系接收組播數(shù)據(jù),還可以創(chuàng)建新的映射關(guān)系,根據(jù)新創(chuàng)建的映射關(guān)系來接收組播數(shù)據(jù),從而可以更好的滿足用戶從任意源接收組播數(shù)據(jù)的需求。當(dāng)然,如果網(wǎng)絡(luò)中并沒有多個提供相同組播數(shù)據(jù)的源,或者提供相同組播數(shù)據(jù)的源在硬件子系統(tǒng)中都存在相應(yīng)的映射關(guān)系,那么,就不會存在接收到組播數(shù)據(jù)報文無法匹配的情況,針對該情況的優(yōu)化方法就可以相應(yīng)省略。另外,在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,該方法進一步包括將建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合。這樣,雖然沒有能夠及時將端口集合中的端口添加到硬件子系統(tǒng)中,但如果后續(xù)在硬件子系統(tǒng)中創(chuàng)建了與之符合的映射關(guān)系,可以再將其添加到硬件子系統(tǒng)中。其方法具體為在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,判斷是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。這里,在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并寫入硬件子系統(tǒng)屬于現(xiàn)有技術(shù),只是在本發(fā)明實施例中,可以將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。為了更好地說明本發(fā)明方案,下面用實施例進行詳細描述。方法實施例一假設(shè)本實施例實現(xiàn)組播業(yè)務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖2所示。其中,服務(wù)器AD是節(jié)目源,服務(wù)器A、C、D提供組G1的組播數(shù)據(jù),服務(wù)器B提供組G2的組播數(shù)據(jù);交換機E是轉(zhuǎn)發(fā)組播數(shù)據(jù)的二層網(wǎng)絡(luò)設(shè)備,假設(shè)其硬件子系統(tǒng)為Marvell公司的系列芯片PUMA/CH3/xCAT中的一種,并將其設(shè)置為特定源組播模式;用戶F、H、I、J是接收組播節(jié)目的終端;交換機E的端口X1X4分別對應(yīng)用戶F、H、I和J。另外,為了描述方便,本實施例假設(shè)用戶F先要求從服務(wù)器A接收組播組Gl的組播數(shù)據(jù),用戶H要求從服務(wù)器C接收組播組Gl的組播數(shù)據(jù),用戶I再要求從任意源接收組播組Gl的組播數(shù)據(jù),然后交換機E接收到服務(wù)器C提供的組播組Gl的組播數(shù)據(jù)。圖3是本實施例的流程圖。如圖3所示,本實施例包括以下步驟步驟301:用戶F向交換機E發(fā)送指定特定源的report報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器A的IP地址,所述組IP地址為組播組Gl的組IP地址。本步驟表示用戶F要求接收來自服務(wù)器A的組G1的組播數(shù)據(jù)。步驟302:交換機E建立源IP地址、組IP地址以及與用戶F所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。本步驟中,假設(shè)在硬件子系統(tǒng)中建立的映射關(guān)系如表一所示序號映射關(guān)系'..…10(A,Gl)->X1表一步驟303:用戶H向交換機E發(fā)送指定特定源的report報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器C的IP地址,所述組IP地址為組纟番組Gl的組IP地址。本步驟表示用戶F要求接收來自服務(wù)器C的組Gl的組播數(shù)據(jù)。步驟304:交換才幾E建立源IP地址、組IP地址以及與用戶H所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。本步驟中,假設(shè)在硬件子系統(tǒng)中建立的映射關(guān)系如表二所示<table>tableseeoriginaldocumentpage16</column></row><table>表二步驟305:用戶I向交換機E發(fā)送指定任意源的report報文,report報文攜帶有組IP地址,所述組IP地址為組*燔組Gl的組IP地址。本步驟表示用戶I要求接收來自任意一個服務(wù)器的組G1的組播數(shù)據(jù)。步驟306:交換機E查詢硬件子系統(tǒng)中保存的映射關(guān)系,在查詢出包含組播組Gl的組IP地址的映射關(guān)系時,將用戶I所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。本步驟中,交換機E查詢到表二中第10條和第ll條映射關(guān)系都是包含組#番組Gl的組IP地址的映射關(guān)系,將用戶I對應(yīng)的端口X3添加到這兩條映射關(guān)系中。此時,硬件子系統(tǒng)中的映射關(guān)系如表三所示<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>表三上述步驟301~步驟306是本實施例建立映射關(guān)系的過程,而實際應(yīng)用中,用戶在何時發(fā)送何種report報文是不確定的,與實際情況相關(guān),建立的映射關(guān)系也可能與表三是不同的。但不管實際情況如何,只要按照本發(fā)明方案就可以建立類似的映射關(guān)系即可。另外,本實施例中所建立的表項在實際應(yīng)用中也可能還包括其它信息,比如VLAN等信息,此處不再贅述。步驟307:交換機E接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文,所述源IP地址為服務(wù)器C的IP地址,所述組IP地址為組播組Gl的組IP地址。步驟308:交換機E中的硬件子系統(tǒng)將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。本步驟中,由于組播數(shù)據(jù)報文中的源IP地址為服務(wù)器C的IP地址,組IP地址為組播組Gl的組IP地址,那么與之匹配的映射關(guān)系應(yīng)該為表三的第ll條映射關(guān)系,硬件子系統(tǒng)就應(yīng)該將組播數(shù)據(jù)報文從該映射關(guān)系中的端口X2和端口X3分別轉(zhuǎn)發(fā)給用戶H和用戶I。其中,用戶H是要求從特定源接收組播數(shù)據(jù)的用戶,而用戶I是要求從任意源接收組播數(shù)據(jù)的用戶,但都在硬件子系統(tǒng)工作在特定源組播模式下獲得了組Gl的組播數(shù)據(jù)。應(yīng)用本實施例方案,在不對硬件子系統(tǒng)進行任何改變的情況下,由于將指定任意源的報告報文按照建立特定源映射關(guān)系的形式寫入硬件子系統(tǒng),從而實現(xiàn)即可以將組播數(shù)據(jù)報文轉(zhuǎn)發(fā)給指定特定源的用戶,也可以轉(zhuǎn)發(fā)給指定任意源的用戶,滿足了不同用戶的需求,有利于組播業(yè)務(wù)的進一步推廣應(yīng)用。方法實施例二方法實施例一的方案是不考慮接收到的組播數(shù)據(jù)報文無法與自身保存的任何映射關(guān)系匹配的情況,但如果某個服務(wù)器也可以提供相同的組播數(shù)據(jù),而之前并沒有任何用戶要求從該服務(wù)器接收其組播數(shù)據(jù),硬件子系統(tǒng)也就可能沒有將包括該服務(wù)器IP地址的映射關(guān)系記錄下來,造成匹配不成功的情況,從而無法很好地滿足指定任意源用戶的需求。另外,本實施例的網(wǎng)絡(luò)結(jié)構(gòu)示意圖仍然如圖二所示,還假設(shè)用戶F先要求從服務(wù)器A接收組播組Gl的組播數(shù)據(jù),用戶H要求從服務(wù)器C接收組播組Gl的組播數(shù)據(jù),用戶I再要求從任意源接收組播組Gl的組播數(shù)據(jù),然后交換機E接收到服務(wù)器D提供的組播組Gl的組播數(shù)據(jù)。在上述這種情況下,轉(zhuǎn)發(fā)組播數(shù)據(jù)方法的第二個實施例流程可以如圖4所示,包括步驟401:用戶F向交換機E發(fā)送指定特定源的r印ort報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器A的IP地址,所述組IP地址為組播組Gl的組IP地址。步驟402:交換機E建立源IP地址、組IP地址以及與用戶F所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。步驟403:用戶H向交換機E發(fā)送指定特定源的report報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器C的IP地址,所述組IPi也址為組插-組Gl的組IPi也址。步驟404:交換才幾E建立源IP地址、組IP地址以及與用戶H所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。步驟405:用戶I向交換機E發(fā)送指定任意源的report報文,report報文攜帶有組IP地址,所述組IP地址為組播組Gl的組IP地址。上述步驟401~405與步驟301~305相同,此處不再贅述。步驟406:交換機E確定當(dāng)前未建立組播組Gl的組IP地址為索引的端口集合,建立一個并將用戶I對應(yīng)的端口X3記錄在該端口集合中。本步驟中,建立的端口集合可以表示為G1:{X3}。當(dāng)然,實際應(yīng)用中如果已經(jīng)建立,則直接在端口集合中添加端口即可。步驟407:交換機E查詢硬件子系統(tǒng)中保存的映射關(guān)系,在查詢出包含組播組G1的組IP地址的映射關(guān)系時,將用戶I所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。本步驟執(zhí)行后,硬件子系統(tǒng)中的映射關(guān)系與表三相同,此處不再贅述。步驟408:交換機E接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文,所述源IP地址為Hl務(wù)器D的IP地址,所述組IP地址為組#>組Gl的組IP地址。步驟409:交換機E中的硬件子系統(tǒng)將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進4亍匹配,確定匹配不成功后上報接收到的組播數(shù)據(jù)報文。實際應(yīng)用中,如果硬件子系統(tǒng)匹配成功,則可以直接從對應(yīng)的端口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文,如果匹配不成功,則需要上報給交換機E的軟件子系統(tǒng)處理。這里所述的軟件子系統(tǒng)是交換機除專門用于數(shù)據(jù)轉(zhuǎn)發(fā)的硬件子系統(tǒng)的其它部分,由于硬件子系統(tǒng)通常是固定的芯片,無法對其進行更改,而其它部分可以由設(shè)備廠商通過軟件編程處理,故在本實施例中稱為軟件子系統(tǒng)。步驟410:交換才幾E查詢到當(dāng)前存在以匹配不成功的組播數(shù)據(jù)凈艮文中組IP地址為索引的端口集合,則根據(jù)匹配不成功的組播數(shù)據(jù)報文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中。本實施例中,由于匹配不成功的組播數(shù)據(jù)報文是來自服務(wù)器D的組Gl的數(shù)據(jù)報文,其組IP地址為組播組Gl的組IP地址,那么,交換機E經(jīng)過查詢,可以確定在步驟406中建立了以組播組Gl的組IP地址為索引的端口集合G1:(X3),于是建立映射關(guān)系(D,Gl)->X3,并寫入硬件子系統(tǒng)中。此時,硬件子系統(tǒng)中的映射關(guān)系可以如表四所示<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>表四通過組播數(shù)據(jù)報文建立映射關(guān)系之后,用戶I后續(xù)不但可以從服務(wù)器A和C接收組播組G1的組播數(shù)據(jù)報文,還可以從服務(wù)器D來接收,更好地滿足了用戶I作為指定任意源的用戶需求。步驟411:交換機E接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文,所述源IP地址為服務(wù)器D的IP地址,所述組IP地址為組播組Gl的組IP地址。步驟412:交換機E中的硬件子系統(tǒng)將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。本步驟中,由于組播數(shù)據(jù)報文中的源IP地址為服務(wù)器D的IP地址,組IP地址為組播組Gl的組IP地址,那么與之匹配的映射關(guān)系應(yīng)該為表四第12條映射關(guān)系,硬件子系統(tǒng)就應(yīng)該將組播數(shù)據(jù)報文從該映射關(guān)系中的端口X3轉(zhuǎn)發(fā)給用戶I。當(dāng)然,本實施例還可以接收到其它服務(wù)器的組播數(shù)據(jù)報文,并按照匹配的映射關(guān)系進行轉(zhuǎn)發(fā),其情況如步驟307和308,此處不再贅述。方法實施例三上述實施例一和實施例二沒有考慮在接收到用戶指定任意源的報告報文后,在硬件子系統(tǒng)中查詢不到與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系的情況。實際應(yīng)用中,如果存在上述情況,其轉(zhuǎn)發(fā)組播數(shù)據(jù)方法則可以利用實施例三實現(xiàn)。另外,實施例三的網(wǎng)絡(luò)結(jié)構(gòu)示意圖仍然如圖2所示,還假設(shè)用戶F先要求從服務(wù)器A接收組播組Gl的組播數(shù)據(jù),用戶J要求從任意源接收組播組G2的組播數(shù)據(jù),用戶H再要求從服務(wù)器B接收組播組G2的組播數(shù)據(jù),然后交換機E接收到來自服務(wù)器B提供組播組G2的組播數(shù)據(jù)。本實施例實現(xiàn)組播數(shù)據(jù)轉(zhuǎn)發(fā)的流程圖如圖5所示,包括步驟501:用戶F向交換機E發(fā)送指定特定源的report報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器A的IP地址,所述組IP地址為組纟番組Gl的組IP地址。步驟502:交換才幾E建立源IP地址、組IP地址以及與用戶F所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。上述步驟501~502與步驟301~302相同,建立的映射關(guān)系如表一所示,此處不再贅述。步驟503:用戶J向交換機E發(fā)送指定任意源的r印ort報文,report報文攜帶有組IP地址,所述組IP地址為組播組G2的組IP地址。本步驟表示用戶J要求接收來自任意一個服務(wù)器的組G2的組播數(shù)據(jù)。步驟504:交換機E確定當(dāng)前未建立組播組G2的組IP地址為索引的端口集合,建立一個并將用戶J對應(yīng)的端口X4記錄在該端口集合中,然后將該端口集合標記為未處理的端口集合。本步驟中,建立的端口集合可以表示為G2:{X4},并將該端口集合標記為未處理的端口集合。至于如何標記,是本領(lǐng)域技術(shù)人員比較容易實現(xiàn)的,此處不再贅述。步驟505:交換機E查詢硬件子系統(tǒng)中保存的映射關(guān)系,查詢出其中不包含組播組G2的組IP地址的映射關(guān)系,則繼續(xù)執(zhí)行步驟506。實際應(yīng)用中,如果硬件子系統(tǒng)包含組播組G2的組IP地址的映射關(guān)系,則可以如步驟306—樣處理,將指定任意源的用戶所對應(yīng)的端口添加到被查詢出的所有映射關(guān)系中。步驟506:用戶H向交換機E發(fā)送指定特定源的report報文,所述report報文攜帶有源IP地址和組IP地址,其中源IP地址為服務(wù)器B的IP地址,所述組IP地址為組播組G2的組IP地址。本步驟表示用戶H要求接收來自服務(wù)器B的組G2的組播數(shù)據(jù)。理的以指定特定源的report報文中組IP地址為索引的端口集合,建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。本步驟中,如果僅根據(jù)步驟506接收到的report才艮文建立映射關(guān)系,該映射關(guān)系應(yīng)該為(B,G2)-〉X2,但當(dāng)前還存在未處理的端口集合G2:(X4〉,那么,還需要將該端口集合添加到映射關(guān)系中,即(B,G2)->X2、X4。此時,寫入硬件子系統(tǒng)的映射關(guān)系可以用表五表示<table>tableseeoriginaldocumentpage22</column></row><table>表五步驟508:交換機E接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文,所述源IP地址為"良務(wù)器B的IP地址,所述組IP地址為組^"組G2的組IP地址。步驟509:交換機E中的硬件子系統(tǒng)將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。本步驟中,由于組播數(shù)據(jù)報文中的源IP地址為服務(wù)器B的IP地址,組IP地址為組播組G2的組IP地址,那么與之匹配的映射關(guān)系應(yīng)該為表五中第ll條映射關(guān)系,硬件子系統(tǒng)應(yīng)該將組播數(shù)據(jù)報文從該映射關(guān)系的端口X2和端口X4分別轉(zhuǎn)發(fā)給用戶H和用戶J。其中,用戶H是要求從特定源接收組播數(shù)據(jù)的用戶,而用戶J是要求從任意源接收組播數(shù)據(jù)的用戶。針對上述方法,本發(fā)明還提供一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的設(shè)備。本發(fā)明提供的設(shè)備如圖6所示,包括收發(fā)單元601,用于通過端口接收和發(fā)送設(shè)備自身與外部交互的報文。硬件子系統(tǒng)602,用于在接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,按照事先設(shè)置的特定源組播模式將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶;還用于將自身無法處理的才艮文轉(zhuǎn)發(fā)給軟件子系統(tǒng)603處理。軟件子系統(tǒng)603,用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,建立源IP地址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)602;在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如杲存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)602^皮查詢出的所有映射關(guān)系中。如圖7所示,軟件子系統(tǒng)603可以包括第一處理單元6031,用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)i義IPi也址和組IP;也址的才艮告才艮文時,建立源IP;也址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)602。第一判別單元6032,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng);故查詢出的所有映射關(guān)系中。實際應(yīng)用中,同樣組播組的數(shù)據(jù)可以由不同的源提供,比如若干服務(wù)器提供某一個相同的組播節(jié)目。在這種情況下,如果硬件子系統(tǒng)602中并沒有建立針對其中某個服務(wù)器的映射關(guān)系,那么在接收到該服務(wù)器提供的組播數(shù)據(jù)報文時,將無法與自身已經(jīng)建立的任何映射關(guān)系匹配上。針對上述情況,所述軟件子系統(tǒng)603還可以包括存儲單元6033,用于保存建立的端口集合。第二判別單元6034,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,判斷存儲單元6033中是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接在存儲單元6033中將所述指定任意源的用戶所對應(yīng)的端口添加到已建立的端口集合中。相應(yīng)地,所述第一處理單元6031還進一步用于接收由硬件子系統(tǒng)602上報的匹配不成功的組播數(shù)據(jù)報文,查詢存儲單元6033是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組播數(shù)據(jù)報文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)602中;否則,丟棄上報的組播數(shù)據(jù)報文。實際應(yīng)用中,在第一判斷單元6032接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)602不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,則還可以先將建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合。這樣,雖然沒有能夠及時將端口集合中的端口添加到硬件子系統(tǒng)中,但如果后續(xù)在硬件子系統(tǒng)中創(chuàng)建了與之符合的映射關(guān)系,可以再將其添加到硬件子系統(tǒng)中。在上述情況下,所述第一判別單元6032進一步用于在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,則將所述建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合。相應(yīng)地,所述第一處理單元6031進一步用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,判斷存儲單元是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。應(yīng)用本發(fā)明方案,在不對硬件子系統(tǒng)進行任何改變的情況下,由于將指定任意源的報告報文按照建立特定源映射關(guān)系的形式寫入硬件子系統(tǒng),從而實現(xiàn)即可以將組播數(shù)據(jù)報文轉(zhuǎn)發(fā)給指定特定源的用戶,也可以轉(zhuǎn)發(fā)給指定任意源的用戶,滿足了不同用戶的需求,有利于組播業(yè)務(wù)的進一步推廣應(yīng)用。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法,其特征在于,該方法包括以下步驟在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中;在接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,硬件子系統(tǒng)按照事先設(shè)置的特定源組播模式將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進一步包括在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,建立源IP地址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,在接收到用戶指定任意源的包括組IP地址的報告^艮文時,該方法進一步包括判斷是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接將所述指定任意源的用戶所對應(yīng)的端口添加到已建立的端口集合中。4、根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述硬件子系統(tǒng)匹配不成功時,該方法進一步包括接收由硬件子系統(tǒng)上報的匹配不成功的組播數(shù)據(jù)報文,查詢是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組插4t據(jù)才艮文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中;否則,丟棄上報的組播數(shù)據(jù)報文。5、根據(jù)權(quán)利要求3所述的方法,其特征在于,在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,該方法進一步包括將所述建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合。6、根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述標記未處理的端口集合后,當(dāng)后續(xù)接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,該方法進一步包括判斷是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在所述建立源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。7、一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的設(shè)備,其特征在于,該設(shè)備包括收發(fā)單元,用于通過端口接收和發(fā)送設(shè)備自身與外部交互的報文;硬件子系統(tǒng),用于在通過收發(fā)單元接收到包括源IP地址和組IP地址的組播數(shù)據(jù)報文時,按照事先設(shè)置的特定源組播模式將組播數(shù)據(jù)報文中的源IP地址和組IP地址分別與映射關(guān)系中的源IP地址和組IP地址進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶;還用于將自身無法處理的4艮文透傳給軟件子系統(tǒng)處理;軟件子系統(tǒng),在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。8、根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述軟件子系統(tǒng)包括第一判別單元,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,查詢硬件子系統(tǒng)中是否存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,如果存在,則將所述指定任意源的用戶所對應(yīng)的端口添加到硬件子系統(tǒng)被查詢出的所有映射關(guān)系中。9、根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述軟件子系統(tǒng)還包括第一處理單元,用于在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,建立源IP地址、組IP地址以及與所述指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)。10、根據(jù)權(quán)利要求9所述的設(shè)備,其特征在于,所述軟件子系統(tǒng)進一步包括存儲單元,用于保存建立的端口集合;第二判斷單元,用于在接收到用戶指定任意源的包括組IP地址的報告報文時,判斷存儲單元中是否建立了以所述指定任意源的報告報文中組IP地址為索引的端口集合,如果沒有建立,則建立一個并將所述指定任意源的用戶所對應(yīng)的端口記錄在該端口集合中;否則,直接在存儲單元中將所述指定任意源的用戶所對應(yīng)的端口添加到已建立的端口集合中;所述第一處理單元還用于接收由硬件子系統(tǒng)上報的匹配不成功的組播數(shù)據(jù)報文,查詢存儲單元是否存在以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合,如果存在,則根據(jù)所述匹配不成功的組播數(shù)據(jù)報文建立源IP地址、組IP地址以及以匹配不成功的組播數(shù)據(jù)報文中組IP地址為索引的端口集合之間的映射關(guān)系,并將建立的映射關(guān)系寫入硬件子系統(tǒng)中;否則,丟棄上報的組播數(shù)據(jù)報文。11、根據(jù)權(quán)利要求10所述的設(shè)備,其特征在于,所述第一判別單元還用于在接收到用戶指定任意源的包括組IP地址的報告報文后,如果查詢到硬件子系統(tǒng)中不存在與所述指定任意源的報告報文包含有相同組IP地址的映射關(guān)系,則將所述建立的以指定任意源的報告報文中組IP地址為索引的端口集合標記為未處理的端口集合;所述第一處理單元進一步用于'.在接收到用戶指定特定源的包括源因特網(wǎng)協(xié)議IP地址和組IP地址的報告報文時,判斷存儲單元是否存在未處理的以指定特定源的報告報文中組IP地址為索引的端口集合,如果存在,則在建立所述源IP地址、組IP地址以及與指定特定源的用戶所對應(yīng)的端口之間的映射關(guān)系時,將未處理的以指定特定源的報告報文中組IP地址為索引的端口集合一并添加到建立的映射關(guān)系中。全文摘要本發(fā)明提供一種轉(zhuǎn)發(fā)組播數(shù)據(jù)的方法和設(shè)備,在接收到用戶指定任意源的報告報文時,如果在硬件子系統(tǒng)中存在相同組IP地址的映射關(guān)系,則將指定任意源的用戶對應(yīng)的端口添加到查詢出的映射關(guān)系中;在接收到組播數(shù)據(jù)報文時,按照特定源組播模式進行匹配,并將組播數(shù)據(jù)報文從匹配成功的映射關(guān)系中各端口轉(zhuǎn)發(fā)給對應(yīng)的用戶。應(yīng)用本發(fā)明方案,由于將指定任意源的報告報文按照建立特定源映射關(guān)系的形式寫入硬件子系統(tǒng),從而實現(xiàn)既可以將組播數(shù)據(jù)報文轉(zhuǎn)發(fā)給指定特定源的用戶,也可以轉(zhuǎn)發(fā)給指定任意源的用戶,滿足了不同用戶的需求,有利于組播業(yè)務(wù)的進一步推廣應(yīng)用。文檔編號H04L12/56GK101459620SQ20091007653公開日2009年6月17日申請日期2009年1月6日優(yōu)先權(quán)日2009年1月6日發(fā)明者劉刀桂,祁正林,聰薛,趙里遙申請人:杭州華三通信技術(shù)有限公司