两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種IPv6多域分類處理方法

文檔序號(hào):7612260閱讀:241來(lái)源:國(guó)知局
專利名稱:一種IPv6多域分類處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)分類處理領(lǐng)域,特別是涉及數(shù)據(jù)通信領(lǐng)域用于實(shí)現(xiàn)服務(wù)質(zhì)量控制的一種分類處理方法。
背景技術(shù)
分類處理技術(shù)廣泛地應(yīng)用在防火墻、基于策略的路由、VPN(Virtual PrivateNetwork,虛擬專用網(wǎng)絡(luò))和QoS(Quality of Service,服務(wù)質(zhì)量)控制中。通常,分類處理規(guī)則包含數(shù)據(jù)報(bào)文頭的五個(gè)域內(nèi)容源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)和協(xié)議類型。
隨著網(wǎng)絡(luò)向高速化和業(yè)務(wù)多樣化發(fā)展,特別是IPv6(Internet Protocol Version6,IPv6)網(wǎng)絡(luò)的逐漸商用,分類處理方法需要支持IPv6。公開(kāi)文獻(xiàn)(Design ofMulti-field IPv6 Packet Classifiers Using Ternary CAMs,IEEE 2001)給出了一種采用CAM(Content Addressable Memories,內(nèi)容關(guān)聯(lián)存儲(chǔ)器)結(jié)構(gòu)實(shí)現(xiàn)IPv6多域分類的方法。在該方法中,設(shè)計(jì)了一個(gè)基于CLM(CAM-Like Memory)結(jié)構(gòu)的硬件分類結(jié)構(gòu),可以同時(shí)發(fā)起對(duì)五個(gè)規(guī)則域的匹配查找;同時(shí)該文還提出了一種對(duì)IPv6數(shù)據(jù)報(bào)文協(xié)議字段和端口字段的壓縮方法。但是這種用硬件實(shí)現(xiàn)分類的方法存在以下弊端(1)、缺乏靈活性,無(wú)法實(shí)現(xiàn)規(guī)則域的隨意擴(kuò)充。分類規(guī)則變化時(shí),需要對(duì)原來(lái)的硬件進(jìn)行重新開(kāi)發(fā)。而對(duì)于實(shí)現(xiàn)QoS控制的分類來(lái)說(shuō),往往要求分類規(guī)則是靈活多變的,以方便ISP(Internet ServiceProvider,因特網(wǎng)服務(wù)提供商)根據(jù)網(wǎng)絡(luò)上具體的應(yīng)用進(jìn)行配置。(2)、隨著網(wǎng)絡(luò)容量的擴(kuò)大,需要對(duì)多種類型的業(yè)務(wù)流進(jìn)行分類處理,分類處理規(guī)則數(shù)目將不斷增多也日趨復(fù)雜,這將導(dǎo)致存儲(chǔ)單元容量的急劇擴(kuò)大。更高容量的存儲(chǔ)單元不僅增加了CAM制造商的技術(shù)實(shí)現(xiàn)難度,而且面對(duì)成本作為產(chǎn)品占有市場(chǎng)的一個(gè)不可輕視的因素時(shí),產(chǎn)品制造商需要在成本和功能之間尋找平衡。同時(shí),硬件實(shí)現(xiàn)的分類裝置,規(guī)則條目往往是固化在存儲(chǔ)單元中,因此當(dāng)需要添加新的規(guī)則條目時(shí),就得面臨重新設(shè)計(jì)硬件的尷尬。(3)、需要產(chǎn)品制造商本身具有ASIC(Application Specific Integrated Circuit,專用集成電路)研發(fā)的實(shí)力和基礎(chǔ)。
對(duì)于支持多域分類處理的軟件方式有以下三種(1)、使用線性表為數(shù)據(jù)結(jié)構(gòu),遞歸匹配規(guī)則的RFC(Recursive Flow Classification,遞歸流程分類)算法。(2)、使用哈希(hash)表結(jié)構(gòu)的元組空間查找(Tuple Space Search)算法。(3)、基于trie表的多維查找。特別地,對(duì)于源和目的IP地址的二維查找,Grid-of-tries結(jié)構(gòu)較為多用。通過(guò)在每個(gè)節(jié)點(diǎn)處設(shè)置jump-switch(跳轉(zhuǎn)指針)克服trie查找中引入的back-tracking(回溯查找)問(wèn)題。上述方法都是針對(duì)IPv4(Internet ProtocolVersion 4,互聯(lián)網(wǎng)協(xié)議第4版)報(bào)文的分類處理方法,如果直接用于IPv6,則會(huì)由于IPv6長(zhǎng)達(dá)128比特的地址長(zhǎng)度,使得內(nèi)存耗費(fèi)增加(內(nèi)存的耗費(fèi)不僅指容納規(guī)則庫(kù)所占用的空間還包括建立各種數(shù)據(jù)結(jié)構(gòu)所消耗的內(nèi)存)。耗用內(nèi)存空間越大,規(guī)則更新時(shí)的時(shí)間復(fù)雜度就越大,同時(shí)也將影響表的搜索時(shí)間。因此在分類方法關(guān)注的兩個(gè)相互制約因素時(shí)間效率和空間效率之間,如何提高空間效率是較為關(guān)鍵的因素。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種用于IPv6多域分類處理方法,用以解決傳統(tǒng)軟件方法實(shí)現(xiàn)IPv6多域分類方法帶來(lái)的內(nèi)存空間耗費(fèi)較大和影響搜索時(shí)間的問(wèn)題,進(jìn)而提高在應(yīng)用時(shí)的空間效率。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種IPv6多域分類處理方法,其特點(diǎn)在于,對(duì)IPv6規(guī)則域進(jìn)行壓縮和歸并;根據(jù)IPv6地址編址的可類聚和分層的特點(diǎn),分段查找IPv6地址,將前16比特的IPv6地址域的內(nèi)容和其他規(guī)則域的內(nèi)容一起參與查找,獨(dú)立出host id域;采用一三級(jí)表結(jié)構(gòu)中的基本哈希表和擴(kuò)展哈希表分開(kāi)存放規(guī)則表,實(shí)現(xiàn)IPv6多域分類處理;其中,所述三級(jí)表結(jié)構(gòu),其第一級(jí)為基本哈希表,每一個(gè)哈希表?xiàng)l目是一二維的Grid-of-tries結(jié)構(gòu),構(gòu)成其第二級(jí)表,其第三級(jí)表為兩張相對(duì)獨(dú)立的擴(kuò)展哈希表。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,該方法具體包括如下步驟步驟一,對(duì)五域規(guī)則中的協(xié)議類型、源端口號(hào)、目的端口號(hào)進(jìn)行壓縮,并分別抽取源和目的IPv6地址的前16比特進(jìn)行五域的一次精確匹配基本哈希表查找;
步驟二,當(dāng)?shù)刂芬?guī)則中前綴長(zhǎng)度大于16比特時(shí),發(fā)起對(duì)源和目的IPv6地址的111:64位的最長(zhǎng)96(48+48)比特的二維Grid of Tries(網(wǎng)格trie結(jié)構(gòu))的查找;步驟三,當(dāng)?shù)刂芬?guī)則為全長(zhǎng)匹配時(shí),發(fā)起對(duì)IPv6源和目的地址的末64比特host-id進(jìn)行相對(duì)獨(dú)立的擴(kuò)展哈希表查找;及步驟四,獲得動(dòng)作結(jié)果,結(jié)束查找。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,所述步驟一進(jìn)一步包括步驟1、對(duì)端口域和協(xié)議域進(jìn)行壓縮;步驟2、抽取IPv6源和目的地址的前16比特,進(jìn)行合并,參與基本哈希表精確匹配;步驟3、規(guī)則的歸并,組成哈希表精確匹配的查找關(guān)鍵字;及步驟4、發(fā)起基本哈希表查找。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,所述步驟二中,在基本哈希表?xiàng)l目中增加表征需要進(jìn)行后續(xù)查找的標(biāo)志位和查找指針,用以在前16比特和中間的48比特之間建立聯(lián)系。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,所述步驟三中,在Grid_of_Tries(網(wǎng)格trie結(jié)構(gòu))的最后一級(jí)葉子節(jié)點(diǎn)設(shè)置擴(kuò)展哈希表查找的標(biāo)志位,并對(duì)不需要該步查找的數(shù)據(jù)包設(shè)置返回基本哈希表查找的指針。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,所述步驟四中,當(dāng)只需要第一級(jí)基本哈希表查找時(shí),查找結(jié)果可以直接從基本哈希表的條目中獲得;當(dāng)需要進(jìn)行二級(jí)的Grid_of_Tries查找而不需要擴(kuò)展哈希查找時(shí),可以通過(guò)tries的指針,該指針指向基本哈希表的結(jié)果域;對(duì)于需要進(jìn)行擴(kuò)展查找時(shí),動(dòng)作結(jié)果可直接從擴(kuò)展哈希表?xiàng)l目中獲得。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,查找擴(kuò)展哈希表之前,將64比特的host-id還原為48比特的MAC地址,用以減少哈希表的內(nèi)存占用。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,在所述步驟一中添加規(guī)則域,對(duì)其進(jìn)行歸并,一起參與第一級(jí)的基本哈希表查找,用以擴(kuò)充域?qū)挕?br> 上述的IPv6多域分類處理方法,其特點(diǎn)在于,根據(jù)IPv6地址分層的特點(diǎn)及地址掩碼長(zhǎng)度一般為8的整數(shù)倍的特點(diǎn),只在每8比特后設(shè)置返回指針,用以減少對(duì)Grid-of-tries的jump-switch的指針個(gè)數(shù)。
上述的IPv6多域分類處理方法,其特點(diǎn)在于,對(duì)所述IPv6地址中間的48比特還可以再次進(jìn)行分段,可以分成32+16的形式,進(jìn)行兩級(jí)的Grid_of_Tries的查找。
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。


