專(zhuān)利名稱(chēng):一種分組數(shù)據(jù)傳輸方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種分組數(shù)據(jù)傳輸方法及設(shè)備。
背景技術(shù):
路由器是通信領(lǐng)域一種連接多個(gè)網(wǎng)絡(luò)或網(wǎng)段的網(wǎng)絡(luò)設(shè)備,它能將不同網(wǎng)絡(luò)或網(wǎng)段之間的數(shù)據(jù)信息進(jìn)行“翻譯”,以使它們能夠相互“讀”懂對(duì)方的數(shù)據(jù),從而構(gòu)成一個(gè)更大的網(wǎng)絡(luò)。
防火墻是指設(shè)置在不同網(wǎng)絡(luò)(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡(luò)安全域之間的一系列部件的組合。它是不同網(wǎng)絡(luò)或網(wǎng)絡(luò)安全域之間信息的唯一出入口,通過(guò)監(jiān)測(cè)、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能地對(duì)外部屏蔽網(wǎng)絡(luò)內(nèi)部的信息、結(jié)構(gòu)和運(yùn)行狀況,有選擇地接受外部訪問(wèn),對(duì)內(nèi)部強(qiáng)化設(shè)備監(jiān)管、控制對(duì)服務(wù)器與外部網(wǎng)絡(luò)的訪問(wèn),在被保護(hù)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間架起一道屏障,以防止發(fā)生不可預(yù)測(cè)的、潛在的破壞性侵入。攔阻傳輸流通行,另一種機(jī)制是允許傳輸流通過(guò)。
分組流分類(lèi)的研究起源于路由器中轉(zhuǎn)發(fā)路由表的快速查詢(xún),路由表查詢(xún)實(shí)際上是一個(gè)一維流分類(lèi)問(wèn)題。在防火墻中,過(guò)濾規(guī)則集由若干條規(guī)則組成,需要根據(jù)這些規(guī)則集對(duì)所有出入防火墻的數(shù)據(jù)包進(jìn)行處理,同樣必須用到流分類(lèi)技術(shù)。流分類(lèi)是現(xiàn)代高性能路由器的一項(xiàng)關(guān)鍵技術(shù),路由器通過(guò)對(duì)進(jìn)入其中的分組進(jìn)行分類(lèi)來(lái)決定分組的出口以及對(duì)分組要進(jìn)行何種處理操作。由于路由器的鏈路速度都在不斷提高,無(wú)論是核心路由器還是邊緣路由器,都希望使用快速流分類(lèi)算法提高工作速度。高速分組流分類(lèi)技術(shù)的研究對(duì)于新一代寬帶網(wǎng)絡(luò)中路由器的結(jié)構(gòu)設(shè)計(jì)具有重要的意義,該技術(shù)在網(wǎng)絡(luò)安全、VPN、入侵檢測(cè)、流量統(tǒng)計(jì)和計(jì)費(fèi)等網(wǎng)絡(luò)關(guān)鍵機(jī)制的實(shí)現(xiàn)上也有廣泛的應(yīng)用。分組流分類(lèi)的研究起源于路由器中轉(zhuǎn)發(fā)路由表的快速查詢(xún),路由表查詢(xún)實(shí)際上是一個(gè)一維流分類(lèi)問(wèn)題。在防火墻中,過(guò)濾規(guī)則集由若干條規(guī)則組成,需要根據(jù)這些規(guī)則集對(duì)所有出入防火墻的數(shù)據(jù)包進(jìn)行處理,同樣必須用到流分類(lèi)技術(shù)。
流分類(lèi)技術(shù)在路由器和防火墻中的工作流程分別如圖1及圖2所示。
目前,常用的分組流分類(lèi)方案主要有以下三種RFC算法(Recursive FlowClassification,遞歸流分類(lèi)算法)、Hicuts算法(Hierarchical Intelligent Cutting)以及HyperCuts算法。首先是預(yù)處理過(guò)程,算法從文件中讀入規(guī)則庫(kù)并將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及其對(duì)應(yīng)的查找表。然后,對(duì)位圖進(jìn)行逐位比較,將各個(gè)等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表。以此類(lèi)推,直至得出最后一個(gè)階段的查找表。再根據(jù)最后一階段的等價(jià)類(lèi)表的內(nèi)容向此階段的表中填入規(guī)則號(hào)信息,這樣,最后一階段的查找表中便保存了匹配的規(guī)則信息。
在查找過(guò)程中,到來(lái)的分組,先分別以其各個(gè)域?qū)?yīng)的值作為索引,在第0階段的查找表中查找其對(duì)應(yīng)的結(jié)果;根據(jù)上一階段的結(jié)果,可以合并計(jì)算出在下一個(gè)階段中查找表中的索引,根據(jù)此索引繼續(xù)在下一階段的查找表中查找。直到最后一個(gè)階段,在查找表中的找到的內(nèi)容即為該分組所匹配的規(guī)則標(biāo)識(shí)。
前述采用RFC算法的技術(shù)方案雖然在某種程度上可以解決流分類(lèi)問(wèn)題,但是仍然存在不足之處。對(duì)于RFC算法來(lái)說(shuō),算法在進(jìn)行等價(jià)類(lèi)表的合并時(shí)要進(jìn)行大量的位圖的比較和查找操作。當(dāng)規(guī)則庫(kù)規(guī)模較大時(shí),位圖很長(zhǎng),并且當(dāng)各個(gè)源等價(jià)類(lèi)表較大時(shí),位圖的組合總數(shù)非常大,算法的預(yù)處理的效率就會(huì)很低,從而整個(gè)預(yù)處理的時(shí)間(即建立階段的時(shí)間)就會(huì)很長(zhǎng)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種高效率的分組數(shù)據(jù)傳輸方法。
本發(fā)明的另一目的在于提供一種高效率的分組數(shù)據(jù)傳輸設(shè)備。
本發(fā)明的技術(shù)方案一種防分組數(shù)據(jù)傳輸方法,包括步驟(1)從文件中讀入規(guī)則庫(kù)將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;(2)進(jìn)行位圖的比較和查找操作,將所述等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;其中,在進(jìn)行位圖比較時(shí),先比較位圖的摘要,若摘要不相等則位圖必不相等,若摘要相等則繼續(xù)比較其位圖是否相等;(3)以此類(lèi)推,直至得出最后一個(gè)階段的查找表;(4)再根據(jù)最后一階段的等價(jià)類(lèi)表的內(nèi)容向此階段的表中填入規(guī)則號(hào)信息,最后一階段的查找表中便保存了匹配的規(guī)則信息。
所述步驟(2)中的進(jìn)行位圖的比較前還包括利用離散函數(shù)建立位圖摘要的步驟。
所述步驟(2)還包括為等價(jià)類(lèi)表建立一個(gè)哈希索引表的步驟。
所述哈希索引表中,使用位圖的摘要或摘要中的若干比特作為在哈希索引表中的查找關(guān)鍵字。
一種分組數(shù)據(jù)傳輸設(shè)備,包括讀入單元,所述讀入單元從文件中讀入規(guī)則庫(kù),將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;位圖比較和查找單元,用于進(jìn)行位圖的比較和查找操作,將所述等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;其特征在于所述位圖比較和查找單元在進(jìn)行位圖比較時(shí),先比較位圖的摘要,若摘要不相等則位圖必不相等,若摘要相等則繼續(xù)比較其位圖是否相等。
所述位圖比較和查找單元在進(jìn)行位圖比較前首先利用離散函數(shù)建立位圖摘要。
所述位圖比較和查找單元在進(jìn)行位圖比較前還為等價(jià)類(lèi)表建立一個(gè)哈希索引表。
所述哈希索引表中,使用位圖的摘要或摘要中的若干比特作為在哈希索引表中的查找關(guān)鍵字。
發(fā)明的有益效果本發(fā)明避免了等價(jià)類(lèi)表合并過(guò)程中位圖在新等價(jià)類(lèi)表中的逐項(xiàng)比較,同時(shí)使用摘要減少了位圖比較過(guò)程中的計(jì)算量。而等價(jià)類(lèi)表合并過(guò)程在整個(gè)預(yù)處理過(guò)程中是最主要的運(yùn)算開(kāi)銷(xiāo)。因此,可以大大提高算法的預(yù)處理過(guò)程的速度,從而提高了路由器或防火墻的分組數(shù)據(jù)傳輸效率。
圖1為現(xiàn)有技術(shù)中路由器應(yīng)用流分類(lèi)技術(shù)的工作流程示意圖;圖2為現(xiàn)有技術(shù)中防火墻應(yīng)用流分類(lèi)技術(shù)的工作流程示意圖;圖3為邊緣路由器進(jìn)行流分類(lèi)的簡(jiǎn)要工作流程圖;圖4為包過(guò)濾防火墻針對(duì)數(shù)據(jù)包流的處理流程圖;圖5為預(yù)處理過(guò)程所生成的數(shù)據(jù)結(jié)構(gòu)進(jìn)行查找的過(guò)程示意圖;圖6為圖5中虛線框部分具體的查找過(guò)程示意圖;圖7為RFC算法預(yù)處理的流程圖;圖8為兩個(gè)等價(jià)類(lèi)表合并及比較過(guò)程示意圖。
具體實(shí)施例方式
路由器在運(yùn)營(yíng)商網(wǎng)絡(luò)邊緣,主要任務(wù)是為運(yùn)營(yíng)商接入用戶(hù),向用戶(hù)提供包括多播、帶寬管理、防火墻、QoS、動(dòng)態(tài)策略管理、虛擬路由、MPLS等多種業(yè)務(wù)。其中,QoS是實(shí)現(xiàn)的難點(diǎn),邊緣路由器的QoS需要強(qiáng)大而高速的流分類(lèi)的支持。邊緣路由器進(jìn)行流分類(lèi)的簡(jiǎn)要工作流程如圖3所示。
基于路由器的包過(guò)濾防火墻,其過(guò)濾規(guī)則集由若干條規(guī)則組成,涵蓋對(duì)所有出入防火墻的數(shù)據(jù)包的處理方法,同樣需要流分類(lèi)技術(shù)的強(qiáng)力支持,根據(jù)規(guī)則集建立性能優(yōu)良的流分類(lèi)處理結(jié)構(gòu),對(duì)數(shù)據(jù)包實(shí)施恰當(dāng)?shù)姆诸?lèi)和操作。包過(guò)濾防火墻針對(duì)數(shù)據(jù)包流的處理流程(只涉及流分類(lèi)的部分)如圖4所示。
在預(yù)處理過(guò)程中,對(duì)所生成的數(shù)據(jù)結(jié)構(gòu)進(jìn)行查找的過(guò)程如圖5所示。在算法的查找過(guò)程中,對(duì)到來(lái)的分組,先分別以其各個(gè)域?qū)?yīng)的值作為索引,在第0階段的查找表中查找其對(duì)應(yīng)的結(jié)果;根據(jù)上一階段的結(jié)果,可以合并計(jì)算出在下一個(gè)階段中查找表中的索引,根據(jù)此索引繼續(xù)在下一階段的查找表中查找。直到最后一個(gè)階段,在查找表中找到的內(nèi)容即為該分組所匹配的規(guī)則標(biāo)識(shí)。
具體的查找過(guò)程(圖5中虛線框部分)如圖6所示。其中,c00為從查找表00中查到的索引(圖示中為值“1”),c01為從查找表01中查到的索引(圖中值為“2”),A為查找表01中等價(jià)類(lèi)的數(shù)量(即查找表01所對(duì)應(yīng)的等價(jià)類(lèi)表的大小)。
如圖7所示,在預(yù)處理過(guò)程中,每一階段都需要將兩個(gè)(或兩個(gè)以上)的等價(jià)類(lèi)表合并成下一個(gè)階段的等價(jià)類(lèi)表。等價(jià)類(lèi)表中的每一個(gè)表項(xiàng)對(duì)應(yīng)于一個(gè)等價(jià)類(lèi),一個(gè)表項(xiàng)需要包括一個(gè)等價(jià)類(lèi)的身份(ID)和該等價(jià)類(lèi)的位圖(CBM)。位圖中的每一位(bit)對(duì)應(yīng)于規(guī)則集中的一條規(guī)則(若該等價(jià)類(lèi)匹配該規(guī)則,規(guī)則對(duì)應(yīng)的位被置“1”,否則被清0)。若位圖(CBM)相等則表示二者屬于同一個(gè)等價(jià)類(lèi)。在一個(gè)等價(jià)類(lèi)表中,不出現(xiàn)兩個(gè)表項(xiàng)屬于同一個(gè)等價(jià)類(lèi)。
將兩個(gè)(或多個(gè))等價(jià)類(lèi)表進(jìn)行合并時(shí),需要將一個(gè)源等價(jià)類(lèi)表中的每一個(gè)等價(jià)類(lèi)表項(xiàng)與其他源等價(jià)類(lèi)表中的等價(jià)類(lèi)表項(xiàng)進(jìn)行組合,然后將結(jié)果插入到新生成的等價(jià)類(lèi)表中。這里的組合是將兩個(gè)源等價(jià)類(lèi)的位圖(CBM1和CBM2)進(jìn)行按位“與”操作,得到新的位圖。然后,將結(jié)果位圖所對(duì)應(yīng)的等價(jià)類(lèi)插入到新等價(jià)類(lèi)表中。若位圖所對(duì)應(yīng)的等價(jià)類(lèi)已經(jīng)出現(xiàn)在新等價(jià)類(lèi)表中,則無(wú)須再加入。同時(shí),將位圖所對(duì)應(yīng)的等價(jià)類(lèi)(新插入的,或者原有的)在新等價(jià)類(lèi)表中的ID記錄在新建的查找表中。新建的查找表的大小等于所有組合的總數(shù)等于源等價(jià)類(lèi)表中的各個(gè)等價(jià)類(lèi)表項(xiàng)的組合數(shù),即等于各個(gè)源等價(jià)類(lèi)表大小的乘積。
對(duì)于新產(chǎn)生的位圖,需要判斷其是否已經(jīng)出現(xiàn)在新建的等價(jià)類(lèi)表中(與表中的某一個(gè)表項(xiàng)的位圖相等)。若不在,則需要插入到新等價(jià)類(lèi)表中,否則不需要。
在合并過(guò)程中,首先選擇一個(gè)散列函數(shù)H(x)。使用H(x)對(duì)等價(jià)類(lèi)表中的每一個(gè)等價(jià)類(lèi)的位圖計(jì)算出一個(gè)散列值H(CBM)作為該等價(jià)類(lèi)的“摘要”,形成等價(jià)類(lèi)表如表1所示。在比較兩個(gè)等價(jià)類(lèi)的位圖是否相等時(shí),首先比較其位圖的“摘要”。若摘要不相等,則位圖必不相等,無(wú)需再按位比較其位圖。若摘要相等,則繼續(xù)比較其位圖是否相等。
表1這樣兩個(gè)位圖摘要不相等時(shí)可減少運(yùn)算的開(kāi)銷(xiāo)。而在查找等價(jià)類(lèi)表時(shí)位圖不相等的情況遠(yuǎn)遠(yuǎn)多于位圖相等的情況,因此這種方式將大大提高預(yù)處理的效率。位圖散列值的計(jì)算可兩個(gè)等價(jià)類(lèi)表合并的過(guò)程中順帶進(jìn)行,不會(huì)運(yùn)行效率產(chǎn)生大的影響。
如圖8所示,為了進(jìn)一步避免逐項(xiàng)查找?guī)?lái)的開(kāi)銷(xiāo),本發(fā)明為等價(jià)類(lèi)表建立一個(gè)哈希(HASH)索引表。在哈希索引表中,使用位圖的摘要(或摘要中的若干比特)作為在哈希索引表中的查找關(guān)鍵字。索引表中保存對(duì)應(yīng)等價(jià)類(lèi)的ID,或者對(duì)應(yīng)等價(jià)類(lèi)表表項(xiàng)的指針或索引。哈希索引表的沖突可采用鏈表法、再哈希法或其他的方式來(lái)解決。向等價(jià)類(lèi)表中插入一個(gè)位圖等價(jià)類(lèi)時(shí),同時(shí)需要將其插入到哈希索引表中。
當(dāng)需要在等價(jià)類(lèi)表中搜索某個(gè)位圖時(shí),首先取得該位圖的摘要H(CBM)。使用H(CBM)或者其中的若干比特作為關(guān)鍵字,查找哈希索引表。若哈希索引表中不存在相應(yīng)表項(xiàng),則表明位圖不在等價(jià)類(lèi)表中。若哈希索引表中存在相應(yīng)表項(xiàng),則將輸入的位圖與表項(xiàng)中對(duì)應(yīng)的位圖進(jìn)行比較,相等則表示位圖存在于等價(jià)類(lèi)表中。這個(gè)過(guò)程中若發(fā)現(xiàn)了哈希表沖突,則可能需要多次位圖比較。通過(guò)選擇適當(dāng)?shù)墓:瘮?shù),可以減少?zèng)_突,提高查找的性能。
本方案通過(guò)選取合適的哈希函數(shù),并構(gòu)建哈希索引表,使得本方案的預(yù)處理速度比之RFC算法有了極大的改善。本發(fā)明使用摘要減少了位圖比較過(guò)程中的計(jì)算量,避免了等價(jià)類(lèi)表合并過(guò)程中位圖在新等價(jià)類(lèi)表中的逐項(xiàng)比較。因此本方案可以大大提高預(yù)處理過(guò)程的速度,從而提高了路由器或防火墻的流分類(lèi)處理的效率。
權(quán)利要求
1.一種分組數(shù)據(jù)傳輸方法,其特征在于,包括步驟(1)從文件中讀入規(guī)則庫(kù)將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;(2)進(jìn)行位圖的比較和查找操作,將所述等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;其中,在進(jìn)行位圖比較時(shí),先比較位圖的摘要,若摘要不相等則位圖必不相等,若摘要相等則繼續(xù)比較其位圖是否相等;(3)以此類(lèi)推,直至得出最后一個(gè)階段的查找表;(4)再根據(jù)最后一階段的等價(jià)類(lèi)表的內(nèi)容向此階段的表中填入規(guī)則號(hào)信息,最后一階段的查找表中便保存了匹配的規(guī)則信息。
2.根據(jù)權(quán)利要求1所述的分組數(shù)據(jù)傳輸方法,其特征在于,所述步驟(2)中的進(jìn)行位圖的比較前還包括利用離散函數(shù)建立位圖摘要的步驟。
3.根據(jù)權(quán)利要求1所述的分組數(shù)據(jù)傳輸方法,其特征在于,所述步驟(2)還包括為等價(jià)類(lèi)表建立一個(gè)哈希索引表的步驟。
4.根據(jù)權(quán)利要求3所述的防垃圾郵件方法,其特征在于,所述哈希索引表中,使用位圖的摘要或摘要中的若干比特作為在哈希索引表中的查找關(guān)鍵字。
5.一種分組數(shù)據(jù)傳輸設(shè)備,包括讀入單元,所述讀入單元從文件中讀入規(guī)則庫(kù),將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;位圖比較和查找單元,用于進(jìn)行位圖的比較和查找操作,將所述等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;其特征在于所述位圖比較和查找單元在進(jìn)行位圖比較時(shí),先比較位圖的摘要,若摘要不相等則位圖必不相等,若摘要相等則繼續(xù)比較其位圖是否相等。
6.根據(jù)權(quán)利要求5所述的分組數(shù)據(jù)傳輸設(shè)備,其特征在于,所述位圖比較和查找單元在進(jìn)行位圖比較前首先利用離散函數(shù)建立位圖摘要。
7.根據(jù)權(quán)利要求5所述的分組數(shù)據(jù)傳輸設(shè)備,其特征在于,所述位圖比較和查找單元在進(jìn)行位圖比較前還為等價(jià)類(lèi)表建立一個(gè)哈希索引表。
8.根據(jù)權(quán)利要求7所述的分組數(shù)據(jù)傳輸設(shè)備,其特征在于,所述哈希索引表中,使用位圖的摘要或摘要中的若干比特作為在哈希索引表中的查找關(guān)鍵字。
全文摘要
一種分組數(shù)據(jù)傳輸方法及設(shè)備,該方法包括步驟(1)從文件中讀入規(guī)則庫(kù)將其變?yōu)閮?nèi)部表示存儲(chǔ)起來(lái),并根據(jù)讀入的內(nèi)部表示,得出第0階段的若干個(gè)域的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;(2)進(jìn)行位圖的比較和查找操作,將所述等價(jià)類(lèi)表兩兩合并,得出第1階段的等價(jià)類(lèi)表及對(duì)應(yīng)的查找表;其中,在進(jìn)行位圖比較時(shí),先比較位圖的摘要,若摘要不相等則位圖必不相等,若摘要相等則繼續(xù)比較其位圖是否相等;(3)以此類(lèi)推,直至得出最后一個(gè)階段的查找表;(4)再根據(jù)最后一階段的等價(jià)類(lèi)表的內(nèi)容向此階段的表中填入規(guī)則號(hào)信息,最后一階段的查找表中便保存了匹配的規(guī)則信息。本發(fā)明由于使用位圖摘要,減少了位圖比較過(guò)程中的計(jì)算量,可提高數(shù)據(jù)傳輸效率。
文檔編號(hào)H04L12/56GK1980179SQ200510120649
公開(kāi)日2007年6月13日 申請(qǐng)日期2005年12月10日 優(yōu)先權(quán)日2005年12月10日
發(fā)明者龔向陽(yáng), 李偉, 劉宏明 申請(qǐng)人:華為技術(shù)有限公司, 北京郵電大學(xué)