專利名稱:一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法和交換設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法和交換設(shè)備。
背景技術(shù):
現(xiàn)有的數(shù)字視頻監(jiān)控,IPTV,多媒體培訓(xùn),多媒體會(huì)議等視頻應(yīng)用部署時(shí),會(huì)遇到對(duì)業(yè)務(wù)流量進(jìn)行一對(duì)多復(fù)制的需求,單播協(xié)議本身不支持點(diǎn)到多點(diǎn)(P2MP)的轉(zhuǎn)發(fā)模式,因此無法直接利用單播協(xié)議實(shí)現(xiàn)報(bào)文的復(fù)制和轉(zhuǎn)發(fā)。
目前通用的進(jìn)行P2MP轉(zhuǎn)發(fā)的方式為在網(wǎng)絡(luò)中部署流媒體服務(wù)器,在該流媒體服務(wù)器中利用軟件實(shí)現(xiàn)P2MP的轉(zhuǎn)發(fā)。具體地,實(shí)現(xiàn)P2MP的報(bào)文變換和轉(zhuǎn)發(fā)流程包括步驟1網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)節(jié)點(diǎn)將報(bào)文發(fā)送給流媒體服務(wù)器;步驟2在流媒體服務(wù)器中,設(shè)置一個(gè)單播到多個(gè)單播的映射關(guān)系,并將接收到的報(bào)文從一個(gè)單播源地址復(fù)制到多個(gè)單播接收端,然后將復(fù)制后的多個(gè)單播報(bào)文根據(jù)其目的地址發(fā)送到網(wǎng)絡(luò)中的交換設(shè)備中。
步驟3交換設(shè)備的報(bào)文收發(fā)端口接收流媒體服務(wù)器發(fā)送的報(bào)文,該交換設(shè)備中的ASIC根據(jù)端口接收的報(bào)文查相應(yīng)的路由表,根據(jù)查表結(jié)果從相應(yīng)的報(bào)文收發(fā)端口進(jìn)行轉(zhuǎn)發(fā)。
在上述流程的步驟2中,利用軟件實(shí)現(xiàn)的一個(gè)單播到多個(gè)單播的轉(zhuǎn)換過程,也就是利用流媒體服務(wù)器的中央處理單元(CPU)執(zhí)行特定的轉(zhuǎn)換程序的過程。而CPU執(zhí)行轉(zhuǎn)換程序時(shí)存在以下缺點(diǎn)1、CPU是通用的CPU,利用其進(jìn)行的轉(zhuǎn)換經(jīng)常被中斷,而且經(jīng)常有任務(wù)切換;2、CPU對(duì)輸入輸出的訪問速度比較慢;3、CPU在操作的過程中需要通過操作系統(tǒng)層,驅(qū)動(dòng)層最后才能達(dá)到應(yīng)用層,環(huán)節(jié)很多。上述缺點(diǎn)均使得利用CPU進(jìn)行P2MP轉(zhuǎn)換時(shí)必然造成處理的時(shí)延。同時(shí),由于控制和轉(zhuǎn)發(fā)均由CPU完成,導(dǎo)致對(duì)于網(wǎng)絡(luò)實(shí)時(shí)應(yīng)用環(huán)境的感知能力差,改變轉(zhuǎn)換方式的靈活性差。
因此,在現(xiàn)有的利用流媒體服務(wù)器實(shí)現(xiàn)P2MP轉(zhuǎn)發(fā)時(shí),由于軟件處理的時(shí)延大,且靈活性差,不能滿足高質(zhì)量和大規(guī)模視頻監(jiān)控的要求。
另外一種實(shí)現(xiàn)P2MP的方式可以為通過組播網(wǎng)絡(luò)來支持。但是,該方式的實(shí)現(xiàn)要求整網(wǎng)都支持組播協(xié)議,而現(xiàn)有的網(wǎng)絡(luò)并不滿足這個(gè)要求。源端和接收端所在的網(wǎng)絡(luò)支持的協(xié)議功能可能并不一致,并且當(dāng)源端和接收端間跨越其它網(wǎng)絡(luò)時(shí),則要求報(bào)文所有經(jīng)過的網(wǎng)絡(luò)均支持組播協(xié)議,這一要求顯然較難實(shí)現(xiàn),因此部署起來的靈活性和適應(yīng)性較差。
綜上所述,目前的P2MP轉(zhuǎn)發(fā)技術(shù)的轉(zhuǎn)發(fā)能力較差,無法滿足高質(zhì)量和大規(guī)模視頻監(jiān)控的要求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法和交換設(shè)備,能夠有效地進(jìn)行P2MP的報(bào)文變換和轉(zhuǎn)發(fā)。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下的技術(shù)方案一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法,包括預(yù)先在網(wǎng)絡(luò)交換設(shè)備中設(shè)置硬件混播變換單元,并在該硬件混播變換單元中設(shè)置點(diǎn)到多點(diǎn)P2MP的報(bào)文變換信息;所述硬件混播變換單元接收單播/組播報(bào)文,根據(jù)設(shè)置的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換;轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文。
較佳地,所述設(shè)置P2MP的報(bào)文變換信息的步驟包括在所述硬件混播變換單元中設(shè)置變換表,保存報(bào)文變換信息的索引和與該索引對(duì)應(yīng)的報(bào)文變換信息。
較佳地,所述變換信息的索引為以下一種或任意組合單播/組播報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)和四層目的端口號(hào)。
較佳地,所述在變換表中保存的任意報(bào)文變換信息為利用該報(bào)文變換信息進(jìn)行報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),以及形成每個(gè)目標(biāo)報(bào)文所需的信息。
較佳地,所述形成每個(gè)目標(biāo)報(bào)文所需的信息包括該目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng),分別用于替換所述單播/組播報(bào)文的相應(yīng)信息。
較佳地,所述形成每個(gè)目標(biāo)報(bào)文所需的信息包括該目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào),分別用于替換所述單播/組播報(bào)文的相應(yīng)信息;所述目的MAC地址為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的下一跳的MAC地址;所述源MAC地址為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的報(bào)文三層出接口對(duì)應(yīng)的MAC地址;所述VLAN信息為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的報(bào)文物理出端口所在VLAN的信息;所述物理出端口號(hào)為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的物理出端口。
較佳地,在變換表中利用節(jié)點(diǎn)鏈表表示索引對(duì)應(yīng)的報(bào)文變換信息,所述鏈表中包括的節(jié)點(diǎn)數(shù)表示所述報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),每個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng)。
較佳地,在變換表中利用節(jié)點(diǎn)鏈表表示索引對(duì)應(yīng)的報(bào)文變換信息,所述鏈表中包括的節(jié)點(diǎn)數(shù)表示所述報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),每個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào)。
較佳地,該方法進(jìn)一步包括根據(jù)網(wǎng)絡(luò)變化狀況實(shí)時(shí)更新設(shè)置的報(bào)文變換信息。
較佳地,所述根據(jù)設(shè)置的報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換的步驟包括所述硬件混播變換單元解析接收到的單播/組播報(bào)文,確定所述報(bào)文變換表的索引項(xiàng)中與所述單播/組播報(bào)文對(duì)應(yīng)的索引,并根據(jù)所述索引,確定與所述單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)鏈表,利用該節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換。
較佳地,所述利用節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換為所述硬件混播變換單元對(duì)應(yīng)每個(gè)與單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)生成一個(gè)報(bào)文,將對(duì)應(yīng)節(jié)點(diǎn)中的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng)設(shè)置為該報(bào)文的對(duì)應(yīng)項(xiàng),更新報(bào)文的IP頭校驗(yàn)和以及傳輸層的校驗(yàn)和,并根據(jù)目的IP地址確定該變換后的報(bào)文為單播或組播;所述轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文為根據(jù)變換后的單播/組播報(bào)文,查詢相應(yīng)的單播/組播表,進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
較佳地,所述根據(jù)設(shè)置的報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換的步驟包括所述硬件混播變換單元解析接收到的單播/組播報(bào)文,確定所述報(bào)文變換表的索引項(xiàng)中與所述單播/組播報(bào)文對(duì)應(yīng)的索引,并根據(jù)所述索引,確定與所述單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)鏈表,利用該節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換。
較佳地,所述利用節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換為所述硬件混播變換單元對(duì)應(yīng)每個(gè)與待轉(zhuǎn)換報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)生成一個(gè)報(bào)文,將對(duì)應(yīng)節(jié)點(diǎn)中的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息、物理出端口號(hào)設(shè)置為該報(bào)文的對(duì)應(yīng)項(xiàng),更新報(bào)文的IP頭校驗(yàn)和以及傳輸層的校驗(yàn)和,并根據(jù)目的IP地址確定該報(bào)文為單播或組播,得到變換后的單播或組播報(bào)文;所述轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文為將變換后的單播/組播報(bào)文從所述目標(biāo)報(bào)文的物理出端口號(hào)所指定的端口轉(zhuǎn)發(fā)出去。
較佳地,在查詢變換表時(shí),當(dāng)未查找到所述索引時(shí),直接轉(zhuǎn)發(fā)接收的單播/組播報(bào)文,并結(jié)束本流程。
較佳地,在執(zhí)行所述接收單播/組播報(bào)文的操作后,執(zhí)行所述對(duì)單播/組播報(bào)文進(jìn)行變換的操作前,該方法進(jìn)一步包括根據(jù)單播/組播報(bào)文的接收端口判斷是否使能混播變換,若是,則繼續(xù)執(zhí)行所述對(duì)單播/組播報(bào)文進(jìn)行變換的操作,否則,直接轉(zhuǎn)發(fā)接收的單播/組播報(bào)文,并結(jié)束本流程。
較佳地,利用專用集成芯片ASIC實(shí)現(xiàn)所述硬件混播變換單元。
一種交換設(shè)備,包括CPU、至少一個(gè)報(bào)文收發(fā)端口和硬件混播變換單元;所述CPU,用于根據(jù)網(wǎng)絡(luò)拓?fù)渖蒔2MP的報(bào)文變換信息,并存儲(chǔ)到所述硬件混播變換單元中;所述報(bào)文收發(fā)端口,用于接收網(wǎng)絡(luò)中的單播/組播報(bào)文并發(fā)送給所述硬件混播變換單元進(jìn)行處理;所述硬件混播變換單元,用于存儲(chǔ)設(shè)置的P2MP報(bào)文變換信息,并根據(jù)存儲(chǔ)的報(bào)文變換信息,對(duì)接收的單播/組播報(bào)文進(jìn)行變換,將變換后的單播/組播報(bào)文發(fā)送給該報(bào)文對(duì)應(yīng)的報(bào)文收發(fā)端口;所述接收到變換后的單播/組播報(bào)文的報(bào)文收發(fā)端口,用于將接收到的單播/組播報(bào)文轉(zhuǎn)發(fā)出去。
較佳地,所述硬件混播變換單元包括存儲(chǔ)子單元和變換引擎子單元,所述交換設(shè)備進(jìn)一步包括報(bào)文路由單元,其中,所述存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息及其二者對(duì)應(yīng)關(guān)系的變換表,在該變換表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng);所述變換引擎子單元,用于接收所述報(bào)文收發(fā)端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文標(biāo)識(shí),參照所述存儲(chǔ)子單元中的變換表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,將變換后的目標(biāo)報(bào)文發(fā)送給所述報(bào)文路由單元;所述報(bào)文路由單元,用于根據(jù)變換后的目標(biāo)報(bào)文,查詢相對(duì)應(yīng)的單播/組播表,并對(duì)目標(biāo)報(bào)文進(jìn)行媒體接入層MAC地址和虛擬局域網(wǎng)VLAN信息的替換;將替換后的報(bào)文發(fā)送給對(duì)應(yīng)的報(bào)文收發(fā)端口。
較佳地,所述硬件混播變換單元包括存儲(chǔ)子單元和變換引擎子單元,其中,所述存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息及其二者對(duì)應(yīng)關(guān)系的變換表,在該變換表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào);所述變換引擎子單元,用于接收所述報(bào)文收發(fā)端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文標(biāo)識(shí),參照所述存儲(chǔ)子單元中的變換表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,根據(jù)該變換后的目標(biāo)報(bào)文確定報(bào)文轉(zhuǎn)發(fā)端口,發(fā)送給對(duì)應(yīng)的報(bào)文收發(fā)端口。
較佳地,所述硬件混播變換單元進(jìn)一步包括控制子單元,用于接收?qǐng)?bào)文接收端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文的發(fā)送端口判斷是否使能混播變換,當(dāng)使能混播變換時(shí),將該待變換的單播/組播報(bào)文發(fā)送給所述變換引擎子單元。
由上述技術(shù)方案可見,在本發(fā)明中,預(yù)先在網(wǎng)絡(luò)交換設(shè)備中設(shè)置硬件混播變換單元,并在該硬件混播變換單元中設(shè)置P2MP的報(bào)文變換信息,該硬件混播變換單元根據(jù)接收到的單播/組播報(bào)文,參照設(shè)置的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換;然后,將完成變換后相應(yīng)單播/組播報(bào)文進(jìn)行轉(zhuǎn)發(fā)。這樣,整個(gè)報(bào)文變換過程在交換設(shè)備的硬件混播變換單元中利用硬件完成,一方面相對(duì)于利用軟件的實(shí)現(xiàn)方式,避免了在網(wǎng)絡(luò)中引入流媒體服務(wù)器的要求,并且大大降低了實(shí)現(xiàn)P2MP操作所需的時(shí)間,從而克服了軟件實(shí)現(xiàn)所帶來的處理時(shí)延,提高了轉(zhuǎn)發(fā)效率,另一方面相對(duì)于通過組播網(wǎng)絡(luò)實(shí)現(xiàn)P2MP的轉(zhuǎn)發(fā)方式,避免了要求報(bào)文經(jīng)過的網(wǎng)絡(luò)必須支持組播協(xié)議的限制。
圖1為本發(fā)明提供的報(bào)文混播變換及轉(zhuǎn)發(fā)的方法總體流程圖。
圖2為本發(fā)明提供的實(shí)現(xiàn)混播變換及轉(zhuǎn)發(fā)的交換設(shè)備總體結(jié)構(gòu)圖。
圖3為本發(fā)明實(shí)施例一中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法具體流程圖。
圖4為本發(fā)明實(shí)施例一中實(shí)現(xiàn)混播變換及轉(zhuǎn)發(fā)的交換機(jī)具體結(jié)構(gòu)圖。
圖5為本發(fā)明實(shí)施例二中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法具體流程圖。
圖6為本發(fā)明實(shí)施例二中實(shí)現(xiàn)混播變換及轉(zhuǎn)發(fā)的交換機(jī)具體結(jié)構(gòu)圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)手段和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
本發(fā)明的基本思想是在交換設(shè)備的硬件中設(shè)置P2MP轉(zhuǎn)換過程中的報(bào)文變換信息,并在該硬件中將接收到的報(bào)文按照設(shè)置的變換信息進(jìn)行相應(yīng)的變換,并根據(jù)變換后的報(bào)文實(shí)現(xiàn)轉(zhuǎn)發(fā)。從而利用硬件實(shí)現(xiàn)了整個(gè)P2MP的轉(zhuǎn)發(fā)流程,提高了轉(zhuǎn)發(fā)效率,且避免了在整網(wǎng)支持組播協(xié)議的限制。
在本發(fā)明中,不僅能夠?qū)崿F(xiàn)將一個(gè)單播報(bào)文變換為多個(gè)單播報(bào)文,也可以將組播報(bào)文變換為單播報(bào)文、或?qū)尾?bào)文變換為組播報(bào)文等多種單播和組播報(bào)文間的變換,因此將本發(fā)明對(duì)報(bào)文進(jìn)行的變換過程稱為混播變換過程。
圖1為本發(fā)明提供的報(bào)文混播變換及轉(zhuǎn)發(fā)的方法總體流程圖。如圖1所示,該方法包括步驟101,預(yù)先在網(wǎng)絡(luò)交換設(shè)備中設(shè)置硬件混播變換單元,并在該硬件混播變換單元中設(shè)置P2MP的報(bào)文變換信息。
步驟102,硬件混播變換單元接收單播/組播報(bào)文,根據(jù)設(shè)置的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換。
步驟103,轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文。
圖2為本發(fā)明提供的能夠?qū)崿F(xiàn)混播變換及轉(zhuǎn)發(fā)的交換設(shè)備總體結(jié)構(gòu)圖。該交換設(shè)備能夠?qū)嵤┥鲜鰣D1所示的報(bào)文混播變換及轉(zhuǎn)發(fā)方法。該交換設(shè)備具體包括CPU、硬件混播變換單元和至少一個(gè)報(bào)文轉(zhuǎn)發(fā)端口。
在該交換設(shè)備中,CPU,用于根據(jù)網(wǎng)絡(luò)拓?fù)渖蒔2MP的報(bào)文變換信息存儲(chǔ)到硬件混播變換單元中。
報(bào)文收發(fā)端口1,用于接收網(wǎng)絡(luò)中的單播/組播報(bào)文并發(fā)送給硬件混播變換單元進(jìn)行處理。
硬件混播變換單元,用于存儲(chǔ)設(shè)置的P2MP報(bào)文變換信息,并根據(jù)存儲(chǔ)的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換,將變換后的單播/組播報(bào)文發(fā)送給該報(bào)文對(duì)應(yīng)的報(bào)文收發(fā)端口2。
報(bào)文收發(fā)端口2,用于將變換后的單播/組播報(bào)文轉(zhuǎn)發(fā)出去。其中,報(bào)文收發(fā)端口1和報(bào)文收發(fā)端口2可能是相同的報(bào)文收發(fā)端口,也可能是不同的報(bào)文收發(fā)端口。
在硬件混播變換單元中,可以根據(jù)應(yīng)用的不同需求,設(shè)置多種報(bào)文變換信息,實(shí)現(xiàn)單播報(bào)文和組播報(bào)文間的任意轉(zhuǎn)換。具體地,該報(bào)文變換信息可以包括將一個(gè)單播報(bào)文變換為一個(gè)組播報(bào)文的信息、將一個(gè)單播報(bào)文變換為多個(gè)單播報(bào)文的信息、將一個(gè)單播報(bào)文轉(zhuǎn)換為一個(gè)組播報(bào)文的信息和多個(gè)單播報(bào)文的信息、將一個(gè)組播報(bào)文變換為一個(gè)或多個(gè)單播報(bào)文的信息等。
更進(jìn)一步地,在對(duì)單播/組播報(bào)文進(jìn)行變換時(shí),除與現(xiàn)有技術(shù)中相同的可以對(duì)報(bào)文類型、數(shù)量和網(wǎng)絡(luò)地址進(jìn)行變化外,還可以進(jìn)一步根據(jù)預(yù)先設(shè)置對(duì)報(bào)文的UDP層和/或應(yīng)用層信息進(jìn)行變換。
下面通過具體實(shí)施例說明本發(fā)明提供的方法和交換設(shè)備的具體實(shí)施方式
。在下面的實(shí)施例中,以在交換機(jī)中的ASIC中實(shí)現(xiàn)硬件混播變換單元為例進(jìn)行說明。
實(shí)施例一在本實(shí)施例中,利用在ASIC中存儲(chǔ)的混播變換表保存P2MP的報(bào)文變換信息。具體地,該混播變換表中保存了P2MP轉(zhuǎn)換過程中IP層及其上層信息的轉(zhuǎn)換信息。對(duì)于完成轉(zhuǎn)換后的報(bào)文,依然采用傳統(tǒng)的查單播/組播表的方式進(jìn)行轉(zhuǎn)發(fā)。
圖3為本發(fā)明實(shí)施例一中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法具體流程圖。如圖3所示,該方法包括步驟301,預(yù)先在交換機(jī)的ASIC中設(shè)置P2MP的報(bào)文變換信息,包括報(bào)文IP層及其上層的變換信息。
在本方法流程中,交換機(jī)對(duì)接收的報(bào)文進(jìn)行處理前,首先進(jìn)行P2MP報(bào)文變換信息的設(shè)置步驟。本實(shí)施例在ASIC中設(shè)置混播變換表,該表中保存單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息及二者間的對(duì)應(yīng)關(guān)系。具體該混播變換表由交換機(jī)的CPU利用私有協(xié)議生成和更新維護(hù),并且將當(dāng)前的混播變換表存儲(chǔ)在ASIC中。其中的更新維護(hù)具體包括增加、刪除和修改等,由于網(wǎng)絡(luò)狀況隨時(shí)會(huì)發(fā)生變化,如混播變換表中的某個(gè)IP地址失效等,在這些情況下,需要對(duì)混播變換表進(jìn)行及時(shí)更新和維護(hù),以保證P2MP轉(zhuǎn)換的正常進(jìn)行。
混播變換表的具體結(jié)構(gòu)包括索引項(xiàng)和節(jié)點(diǎn)鏈表項(xiàng),其中,索引項(xiàng)記錄報(bào)文標(biāo)識(shí),節(jié)點(diǎn)鏈表項(xiàng)記錄索引項(xiàng)對(duì)應(yīng)的報(bào)文變換信息,本實(shí)施例中具體為IP層及其上層的變換信息。
其中,報(bào)文變換信息中記錄了利用該種報(bào)文變換信息進(jìn)行報(bào)文變換后形成的目標(biāo)報(bào)文的個(gè)數(shù),以及形成每個(gè)目標(biāo)報(bào)文所需的信息。舉例來說,當(dāng)報(bào)文變換信息為將一個(gè)單播報(bào)文變換成三個(gè)單播報(bào)文的信息時(shí),在該報(bào)文變換信息中記錄以下內(nèi)容形成的單播報(bào)文的個(gè)數(shù),要形成每個(gè)單播報(bào)文時(shí)需要的信息。具體地,本實(shí)施例的混播變換表中,利用多個(gè)節(jié)點(diǎn)構(gòu)成的鏈表形式表示報(bào)文變換信息。該鏈表中的每個(gè)節(jié)點(diǎn)為一個(gè)五元組,具體為變換形成的每個(gè)目標(biāo)報(bào)文的五元組,也就是形成該目標(biāo)報(bào)文的信息。其中,每個(gè)五元組包括該目標(biāo)報(bào)文的源IP地址(SIP,Source IP Address)、目的IP地址(DIP,Destination IP Address)、四層源端口號(hào)(L4Sport,L4Source Port)、四層目的端口號(hào)(L4Dport,L4Destination Port)和UDP/應(yīng)用層信息變換項(xiàng)(AREA)。
依照上述表示形式形成的混播變換表舉例如表1。
表1在表1中,第一列是索引項(xiàng),考慮到實(shí)際應(yīng)用,將目的IP地址+四層目的端口號(hào)作為混播變換表的索引項(xiàng)。表1中的第二列是一個(gè)鏈表形式表示的報(bào)文變換信息,鏈表中的每個(gè)節(jié)點(diǎn)代表一種報(bào)文要進(jìn)行的變換,將變換形成一個(gè)目標(biāo)報(bào)文,最多可以進(jìn)行20種變換,形成20個(gè)目標(biāo)報(bào)文。其中的前四個(gè)參數(shù)的取值用于替換變換前的單播/組播報(bào)文的相應(yīng)地址和端口信息,AREA參數(shù)表示UDP/應(yīng)用層信息變換項(xiàng),其取值用于替換預(yù)先指定的UDP/應(yīng)用層內(nèi)容。其中,預(yù)先指定的UDP/應(yīng)用層內(nèi)容的位置和長度是全局定義的,具體為從報(bào)文開始的偏移量和要變換的報(bào)文的長度。
表1中的第三行舉了一個(gè)例子說明混播變換表中具體表項(xiàng)的含義變換前報(bào)文的目的IP地址為2.2.2.2,四層目的端口信息為10000;根據(jù)目的IP地址可以區(qū)分出組播和單播報(bào)文,在該表1中變換后獲得三種目標(biāo)報(bào)文,具體為兩個(gè)單播報(bào)文和一個(gè)組播報(bào)文。變換后的第一個(gè)單播報(bào)文(即鏈表中的第一個(gè)節(jié)點(diǎn))的源IP地址為3.3.3.3,目的IP地址為4.4.4.4,四層源端口號(hào)為20000四層目的端口號(hào)為30000,AREA字段的值為aaaa,此處的AREA被全局定義為從報(bào)文開始偏移100個(gè)字節(jié),長度為兩個(gè)字節(jié)。變換后的第二個(gè)單播報(bào)文(即鏈表中的第三個(gè)節(jié)點(diǎn))的源IP地址為6.6.6.6,目的IP地址為7.7.7.7,四層源端口號(hào)為50000,四層目的端口號(hào)為50001;AREA的值為cccc。變換后的組播報(bào)文(即鏈表中的第二個(gè)節(jié)點(diǎn))的源IP地址為5.5.5.5,目的IP地址為237.10.10.10,四層源端口號(hào)為40000,四層目的端口號(hào)為40001,area的值為cccc。
步驟302,ASIC接收單播/組播報(bào)文,并根據(jù)接收該報(bào)文的端口確定是否使能混播變換,若是,則執(zhí)行步驟303及其后續(xù)步驟,否則執(zhí)行步驟307。
本實(shí)施例中,在對(duì)單播/組播報(bào)文進(jìn)行混播變換前,增加一個(gè)是否需要進(jìn)行混播變換的判斷,以增強(qiáng)方案的靈活性。
本實(shí)施例中實(shí)現(xiàn)該判斷的具體方式可以為在ASIC中記錄交換機(jī)的各個(gè)端口對(duì)應(yīng)的使能/去使能標(biāo)識(shí);對(duì)于對(duì)應(yīng)使能標(biāo)識(shí)的端口接收到的單播/組播報(bào)文,ASIC判定其需要進(jìn)行混播變換,則對(duì)該報(bào)文執(zhí)行步驟303及其后續(xù)步驟;對(duì)于對(duì)應(yīng)去使能標(biāo)識(shí)的端口接收到的單播/組播報(bào)文,ASIC判定其不需要進(jìn)行混播變換,則對(duì)該報(bào)文執(zhí)行步驟307。
事實(shí)上,也可以利用其它的標(biāo)識(shí)規(guī)定混播變換的使能/去使能,例如接收?qǐng)?bào)文的IP地址信息等。
步驟303,ASIC接收單播/組播報(bào)文,以該接收?qǐng)?bào)文標(biāo)識(shí)為索引,查詢混播變換表。
在混播變換表中,記錄報(bào)文變換信息的索引與報(bào)文變換信息的對(duì)應(yīng)關(guān)系。
其中,以報(bào)文標(biāo)識(shí)作為報(bào)文變換信息的索引,該索引可以為以下一種或任意組合報(bào)文的目的IP地址、報(bào)文的四層目的端口號(hào)、報(bào)文的源IP地址、報(bào)文的四層源端口號(hào)。在本實(shí)施例中,根據(jù)報(bào)文的目的IP地址+四層目的端口號(hào)作為報(bào)文標(biāo)識(shí)。
根據(jù)接收到的單播/組播報(bào)文,查詢上述混播變換表的具體方式可以為ASIC以待變換的單播/組播報(bào)文的目標(biāo)IP地址+目標(biāo)四層端口號(hào)為索引,查詢混播變換表,若混播變換表中存在該索引,則執(zhí)行步驟304及其后續(xù)步驟;否則執(zhí)行步驟307,將該單播/組播報(bào)文直接進(jìn)行轉(zhuǎn)發(fā)后結(jié)束本流程。
步驟304,ASIC確定待變換報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并進(jìn)行相應(yīng)的變換。
本步驟中,根據(jù)步驟303中查詢混播變換表的結(jié)果確定待變換報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng),也就是對(duì)應(yīng)的報(bào)文變換信息。
對(duì)報(bào)文進(jìn)行變換的具體方式包括根據(jù)確定的報(bào)文變換信息中鏈表包括的五元組個(gè)數(shù),即鏈表中的節(jié)點(diǎn)數(shù)對(duì)報(bào)文進(jìn)行復(fù)制;例如,如表1中的第三行所示的報(bào)文變換信息中,五元組個(gè)數(shù)為3個(gè),因此將待變換的單播報(bào)文復(fù)制得到3個(gè)新報(bào)文。具體利用ASIC復(fù)制報(bào)文的方式可以依照現(xiàn)有的方式實(shí)現(xiàn),這里就不再贅述。同時(shí),將新報(bào)文的源IP地址,目的IP地址,源/四層目的端口號(hào)按照對(duì)應(yīng)節(jié)點(diǎn)鏈表項(xiàng)中各個(gè)節(jié)點(diǎn)的五元組值對(duì)應(yīng)替換,并根據(jù)五元組值中的AREA參數(shù)對(duì)相應(yīng)目標(biāo)報(bào)文的UDP/應(yīng)用層信息進(jìn)行變換。至此,便完成了混播變換表中記錄的變換方式。
由上述變換過程結(jié)合前述的混播變換表可以看出,對(duì)于同一個(gè)索引項(xiàng)(即對(duì)應(yīng)接收的一個(gè)單播/組播報(bào)文),可以得到多個(gè)目標(biāo)報(bào)文,也就是實(shí)現(xiàn)了報(bào)文數(shù)量的轉(zhuǎn)換。在具體形成的每個(gè)目標(biāo)報(bào)文中,通過將報(bào)文的目的IP地址轉(zhuǎn)換為相應(yīng)的單播/組播地址,可以改變報(bào)文的類型和網(wǎng)絡(luò)地址。利用上述多種變換的組合,也就能夠完成前述的一個(gè)單播報(bào)文轉(zhuǎn)換為多個(gè)單播報(bào)文、一個(gè)組播報(bào)文等多種變換了。
步驟305,ASIC將報(bào)文的IP頭校驗(yàn)和與傳輸層的校驗(yàn)和按照新的IP地址和端口號(hào)重新進(jìn)行計(jì)算,并利用計(jì)算結(jié)果刷新原先的校驗(yàn)和。
至此,上述報(bào)文復(fù)制和地址轉(zhuǎn)換的過程均利用交換機(jī)中的ASIC實(shí)現(xiàn),由于混播變換表存儲(chǔ)在ASIC中,且查詢混播變換表及完成變換的操作也由ASIC完成,因此相對(duì)于利用軟件實(shí)現(xiàn)該過程的方式,避免了將存儲(chǔ)的變換方式載入內(nèi)存,從硬件存儲(chǔ)單元中提取接收的報(bào)文等操作,并且由于硬件實(shí)現(xiàn)固有的快于軟件實(shí)現(xiàn)的特性,大大縮短了操作所需的時(shí)間。
步驟306,根據(jù)目標(biāo)報(bào)文的目的IP地址類型,對(duì)報(bào)文進(jìn)行路由查找和轉(zhuǎn)發(fā),結(jié)束本流程。
本步驟中,如果變換后目標(biāo)報(bào)文的目的IP地址是單播IP地址,則該報(bào)文被送往單播路由表進(jìn)行查找,如果是組播IP地址,則被送往組播路由表進(jìn)行查找。其中的單播表表項(xiàng)是按照上層單播路由,例如RIP,OSPF,BGP,ISIS等生成并更新維護(hù),組播表表項(xiàng)按照組播路由協(xié)議,例如PIM-SM/DM生成和更新維護(hù)。
單播路由查找過程與傳統(tǒng)的單播路由查找過程相同。具體地,根據(jù)單播路由表,報(bào)文獲得下一跳的MAC地址替換舊的目的MAC地址信息,獲得出三層接口的MAC地址替換舊的源MAC地址,同時(shí)獲得出接口的VLAN信息替換舊的VLAN信息。替換后的報(bào)文根據(jù)路由表查到的出物理端口發(fā)送給下一條網(wǎng)絡(luò)設(shè)備進(jìn)行繼續(xù)轉(zhuǎn)發(fā)。
組播路由的查找過程也與傳統(tǒng)的組播路由查找過程相同。報(bào)文按照(S,G,V)進(jìn)行組播查找,獲得多個(gè)出接口,然后將目標(biāo)組播報(bào)文一一復(fù)制到出接口上。同時(shí)替換報(bào)文的源MAC地址,目的MAC地址,以及VLAN信息,然后從物理出端口發(fā)送。
步驟307,對(duì)接收到的報(bào)文直接進(jìn)行報(bào)文路由和轉(zhuǎn)發(fā),并結(jié)束本流程。
本步驟中,對(duì)不需要進(jìn)行混播變換或混播變換表中沒有對(duì)應(yīng)索引項(xiàng)的報(bào)文,直接進(jìn)行報(bào)文路由和轉(zhuǎn)發(fā),具體報(bào)文路由和轉(zhuǎn)發(fā)的方式與現(xiàn)有的方式相同,這里就不再贅述。
至此,本實(shí)施例中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法流程結(jié)束。
本實(shí)施例還提供了一種能夠?qū)崿F(xiàn)混播變換及轉(zhuǎn)發(fā)的交換機(jī),該交換機(jī)是圖2所示交換設(shè)備的一種具體實(shí)施方式
,可以用于實(shí)施上述混播變換方法。圖4即為本實(shí)施例中交換機(jī)的具體結(jié)構(gòu)圖。如圖4所示,該交換機(jī)包括CPU、ASIC、報(bào)文收發(fā)端口。其中,ASIC包括存儲(chǔ)子單元、控制子單元、變換引擎子單元和報(bào)文路由單元。存儲(chǔ)子單元、控制子單元和變換引擎子單元構(gòu)成了圖2中的硬件混播變換單元,報(bào)文路由單元為現(xiàn)有的ASIC均包括的功能單元。
在該交換機(jī)中,CPU用于根據(jù)網(wǎng)絡(luò)拓?fù)浜吞囟ǖ膮f(xié)議生成P2MP的報(bào)文變換信息存儲(chǔ)到ASIC中,并進(jìn)一步根據(jù)網(wǎng)絡(luò)變化狀況實(shí)時(shí)更新該報(bào)文變換信息。
報(bào)文收發(fā)端口1,用于接收網(wǎng)絡(luò)中的單播/組播報(bào)文并發(fā)送給ASIC進(jìn)行處理。
ASIC中的存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息對(duì)應(yīng)關(guān)系的混播變換表,在該混播變換表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng)。
控制子單元,用于接收?qǐng)?bào)文接收端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文的發(fā)送端口判斷是否使能混播變換,當(dāng)使能混播變換時(shí),將該單播/組播報(bào)文發(fā)送給變換引擎子單元,當(dāng)不使能混播變換時(shí),將該報(bào)文發(fā)送給報(bào)文路由單元。
變換引擎子單元,用于根據(jù)單播/組播報(bào)文標(biāo)識(shí),參照存儲(chǔ)子單元中的混播變換表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,將變換后的目標(biāo)報(bào)文發(fā)送給報(bào)文路由單元。
報(bào)文路由單元,用于根據(jù)變換后的目標(biāo)報(bào)文,查詢相對(duì)應(yīng)的單播/組播表,并對(duì)目標(biāo)報(bào)文進(jìn)行MAC地址和VLAN信息的替換;將替換后的報(bào)文發(fā)送給對(duì)應(yīng)的報(bào)文收發(fā)端口2進(jìn)行轉(zhuǎn)發(fā);還用于接收控制子單元發(fā)送的報(bào)文,查詢相應(yīng)的單播/組播表,進(jìn)行相應(yīng)的路由處理后通過對(duì)應(yīng)的報(bào)文收發(fā)端口3進(jìn)行轉(zhuǎn)發(fā)。
報(bào)文收發(fā)端口2和報(bào)文收發(fā)端口3,用于將接收到的單播/組播報(bào)文轉(zhuǎn)發(fā)出去。其中,報(bào)文收發(fā)端口1、2和3可能是相同的報(bào)文收發(fā)端口,也可能是不同的報(bào)文收發(fā)端口。
上述即為本實(shí)施例中提供的混播變換方法和交換機(jī)的具體實(shí)施方式
。在上述圖3所示的流程中,步驟302的操作是為提高混播變換方法的靈活性而增加的,當(dāng)然,也可以不執(zhí)行該步驟,也就是默認(rèn)對(duì)所有接收到的單播/組播報(bào)文均使能混播變換,在該情況下,則可以在執(zhí)行完步驟301后,對(duì)所有接收到的單播/組播報(bào)文直接執(zhí)行步驟303及其后續(xù)步驟。相對(duì)應(yīng)地,在圖4所示的交換機(jī)具體結(jié)構(gòu)中,ASIC中也可以不包括控制子單元,將報(bào)文接收端口接收的所有報(bào)文均發(fā)送到ASIC中的變換引擎子單元進(jìn)行處理。
下面,對(duì)利用本實(shí)施例的方法在ASIC中實(shí)現(xiàn)的各種P2MP轉(zhuǎn)換進(jìn)行舉例說明。
1、一個(gè)單播報(bào)文到一個(gè)組播報(bào)文的轉(zhuǎn)換。
假定ASIC接收到一個(gè)單播報(bào)文,能夠獲取到如表1所示的報(bào)文相關(guān)信息。
表1提取表1中的目的IP地址單播IPB1和四層目的端口號(hào)B1,以該內(nèi)容為索引,查詢混播變換表,確定該項(xiàng)對(duì)應(yīng)的報(bào)文變換信息。經(jīng)查表確定,該索引對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng)中只有一個(gè)節(jié)點(diǎn),也就是說形成一個(gè)目標(biāo)報(bào)文。該節(jié)點(diǎn)中記錄了目標(biāo)報(bào)文的五元組信息,利用該五元組信息對(duì)ASIC接收的該單播報(bào)文進(jìn)行相應(yīng)信息的變換,該變換后的報(bào)文具有如表2所示的信息。
表2根據(jù)變換后的目的IP地址組播IPB2可以看出,變換后的報(bào)文是組播報(bào)文,于是根據(jù)其目的IP地址組播IPB2查找組播表,從而獲取源/目的MAC地址、VLAN和出端口信息,替換原有報(bào)文的相應(yīng)信息后,得到報(bào)文最終的相關(guān)信息如表3所示。最后將該形成的組播報(bào)文通過出端口P2發(fā)送出去。
表32、一個(gè)組播報(bào)文到一個(gè)或多個(gè)單播報(bào)文的轉(zhuǎn)換。
假定ASIC接收到一個(gè)組播報(bào)文,能夠獲取到如表4所示的報(bào)文相關(guān)信息。
表4提取表4中的目的IP地址組播IPB1和四層目的端口號(hào)B1,查詢混播變換表。經(jīng)查表確定,該索引對(duì)應(yīng)的表示報(bào)文變換信息的節(jié)點(diǎn)鏈表項(xiàng)中包括一個(gè)或多個(gè)節(jié)點(diǎn)。其中,每個(gè)節(jié)點(diǎn)的目的IP地址均為單播IP地址。按照包括的節(jié)點(diǎn)數(shù)對(duì)接收到的報(bào)文進(jìn)行復(fù)制,然后依次根據(jù)每個(gè)節(jié)點(diǎn)中的五元組信息對(duì)相應(yīng)復(fù)制報(bào)文的相關(guān)信息進(jìn)行替換。信息替換后形成的報(bào)文具有如表5所示的信息。
表5根據(jù)變換后的目的IP地址單播IPB2、IPB3等可以看出,變換后的報(bào)文是單播報(bào)文,于是根據(jù)其目的IP地址組播IPB2、IPB3等查找單播表,從而獲取源/目的MAC地址、VLAN和出端口信息,替換原有報(bào)文的相應(yīng)信息后,得到報(bào)文最終的相關(guān)信息如表6所示。最后將該形成的組播報(bào)文通過相應(yīng)的出端口P2、P3等發(fā)送出去。
表63、一個(gè)單播報(bào)文到多個(gè)單播報(bào)文的轉(zhuǎn)換。
假定ASIC接收到一個(gè)單播報(bào)文,獲取到如表1所示的報(bào)文相關(guān)信息。經(jīng)過提取目的IP地址和四層目的端口號(hào)查找到的節(jié)點(diǎn)鏈表項(xiàng)與上述2中的節(jié)點(diǎn)鏈表項(xiàng)類似,也包括了多個(gè)節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)中五元組信息的目的IP地址均表示單播報(bào)文的地址。因此,根據(jù)查找到的節(jié)點(diǎn)中的內(nèi)容對(duì)接收到的單播報(bào)文進(jìn)行變換后,報(bào)文的相關(guān)信息也如表5所示。然后,與2中的步驟類似,根據(jù)目的IP地址查相應(yīng)的單播表進(jìn)行信息替換后,形成報(bào)文的相關(guān)信息如表6所示。
4、一個(gè)單播報(bào)文到一個(gè)組播報(bào)文+多個(gè)單播報(bào)文的轉(zhuǎn)換。
假定ASIC接收到一個(gè)單播報(bào)文,獲取到如表1所示的報(bào)文相關(guān)信息。經(jīng)過提取目的IP地址和四層目的端口號(hào)查找到的節(jié)點(diǎn)鏈表項(xiàng)中包括多個(gè)節(jié)點(diǎn),其中有多個(gè)節(jié)點(diǎn)的目的IP地址為單播IP地址IPB1、IPB2等,還有一個(gè)節(jié)點(diǎn)的目的IP地址為組播IP地址IPBn。根據(jù)上述多個(gè)節(jié)點(diǎn)的五元組信息對(duì)接收到的單播組播報(bào)文的相應(yīng)信息進(jìn)行替換后,形成多個(gè)新的目標(biāo)報(bào)文,其相關(guān)信息如表7所示。
表7然后,對(duì)于形成的多個(gè)單播目標(biāo)報(bào)文,根據(jù)它們的目的IP地址IPB1、IPB2等查找單播路由表,并利用查找結(jié)果替換這些報(bào)文的源/目的MAC地址、VLAN ID和出端口信息;對(duì)于形成的一個(gè)組播目標(biāo)報(bào)文,根據(jù)其目的IP地址IPBn,通過查找組播路由表,替換該報(bào)文的源/目的MAC地址、VLANID和出端口信息。經(jīng)過上述IP層以下層的信息替換后,形成所有目標(biāo)報(bào)文的相關(guān)信息如表8所示。最后,將這些報(bào)文從相應(yīng)的出端口發(fā)送出去。
表8
由上述可見,本實(shí)施例利用ASIC完成P2MP轉(zhuǎn)換過程中的信息轉(zhuǎn)換,相對(duì)于利用流媒體服務(wù)器的軟件實(shí)現(xiàn)方式,大大提高了轉(zhuǎn)換效率。具體地,對(duì)于IP層及其上層信息的轉(zhuǎn)換,利用ASIC中存儲(chǔ)的混播變換表記錄,通過直接查表實(shí)現(xiàn)了報(bào)文IP層及上層信息的轉(zhuǎn)換;對(duì)于路由轉(zhuǎn)發(fā)中涉及的信息轉(zhuǎn)換,依然按照ASIC中原有方式進(jìn)行,即查單播/組播表實(shí)現(xiàn),最大限度地兼容了ASIC原有的功能,可實(shí)現(xiàn)性強(qiáng)。
實(shí)施例二在本實(shí)施例中,利用在ASIC中存儲(chǔ)的變換節(jié)點(diǎn)信息鏈表記錄P2MP的報(bào)文變換信息。具體地,該變換節(jié)點(diǎn)信息鏈表中記錄了P2MP轉(zhuǎn)換和報(bào)文轉(zhuǎn)發(fā)過程中各個(gè)協(xié)議層信息的轉(zhuǎn)換方式。對(duì)于完成轉(zhuǎn)換后的報(bào)文,直接通過轉(zhuǎn)換后指定的物理出端口進(jìn)行轉(zhuǎn)發(fā)。
圖5為本發(fā)明實(shí)施例一中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法具體流程圖。如圖5所示,該方法包括步驟501,預(yù)先在交換機(jī)的ASIC中設(shè)置P2MP的報(bào)文變換信息,包括報(bào)文中所有涉及到的各個(gè)協(xié)議層的變換信息。
在本實(shí)施例中,利用變換節(jié)點(diǎn)信息鏈表進(jìn)行記錄報(bào)文標(biāo)識(shí)與P2MP的報(bào)文變換信息及二者間的對(duì)應(yīng)關(guān)系。該變換節(jié)點(diǎn)信息鏈表具體由交換機(jī)的CPU利用私有協(xié)議生成和更新維護(hù),并且將當(dāng)前的變換節(jié)點(diǎn)信息鏈表存儲(chǔ)在ASIC中,具體為所有協(xié)議層信息的變換信息。
本實(shí)施例中的變換節(jié)點(diǎn)信息鏈表的結(jié)構(gòu)與實(shí)施例一中的混播變換表類似,也包括索引項(xiàng)和對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng)。其中索引項(xiàng)與混播變換表中的索引項(xiàng)取值范圍相同,與混播變換表不同的是,本實(shí)施例的變換節(jié)點(diǎn)信息鏈表中報(bào)文變換信息的表示形式為變換形成的所有目標(biāo)報(bào)文的九元組形成的鏈表。具體地,在報(bào)文標(biāo)識(shí)對(duì)應(yīng)的變換方式中記錄報(bào)文變換后形成的所有目標(biāo)報(bào)文的九元組,,也就是形成該目標(biāo)報(bào)文的變換信息。其中,每個(gè)九元組包括該目標(biāo)報(bào)文的源IP地址(SIP,Source IP Address)、目的IP地址(DIP,Destination IP Address)、四層源端口號(hào)(L4Sport,L4 Source Port)、四層目的端口號(hào)(L4Dport,L4Destination Port)、UDP/應(yīng)用層信息變換項(xiàng)(AREA)、目的媒體接入層(MAC)地址、源MAC地址、VLAN信息和物理出端口。上述內(nèi)容分別用于替換變換前單播/組播報(bào)文的相應(yīng)內(nèi)容。
本實(shí)施例中CPU產(chǎn)生變換節(jié)點(diǎn)信息鏈表的具體方式可以為在CPU中首先產(chǎn)生實(shí)施例一中所述的混播變換表,其中記錄索引項(xiàng)和變換報(bào)文后的五元組信息。然后,將混播表中的各項(xiàng)導(dǎo)入變換節(jié)點(diǎn)信息鏈表,并參照其中各節(jié)點(diǎn)的目的IP地址,查找相應(yīng)的單播/混播表,確定各個(gè)目標(biāo)報(bào)文的三層物理出端口信息,包括目的媒體接入層(MAC)地址、源MAC地址、VLAN信息和物理出端口,與原有的五元組信息一同構(gòu)成九元組。在查表形成九元組的過程中,對(duì)于目的IP地址表示單播的報(bào)文,查找單播表,獲得一個(gè)三層物理出端口信息,將該信息加入五元組中構(gòu)成九元組;對(duì)于目的IP地址表示組播的報(bào)文,查找組播表,并獲得多個(gè)三層物理出端口信息,將原有的五元組相應(yīng)復(fù)制成多個(gè),分別將獲得的三層物理出端口信息加入復(fù)制后的五元組中構(gòu)成多個(gè)九元組。至此,便完成了變換節(jié)點(diǎn)信息鏈表的產(chǎn)生。
在網(wǎng)絡(luò)運(yùn)行過程中,混播變換表的內(nèi)容和單播/組播表的內(nèi)容均可能發(fā)生變化。CPU可以根據(jù)混播變換表和單播/組播表的實(shí)時(shí)變化,刷新變換節(jié)點(diǎn)信息鏈表。
當(dāng)然,也可以采用其它方式產(chǎn)生變換節(jié)點(diǎn)信息鏈表,只要能夠?qū)⒆儞Q和路由轉(zhuǎn)發(fā)信息記錄到表中即可。
步驟502,ASIC接收單播/組播報(bào)文,并根據(jù)接收該報(bào)文的端口確定是否使能混播變換,若是,則執(zhí)行步驟503及其后續(xù)步驟,否則執(zhí)行步驟506。
步驟503,ASIC接收單播/組播報(bào)文,以該接收?qǐng)?bào)文標(biāo)識(shí)為索引,查詢變換節(jié)點(diǎn)信息鏈表。
本步驟中的操作與實(shí)施例一中的步驟303相同,這里就不再贅述。
步驟504,ASIC確定待變換報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并進(jìn)行相應(yīng)的變換。
本步驟中,根據(jù)步驟503中查詢的變換節(jié)點(diǎn)信息鏈表的結(jié)果確定待變換報(bào)文對(duì)應(yīng)的報(bào)文變換信息。
對(duì)報(bào)文進(jìn)行變換的具體方式包括根據(jù)確定的報(bào)文變換信息中節(jié)點(diǎn)鏈表項(xiàng)包括的九元組的個(gè)數(shù),即鏈表中的節(jié)點(diǎn)數(shù)對(duì)報(bào)文進(jìn)行復(fù)制。同時(shí),將新報(bào)文的源IP地址,目的IP地址,四層源端口號(hào)、四層目的端口號(hào)、目的MAC地址、源MAC地址、VLAN信息和出物理端口按照對(duì)應(yīng)節(jié)點(diǎn)鏈表項(xiàng)中各個(gè)節(jié)點(diǎn)的九元組值對(duì)應(yīng)替換,并根據(jù)九元組值中的AREA參數(shù)對(duì)相應(yīng)目標(biāo)報(bào)文的UDP/應(yīng)用層信息進(jìn)行變換。在上述變換過程中,將報(bào)文的IP頭校驗(yàn)和與傳輸層的校驗(yàn)和按照新的IP地址和端口號(hào)重新進(jìn)行計(jì)算,并利用計(jì)算結(jié)果刷新原先的校驗(yàn)和。至此,便完成了變換節(jié)點(diǎn)信息鏈表中記錄的變換。
步驟505,根據(jù)目標(biāo)報(bào)文的物理出端口,將形成的各個(gè)目標(biāo)報(bào)文直接從對(duì)應(yīng)的端口轉(zhuǎn)發(fā)出去,并結(jié)束本流程。
步驟506,對(duì)接收到的報(bào)文直接進(jìn)行報(bào)文路由和轉(zhuǎn)發(fā),并結(jié)束本流程。
至此,本實(shí)施例中報(bào)文混播變換及轉(zhuǎn)發(fā)的方法流程結(jié)束。
本實(shí)施例還提供了一種能夠?qū)崿F(xiàn)混播變換及轉(zhuǎn)發(fā)的交換機(jī),該交換機(jī)是圖2所示交換設(shè)備的一種具體實(shí)施方式
,可以用于實(shí)施上述混播變換方法。圖6即為本實(shí)施例中交換機(jī)的具體結(jié)構(gòu)圖。如圖6所示,該交換機(jī)包括CPU、ASIC報(bào)文收發(fā)端口1和報(bào)文收發(fā)端口2。其中,ASIC包括存儲(chǔ)子單元、控制子單元、變換引擎子單元和報(bào)文路由單元。存儲(chǔ)子單元、控制子單元和變換引擎子單元構(gòu)成了圖2中的硬件混播變換單元,報(bào)文路由單元為現(xiàn)有的ASIC均包括的功能單元。
在該交換機(jī)中,CPU用于根據(jù)網(wǎng)絡(luò)拓?fù)浜吞囟ǖ膮f(xié)議生成P2MP的報(bào)文變換信息存儲(chǔ)到ASIC中,并進(jìn)一步根據(jù)網(wǎng)絡(luò)變化狀況實(shí)時(shí)更新該報(bào)文變換信息。
報(bào)文收發(fā)端口1,用于接收網(wǎng)絡(luò)中的單播/組播報(bào)文并發(fā)送給ASIC進(jìn)行處理。
ASIC中的存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息對(duì)應(yīng)關(guān)系的變換節(jié)點(diǎn)信息鏈表,在該變換節(jié)點(diǎn)信息鏈表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào)。
控制子單元,用于接收?qǐng)?bào)文接收端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文的發(fā)送端口判斷是否使能混播變換,當(dāng)使能混播變換時(shí),將該單播/組播報(bào)文發(fā)送給變換引擎子單元,當(dāng)不使能混播變換時(shí),將該報(bào)文發(fā)送給報(bào)文路由單元。
變換引擎子單元,用于根據(jù)單播/組播報(bào)文標(biāo)識(shí),參照存儲(chǔ)子單元中的變換節(jié)點(diǎn)信息鏈表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,根據(jù)變換后的報(bào)文確定對(duì)應(yīng)的報(bào)文收發(fā)端口2,并將該報(bào)文發(fā)送給報(bào)文收發(fā)端口2。
報(bào)文路由單元,用于接收控制子單元發(fā)送的報(bào)文,查詢相應(yīng)的單播/組播表,進(jìn)行相應(yīng)的路由處理后通過對(duì)應(yīng)的報(bào)文收發(fā)端口3進(jìn)行轉(zhuǎn)發(fā)。
報(bào)文收發(fā)端口2和報(bào)文收發(fā)端口3,用于將接收到的單播/組播報(bào)文轉(zhuǎn)發(fā)出去。其中,報(bào)文收發(fā)端口1、2和3可能是相同的報(bào)文收發(fā)端口,也可能是不同的報(bào)文收發(fā)端口。
下面,對(duì)利用本實(shí)施例的方法在ASIC中實(shí)現(xiàn)的各種P2MP轉(zhuǎn)換進(jìn)行舉例說明。
1、一個(gè)單播報(bào)文到一個(gè)組播報(bào)文的轉(zhuǎn)換。
假定ASIC接收到一個(gè)單播報(bào)文,該報(bào)文相關(guān)信息如表1所示。提取表1中的目的IP地址單播IPB1和四層目的端口號(hào)B1,以該內(nèi)容為索引,查詢變換節(jié)點(diǎn)信息鏈表,確定該項(xiàng)對(duì)應(yīng)的表示報(bào)文變換信息。經(jīng)查表確定,該索引對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng)中只有一個(gè)節(jié)點(diǎn),也就是說形成一個(gè)目標(biāo)報(bào)文。該節(jié)點(diǎn)中記錄了目標(biāo)報(bào)文的九元組信息,利用該九元組信息對(duì)ASIC接收的該單播報(bào)文進(jìn)行相應(yīng)信息的變換,該變換后的報(bào)文直接具有了如表3所示的信息。然后將該形成的組播報(bào)文通過出端口P2發(fā)送出去。
2、一個(gè)組播報(bào)文到一個(gè)或多個(gè)單播報(bào)文的轉(zhuǎn)換。
提取接收?qǐng)?bào)文的目的IP地址組播IPB1和四層目的端口號(hào)B1,以其為索引查詢變換節(jié)點(diǎn)信息鏈表。查找結(jié)果在對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng)中包括一個(gè)或多個(gè)節(jié)點(diǎn)。其中,每個(gè)節(jié)點(diǎn)的目的IP地址均為單播IP地址。按照包括的節(jié)點(diǎn)數(shù)對(duì)接收到的報(bào)文進(jìn)行復(fù)制,然后依次根據(jù)每個(gè)節(jié)點(diǎn)中的九元組信息對(duì)相應(yīng)復(fù)制報(bào)文的相關(guān)信息進(jìn)行替換。于是便形成具備表6所示相關(guān)信息的目標(biāo)報(bào)文。
3、一個(gè)單播報(bào)文到多個(gè)單播報(bào)文。
提取接收?qǐng)?bào)文的目的IP地址單播IPB1和四層目的端口號(hào)B1,以其為索引查詢變換節(jié)點(diǎn)信息鏈表。查找結(jié)果和后續(xù)的處理與上述2中相同。最后也能形成具備表6所示相關(guān)信息的目標(biāo)報(bào)文。
4、一個(gè)單播報(bào)文到一個(gè)組播報(bào)文+多個(gè)單播報(bào)文的轉(zhuǎn)換。
提取接收?qǐng)?bào)文的目的IP地址單播IPB1和四層目的端口號(hào)B1,以其為索引查詢變換節(jié)點(diǎn)信息鏈表。經(jīng)查詢得到對(duì)應(yīng)的節(jié)點(diǎn)鏈表項(xiàng)中包括一個(gè)或多個(gè)節(jié)點(diǎn)。其中,前面多個(gè)節(jié)點(diǎn)的目的IP地址均為單播IP地址,最后一個(gè)節(jié)點(diǎn)的目的IP地址為組播IP地址。按照包括的節(jié)點(diǎn)數(shù)對(duì)接收到的報(bào)文進(jìn)行復(fù)制,然后依次根據(jù)每個(gè)節(jié)點(diǎn)中的九元組信息對(duì)相應(yīng)復(fù)制報(bào)文的相關(guān)信息進(jìn)行替換。于是便形成具備表8所示相關(guān)信息的目標(biāo)報(bào)文。
由上述可見,本實(shí)施例利用ASIC完成P2MP轉(zhuǎn)換過程中的信息轉(zhuǎn)換,相對(duì)于原有的軟件實(shí)現(xiàn)方式,大大提高了轉(zhuǎn)換效率。與實(shí)施例一的區(qū)別在于,利用ASIC中存儲(chǔ)的變換節(jié)點(diǎn)信息鏈表記錄了P2MP轉(zhuǎn)換過程中報(bào)文IP層及上層的報(bào)文變換信息(即對(duì)應(yīng)混播變換表中的內(nèi)容)和報(bào)文路由轉(zhuǎn)發(fā)過程中涉及的報(bào)文變換信息轉(zhuǎn)換(即對(duì)應(yīng)于原有單播/組播表中的內(nèi)容),從而通過一次查表,即可以完成P2MP轉(zhuǎn)換和轉(zhuǎn)發(fā)過程中涉及的各個(gè)協(xié)議層的信息轉(zhuǎn)換,進(jìn)一步提高了轉(zhuǎn)換效率。
上述本發(fā)明的實(shí)施例一和實(shí)施例二均以在ASIC中實(shí)現(xiàn)硬件混播變換單元為例說明的具體實(shí)現(xiàn)方式。事實(shí)上,也可以采用其它的硬件形式實(shí)現(xiàn)硬件混播變換單元。
綜上可見,本發(fā)明可以利用交換設(shè)備中的硬件混播變換單元實(shí)現(xiàn)P2MP的報(bào)文轉(zhuǎn)換過程。相對(duì)于CPU實(shí)現(xiàn)的報(bào)文轉(zhuǎn)換過程,硬件實(shí)現(xiàn)的報(bào)文轉(zhuǎn)換具有輸入輸出速度快、處理環(huán)節(jié)精簡、執(zhí)行單一任務(wù)更加專注的優(yōu)點(diǎn),因此本方案相對(duì)于傳統(tǒng)的在流媒體服務(wù)器中利用軟件實(shí)現(xiàn)的P2MP轉(zhuǎn)換方式,大大提高了轉(zhuǎn)換效率,并避免了在報(bào)文經(jīng)過的網(wǎng)絡(luò)支持組播協(xié)議的限制。同時(shí),本發(fā)明中,利用CPU設(shè)置和更新P2MP的變換方式,由ASIC實(shí)現(xiàn)具體的報(bào)文變換,從而使得控制和變換分離,靈活性和可擴(kuò)展性大大增加。另外,通過混播變換表中的靈活設(shè)置,能夠在ASIC上實(shí)現(xiàn)更加靈活多樣和復(fù)制的變換,不僅能夠?qū)?bào)文的IP地址進(jìn)行變換,還可以對(duì)四層端口號(hào)及應(yīng)用層信息進(jìn)行變換。
事實(shí)上,除上述介紹的在硬件混播變換單元中利用變換表的形式保存報(bào)文變換信息外,還可以利用其它方式保存混播變換中的報(bào)文變換信息。
以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法,其特征在于,該方法包括預(yù)先在網(wǎng)絡(luò)交換設(shè)備中設(shè)置硬件混播變換單元,并在該硬件混播變換單元中設(shè)置點(diǎn)到多點(diǎn)P2MP的報(bào)文變換信息;所述硬件混播變換單元接收單播/組播報(bào)文,根據(jù)設(shè)置的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換;轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置P2MP的報(bào)文變換信息的步驟包括在所述硬件混播變換單元中設(shè)置變換表,保存報(bào)文變換信息的索引和與該索引對(duì)應(yīng)的報(bào)文變換信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述變換信息的索引為以下一種或任意組合單播/組播報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)和四層目的端口號(hào)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在變換表中保存的任意報(bào)文變換信息為利用該報(bào)文變換信息進(jìn)行報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),以及形成每個(gè)目標(biāo)報(bào)文所需的信息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述形成每個(gè)目標(biāo)報(bào)文所需的信息包括該目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng),分別用于替換所述單播/組播報(bào)文的相應(yīng)信息。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述形成每個(gè)目標(biāo)報(bào)文所需的信息包括該目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào),分別用于替換所述單播/組播報(bào)文的相應(yīng)信息;所述目的MAC地址為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的下一跳的MAC地址;所述源MAC地址為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的報(bào)文三層出接口對(duì)應(yīng)的MAC地址;所述VLAN信息為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的報(bào)文物理出端口所在VLAN的信息;所述物理出端口號(hào)為根據(jù)所述目標(biāo)報(bào)文的目的IP地址,參照對(duì)應(yīng)的單播/組播表,查到的物理出端口。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在變換表中利用節(jié)點(diǎn)鏈表表示索引對(duì)應(yīng)的報(bào)文變換信息,所述鏈表中包括的節(jié)點(diǎn)數(shù)表示所述報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),每個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng)。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,在變換表中利用節(jié)點(diǎn)鏈表表示索引對(duì)應(yīng)的報(bào)文變換信息,所述鏈表中包括的節(jié)點(diǎn)數(shù)表示所述報(bào)文變換后形成的目標(biāo)報(bào)文個(gè)數(shù),每個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào)。
9.根據(jù)權(quán)利要求1任一所述的方法,其特征在于,該方法進(jìn)一步包括根據(jù)網(wǎng)絡(luò)變化狀況實(shí)時(shí)更新設(shè)置的報(bào)文變換信息。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)設(shè)置的報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換的步驟包括所述硬件混播變換單元解析接收到的單播/組播報(bào)文,確定所述報(bào)文變換表的索引項(xiàng)中與所述單播/組播報(bào)文對(duì)應(yīng)的索引,并根據(jù)所述索引,確定與所述單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)鏈表,利用該節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述利用節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換為所述硬件混播變換單元對(duì)應(yīng)每個(gè)與單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)生成一個(gè)報(bào)文,將對(duì)應(yīng)節(jié)點(diǎn)中的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng)設(shè)置為該報(bào)文的對(duì)應(yīng)項(xiàng),更新報(bào)文的IP頭校驗(yàn)和以及傳輸層的校驗(yàn)和,并根據(jù)目的IP地址確定該變換后的報(bào)文為單播或組播;所述轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文為根據(jù)變換后的單播/組播報(bào)文,查詢相應(yīng)的單播/組播表,進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述根據(jù)設(shè)置的報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換的步驟包括所述硬件混播變換單元解析接收到的單播/組播報(bào)文,確定所述報(bào)文變換表的索引項(xiàng)中與所述單播/組播報(bào)文對(duì)應(yīng)的索引,并根據(jù)所述索引,確定與所述單播/組播報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)鏈表,利用該節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述利用節(jié)點(diǎn)鏈表中的各個(gè)節(jié)點(diǎn)對(duì)單播/組播報(bào)文進(jìn)行變換為所述硬件混播變換單元對(duì)應(yīng)每個(gè)與待轉(zhuǎn)換報(bào)文對(duì)應(yīng)的節(jié)點(diǎn)生成一個(gè)報(bào)文,將對(duì)應(yīng)節(jié)點(diǎn)中的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息、物理出端口號(hào)設(shè)置為該報(bào)文的對(duì)應(yīng)項(xiàng),更新報(bào)文的IP頭校驗(yàn)和以及傳輸層的校驗(yàn)和,并根據(jù)目的IP地址確定該報(bào)文為單播或組播,得到變換后的單播或組播報(bào)文;所述轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文為將變換后的單播/組播報(bào)文從所述目標(biāo)報(bào)文的物理出端口號(hào)所指定的端口轉(zhuǎn)發(fā)出去。
14.根據(jù)權(quán)利要求10或12所述的方法,其特征在于,在查詢變換表時(shí),當(dāng)未查找到所述索引時(shí),直接轉(zhuǎn)發(fā)接收的單播/組播報(bào)文,并結(jié)束本流程。
15.根據(jù)權(quán)利要求1到13中任一所述的方法,其特征在于,在執(zhí)行所述接收單播/組播報(bào)文的操作后,執(zhí)行所述對(duì)單播/組播報(bào)文進(jìn)行變換的操作前,該方法進(jìn)一步包括根據(jù)單播/組播報(bào)文的接收端口判斷是否使能混播變換,若是,則繼續(xù)執(zhí)行所述對(duì)單播/組播報(bào)文進(jìn)行變換的操作,否則,直接轉(zhuǎn)發(fā)接收的單播/組播報(bào)文,并結(jié)束本流程。
16.根據(jù)權(quán)利要求1到13中任一所述的方法,其特征在于,利用專用集成芯片ASIC實(shí)現(xiàn)所述硬件混播變換單元。
17.一種交換設(shè)備,包括CPU和至少一個(gè)報(bào)文收發(fā)端口,其特征在于,該交換設(shè)備還包括硬件混播變換單元;所述CPU,用于根據(jù)網(wǎng)絡(luò)拓?fù)渖蒔2MP的報(bào)文變換信息,并存儲(chǔ)到所述硬件混播變換單元中;所述報(bào)文收發(fā)端口,用于接收網(wǎng)絡(luò)中的單播/組播報(bào)文并發(fā)送給所述硬件混播變換單元進(jìn)行處理;所述硬件混播變換單元,用于存儲(chǔ)設(shè)置的P2MP報(bào)文變換信息,并根據(jù)存儲(chǔ)的報(bào)文變換信息,對(duì)接收的單播/組播報(bào)文進(jìn)行變換,將變換后的單播/組播報(bào)文發(fā)送給該報(bào)文對(duì)應(yīng)的報(bào)文收發(fā)端口;所述接收到變換后的單播/組播報(bào)文的報(bào)文收發(fā)端口,用于將接收到的單播/組播報(bào)文轉(zhuǎn)發(fā)出去。
18.根據(jù)權(quán)利要求17所述的交換設(shè)備,其特征在于,所述硬件混播變換單元包括存儲(chǔ)子單元和變換引擎子單元,所述交換設(shè)備進(jìn)一步包括報(bào)文路由單元,其中,所述存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息及其二者對(duì)應(yīng)關(guān)系的變換表,在該變換表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)和UDP/應(yīng)用層信息變換項(xiàng);所述變換引擎子單元,用于接收所述報(bào)文收發(fā)端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文標(biāo)識(shí),參照所述存儲(chǔ)子單元中的變換表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,將變換后的目標(biāo)報(bào)文發(fā)送給所述報(bào)文路由單元;所述報(bào)文路由單元,用于根據(jù)變換后的目標(biāo)報(bào)文,查詢相對(duì)應(yīng)的單播/組播表,并對(duì)目標(biāo)報(bào)文進(jìn)行媒體接入層MAC地址和虛擬局域網(wǎng)VLAN信息的替換;將替換后的報(bào)文發(fā)送給對(duì)應(yīng)的報(bào)文收發(fā)端口。
19.根據(jù)權(quán)利要求17所述的交換設(shè)備,其特征在于,所述硬件混播變換單元包括存儲(chǔ)子單元和變換引擎子單元,其中,所述存儲(chǔ)子單元,用于保存記錄單播/組播報(bào)文標(biāo)識(shí)與報(bào)文變換信息及其二者對(duì)應(yīng)關(guān)系的變換表,在該變換表中利用節(jié)點(diǎn)鏈表表示報(bào)文變換信息,在各個(gè)節(jié)點(diǎn)中包括目標(biāo)報(bào)文的源IP地址、目的IP地址、四層源端口號(hào)、四層目的端口號(hào)、UDP/應(yīng)用層信息變換項(xiàng)、目的MAC地址、源MAC地址、VLAN信息和物理出端口號(hào);所述變換引擎子單元,用于接收所述報(bào)文收發(fā)端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文標(biāo)識(shí),參照所述存儲(chǔ)子單元中的變換表,確定待變換的單播/組播報(bào)文對(duì)應(yīng)的報(bào)文變換信息,并利用該報(bào)文變換信息對(duì)單播/組播報(bào)文進(jìn)行變換,根據(jù)該變換后的目標(biāo)報(bào)文確定報(bào)文轉(zhuǎn)發(fā)端口,發(fā)送給對(duì)應(yīng)的報(bào)文收發(fā)端口。
20.根據(jù)權(quán)利要求18或19所述的交換設(shè)備,其特征在于,所述硬件混播變換單元進(jìn)一步包括控制子單元,用于接收?qǐng)?bào)文接收端口發(fā)送的單播/組播報(bào)文,并根據(jù)該報(bào)文的發(fā)送端口判斷是否使能混播變換,當(dāng)使能混播變換時(shí),將該待變換的單播/組播報(bào)文發(fā)送給所述變換引擎子單元。
全文摘要
本發(fā)明公開了一種報(bào)文混播變換及轉(zhuǎn)發(fā)的方法,包括預(yù)先在網(wǎng)絡(luò)交換設(shè)備中設(shè)置硬件混播變換單元,并在該硬件變換單元中設(shè)置點(diǎn)到多點(diǎn)P2MP的報(bào)文變換信息;所述硬件混播變換單元接收單播/組播報(bào)文,根據(jù)設(shè)置的報(bào)文變換信息,對(duì)單播/組播報(bào)文進(jìn)行變換;轉(zhuǎn)發(fā)變換后的單播/組播報(bào)文。本發(fā)明還公開了一種交換設(shè)備,包括CPU、硬件混播變換單元和至少一個(gè)報(bào)文收發(fā)端口。應(yīng)用本發(fā)明的方法和交換設(shè)備,能夠一方面克服軟件實(shí)現(xiàn)所帶來的處理時(shí)延,提高了轉(zhuǎn)發(fā)效率,另一方面相對(duì)于通過組播網(wǎng)絡(luò)實(shí)現(xiàn)P2MP的轉(zhuǎn)發(fā)方式,避免了要求報(bào)文經(jīng)過的網(wǎng)絡(luò)必須支持組播協(xié)議的限制。
文檔編號(hào)H04L12/46GK101060486SQ200710100168
公開日2007年10月24日 申請(qǐng)日期2007年6月5日 優(yōu)先權(quán)日2007年6月5日
發(fā)明者宋玉兵, 孫暉 申請(qǐng)人:杭州華三通信技術(shù)有限公司