圖1為本發(fā)明中協(xié)議字段壓縮的編碼映射示意圖;圖2為IPv6全球單播地址的編址構(gòu)成示意圖;圖3為本發(fā)明中用于精確匹配的被分割和重組后的規(guī)則示意圖;及圖4為本發(fā)明中的表結(jié)構(gòu)圖。
具體實(shí)施例方式
圖1所示為本發(fā)明中協(xié)議字段壓縮的編碼映射表;圖2所示為IPv6全球單播地址的編址構(gòu)成;圖4所示為本發(fā)明中的表結(jié)構(gòu)圖及表?xiàng)l目定義。本發(fā)明的技術(shù)解決方案是針對(duì)IPv6分類面臨的問(wèn)題癥結(jié)所在,即多維數(shù)和IPv6規(guī)則條目長(zhǎng)度(五元組為296bit),對(duì)規(guī)則域進(jìn)行適當(dāng)?shù)膲嚎s和歸并。特別地,利用IPv6地址編址的可類聚和分層的特點(diǎn),將IPv6地址進(jìn)行分段查找。前16比特的IPv6地址域的內(nèi)容和其他三個(gè)規(guī)則域的內(nèi)容一起參與查找,而獨(dú)立出host id域;相應(yīng)的,采用一個(gè)三級(jí)表結(jié)構(gòu)第一級(jí)為基本哈希表(base-hash),每一個(gè)哈希表?xiàng)l目是一個(gè)二維的Grid-of-tries結(jié)構(gòu),從而構(gòu)成第二級(jí)表;第三級(jí)表相對(duì)獨(dú)立,是兩張擴(kuò)展哈希表(extended-hash)。利用兩種表結(jié)構(gòu)(hash哈希和trie)的有效結(jié)合,將規(guī)則表分開(kāi)存放,在降維的同時(shí),減小了由于地址長(zhǎng)度增大帶來(lái)的構(gòu)建表結(jié)構(gòu)的內(nèi)存空間占用和規(guī)則庫(kù)存儲(chǔ)空間占用,從而提高了查找速度。其中,查找過(guò)程分為以下幾個(gè)步驟步驟一,對(duì)五域規(guī)則中的協(xié)議類型、端口號(hào)(包括源和目的端口號(hào))進(jìn)行壓縮,并分別抽取源和目的IPv6地址的前16比特進(jìn)行五域的一次精確匹配base-hash查找。本步驟又包含如下操作(1)、對(duì)端口域和協(xié)議域進(jìn)行壓縮。特別考慮到對(duì)QoS控制中的分類應(yīng)用來(lái)說(shuō),感興趣的只是TCP(Transfer ControlProtocol,傳輸控制協(xié)議)和UDP(User Data Protocol,用戶數(shù)據(jù)協(xié)議),而并不關(guān)心管理控制等其他協(xié)議報(bào)文,所以規(guī)則中的協(xié)議字段只需要2個(gè)比特。壓縮的協(xié)議編碼參見(jiàn)圖1。對(duì)于端口域的壓縮,采用公開(kāi)文獻(xiàn)(Design of Multi-fieldIPv6 Packet Classifiers Using Ternary CAMs,IEEE 2001)中的思想,壓縮為4個(gè)比特。也可以根據(jù)QoS控制中普通數(shù)據(jù)業(yè)務(wù)、音頻業(yè)務(wù)和視頻業(yè)務(wù)的承載應(yīng)用進(jìn)行再次壓縮。(2)、抽取IPv6源和目的地址的前16比特,進(jìn)行合并,參與base-hash精確匹配。對(duì)于QoS控制,更多的關(guān)注于終端用戶,因此分類規(guī)則中的地址域不應(yīng)出現(xiàn)只是通配符*的情形,大多數(shù)為前綴匹配。同時(shí)對(duì)圖2的IPv6可集聚全球單播地址的地址編址分析來(lái)看,前綴長(zhǎng)度最短應(yīng)為16比特,即包含頂層ID(否則沒(méi)法標(biāo)識(shí)一個(gè)網(wǎng)絡(luò))。所以分別從源和目的IPv6地址取前16比特并進(jìn)行連接,組成長(zhǎng)度為32比特位串。(3)、規(guī)則的歸并,組成hash精確匹配的查找關(guān)鍵字。(4)、發(fā)起base-hash查找。
步驟二,只有當(dāng)?shù)刂芬?guī)則中前綴長(zhǎng)度(Prefix Length)大于16比特時(shí),需要發(fā)起對(duì)源和目的IPv6地址的111:64位的最長(zhǎng)96(48+48)可以比特的二維Grid_of_Tries的查找。由于對(duì)地址進(jìn)行了分割,所以需要在前16比特和中間的48比特之間建立聯(lián)系。因此需要在base-hash表?xiàng)l目中增加表征需要進(jìn)行后續(xù)查找的標(biāo)志位和查找指針。
步驟三,只有當(dāng)?shù)刂芬?guī)則為全長(zhǎng)匹配時(shí),需要發(fā)起對(duì)IPv6源和目的地址的末64比特host-id(主機(jī)號(hào))進(jìn)行相對(duì)獨(dú)立的extended-hash查找。在此,需要在Grid_of_Tries的最后一級(jí)葉子節(jié)點(diǎn)設(shè)置extended-hash查找的標(biāo)志位,同時(shí)對(duì)不需要該步查找的數(shù)據(jù)包設(shè)置返回base-hash查找表的指針。
步驟四,獲得動(dòng)作結(jié)果。當(dāng)只需要第一級(jí)base-hash查找時(shí),查找結(jié)果可以直接從base-hash表的條目中獲得;當(dāng)需要進(jìn)行二級(jí)的Grid_of_Tries查找而不需要extend-hash查找時(shí),可以通過(guò)trie的指針,該指針指向base-hash表的結(jié)果域;對(duì)于需要進(jìn)行extended-hash查找時(shí),動(dòng)作結(jié)構(gòu)可直接從extended-hash表?xiàng)l目中獲得,查找結(jié)束。
圖3所示為本發(fā)明中用于精確匹配的被分割和重組后的規(guī)則示意圖;如表1和表2所示為輸入原始數(shù)據(jù)和規(guī)則示意表。
表1原始規(guī)則列表舉例

