基于倒排列表的網(wǎng)流索引檢索與壓縮的方法
【專利摘要】本發(fā)明公開了計算機(jī)網(wǎng)絡(luò)和大數(shù)據(jù)分析交叉領(lǐng)域的一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,用以解決目前網(wǎng)流索引檢索與壓縮的研究中存在的問題。該方法具體步驟為:首先,把IP偏移量地址建立成索引,具體包括,先把數(shù)字轉(zhuǎn)換成詞典,再將IP偏移詞典建立為倒排索引;其次,對倒排列表中的數(shù)據(jù)進(jìn)行壓縮,壓縮算法包括simple9算法壓縮,carryover-12算法壓縮,pfordelta算法壓縮;再次,解壓和尋回,具體包括先根據(jù)壓縮算法的不同選擇相應(yīng)的解碼器,將壓縮單位進(jìn)行解碼,再將解壓數(shù)字轉(zhuǎn)換成特定的數(shù)據(jù)結(jié)構(gòu),如倒排索引和詞典;最后,根據(jù)倒排索引獲得每個流量包的信息。本發(fā)明的有益效果在于有效實現(xiàn)高效的索引技術(shù),以及索引壓縮技術(shù),能夠有效檢索海量網(wǎng)絡(luò)流量數(shù)據(jù)。
【專利說明】基于倒排列表的網(wǎng)流索弓I檢索與壓縮的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)和大數(shù)據(jù)分析交叉領(lǐng)域,特別涉及一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法。
【背景技術(shù)】
[0002]I網(wǎng)絡(luò)流量
[0003]計算機(jī)網(wǎng)絡(luò)之間在傳遞信息時,單個信息被劃分為多個數(shù)據(jù)塊,并以其作為傳輸單位進(jìn)行發(fā)送,每個小塊可能會沿著不同的路徑在一個或多個網(wǎng)絡(luò)中傳輸,并在目的地實施重組,這些小塊就是“網(wǎng)包”。傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(Transmission ControlProtocol/InternetProtocol, TCP/IP)協(xié)議簇中將網(wǎng)絡(luò)的網(wǎng)包因其包含信息不同,可以分為因特網(wǎng)協(xié)議(Internet Protocol, IP)網(wǎng)包、傳輸層傳輸控制協(xié)議/用戶數(shù)據(jù)報協(xié)議(Transmission Control Protocol/User DatagramProtocol, TCP/UDP)網(wǎng)包和應(yīng)用層網(wǎng)包。
[0004]IP包的結(jié)構(gòu)由如下字段組成:版本(4位)、首部長度(4位)、分區(qū)服務(wù)(8位)、總長度(16位)、標(biāo)識(16位)、標(biāo)志(3位)、片偏移(13位)、生存時間(8位)、協(xié)議(8位)、首部檢驗和(16位)、源地址(32位)、目的地址(32位)。
[0005]TCP包的機(jī)構(gòu)由如下字段組成:源端口(16位)、目的端口(16位)、序號(32位)、確認(rèn)號(32位)、數(shù)據(jù)偏移(4位)、保留出位)、緊急比特位URG、確認(rèn)比特位ACK、復(fù)位比特位RST、同步比特位SYN、終止比特位FIN、窗口(16位)、檢驗和(16位)、緊急指針(16位)、選項字段、填充字段。
[0006]隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全問題日益凸顯,由于其開放性,計算機(jī)網(wǎng)絡(luò)要遭受大量可知或未知的攻擊。在這種背景下出現(xiàn)很多網(wǎng)絡(luò)安全防范技術(shù),例如入侵檢測系統(tǒng)、特征碼檢測、安全掃描技術(shù)等,但是很多攻擊是無法進(jìn)行及時檢測和預(yù)防的,需要通過對網(wǎng)包的捕獲來實現(xiàn)對網(wǎng)絡(luò)流量信息的收集,便于以后的分析和使用。
[0007]網(wǎng)絡(luò)流量獲取的格式主要有以下二種。
[0008](I)網(wǎng)包級(Packet-level)的流量數(shù)據(jù):主要關(guān)注所有網(wǎng)包(packet)的協(xié)議頭和載荷(payload)。其中PacketHeader包含截獲的IP包的描述信息,如時間戳,大小。而PacketPayload則是完整IP包的內(nèi)容。
[0009]⑵Flow-level的流級流量數(shù)據(jù):主要關(guān)注流(flow)的特征及其到達(dá)過程,可以為一個TCP連接或者一個UDP流。其中,流通常指一個由源IP地址、源端口、目的IP地址、目的端口、應(yīng)用協(xié)議等組成的多元組。
[0010]圖1給出了一個流記錄格式的描述,其中還包括源自治域(Autonomous System,AS)域號,目的AS域號,起止時間,該流包含的網(wǎng)包數(shù)目。比較著名的是CISCO公司開發(fā)出了 Netflow V5版本流記錄格式。NetFlow根據(jù)IP數(shù)據(jù)包的7個域,即源IP地址、目的IP地址、源通信端口號、目標(biāo)通信端口號、第三層協(xié)議類型、TOS字節(jié)(DSCP)、網(wǎng)絡(luò)設(shè)備輸入(或輸出)的邏輯網(wǎng)絡(luò)端口(iflndex),來判斷是否屬于某一個流。
[0011]其中CISCO公司的NetFlow V9還被IETF組織從5個候選方案中確定為IP FlowInformation Export (IPFIX)標(biāo)準(zhǔn)。
[0012]流量的數(shù)據(jù)一般特點是數(shù)量巨大,檢索困難。以IOGbps鏈路為例,如果按每個網(wǎng)包64字節(jié)計算,每秒將達(dá)1400萬網(wǎng)包,產(chǎn)生的索引量巨大,檢索查找速度慢。
[0013]網(wǎng)包的索引信息具有以下一些特點:海量、數(shù)據(jù)結(jié)構(gòu)固定、只增不改、重復(fù)性較高。海量是指網(wǎng)包索引信息條數(shù)眾多,一天可以產(chǎn)生幾百萬條甚至上億條索引信息。數(shù)據(jù)結(jié)構(gòu)固定是指每一條網(wǎng)包的索引信息都有固定的格式和固定的長短。只增不改是指網(wǎng)包的索引信息只會不斷增加,一旦產(chǎn)生,以后不可能也不需要在進(jìn)行修改。重復(fù)性高指就每一個域來看,一個域中的千萬條數(shù)據(jù)出現(xiàn)大量的重復(fù)。這些特點導(dǎo)致使用關(guān)系型數(shù)據(jù)庫處理這樣的數(shù)據(jù)效率并不高,因為傳統(tǒng)的關(guān)系型數(shù)據(jù)庫是面向更改的,儲存在數(shù)據(jù)庫中的數(shù)據(jù)需要經(jīng)常的改動。
[0014]為此需要設(shè)計高效的索引技術(shù),以及索引壓縮技術(shù),能夠有效檢索海量網(wǎng)絡(luò)流量數(shù)據(jù)。
[0015]2倒排列表
[0016]倒排列表是一種索引數(shù)據(jù)結(jié)構(gòu)技術(shù),廣泛應(yīng)用于文本檢索,如搜索引擎,能夠有效檢索海量網(wǎng)絡(luò)流量數(shù)據(jù)。倒排列表記錄了出現(xiàn)過某個單詞的所有文檔的文檔列表和單詞在該文檔中出現(xiàn)的位置信息,每條記錄稱為一個倒排項,根據(jù)倒排列表,即可知道哪些文檔包含某個單詞。圖2是一個倒排列表的實例。
[0017]3倒排列表的壓縮
[0018](l)simple9 算法
[0019]simple9是一種字對齊算法,最常用的是利用32個比特位來作為一個壓縮單位,給定固定大小的壓縮單位之后,每個壓縮單位試圖存儲多個待壓縮的數(shù)字。
[0020]在32位的前4個比特作為管理數(shù)據(jù)存儲區(qū),剩下28個比特作為壓縮數(shù)據(jù)存儲區(qū),根據(jù)使用情況,壓縮數(shù)據(jù)存儲區(qū)會被分為9中情況,由4比特的指示位來知名存儲類型是哪種。
[0021]圖3是simple9算法的壓縮碼字類型。
[0022]在壓縮時,首先讀取帶壓縮數(shù)值的后續(xù)28個數(shù)字,如果發(fā)現(xiàn)這28個數(shù)字都是O或1,則說明可以用B= I的格局來存儲,將28個數(shù)字存入后28個數(shù)據(jù)位。如果發(fā)現(xiàn)有大于I的數(shù)值,說明B = I這種格局無法容納這組數(shù)據(jù),那么就判斷后續(xù)14個待壓縮的數(shù)據(jù)是否都在O到3的數(shù)值范圍內(nèi),如果是的話則采取B = 2的壓縮格局,否則考慮B = 3的格局,以此類推,即可將帶壓縮數(shù)字都表示為固定長度為32比特的壓縮表示方式。
[0023](2) carryover-12 算法
[0024]實際上carryover-12 是根據(jù) relative-10 改進(jìn)而得,relative-10 是一種比simple9更高效的算法,因為simple9的指示位有四位而其碼型只有9種,relative-10把指示位縮減成2bit,而數(shù)據(jù)存儲的位數(shù)就可以增加到30比特,這有一個好處,因為30有更多的因子數(shù)。這樣處理之后,只有兩種情況的未利用存在2bit的未利用位。圖4為relative-10碼字類型。
[0025]因為指示位只有2bit,所以只能表示4種類型,為了解決這個問題,relative-10算法規(guī)定如果先前的一個壓縮單位采用的是r類型,那么這個壓縮單位的指示位就用來表示r_l, r, r+1和10類型。圖5為relative-10算法碼型轉(zhuǎn)換表。[0026]可以看出,relative-10算法中仍然有碼型中存在沒有利用的2bit。
[0027]carryover-12算法則解決了以上問題,carryover-12算法允許碼中的數(shù)據(jù)存儲位是32或者30。如果一個碼型和上一個碼型相同,那么它全部的32bit全部作為存儲位,如果不相同,那么它就由2bit的標(biāo)志位和30bit的數(shù)據(jù)存儲位構(gòu)成。如果遇到有2bit不能存儲的情況,則將這2bit作為下一個碼型的指示位,下一個碼型32bit全部作為存儲位。
[0028](3) pfordelta 算法
[0029]pfordelta壓縮算法是目前解壓速度最快的一種倒排文件壓縮算法,出發(fā)點是,一次性壓縮和解壓多個數(shù)值。此算法在壓縮速率和壓縮解壓速度方面找到一個平衡點,對于待編碼的連續(xù)的k個數(shù)值,找出其中百分之十的比例大數(shù),根據(jù)剩下的百分之九十的數(shù)值范圍來決定應(yīng)該采取的比特寬度,而百分之十的大數(shù)則當(dāng)作異常數(shù)據(jù)單獨反序存儲并且不對其編碼,每個數(shù)值采用四字節(jié)存儲,在常規(guī)數(shù)據(jù)存儲區(qū)中插入數(shù)值來表明其位置。壓縮數(shù)據(jù)區(qū)分為三個部分,即異常鏈表頭指針(指向了異常鏈表的第一個數(shù)值)、常規(guī)數(shù)據(jù)存儲區(qū)、異常數(shù)據(jù)存儲區(qū)。
【發(fā)明內(nèi)容】
[0030]本發(fā)明的目的在于,提出一種基于倒排列表的網(wǎng)流索弓丨檢索與壓縮的方法,用以解決目前索引技術(shù)及索引壓縮技術(shù)研究存在的問題。
[0031]為實現(xiàn)上述目的,本發(fā)明提出的技術(shù)方案是,一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,其特征是所述方法包括下列步驟:
[0032]步驟1:把IP偏移量地址建立成索引;
[0033]步驟2:對倒排列表中的數(shù)據(jù)進(jìn)行壓縮,并以數(shù)組的形式保存在內(nèi)存中;
[0034]步驟3:解壓和尋回;
[0035]步驟4:根據(jù)倒排索引獲得每個流量包的信息。
[0036]所述把IP偏移量地址建立成索引具體包括:
[0037]步驟11:把數(shù)字轉(zhuǎn)換成詞典;
[0038]步驟12:將IP偏移詞典建立為倒排索引,取固定長度的整數(shù)序列,壓縮成一個索引文件。
[0039]所述對倒排列表中的數(shù)據(jù)進(jìn)行壓縮的索引壓縮算法具體包括:simple9算法壓縮,carryover-12算法壓縮,pfordelta算法壓縮。
[0040]所述解壓和尋回的具體步驟包括:
[0041]步驟31:根據(jù)壓縮算法的不同選擇相應(yīng)的解碼器,將壓縮單位進(jìn)行解碼;
[0042]步驟32:將解壓數(shù)字轉(zhuǎn)換成特定的數(shù)據(jù)結(jié)構(gòu),如倒排索引和詞典。
[0043]本發(fā)明的有益效果在于有效實現(xiàn)高效的索引技術(shù),以及索引壓縮技術(shù),能夠有效檢索海量網(wǎng)絡(luò)流量數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0044]圖1是流記錄格式。
[0045]圖2是倒排列表實例。
[0046]圖3是simple9壓縮碼字類型。[0047]圖4 是 relative-10 編碼類型。
[0048]圖5是relative-10算法碼型轉(zhuǎn)換表。
[0049]圖6是基于倒排序列表的網(wǎng)流索引壓縮方法實現(xiàn)過程。
[0050]圖7是網(wǎng)絡(luò)流量詞典庫。
[0051]圖8是詞典存儲數(shù)據(jù)結(jié)構(gòu)。
[0052]圖9是IP地址字段的倒排列表。
[0053]圖10是網(wǎng)流檢索尋回過程。
【具體實施方式】
[0054]下面結(jié)合附圖,對優(yōu)選實施例作詳細(xì)說明。應(yīng)該強(qiáng)調(diào)的是,下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。
[0055]本發(fā)明解決問題的思路主要分為兩部分:第一部分,為網(wǎng)流信息做IP地址的詞典索引;第二部分,采用索引壓縮算法對倒排列表中的數(shù)據(jù)進(jìn)行壓縮。第一部分具體包括:把數(shù)字轉(zhuǎn)換成詞典;將IP偏移詞典建立為倒排索引,取固定長度的整數(shù)序列,壓縮成一個索引文件。第二部分中的索引壓縮算法具體包括:PForDelta算法,simple9壓縮算法,carryover-12 壓縮算法。
[0056]下面以互聯(lián)網(wǎng)流量大數(shù)據(jù)檢索系統(tǒng)為例,實現(xiàn)本發(fā)明的基于倒排列表的網(wǎng)流索引檢索與壓縮的方法。
[0057]網(wǎng)流索引壓縮中的大數(shù)據(jù)檢索系統(tǒng)實現(xiàn)分成三個模塊:數(shù)據(jù)預(yù)處理模塊,位圖索引構(gòu)建模塊,數(shù)據(jù)檢索模塊。
[0058]I數(shù)據(jù)預(yù)處理模塊:
[0059]在數(shù)據(jù)進(jìn)入模塊之前有預(yù)處理過程,以動態(tài)和靜態(tài)模式進(jìn)行數(shù)據(jù)處理。對于靜態(tài)模式(對于已經(jīng)存儲的原始數(shù)據(jù)文件進(jìn)行重新處理來實現(xiàn)壓縮與構(gòu)建索引),將數(shù)據(jù)文件中的數(shù)據(jù)項利用局部敏感函數(shù)(LSH,相近的數(shù)據(jù)項得到的哈希值也相近)計算哈希值,并按照哈希值順序進(jìn)行重排序(reorder)過程,之后將數(shù)據(jù)提交給數(shù)據(jù)壓縮模塊與索引構(gòu)建模塊進(jìn)行下一步處理。對于動態(tài)模式,用一段固定存儲空間,緩存接收實時抓取的流量,當(dāng)緩存數(shù)據(jù)達(dá)到上限時,提交給下一級來進(jìn)行重排序的操作(類似于靜態(tài)模式),之后數(shù)據(jù)提交給索引構(gòu)建模塊進(jìn)行下一步處理。而由于此時緩存已經(jīng)被清空,可以繼續(xù)接受網(wǎng)絡(luò)上的實時流量,這樣就實現(xiàn)了動態(tài)處理的過程。
[0060]2索引構(gòu)建模塊:
[0061]隨著互聯(lián)網(wǎng)的飛速發(fā)展,各項信息也隨之呈現(xiàn)鏈?zhǔn)皆鲩L,用戶如果想在這樣龐大的信息庫中找到自己需要的東西,無異于大海撈針,而搜索引擎恰好解決了這樣的問題,也對我們的發(fā)明提供了重要的技術(shù)參考。它通過種種高效的方式建立起簡潔的、有針對性的索引,對用戶的檢索行為做出及時的相應(yīng)。索引建立有很多方法,其中主流的有兩遍文檔遍歷法和排序法,又如現(xiàn)在在搜索引擎中很流行的non-cluster方法,這項技術(shù)和語言文字的科學(xué)有著很大關(guān)系,涉及到語法庫的存儲,詞匯庫的存儲,單個字的存儲。索引器生成從關(guān)鍵詞到特定數(shù)字建立索引表,索引表上會顯示索引項在文檔中的位置,以便檢索器計算索引之間的相鄰關(guān)系或者接近關(guān)系。
[0062]3數(shù)據(jù)檢索模塊:[0063]用戶輸入希望檢索的條件,之后系統(tǒng)從構(gòu)建的位圖索引文件中依照索引查找對應(yīng)的條目,可快速執(zhí)行與,或,非與JOIN操作。如果對索引文件全部解碼的話,會造成巨大的時間開銷與空間開銷,因此引入了動態(tài)判斷策略,輸入檢索條件通過動態(tài)判斷策略的處理決定是部分解碼(partial-decompression)還是全部解碼(full-decompression).部分解碼的方法是只對命中條目附近的塊(block)進(jìn)行解碼并抽出檢索命中的數(shù)據(jù),而全部解碼則利用在部分解碼帶來收益不大的場景,這樣可以相對提高檢索效率。
[0064]當(dāng)今網(wǎng)絡(luò)流量的檢索和查詢的主要特點為:
[0065]1.仍然采用的是傳統(tǒng)的定性存儲,將各項數(shù)據(jù)信息以流記錄的形式來存儲。
[0066]2.大量的數(shù)據(jù)沒有進(jìn)行合適的加工和處理。
[0067]3.這些信息之間缺少必要的關(guān)聯(lián),而許多指針型數(shù)據(jù),便占用了大量的存儲空間。
[0068]搜索引擎中的數(shù)據(jù)條理性和存儲靈活性給予我們啟發(fā),我們的發(fā)明主要將會對第2,3點產(chǎn)生優(yōu)化效果。我們將網(wǎng)流檢索和搜索引擎相結(jié)合,提出將搜索引擎的優(yōu)勢利用到網(wǎng)流檢索中去。這項發(fā)明不僅可以應(yīng)用到網(wǎng)流檢索,同時可以應(yīng)用到大數(shù)據(jù)存儲和查找的各項相關(guān)領(lǐng)域中去。 [0069]下面的實施例是按照本發(fā)明提出的一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法對索引構(gòu)建模塊和數(shù)據(jù)檢索模塊進(jìn)行處理的過程。以網(wǎng)流檢索中的一個數(shù)據(jù)組{166;5,8, 10,11,13,15,28,36,61...}為例來闡明本專利的實現(xiàn)過程。圖6是本發(fā)明所提出的基于倒排列表的網(wǎng)流索引檢索與壓縮方法的壓縮算法流程圖。
[0070]步驟1:把IP偏移量地址建立成索引。
[0071]步驟11:把數(shù)字轉(zhuǎn)換成詞典。
[0072]文本檢索中的索引采用倒排列表作為其數(shù)據(jù)結(jié)構(gòu)來存放信息比如文檔編號,單詞頻率和文檔位置,來配合單詞編號,文檔頻率和文檔位置進(jìn)行查找。
[0073]在對網(wǎng)絡(luò)流量信息進(jìn)行查找和壓縮處理的時候,我們把一個IP地址的字段的數(shù)字(8bit)作為單詞,或者TCP/UDP協(xié)議的端口號16bit的一個字段作為單詞集。也就是說,詞典是數(shù)字的集合,即都是U,…,255}.[0074]接下來,通過哈希加鏈表的形式構(gòu)造詞典。哈希加鏈表中的每一項保存一個指針,指向沖突鏈表,相同哈希值的單詞形成鏈表結(jié)構(gòu)。
[0075]詞典,單詞和倒排文件這三者的關(guān)系可以通過圖7來說明。
[0076]數(shù)字集單詞詞典的數(shù)據(jù)結(jié)構(gòu)如圖8所示。
[0077]步驟12:將IP偏移詞典建立為倒排索引,取固定長度,比如4Kbit長度的整數(shù)序列,壓縮成一個索引文件。
[0078]在倒排列表我們填充IP偏移量用以網(wǎng)絡(luò)流量的定性分析。IP偏移量用來標(biāo)識數(shù)據(jù)包在該數(shù)據(jù)流中的位置,也可以理解為使用同一個IP標(biāo)識發(fā)送多個數(shù)據(jù)包時的順序號,是一個十進(jìn)制整數(shù),第一個包的偏移量是0,之后的數(shù)據(jù)包偏移量以O(shè)為基準(zhǔn)進(jìn)行累計運算。如{166 ;5,8,10,11,13,15,28,36,61...}。
[0079]IP地址字段的倒排列表如圖9所示。
[0080]步驟2:對倒排列表中的數(shù)據(jù)進(jìn)行壓縮,并以數(shù)組的形式保存在內(nèi)存中。壓縮算法包括:pForDelta算法,simple9算法壓縮和carryover-12算法壓縮。
[0081]1.simple9 算法壓縮[0082]讀取帶壓縮數(shù)值隊列{5,8, 10,11,13,15,28,36,61}中后續(xù)28個數(shù)字,也就是所有的數(shù)字,發(fā)現(xiàn)有大于I的數(shù)字,說明B = I的布局無法容納這組數(shù)字,于是改為讀取隊列中后續(xù)的14個數(shù)值,但發(fā)現(xiàn)有大于3的數(shù)字,B = 2的布局也無法容納,以此類推,最終試探出5,8,10, 11,13,可以選取B = 5的布局進(jìn)行壓縮;15,28,36,61可以選取B = 7的布局進(jìn)行壓縮。最終壓縮成小于三個四字節(jié)的定長壓縮單位如下(*代表浪費的存儲字節(jié))
[0083]0101 00101 01000 01010 01011 01101***
[0084]0111 0001111 0011100 0100100 0111101*
[0085]可以看出,壓縮之前的每個數(shù)字占四字節(jié)的存儲空間,而全部數(shù)值總共占40字節(jié),壓縮之后盡管還有未利用的空間和冗余,但是存儲空間只有8字節(jié)。
[0086]2.carryover-12 算法壓縮
[0087]對于{5,8,10,11,13,15,28,36,61},進(jìn)行壓縮之后:
[0088]01 00101 01000 01010 01011 01101 01111
[0089]10 011100 100100 111101......[0090]可以看出這串?dāng)?shù)字被壓縮成了不到兩個壓縮單位。需要說明的是我們約定第一個碼字的類型編碼是01。所以下一個碼字的類型可以推導(dǎo)出來是10。
[0091]顯然,在simple9中壓縮成了 2個壓縮單位,而利用carryoverl2壓縮后,壓縮量不到2個壓縮單位。
[0092]3.pfordelta 算法壓縮。
[0093]對于{5,8, 10,28,11,61,13,36,15},其中異常的大數(shù)為28,36,61,那么異常鏈表
頭為3,表示經(jīng)過三個數(shù)字之后是第一個異常大數(shù)。而常規(guī)數(shù)據(jù)存儲區(qū)為{5,8,10,1,11,1,13,1,15}其中的三個I將28,61,36這三個大數(shù)替換,分別代表跳過后面I位便出現(xiàn)異常大數(shù)。在異常數(shù)據(jù)存儲區(qū),存放36,61,28。
[0094]全部的壓縮序列將變成:[1,5,8,10,1,11,1,13,1,15,28,61,36]。
[0095]對于{5,8,10,28,11,61,13,36,15}的pfordelta 壓縮結(jié)果為:
[0096]00000000000000000000000000000001 0101 1000 1010 0001 1011 0001 1101 00011111 0000000000000000000000000001I100 000000000000000000000000001II101 00000000000000000000000000100100
[0097]步驟3:解壓和尋回。
[0098]步驟31:根據(jù)壓縮算法的不同選擇相應(yīng)的解碼器,將壓縮單位進(jìn)行解碼。
[0099]步驟32:將解壓數(shù)字轉(zhuǎn)換成特定的數(shù)據(jù)結(jié)構(gòu),如倒排索引和詞典。
[0100]步驟4:根據(jù)倒排索引獲得每個流量包的信息。
[0101]其中,還原倒排索引信息和網(wǎng)絡(luò)流量查詢實現(xiàn)原理如圖10所示。比如我們想尋發(fā)往端口 140的,目的地址為166.111.*.*的網(wǎng)流。首先將壓縮的各個地址段或者端口的信息進(jìn)行與或運算,得出的結(jié)果便是的偏移地址,這相當(dāng)于一個過濾或者解壓縮的過程,最后將得到的偏移地址對應(yīng)到相應(yīng)的存儲塊中并回溯相應(yīng)的塊,從而獲得相應(yīng)的網(wǎng)絡(luò)流量信息。
[0102]由上面的實施例中的網(wǎng)流檢索的實現(xiàn)過程可以看出本發(fā)明能夠有效實現(xiàn)高效的索引技術(shù),以及索引壓縮技術(shù),能夠有效檢索海量網(wǎng)絡(luò)流量數(shù)據(jù)。
[0103]以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本 【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,其特征是所述方法包括: 步驟1:把IP偏移量地址建立成索引; 步驟2:對倒排列表中的數(shù)據(jù)進(jìn)行壓縮,并以數(shù)組的形式保存在內(nèi)存中; 步驟3:解壓和尋回; 步驟4:根據(jù)倒排索引獲得每個流量包的信息。
2.根據(jù)權(quán)利要求1所述的一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,其特征是所述把IP偏移量地址建立成索引具體包括: 步驟11:把數(shù)字轉(zhuǎn)換成詞典; 步驟12:將IP偏移詞典建立為倒排索引,取固定長度的整數(shù)序列,壓縮成一個索引文件。
3.根據(jù)權(quán)利要求1所述的一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,其特征是所述對倒排列表中的數(shù)據(jù)進(jìn)行壓縮的索引壓縮算法具體包括:simple9算法壓縮,carryover-12算法壓縮,pfordelta算法壓縮。
4.根據(jù)權(quán)利要求1所述的一種基于倒排列表的網(wǎng)流索引檢索與壓縮的方法,其特征是所述解壓和尋回的具體步驟包括: 步驟31:根據(jù)壓縮算法的不同選擇相應(yīng)的解碼器,將壓縮單位進(jìn)行解碼; 步驟32:將解壓數(shù)字轉(zhuǎn)換成特定的數(shù)據(jù)結(jié)構(gòu),如倒排索引和詞典。
【文檔編號】H04L12/24GK104009984SQ201410206048
【公開日】2014年8月27日 申請日期:2014年5月15日 優(yōu)先權(quán)日:2014年5月15日
【發(fā)明者】陳震, 劉洪健, 馬戈, 曹軍威 申請人:清華大學(xué)