• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于樹狀自動機的域名匹配方法組成比例

    技術編號:13492078 閱讀:90 留言:0更新日期:2016-08-07 04:00
    本發明專利技術涉及一種基于樹狀自動機的域名匹配方法。該方法將待匹配域名以及模式子串的每一個分段填充至n字節的整數倍,其中n=L/8,L為計算機系統的最小運算位寬;然后將模式子串以n字節為單元,構建樹狀自動機;然后將待匹配域名從根節點開始,順序執行樹狀自動機直至完成域名匹配。本發明專利技術在進行匹配運算時以n字節為匹配單元,匹配運算效率遠高于現有的字符串匹配方法,樹狀自動機采用hash值作為表項存儲地址,能夠減少表項所占用的存儲空間,并將hash沖突域限定在本級節點內。本發明專利技術適用于域名的固定前綴匹配,或固定后綴匹配,以及其他具備相同的分層特性字符串的匹配運算。

    【技術實現步驟摘要】
    一種基于樹狀自動機的域名匹配方法
    本專利技術屬于信息技術、域名
    ,具體涉及一種基于樹狀自動機的域名匹配方法。
    技術介紹
    隨著互聯網技術的飛速發展,域名的訪問流量也快速增加,隨即要求后臺服務器具備更高的解析能力與安全防護能力。后臺服務器在進行域名服務時,需要對域名進行匹配,如何實現域名的快速匹配便是其中的關鍵問題。現有的匹配方法多為字符串匹配:待匹配域名視為字符串T,并且有n個模式子串P1、P2、…、Pn,在T中尋找是否存在任意一個模式字串。該類算法常見的實現方式為:先將n個模式字串經過運算生成樹狀結構體,字符串T只需沿著樹狀結構體的根節點往下進行順序匹配即可,無需遍歷n個模式字串。現有算法進行的是逐字節匹配,而現代計算機系統的CPU運算位寬已普遍達到64位,因此現有的域名匹配方法效率低下。
    技術實現思路
    本專利技術目的在于針對上述問題,提供一種更高效的基于樹狀自動機的域名匹配方法。本專利技術采用的技術方案如下:一種基于樹狀自動機的域名匹配方法,其步驟包括:1)將待匹配域名以及模式子串的每一個分段填充至n字節的整數倍,其中n=L/8,L為計算機系統的最小運算位寬;2)將模式子串以n字節為單元,構建樹狀自動機;3)將待匹配域名從根節點開始,順序執行樹狀自動機直至完成域名匹配。進一步地,步驟1)中若某個分段已經是n字節的整數倍,則該分段無需填充。進一步地,步驟2)所述樹狀自動機由節點表項和出邊表項組成;節點表項存儲節點內的出邊數量,節點采用的hash算法初值,以及下一個節點的基地址;出邊表項的存儲地址由出邊的hash值與節點的基地址相加得到。所述出邊表項包含匹配后的跳轉信息,以及該出邊是否為輸出邊的信息,當存在多條出邊hash沖突時,通過沖突指針構成hash鏈表。進一步地,步驟3)的具體匹配過程如下:a)初始化節點基地址為0,指向根節點;b)從節點基地址讀取表項,獲得節點內的出邊數量N,hash初值M,下一個節點的基地址;c)將輸入的字符串進行hash運算,hash初值為M,hash運算結果與N進行取余操做后,與節點基地址相加,得到出邊存儲地址;d)從出邊存儲地址讀取表項,比較輸入字符串與表項中的模式子串:若匹配且出邊為輸出邊,匹配過程完成,匹配成功;若匹配且不為輸出邊,節點基地址指向下一個節點,返回步驟b);若失配且出邊不存在hash沖突鏈,返回步驟a);若失配且出邊存在hash沖突鏈,出邊表項地址指向下一個沖突表項,重復執行步驟d)。與現有技術相比,本專利技術的有益效果如下:1)本專利技術方法將域名以及模式子串分段填充至n字節的整數倍,當進行匹配運算時以n字節為匹配單元,匹配運算效率遠高于現有的字符串匹配方法,采用64位計算位寬時是其8倍。2)樹狀自動機采用hash值作為表項存儲地址,1次計算即可獲取表項內容。每級節點的hash空間可變,減少表項所占用的存儲空間。3)樹狀自動機的節點之間通過基地址進行區分,不同節點間的出邊即使有相同的hash結果也互不影響,如此將hash沖突域限定在本級節點內。4)樹狀自動機的每級節點采用不同的hash初值,能夠進一步避免hash沖突,節約節點存儲空間。5)采用hash沖突鏈表的方式確保匹配的精確性。6)本專利技術適用于域名的固定前綴匹配,或固定后綴匹配,以及其他具備相同的分層特性字符串的匹配運算。附圖說明圖1是現有的域名字符串匹配算法的匹配過程示意圖。圖2是本專利技術基于樹狀自動機的域名字符串匹配過程示意圖。具體實施方式為使本專利技術的上述目的、特征和優點能夠更加明顯易懂,下面通過具體實施例和附圖,對本專利技術做進一步說明。域名是代表IP地址的字符串,由若干字段組成,每個字段(label)之間以“.”分隔,如www.sina.com。域名本身具有明顯的層級結構特征,域名匹配也是以label為單位進行分段匹配。針對域名匹配的分段特征,本專利技術將匹配過程分為以下步驟:1.將待匹配域名以及模式子串的每一個分段填充至n字節的整數倍,若本分段已經是n字節的整數倍,則無需填充,n取決于計算機系統的最小運算位寬L,計算公式為n=L/8,如最小運算位寬為32,則n等于4。2.將模式子串以n字節為單元,構建樹狀自動機,構建方法參照AC自動機(Aho-Corasickautomation)。該樹狀自動機具備以下特征:1)樹狀自動機由節點表項和出邊表項組成;2)節點表項存儲該節點內的出邊數量,該節點采用的hash算法初值,以及下一個節點的基地址。由于節點內的出邊數量總是2的冪次方,所以節點內可能會包括部分無效填充出邊,出邊表項的存儲地址由出邊的hash值與節點的基地址相加而得;3)出邊表項包含匹配后的跳轉信息,以及該出邊是否為輸出邊的信息,當存在多條出邊hash沖突時,通過沖突指針構成hash鏈表;4)根節點為表項特殊節點,存儲在固定位置;5)節點與出邊為邏輯劃分,物理上可以由同一表項同時擔任;6)表項具備以下元素,如表1所示:表1.樹狀自動機的表項3.待匹配域名從根節點開始,順序執行樹狀自動機直至完成匹配。本專利技術方法將域名以及模式子串的分段填充至n字節的整數倍,當進行匹配運算時以n字節為匹配單元,可顯著提高匹配效率。模式子串構建的樹狀自動機采用hash值作為表項存儲地址,每級節點的hash空間可變,減少表項所占用的存儲空間。將hash沖突域控制在節點內,每級節點的hash初值或hash算法可變,盡可能規避哈希沖突導致的匹配運算次數增加。下面提供一個具體實例。該實例以最小運算位寬32位,待匹配域名為www.sina.com,模式子串1為sina.com,模式子串2為sina.cn,模式子串3為m.sina,hash算法為CRC32為例。使用現有的字符串匹配算法需要8次運算,匹配過程如附圖1所示;使用本專利技術方法僅需要2次匹配運算,匹配過程如附圖2所示,具體實施方案如下:1.待匹配域名與模式子串按label填充到4字節整數倍,以-表示填充字符,如表2所示。表2.待匹配域名與模式子串的填充待匹配域名www_sinacom_模式子串1sinacom-模式子串2sinacn--模式子串3m---sina2.構建樹狀自動機,如圖2所示,根節點具備‘sina’與‘m---’2條出邊,根節點空間為2,hash結果只需取bit0即可,定義H[31:0]為32位數據,且H=hash(x),H(sina)[0]代表hash(sina)的結果取bit0。選取合適的hash初值使H(sina)[0]與H(m---)[0]分別為0和1,各出邊的映射情況如表3所示:表3.各出邊的映射情況所有邊表項細則如表4~表9所示:表4.出邊‘sina’的表項名稱:sina描述TYPE01:節點加出邊表項ID0HASH_SIZE1NXT_NODE下一個節點表項基地址:2HASH_SEL節點Hash算法的初始值:0HASH_ENDHash沖突標志:0HASH_PTR無效填充值PATTERNsinaTREE_END0表5.出邊‘m---’的表項名稱:m---描述TYPE10:出邊表項ID0HASH_SIZE1NXT_NODE下一個節點表項基地址:2HASH_SEL節點Hash算法的初始值:0HASH_ENDHash沖突標志:0HASH_PTR無效填充值PAT本文檔來自技高網...

    【技術保護點】
    一種基于樹狀自動機的域名匹配方法,其步驟包括:1)將待匹配域名以及模式子串的每一個分段填充至n字節的整數倍,其中n=L/8,L為計算機系統的最小運算位寬;2)將模式子串以n字節為單元,構建樹狀自動機;3)將待匹配域名從根節點開始,順序執行樹狀自動機直至完成域名匹配。

    【技術特征摘要】
    1.一種基于樹狀自動機的域名匹配方法,其步驟包括:1)將待匹配域名的每一個分段以及模式子串的每一個分段填充至n字節的整數倍,其中n=L/8,L為計算機系統的最小運算位寬;2)將模式子串以n字節為單元,構建樹狀自動機;3)將待匹配域名從根節點開始,順序執行樹狀自動機直至完成域名匹配;具體匹配過程如下:a)初始化節點基地址為0,指向根節點;b)從節點基地址讀取表項,獲得節點內的出邊數量N,hash初值M,下一個節點的基地址;c)將輸入的待匹配域名的字符串進行hash運算,hash初值為M,hash運算結果與N進行取余操做后,與節點基地址相加,得到出邊存儲地址;d)從出邊存儲地址讀取表項,比較輸入字符串與表項中的模式子串:若匹配且出邊為輸出邊,匹配過程完成,匹配成功;若匹配且不為輸出邊,節點基地址指向下一個節點,返回步驟b);若失配且出邊不存在hash沖突鏈,返回步驟a);若失配且出邊存在hash沖突鏈,出邊表項地址指向下一個沖突表項,重復執行步驟d)。2.如...

    【專利技術屬性】
    技術研發人員:李曉東李洪濤孫云剛羅瑤武麗帥
    申請(專利權)人:中國互聯網絡信息中心
    類型:發明
    國別省市:北京;11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产AV一区二区三区无码野战| 亚洲精品午夜无码电影网| 日日摸夜夜爽无码毛片精选| 国产在线无码精品无码| 国产成人亚洲综合无码精品| 亚洲国产精品无码久久久秋霞1| 国产精品热久久无码av| 亚洲av片不卡无码久久| 亚洲精品无码乱码成人| 激情无码人妻又粗又大| 99精品人妻无码专区在线视频区 | 中文字幕乱码人妻无码久久| 91精品久久久久久无码| 亚洲国产精品无码专区| 成人无码一区二区三区| 亚洲av成人中文无码专区| 亚洲AV无码国产精品色| 日韩AV无码精品人妻系列| 国产精品亚韩精品无码a在线| 成在人线AV无码免费| 在线观看成人无码中文av天堂| 无码午夜成人1000部免费视频 | 免费无码专区毛片高潮喷水| 亚洲日韩乱码中文无码蜜桃| 色欲A∨无码蜜臀AV免费播 | 亚洲AV无码成人网站在线观看| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻系列av无码一区二区 | 亚洲中文字幕无码一区二区三区| 激情射精爆插热吻无码视频| 亚洲中文无码亚洲人成影院| 中文字幕乱偷无码av先锋蜜桃| 亚洲国产成人精品无码一区二区 | 久久精品无码专区免费| 国产av无码久久精品| 免费无码一区二区三区蜜桃大 | 亚洲AV无码XXX麻豆艾秋| 无码不卡av东京热毛片| 亚洲av无码成人影院一区| 无码一区二区三区亚洲人妻| 亚洲综合最新无码专区| 国产精品无码免费专区午夜|