專利名稱:一種組播報文轉(zhuǎn)發(fā)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種組播報文轉(zhuǎn)發(fā)方法及 裝置。
背景技術(shù):
IP (Internet Protocol)協(xié)議作為"網(wǎng)絡(luò)之間互連的協(xié)議",也就是為計算機 網(wǎng)絡(luò)相互連接進行通信而設(shè)計的協(xié)議。在因特網(wǎng)(Internet)中,它是能使連接 到網(wǎng)上的所有計算機網(wǎng)絡(luò)實現(xiàn)相互通信的一套規(guī)則,規(guī)定了計算機在因特網(wǎng)上 進行通信時應(yīng)當遵守的規(guī)則。Internet上的每臺主機都有一個唯一的IP地址。 IP協(xié)議就是使用這個地址在主機之間傳遞信息,這是Internet能夠運行的基礎(chǔ)。 IP地址的長度為32位,分為4段,每段8位,用十進制數(shù)字表示,每段數(shù)字 范圍為0~255,,殳與^殳之間用句點隔開。
IP組播(IP multicasting)是對標準IP網(wǎng)絡(luò)層協(xié)議的擴展。它通過使用 特定的IP組播地址,按照最大投遞的原則,將IP數(shù)據(jù)報傳輸?shù)揭粋€組播群組 (multicast group)的主機集合。它的基本方法是當某一個人向一組人發(fā)送 數(shù)據(jù)時,它不必將數(shù)據(jù)向每一個人都發(fā)送數(shù)據(jù),只需將數(shù)據(jù)發(fā)送到一個特定的 預(yù)約的組地址,所有加入該組的人均可以收到這份數(shù)據(jù)。這樣對發(fā)送者而言, 數(shù)據(jù)只需發(fā)送一次就可以發(fā)送到所有接收者,大大減輕了網(wǎng)絡(luò)的負載和發(fā)送者 的負擔。
組播IP地址用于標識一個IP組4番組。D類地址空間分配給IP組播,其范 圍是從224.0.0.0到239.255.255.255。組播報文中,IP組播地址和他的目的MAC 地址必須有一個對應(yīng)關(guān)系,也就是后24位的二進制凝:值必須相等。而由于MAC 地址的前24位必須為01 00 5E,所以就可以從才艮文的目的IP組播地址,去推
算他的目的MAC地址。假設(shè)一個組播報文的目的IP地址是224.i.U,那么這 個報文的目的MAC地址必然是01 00 5E 01 01 01。
在支持IP組播的網(wǎng)絡(luò)設(shè)備的硬件部分一般都有一個組播路由表。組播路 由表是有許多個組播路由表項構(gòu)成的,每一個組播路由表項里面都記錄了目的 IP地址(IP組播地址),報文的出口位圖,以及是否命中此表項的等信息。
簡單的來說,每一個組播路由表項的結(jié)構(gòu)如圖1所示。當一個合法的帶有 IP組播地址的報文進入網(wǎng)絡(luò)設(shè)備的時候,就會從報文的出口位圖中記錄的端口 上被轉(zhuǎn)發(fā)出去,并且更新命中信息。組播路由表一般來說是由軟件協(xié)議層來維 護的,協(xié)議層根據(jù)不同的協(xié)議報文的信息來構(gòu)建組播路由表,最終達到IP組 播的目的。
對于網(wǎng)絡(luò)的設(shè)備的底層驅(qū)動來說,在報文發(fā)送到網(wǎng)絡(luò)設(shè)備的時候,會匹配 到組播路由表的報文,被稱作知名組播。不會匹配組播路由表的報文,被稱作 未知名組播。
PIM-SM是由RFC 2362規(guī)定的一種有效的路由協(xié)議,其中的組播組稀疏 地分布在一個巨大的區(qū)域中(WAN和域間)。PIM-SM協(xié)議不依賴于任何特定 的單播路由協(xié)議。它主要是被設(shè)計用來支持稀疏組。它使用了傳統(tǒng)的基于接收 端啟動成員關(guān)系的IP組播模型,支持共享和最短路徑樹,此外它還使用了軟 狀態(tài)機制,以適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境。
簡單的說,PIM-SM協(xié)議假定所有的主機都不需要接收組播數(shù)據(jù)包,只有 主機明確指定需要時,PIM-SM路由器才向它轉(zhuǎn)發(fā)組播數(shù)據(jù)包。而通過一些協(xié) 議報文,在組播源和需要組播報文的多臺機器建立起一個樹型的拓樸結(jié)構(gòu)。而 由于他實現(xiàn)了軟狀態(tài)機制,所謂軟狀態(tài)機制也就是,如果沒有刷新,那么,路 由器的狀態(tài)配置是短期的,并在一段時間后失效。所以有哪些知名的組播報文 不斷經(jīng)過這臺設(shè)備,是設(shè)備必須要知道的,以上均為RFC 2362標準規(guī)定的。
三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的 是加快大型局域網(wǎng)內(nèi)部的數(shù)據(jù)交換,所具有的路由功能也是為這目的服務(wù)的,
能夠做到一次路由,多次轉(zhuǎn)發(fā)。對于數(shù)據(jù)包轉(zhuǎn)發(fā)等規(guī)律性的過程由硬件高速實 現(xiàn),而像路由信息更新、路由表維護、路由計算、路由確定等功能,由軟件實 現(xiàn)。
基于以上說明,我們可以了解到,三層交換機的交換和轉(zhuǎn)發(fā)功能主要是由 硬件來實現(xiàn)的,這一部分被稱作"硬件層"。協(xié)議和安全應(yīng)用等部分是由軟件來 實現(xiàn)的,這一部分被稱作"軟件協(xié)議層"。而在硬件層和軟件協(xié)議層之間還存在 一個驅(qū)動層,負責(zé)驅(qū)動硬件,維護硬件表項,以及將硬件收到的報文送至軟件
協(xié)議層處理。綜上所述,整個三層交換機的簡單層次結(jié)構(gòu)如圖2所示。基本上
大部分的三層交換機都支持組播功能。在三層交換機上的組播協(xié)議是由軟件來 實現(xiàn)的。
對于PIM-SM協(xié)議,根據(jù)RFC 2362的標準,需要實現(xiàn)軟狀態(tài)機制,協(xié)議 層必須要知道有哪些知名的組播報文不斷的經(jīng)過這臺i殳備。所以,所有的知名 組播都需要送到軟件協(xié)議層處理。大量的已知名組播在交換機等設(shè)備上通常是 經(jīng)過硬件進行轉(zhuǎn)發(fā),而由于上述的原因,這些知名組播同時也要送到軟件協(xié)議 層進行處理,假設(shè)這個時候報文的數(shù)據(jù)量很大的話,會造成軟件協(xié)議層就要占 用大量的運算時間來處理報文,導(dǎo)致整體的運算速度下降,影響交換機性能。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種組播報文轉(zhuǎn)發(fā)方法及裝置,用以解決現(xiàn)有技術(shù)中將 知名組播報文送至軟件協(xié)議層,影響上層軟件處理才艮文的數(shù)量,降低了整個三 層交換機效率的問題。
一種組播報文轉(zhuǎn)發(fā)方法,該方法包括
禁止知名組播凈艮文直接送軟件協(xié)議層;
獲取組播路由表中命中標志為命中的表項;
根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報文送軟件協(xié)議層。
一種組播報文轉(zhuǎn)發(fā)裝置,該裝置包括禁止報送單元、獲取單元、虛擬報文
構(gòu)建單元和發(fā)送單元,其中,
所述禁止報送單元,用于禁止知名組播報文直4妻送軟件協(xié)議層; 所述獲取單元,用于獲取組播路由表中命中標志為命中的表項; 所述虛擬報文構(gòu)建單元,用于根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播 報文;
所述發(fā)送單元,用于將所述虛擬組播報文送軟件協(xié)議層。 本發(fā)明實施例通過禁止知名組播報文直接送軟件協(xié)議層;獲取組播路由表 中命中標志為命中的表項;才艮據(jù)表項中的目的組播地址,構(gòu)建虛擬組播"^艮文送 軟件協(xié)議層。本發(fā)明實施例提供的方案,由于根據(jù)組播路由表項中的命中標志 來確定構(gòu)建虛擬報文的數(shù)量,重復(fù)命中的知名組播報文只構(gòu)建一個虛擬組播報 文,因而可以極大的減少送軟件協(xié)議層的組播報文的數(shù)量,減輕軟件協(xié)議層的 負擔。同時,由于構(gòu)建的虛擬組播報文的內(nèi)容為空,可以節(jié)約傳輸和處理組播 報文的時間,同時不會對PIM-SM的功能造成什么影響。
圖1為現(xiàn)有技術(shù)中組播路由表項結(jié)構(gòu)示意圖; 圖2為現(xiàn)有技術(shù)中三層交換機的簡單層次結(jié)構(gòu)示意圖; 圖3為本發(fā)明實施例1的主要實現(xiàn)原理流程圖; 圖4為本發(fā)明實施例2的主要實現(xiàn)原理流程圖; 圖5為本發(fā)明實施例3提供裝置的結(jié)構(gòu)示意圖.
具體實施例方式
根據(jù)PIM-SM的原理和RFC 2362的規(guī)定,而對于知名組播報文,軟件協(xié) 議層只需要知道三層交換機收到了此IP組播地址的報文,用于刷新狀態(tài)即可, 并不關(guān)心報文的具體內(nèi)容。因而,為了提高軟件協(xié)議層處理組播報文的效率, 我們可以構(gòu)建虛擬的內(nèi)容為空的組播報文送軟件協(xié)議層。也就是說,本發(fā)明方
案主要包括以下兩點
1)不將已知名組播"^艮文送至軟件協(xié)議層。
2 )構(gòu)造虛擬組纟番報文送至軟件協(xié)議層,保證PIM-SM的功能正常。
為了實現(xiàn)這樣的功能,本發(fā)明實施例可以根據(jù)組播路由表中的命中標志來
判定一段時間內(nèi)通過設(shè)備的知名組播報文,并根據(jù)路由表項中的相關(guān)信息構(gòu)建
虛擬組播報文。
本發(fā)明實施例中所指的設(shè)備可以是三層交換機或路由器,以及其它任何需 要將組播報文送軟件協(xié)議層的設(shè)備。
下面結(jié)合各個附圖對本發(fā)明實施例技術(shù)方案的主要實現(xiàn)原理、具體實施方 式及其對應(yīng)能夠達到的有益效果進行詳細的闡述。
如圖3所示,本發(fā)明實施例1的主要實現(xiàn)原理流程如下
步驟ll,禁止知名組播報文直接送軟件協(xié)議層。
現(xiàn)有的系統(tǒng)中,當開啟PIM-SM協(xié)議功能時,知名組播報文會直接送軟件 協(xié)議層進行處理。本實施例1中,為了減少送軟件協(xié)議層的知名組播報文數(shù)量, 首先需要禁止所有的知名組播報文直接送軟件協(xié)議層。
對于一般的三層交換機或路由器,已知名組播報文原先是不會送至軟件協(xié) 議層的。然后由于PIM-SM協(xié)議的開啟,由軟件協(xié)議層向底層的硬件芯片做了 一些設(shè)置,使得已知名的組播報文會送到軟件協(xié)議層。對于不同的硬件芯片, 這一步驟設(shè)置的方法就不同。實際上只要在PIM-SM協(xié)議開啟的過程中跳過這 一步驟即可。
步驟12,獲取組播路由表中命中標志為命中的表項。
組播路由表是用來控制組播路由轉(zhuǎn)發(fā)功能的表項,其中,當組播路由報文 通過設(shè)備時,需要將其與組播路由表匹配,匹配成功的路由表項的命中標志會 置為命中,這樣的組播報文被稱為知名組播報文。由于在開啟PIM-SM協(xié)議功 能時,軟件協(xié)議層需要知道在特定的時間內(nèi)有哪些組播報文通過設(shè)備,因而, 需要將通過設(shè)備的組播報文送軟件協(xié)議層。
這里,獲取組播路由表中命中標志為命中的表項,可以先獲取組播路由表
中所有表項;依次判斷其中命中標志是否為命中,得到命中標志為命中的表項。 當然,有些組播報文可能重復(fù)多次通過設(shè)備,組播路由表中的命中標志僅 記錄一次。
步驟13,根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報文送軟件協(xié)議層。
在組播路由表項中我們可以獲得組播報文的目的組播IP地址以及源IP地 址,根據(jù)目的組播IP可以計算出目的MAC地址,有了這些數(shù)據(jù),我們就可以 構(gòu)造一個目的IP為這個地址的組播報文。也就是說,根據(jù)組播路由表項中的 目的組播地址,我們可以構(gòu)建出一個虛擬組播報文,這個虛擬組播報文與原始 的組播報文目的IP地址、MAC地址以及源IP地址一致,而內(nèi)容為空。
軟件協(xié)議層可以根據(jù)這個構(gòu)建的虛擬組播報文獲知哪些組播報文通過設(shè) 備,從而實現(xiàn)相應(yīng)的功能。
為了統(tǒng)計一段時間內(nèi)通過設(shè)備的組播報文,可以預(yù)先設(shè)定一循環(huán)時間周 期,在該循環(huán)時間周期到期時,根據(jù)命中標志為命中的表項中的目的組播地址, 構(gòu)建虛擬組播報文送軟件協(xié)議層;并將組播路由表中所有的命中標志設(shè)置為未 命中。這樣,只要一開始將所有組播路由表的命中標志置為未命中,然后一段 時間后讀取所有組播路由表的命中標志。我們就可以知道在這段時間內(nèi),交換 機收到了哪些已知名組播報文。這樣判斷的一個必要條件是需要一開始將所有 組播路由表的命中標志置為未命中。
由于一開始組播路由表的表項的命中標志均是為未命中的。所以我們只需 要每隔一段時間(也就是循環(huán)時間周期,這個循環(huán)時間周期可以自行設(shè)定,例 如,可以設(shè)定為5秒)做一次操作,先讀取出所有組播路由表表項,循環(huán)判斷 每個組播路由表項的命中標志,將命中標志為已命中的表項的信息讀取出來, 根據(jù)這些信息構(gòu)造一個虛擬組播報文送到軟件協(xié)議層處理。在判斷完所有的表 項之后,將所有組播路由表表項的命中標志置為未命中,這樣下一次操作(約 5秒后)我們還可以知道到下一個5秒內(nèi)的收到了哪些已知名組播報文。
這里的循環(huán)時間周期,可以根據(jù)不同硬件設(shè)備使用的不同CPU的性能在 一定范圍內(nèi)進行調(diào)整。因為RFC 2362中并未確切規(guī)定軟件狀態(tài)的具體老化時 間,所以對于PIM-SM協(xié)議的不同實現(xiàn),軟件狀態(tài)的老化時間的設(shè)置也是不同 的。所以在進行優(yōu)化的時候,循環(huán)時間周期必須要小于當前PIM-SM協(xié)議的實 現(xiàn)的老化時間,否則軟件狀態(tài)先老化了,就無法再次刷新了,這樣就可能出現(xiàn) 拓樸震蕩等情況的出現(xiàn)。
相應(yīng)的,如圖4所示,為本發(fā)明實施例2的實現(xiàn)原理流程圖,其中,自設(shè) 定的循環(huán)時間周期到期時,首先讀取所有的組播路由表表項并存儲。然后逐條 判斷組播路由表中各條表項的命中標志是否為命中,如果是,根據(jù)表項內(nèi)容構(gòu) 建虛擬組播報文,將構(gòu)建的虛擬組播報文送軟件協(xié)議層,并返回進一步判斷下 一條組播路由表項命中標志是否為命中。如果該表項的命中標志為未命中,則 直接返回進一步判斷下一條組播路由表項的命中標志是否為命中,如此循環(huán), 直至遍歷組播路由表中所有表項。當組播路由表中所有表項全部分析完成后, 結(jié)束流程,將所有的表項全部設(shè)置為未命中。
本實施例2中所有的步驟全部在循環(huán)時間周期到期時完成,由于循環(huán)時間 周期是時間的循環(huán),在到期后即開始下一個循環(huán),因而,在每個循環(huán)時間周期 到期時,執(zhí)行上述的操作。
本實施例2中,在特定的循環(huán)時間周期開始時,組播路由表中的各個表項 全部被設(shè)置為未命中。當循環(huán)時間周期到期時,有通過設(shè)備的組播報文對應(yīng)的 組播路由表項的命中標志被置為命中,獲取這些表項并構(gòu)建虛擬組播報文送軟 件協(xié)議層,軟件協(xié)議層就可以獲知在這個循環(huán)時間周期內(nèi)通過設(shè)備的組播報 文。
相應(yīng)地,本發(fā)明實施例3還提供了一種組播報文轉(zhuǎn)發(fā)裝置,如圖5所示, 該裝置包括禁止報送單元21、獲取單元22、虛擬纟艮文構(gòu)建單元23和發(fā)送單元 24,具體如下
禁止報送單元21,用于禁止知名組播報文直接送軟件協(xié)議層。
獲取單元22,用于獲取組播路由表中命中標志為命中的表項; 虛擬報文構(gòu)建單元23,用于根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報
文;
發(fā)送單元24,用于將所述虛擬組播報文送軟件協(xié)議層。
較佳的,如上所述的裝置進一步包括命中設(shè)定單元25,用于當知名組播路
由報文通過設(shè)備時,將其與組播路由表匹配,并將匹配成功的路由表項的命中
標志置為命中。
較佳的,上述裝置進一步包括時間循環(huán)設(shè)定單元26,用于設(shè)定一循環(huán)時間 周期,在該循環(huán)時間周期到期時,通知虛擬報文構(gòu)建單元23根據(jù)命中標志為 命中的表項中的目的組播地址,構(gòu)建虛擬組播^Jl送軟件協(xié)議層;并通知命中 設(shè)定單元25將組播^各由表中所有的命中標志設(shè)置為未命中。
綜上所述,本發(fā)明實施例提供的方案,由于根據(jù)組播路由表項中的命中標 志來確定構(gòu)建虛擬報文的數(shù)量,重復(fù)命中的知名組播報文只構(gòu)建一個虛擬組播 報文,因而可以極大的減少送軟件協(xié)議層的組播報文的數(shù)量,減輕軟件協(xié)議層 的負擔。同時,由于構(gòu)建的虛擬組播報文的內(nèi)容為空,可以節(jié)約傳輸和處理組 播報文的時間,同時不會對PIM-SM的功能造成什么影響。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種組播報文轉(zhuǎn)發(fā)方法,其特征在于,該方法包括禁止知名組播報文直接送軟件協(xié)議層;獲取組播路由表中命中標志為命中的表項;根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報文送軟件協(xié)議層。
2、 如權(quán)利要求1所述的方法,其特征在于,所述獲取組播路由表中命中 標志為命中的表項,包括獲取組播路由表中所有表項;依次判斷其中命中標志是否為命中,得到命中標志為命中的表項。
3、 如權(quán)利要求1所述的方法,其特征在于,在構(gòu)建虛擬組播報文送軟件 協(xié)議層后,該方法進一步包括將組播路由表中所有的命中標志設(shè)置為未命中;當知名組播路由報文通過設(shè)備時,將其與組播路由表匹配,并將匹配成功 的路由表項的命中標志置為命中。
4、 如權(quán)利要求3所述的方法,其特征在于,該方法包括 預(yù)先設(shè)定一循環(huán)時間周期,在該循環(huán)時間周期到期時,獲取組播路由表中命中標志為命中的表項;根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報文送軟 件協(xié)議層;并將組播路由表中所有的命中標志設(shè)置為未命中。
5、 如權(quán)利要求l所述的方法,其特征在于,所述目的組播地址包括 目的IP地址、目的MAC地址和源IP地址。
6、 一種組播報文轉(zhuǎn)發(fā)裝置,其特征在于,該裝置包括禁止報送單元、獲 取單元、虛擬報文構(gòu)建單元和發(fā)送單元,其中,所述禁止報送單元,用于禁止知名組播報文直接送軟件協(xié)議層; 所述獲取單元,用于獲取組播路由表中命中標志為命中的表項; 所述虛擬報文構(gòu)建單元,用于根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播 報文; 所述發(fā)送單元,用于將所述虛擬組播報文送軟件協(xié)議層。
7、 如權(quán)利要求6所述的裝置,其特征在于,該裝置進一步包括命中設(shè)定 單元,用于當知名組播路由報文通過設(shè)備時,將其與組播路由表匹配,并將匹 配成功的路由表項的命中標志置為命中。
8、 如權(quán)利要求7所述的裝置,其特征在于,該裝置進一步包括時間循環(huán) 設(shè)定單元,用于設(shè)定一循環(huán)時間周期,在該循環(huán)時間周期到期時,通知所述虛 擬報文構(gòu)建單元根據(jù)命中標志為命中的表項中的目的組播地址,構(gòu)建虛擬組播 報文送軟件協(xié)議層;并通知命中設(shè)定單元將組播路由表中所有的命中標志設(shè)置 為未命中。
9、 如權(quán)利要求6~8任一所述的裝置,其特征在于,所述組播報文轉(zhuǎn)發(fā)裝 置設(shè)置于三層交換機或路由器中。
全文摘要
本發(fā)明公開了一種組播報文轉(zhuǎn)發(fā)方法及裝置,通過禁止知名組播報文直接送軟件協(xié)議層;獲取組播路由表中命中標志為命中的表項;根據(jù)表項中的目的組播地址,構(gòu)建虛擬組播報文送軟件協(xié)議層。本發(fā)明實施例提供的方案,由于根據(jù)組播路由表項中的命中標志來確定構(gòu)建虛擬報文的數(shù)量,重復(fù)命中的知名組播報文只構(gòu)建一個虛擬組播報文,因而可以極大的減少送軟件協(xié)議層的組播報文的數(shù)量,減輕軟件協(xié)議層的負擔。同時,由于構(gòu)建的虛擬組播報文的內(nèi)容為空,可以節(jié)約傳輸和處理組播報文的時間,同時不會對PIM-SM的功能造成什么影響。
文檔編號H04L12/56GK101388850SQ20081022554
公開日2009年3月18日 申請日期2008年11月5日 優(yōu)先權(quán)日2008年11月5日
發(fā)明者旭 王 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司