表2輸入數(shù)據(jù)相關(guān)域提取后的原始數(shù)據(jù)

以上表中的規(guī)則表和原始的輸入數(shù)據(jù)為例,基于如下的假定,本發(fā)明的實(shí)施過(guò)程如下假定如下,①依托Intel網(wǎng)絡(luò)處理,利用網(wǎng)絡(luò)處理器上的硬件hash單元,發(fā)起hash索引值的計(jì)算②所有的表均存放在SRAM中,內(nèi)存訪問(wèn)長(zhǎng)度為32比特。
步驟一、當(dāng)網(wǎng)絡(luò)處理器接收到數(shù)據(jù)包時(shí),首先是從包頭中提取五個(gè)域的內(nèi)容,得到如下信息(TCP,80,80,3ffe:3600:0001:0002∷1,3ffe:3600:0002:0003∷1)。對(duì)各域的信息進(jìn)行壓縮和歸并。具體來(lái)說(shuō),①按照?qǐng)D1中的協(xié)議和端口的壓縮編碼規(guī)則,TCP對(duì)應(yīng)的編碼值為00,80的源端口和目的端口編碼均為001001。②源和目的IPv6地址的前16比特的連接。連接后的比特串為0x3ffe3ffe。③歸并。按圖3的格式對(duì)壓縮和重組后的五域內(nèi)容進(jìn)行歸并。壓縮歸并后的48比特串為0x02493ffe3ffe。
步驟二、將48比特串進(jìn)行精確base-hash匹配查找,由微碼發(fā)起對(duì)硬件哈希單元操作的請(qǐng)求,返回值為48比特的index,作為base-hash表的索引。假定index指向如表1、2所示的條目。該條目中的信息如表中所示。條目中的flow-id的最高位valid-bit(有效位)為0,表明該flow-id(流標(biāo)識(shí))并不是真正的查找結(jié)果(地址規(guī)則的掩碼長(zhǎng)度大于16比特),還需下一級(jí)Grid-of-Tries表的查找,此時(shí)flow-id將指向下一級(jí)表。
在這里可能會(huì)出現(xiàn)一個(gè)數(shù)據(jù)包匹配原始規(guī)則表中多個(gè)規(guī)則的情況。這就涉及到規(guī)則的優(yōu)先級(jí)問(wèn)題。我們?cè)O(shè)定規(guī)則的地址域存在從屬關(guān)系時(shí),總是掩碼長(zhǎng)度長(zhǎng)的規(guī)則優(yōu)先級(jí)高一些。這樣就產(chǎn)生了如何選擇最優(yōu)規(guī)則的問(wèn)題,該問(wèn)題的解決見(jiàn)步驟三。
步驟三、分別取IPv6目的地址和源地址的111:64位共96比特,組成二維數(shù)組(3600:0002:0003,3600:0001:0002)進(jìn)行Grid_of_tries查找。該表的構(gòu)建基于公開(kāi)文獻(xiàn)(Packet Classification for Core RoutersIs there an alternative to CAMs?,IEEE INFOCOM 2003)中已有方法,采用jump-switch克服trie查找中引入的back-tracking問(wèn)題。首先進(jìn)行dst-trie(目的地址trie)的匹配查找。對(duì)于本文所列出的規(guī)則庫(kù),dest-trie需要查完32比特,然后開(kāi)始src-trie(源地址trie)的查找。當(dāng)查到最長(zhǎng)的16比特后,在本次查找的葉子節(jié)點(diǎn)處獲得返回base-hash表的指針base-hash-index。
基于可能出現(xiàn)的哈希沖突考慮,在Grid-of-Tries的根節(jié)點(diǎn)處也添加返回base-hash的指針,從而防止步驟二中由于base-hash沖突引起的查找錯(cuò)誤。使得最長(zhǎng)匹配查找(規(guī)則的優(yōu)先級(jí)造成,本身是不需要的)及時(shí)結(jié)束而返回到上一級(jí)表中。
步驟四、由于base-hash-index的高二位均為0(該兩位分別表征是否還需要進(jìn)行源和目的地址末64比特的extended-hash查找),表明不需要進(jìn)行extended-hash表的查找。根據(jù)base-hash-index的值,返回base-hash表的action域。
步驟五、從索引所指的條目中獲得最終的查找結(jié)果flow id(流標(biāo)識(shí)),結(jié)束查找過(guò)程。網(wǎng)絡(luò)處理器獲取該查找結(jié)果,分類過(guò)程結(jié)束。
由于Intel網(wǎng)絡(luò)處理器支持對(duì)SRAM的連續(xù)訪問(wèn),在具體實(shí)現(xiàn)時(shí)還可以優(yōu)化查找過(guò)程。
以上過(guò)程僅為舉例,實(shí)際過(guò)程依規(guī)則庫(kù)和輸入數(shù)據(jù)包頭內(nèi)容決定。最差情況為源和目的地址均為全匹配的情況。在該種情況下,還需要發(fā)起對(duì)源和目的地址末64比特的獨(dú)立的extended-hash查找。為了進(jìn)一步減少hash表的內(nèi)存占用,可以在查表之前對(duì)64比特的host-id進(jìn)行還原。還原為48比特的MAC地址后再進(jìn)行extended-hash查找。
本發(fā)明還有以下幾點(diǎn)擴(kuò)充1、可實(shí)現(xiàn)域?qū)挼臄U(kuò)充。當(dāng)需要增加規(guī)則域時(shí)(比如DSCP(Differentiated Services CodePoint,差分業(yè)務(wù)代碼點(diǎn))域),只需在步驟一中添加該域,對(duì)其進(jìn)行歸并,一起參與第一級(jí)的base-hash查找即可。2、在具體實(shí)現(xiàn)過(guò)程中,hash表的查找等操作也可以直接通過(guò)軟件或其他變通方法實(shí)現(xiàn)。3、針對(duì)IPv6地址分層的特點(diǎn)及地址掩碼長(zhǎng)度一般為8的整數(shù)倍的特點(diǎn),可以減少對(duì)Grid-of-tries的jump-switch的指針個(gè)數(shù),只在每8比特后設(shè)置返回指針。4、對(duì)于IPv6地址中間的48比特還可以再次進(jìn)行分段,比如可以分成32+16的形式,進(jìn)行兩級(jí)的Grid_of_Tries的查找。
本發(fā)明提出的一種用軟件實(shí)現(xiàn)IPv6報(bào)文多域分類的方法能有效降低傳統(tǒng)軟件方法直接應(yīng)用到IPv6報(bào)文而引入的巨大的內(nèi)存空間耗費(fèi),從而提高了查表的速度。效果如下按照計(jì)算幾何的最好結(jié)果,以1000條的規(guī)則數(shù)目來(lái)說(shuō),按公式LogN的時(shí)間和o(Nk)的空間(其中N為規(guī)則的條數(shù),k為維數(shù)即包頭中參與分類的域數(shù))計(jì)算,當(dāng)k=5,需要的空間為10005=1000TB。而本發(fā)明在地址前綴長(zhǎng)度小于16比特的情況下只需要(1000×64)bit=8KB的空間。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種IPv6多域分類處理方法,其特征在于,對(duì)IPv6規(guī)則域進(jìn)行壓縮和歸并;根據(jù)IPv6地址編址的可類聚和分層的特點(diǎn),分段查找IPv6地址,將前16比特的IPv6地址域的內(nèi)容和其他規(guī)則域的內(nèi)容一起參與查找,獨(dú)立出主機(jī)號(hào)域;采用一三級(jí)表結(jié)構(gòu)中的基本哈希表和擴(kuò)展哈希表分開(kāi)存放規(guī)則表,實(shí)現(xiàn)IPv6多域分類處理;其中,所述三級(jí)表結(jié)構(gòu),其第一級(jí)為基本哈希表,每一個(gè)哈希表?xiàng)l目是一二維的Grid-of-tries結(jié)構(gòu),構(gòu)成其第二級(jí)表,其第三級(jí)表為兩張相對(duì)獨(dú)立的擴(kuò)展哈希表。
2.根據(jù)權(quán)利要求1所述的IPv6多域分類處理方法,其特征在于,該方法具體包括如下步驟步驟一,對(duì)五域規(guī)則中的協(xié)議類型、源端口號(hào)、目的端口號(hào)進(jìn)行壓縮,并分別抽取源和目的IPv6地址的前16比特進(jìn)行五域的一次精確匹配基本哈希表查找;步驟二,當(dāng)?shù)刂芬?guī)則中前綴長(zhǎng)度大于16比特時(shí),發(fā)起對(duì)源和目的IPv6地址的11164位的最長(zhǎng)96(48+48)比特的二維Grid_of_Tries的查找;步驟三,當(dāng)?shù)刂芬?guī)則為全長(zhǎng)匹配時(shí),發(fā)起對(duì)IPv6源和目的地址的末64比特host-id進(jìn)行相對(duì)獨(dú)立的擴(kuò)展哈希表查找;及步驟四,獲得動(dòng)作結(jié)果,結(jié)束查找。
3.根據(jù)權(quán)利要求2所述的IPv6多域分類處理方法,其特征在于,所述步驟一進(jìn)一步包括步驟1、對(duì)端口域和協(xié)議域進(jìn)行壓縮;步驟2、抽取IPv6源和目的地址的前16比特,進(jìn)行合并,參與基本哈希表精確匹配;步驟3、規(guī)則的歸并,組成哈希表精確匹配的查找關(guān)鍵字;及步驟4、發(fā)起基本哈希表查找。
4.根據(jù)權(quán)利要求2所述的IPv6多域分類處理方法,其特征在于,所述步驟二中,在基本哈希表?xiàng)l目中增加表征需要進(jìn)行后續(xù)查找的標(biāo)志位和查找指針,用以在前16比特和中間的48比特之間建立聯(lián)系。
5.根據(jù)權(quán)利要求2所述的IPv6多域分類處理方法,其特征在于,所述步驟三中,在Grid_of_Tries的最后一級(jí)葉子節(jié)點(diǎn)設(shè)置擴(kuò)展哈希表查找的標(biāo)志位,并對(duì)不需要該步查找的數(shù)據(jù)包設(shè)置返回基本哈希表查找的指針。
6.根據(jù)權(quán)利要求2所述的IPv6多域分類處理方法,其特征在于,所述步驟四中,當(dāng)只需要第一級(jí)基本哈希表查找時(shí),查找結(jié)果可以直接從基本哈希表的條目中獲得;當(dāng)需要進(jìn)行二級(jí)的Grid_of_Tries查找而不需要擴(kuò)展哈希查找時(shí),可以通過(guò)tries的指針,該指針指向基本哈希表的結(jié)果域;對(duì)于需要進(jìn)行擴(kuò)展查找時(shí),動(dòng)作結(jié)果可直接從擴(kuò)展哈希表?xiàng)l目中獲得。
7.根據(jù)權(quán)利要求2所述的IPv6多域分類處理方法,其特征在于,查找擴(kuò)展哈希表之前,將64比特的host-id還原為48比特的MAC地址,用以減少哈希表的內(nèi)存占用。
8.根據(jù)權(quán)利要求2或3所述的IPv6多域分類處理方法,其特征在于,在所述步驟一中添加規(guī)則域,對(duì)其進(jìn)行歸并,一起參與第一級(jí)的基本哈希表查找,用以擴(kuò)充域?qū)挕?br> 9.根據(jù)權(quán)利要求1所述的IPv6多域分類處理方法,其特征在于,根據(jù)IPv6地址分層的特點(diǎn)及地址掩碼長(zhǎng)度一般為8的整數(shù)倍的特點(diǎn),只在每8比特后設(shè)置返回指針,用以減少對(duì)Grid-of-tries的jump-switch的指針個(gè)數(shù)。
10.根據(jù)權(quán)利要求4所述的IPv6多域分類處理方法,其特征在于,對(duì)所述IPv6地址中間的48比特還可以再次進(jìn)行分段,可以分成32+16的形式,進(jìn)行兩級(jí)的Grid_of_Tries的查找。
全文摘要
本發(fā)明公開(kāi)了一種IPv6多域分類方法,用以有效降低傳統(tǒng)軟件方法實(shí)現(xiàn)IPv6多域分類方法帶來(lái)的內(nèi)存空間耗費(fèi),其特征在于,該方法是對(duì)規(guī)則域進(jìn)行適當(dāng)?shù)膲嚎s和歸并,利用IPv6地址編址的可類聚和分層的特點(diǎn),對(duì)IPv6地址進(jìn)行分段查找。
文檔編號(hào)H04L29/06GK1805435SQ20051001116
公開(kāi)日2006年7月19日 申請(qǐng)日期2005年1月13日 優(yōu)先權(quán)日2005年1月13日
發(fā)明者劉麗娜, 甘振錦, 李華驛, 熊韜 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
松原市| 曲阳县| 梁平县| 嘉兴市| 仁寿县| 英超| 临西县| 全南县| 荆州市| 平塘县| 绵竹市| 达尔| 施秉县| 宝兴县| 阿图什市| 开鲁县| 辽阳县| 宁强县| 凤庆县| 石首市| 横山县| 北安市| 罗定市| 鄱阳县| 抚松县| 雅江县| 珠海市| 彰武县| 和田县| 乐亭县| 祁门县| 清苑县| 雅安市| 宁国市| 麻城市| 肇州县| 胶南市| 横峰县| 威海市| 金阳县| 恩平市|