專利名稱:一種報(bào)文分類方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通信系統(tǒng),特別是涉及一種實(shí)現(xiàn)報(bào)文分類方法和系統(tǒng)。
背景技術(shù):
IPv4報(bào)文分類中,路由器提取五元組(目的IP地址,源IP地址,目的端口,源端 口,協(xié)議)協(xié)議字段,根據(jù)所提取的五元組,從規(guī)則集中查找匹配的規(guī)則,以確定此數(shù)據(jù)包 所屬的流。如果一個(gè)數(shù)據(jù)包匹配多條規(guī)則,則路由器根據(jù)優(yōu)先級(jí)最高原則對(duì)報(bào)文進(jìn)行分類。 在IPv4規(guī)則集中,規(guī)則格式如表1所示表 權(quán)利要求
1.一種報(bào)文分類方法,其特征在于,包括以原始規(guī)則集中各報(bào)文分類規(guī)則的源地址和目的地址分別建立二叉樹;使用位圖分別存儲(chǔ)所述二叉樹;對(duì)待分類的數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包的源地址和目的地址,分別查找對(duì)應(yīng)的位圖,得到兩 個(gè)匹配結(jié)果,根據(jù)這兩個(gè)匹配結(jié)果和該數(shù)據(jù)包的其它信息,得到該數(shù)據(jù)包的報(bào)文分類規(guī)則。
2.如權(quán)利要求1所述的方法,其特征在于,所述使用位圖存儲(chǔ)所述二叉樹包括設(shè)置搜索步長(zhǎng)N,N為正整數(shù);從所述二叉樹的根節(jié)點(diǎn)開始,將所述二叉樹劃分為若干級(jí)大樹節(jié)點(diǎn),其中,每個(gè)大樹節(jié) 點(diǎn)包括所述二叉樹的N層,該N層中,下一層的節(jié)點(diǎn)為上一層的節(jié)點(diǎn)的子節(jié)點(diǎn),且每個(gè)大樹 節(jié)點(diǎn)的第一層包含1個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)稱為該大樹節(jié)點(diǎn)的根節(jié)點(diǎn),下一級(jí)大樹節(jié)點(diǎn)的根節(jié)點(diǎn) 為上一級(jí)大樹節(jié)點(diǎn)包含的最后一層節(jié)點(diǎn)的子節(jié)點(diǎn);為每個(gè)大樹節(jié)點(diǎn)建立內(nèi)部位圖序列和外部位圖序列,所述內(nèi)部位圖序列用于指示所述 大樹節(jié)點(diǎn)包括的各節(jié)點(diǎn)的位置和該節(jié)點(diǎn)是否為實(shí)節(jié)點(diǎn),其中,實(shí)節(jié)點(diǎn)中包含優(yōu)先級(jí)信息;所 述外部位圖序列用于指示所述大樹節(jié)點(diǎn)下是否存在下一級(jí)大樹節(jié)點(diǎn)及下一級(jí)大樹節(jié)點(diǎn)與 當(dāng)前大樹節(jié)點(diǎn)的位置信息。
3.如權(quán)利要求2所述的方法,其特征在于,按如下方式建立2~N-1位的內(nèi)部位圖序列對(duì)每個(gè)大樹節(jié)點(diǎn),從該大樹節(jié)點(diǎn)的第一層 開始,每層從左到右遍歷該大樹節(jié)點(diǎn)包括的每一個(gè)節(jié)點(diǎn),對(duì)每個(gè)節(jié)點(diǎn),使用一個(gè)比特表示該 節(jié)點(diǎn)是否為實(shí)節(jié)點(diǎn),得到該大樹節(jié)點(diǎn)的內(nèi)部位圖序列;按如下方式建立2~N位的外部位圖序列對(duì)大樹節(jié)點(diǎn)最后一層各節(jié)點(diǎn)對(duì)應(yīng)的子節(jié)點(diǎn), 從左到右遍歷,對(duì)每個(gè)子節(jié)點(diǎn),使用一個(gè)比特表示是否存在以該子節(jié)點(diǎn)作為根節(jié)點(diǎn)的大樹 節(jié)點(diǎn),得到該大樹節(jié)點(diǎn)的外部位圖序列。
4.如權(quán)利要求3所述的方法,其特征在于,所述內(nèi)部位圖序列中,對(duì)大樹節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn),使用比特1表示該節(jié)點(diǎn)為實(shí)節(jié)點(diǎn),比 特0表示所述節(jié)點(diǎn)為空節(jié)點(diǎn),所述空節(jié)點(diǎn)指不包含優(yōu)先級(jí)信息的節(jié)點(diǎn);所述外部位圖序列中,對(duì)大樹節(jié)點(diǎn)最后一層各節(jié)點(diǎn)對(duì)應(yīng)的每個(gè)子節(jié)點(diǎn),使用比特1表 示所述存在以該子節(jié)點(diǎn)為根節(jié)點(diǎn)的大樹節(jié)點(diǎn),使用比特0表示不存在以該子節(jié)點(diǎn)為根節(jié)點(diǎn) 的大樹節(jié)點(diǎn)。
5.如權(quán)利要求2、3或4所述的方法,其特征在于,對(duì)每個(gè)大樹節(jié)點(diǎn)的內(nèi)部位圖序列進(jìn)行 壓縮,設(shè)置索引長(zhǎng)度M1,所述內(nèi)部位圖序列每Ml位對(duì)應(yīng)一索引值,指示該Ml位對(duì)應(yīng)的節(jié)點(diǎn) 中是否存在實(shí)節(jié)點(diǎn);和/或,對(duì)所述外部位圖序列進(jìn)行壓縮,設(shè)置索引長(zhǎng)度M2,所述外部位圖序列每M2位對(duì) 應(yīng)一索引值,指示是否存在以該M2位對(duì)應(yīng)的子節(jié)點(diǎn)為根節(jié)點(diǎn)的大樹節(jié)點(diǎn)。
6.如權(quán)利要求5所述的方法,其特征在于,所述根據(jù)該數(shù)據(jù)包的源地址和目的地址,分別查找對(duì)應(yīng)的位圖包括A、將所述數(shù)據(jù)包的源地址或目的地址按所述搜索步長(zhǎng)N進(jìn)行分割,得到若干段地址, 最后一段地址不足N位時(shí),補(bǔ)0 ;B、提取初始N位地址,查找第一級(jí)大樹節(jié)點(diǎn),得到匹配的報(bào)文分類規(guī)則集,其中,第一 級(jí)大樹節(jié)點(diǎn)其第一層節(jié)點(diǎn)為二叉樹的根節(jié)點(diǎn);判斷該N位地址是否存在對(duì)應(yīng)的下一級(jí)大樹節(jié)點(diǎn),如果存在,提取后續(xù)N位地址,執(zhí)行步驟C ;否則,查找結(jié)束,得到匹配結(jié)果;C、根據(jù)當(dāng)前提取的N位地址查找對(duì)應(yīng)的下一級(jí)大樹節(jié)點(diǎn),得到匹配的報(bào)文分類規(guī)則 集;判斷該后續(xù)N位地址是否存在對(duì)應(yīng)的下一級(jí)大樹節(jié)點(diǎn),如果存在,繼續(xù)提取后續(xù)N位地 址,返回步驟C ;否則,查找結(jié)束,得到匹配結(jié)果。
7.如權(quán)利要求6所述的方法,其特征在于,其中,根據(jù)N位地址查找大樹節(jié)點(diǎn)時(shí),首先查 找大樹節(jié)點(diǎn)的內(nèi)部位圖序列的索引值,根據(jù)索引值進(jìn)一步查找內(nèi)部位圖序列。
8.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)該數(shù)據(jù)包的源地址和目的地址,分 別查找對(duì)應(yīng)的位圖,得到兩個(gè)匹配結(jié)果,根據(jù)這兩個(gè)匹配結(jié)果和該數(shù)據(jù)包的其它信息,得到 該數(shù)據(jù)包的報(bào)文分類規(guī)則包括提取當(dāng)前數(shù)據(jù)包的六元組,記錄原始規(guī)則集中的默認(rèn)規(guī)則;根據(jù)源地址和目的地址分 別查找對(duì)應(yīng)的位圖,得到兩個(gè)匹配結(jié)果,將得到的兩個(gè)匹配結(jié)果進(jìn)行“與”運(yùn)算,之后將相與 所得的匹配規(guī)則進(jìn)行優(yōu)先級(jí)從高到低的排序,與所述六元組的其它信息進(jìn)行匹配,將匹配 到的最高優(yōu)先級(jí)作為該數(shù)據(jù)包的報(bào)文分類規(guī)則;如果沒有查找到匹配的優(yōu)先級(jí),則將默認(rèn) 規(guī)則作為該數(shù)據(jù)包的報(bào)文分類規(guī)則。
9.一種報(bào)文分類系統(tǒng),其特征在于,包括二叉樹建立模塊,用于以原始規(guī)則集中各報(bào)文分類規(guī)則的源地址和目的地址分別建立 二叉樹;存儲(chǔ)模塊,用于使用位圖分別存儲(chǔ)所述二叉樹;查找模塊,對(duì)待分類的數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包的源地址和目的地址,分別查找對(duì)應(yīng)的位 圖,得到匹配結(jié)果,根據(jù)匹配結(jié)果和該數(shù)據(jù)包的其它信息,得到該數(shù)據(jù)包的報(bào)文分類規(guī)則。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述存儲(chǔ)模塊包括步長(zhǎng)設(shè)置單元,用于設(shè)置搜索步長(zhǎng)N,N為正整數(shù);轉(zhuǎn)換單元,用于從所述二叉樹的根節(jié)點(diǎn)開始,將所述二叉樹劃分為若干級(jí)大樹節(jié)點(diǎn),其 中,每個(gè)大樹節(jié)點(diǎn)包括所述二叉樹的N層,該N層中,下一層的節(jié)點(diǎn)為上一層的節(jié)點(diǎn)的子節(jié) 點(diǎn),且每個(gè)大樹節(jié)點(diǎn)的第一層包含1個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)稱為該大樹節(jié)點(diǎn)的根節(jié)點(diǎn),下一級(jí)大樹 節(jié)點(diǎn)的根節(jié)點(diǎn)為上一級(jí)大樹節(jié)點(diǎn)包含的最后一層節(jié)點(diǎn)的子節(jié)點(diǎn);位圖序列建立單元,用于為每個(gè)大樹節(jié)點(diǎn)建立內(nèi)部位圖序列和外部位圖序列,所述內(nèi) 部位圖序列用于指示所述大樹節(jié)點(diǎn)包括的各節(jié)點(diǎn)的位置和該節(jié)點(diǎn)是否為實(shí)節(jié)點(diǎn),其中,實(shí) 節(jié)點(diǎn)中包含優(yōu)先級(jí)信息;所述外部位圖序列用于指示所述大樹節(jié)點(diǎn)下是否存在下一級(jí)大樹 節(jié)點(diǎn)及下一級(jí)大樹節(jié)點(diǎn)與當(dāng)前大樹節(jié)點(diǎn)的位置信息。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述位圖序列建立單元包括內(nèi)部位圖序列建立子單元和外部位圖序列建立子單元,其中所述內(nèi)部位圖序列建立子單元,用于按如下方式建立2~N-1位的內(nèi)部位圖序列對(duì)每 個(gè)大樹節(jié)點(diǎn),從該大樹節(jié)點(diǎn)的第一層開始,每層從左到右遍歷該大樹節(jié)點(diǎn)包括的每一個(gè)節(jié) 點(diǎn),對(duì)每個(gè)節(jié)點(diǎn),使用一個(gè)比特表示該節(jié)點(diǎn)是否為實(shí)節(jié)點(diǎn),得到該大樹節(jié)點(diǎn)的內(nèi)部位圖序 列;所述外部位圖序列建立子單元,用于按如下方式建立2~N位的外部位圖序列對(duì)大樹 節(jié)點(diǎn)最后一層各節(jié)點(diǎn)對(duì)應(yīng)的子節(jié)點(diǎn),從左到右遍歷,對(duì)每個(gè)子節(jié)點(diǎn),使用一個(gè)比特表示是否存在以該子節(jié)點(diǎn)作為根節(jié)點(diǎn)的大樹節(jié)點(diǎn),得到該大樹節(jié)點(diǎn)的外部位圖序列。
12.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,所述位圖序列建立單元還包括壓縮 子單元,所述壓縮子單元,用于所述對(duì)每個(gè)大樹節(jié)點(diǎn)的內(nèi)部位圖序列進(jìn)行壓縮,設(shè)置索引長(zhǎng)度 M1,所述內(nèi)部位圖序列每Ml位對(duì)應(yīng)一索引值,指示該Ml位對(duì)應(yīng)的節(jié)點(diǎn)中是否存在實(shí)節(jié)點(diǎn); 和/或,對(duì)所述外部位圖序列進(jìn)行壓縮,設(shè)置索引長(zhǎng)度M2,所述外部位圖序列每M2位對(duì)應(yīng)一 索引值,指示是否存在以該M2位對(duì)應(yīng)的子節(jié)點(diǎn)為根節(jié)點(diǎn)的大樹節(jié)點(diǎn)。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述查找模塊包括分割單元和查找單元,其中所述分割單元,用于將所述數(shù)據(jù)包的源地址或目的地址按所述搜索步長(zhǎng)N進(jìn)行分割, 得到若干段地址,最后一段地址不足N位時(shí),補(bǔ)0 ;所述查找單元,提取初始N位地址,查找第一級(jí)大樹節(jié)點(diǎn),得到匹配的報(bào)文分類規(guī)則 集,其中,第一級(jí)大樹節(jié)點(diǎn)其第一層節(jié)點(diǎn)為二叉樹的根節(jié)點(diǎn);判斷該N位地址是否存在對(duì)應(yīng) 的下一級(jí)大樹節(jié)點(diǎn),如果不存在,查找結(jié)束,得到匹配結(jié)果;如果存在,提取后續(xù)N位地址, 查找對(duì)應(yīng)的下一級(jí)大樹節(jié)點(diǎn),重復(fù)執(zhí)行直到不存在對(duì)應(yīng)的下一級(jí)大樹節(jié)點(diǎn),得到匹配結(jié)果。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,其中,所述查找單元根據(jù)N位地址查找大 樹節(jié)點(diǎn)時(shí),首先查找大樹節(jié)點(diǎn)的內(nèi)部位圖序列的索引值,根據(jù)索引值進(jìn)一步查找內(nèi)部位圖 序列。
全文摘要
本發(fā)明提供了一種報(bào)文分類方法,包括以原始規(guī)則集中各報(bào)文分類規(guī)則的源地址和目的地址分別建立二叉樹;使用位圖分別存儲(chǔ)所述二叉樹;對(duì)待分類的數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包的源地址和目的地址,分別查找對(duì)應(yīng)的位圖,得到兩個(gè)匹配結(jié)果,根據(jù)這兩個(gè)匹配結(jié)果和該數(shù)據(jù)包的其它信息,得到該數(shù)據(jù)包的報(bào)文分類規(guī)則。本發(fā)明還提供了一種報(bào)文分類系統(tǒng)。本發(fā)明可以減少內(nèi)存占用,提高搜索速度。
文檔編號(hào)G06F17/30GK102148746SQ201010121140
公開日2011年8月10日 申請(qǐng)日期2010年2月5日 優(yōu)先權(quán)日2010年2月5日
發(fā)明者孫瓊, 琚凱, 陳宇, 黃小紅 申請(qǐng)人:中興通訊股份有限公司