国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種網(wǎng)絡流量還原方法

      文檔序號:7742279閱讀:263來源:國知局
      專利名稱:一種網(wǎng)絡流量還原方法
      技術領域
      本發(fā)明涉及互聯(lián)網(wǎng)技術領域,尤其涉及一種通過網(wǎng)絡流量分流以并行方式充分發(fā)
      揮現(xiàn)有多核心計算機效率的還原網(wǎng)絡流量至應用層文件的方法。
      背景技術
      改革開放以來,我國經(jīng)濟的持續(xù)快速增長和網(wǎng)絡技術的發(fā)展共同推動了互聯(lián)網(wǎng)事業(yè)的發(fā)展,2009年7月16日,中國互聯(lián)網(wǎng)絡信息中心(CNNIC)發(fā)布報告顯示,今年上半年我國網(wǎng)民規(guī)模已突破3億。網(wǎng)民規(guī)模、寬帶網(wǎng)民數(shù)、國家頂級域名注冊量(1296萬)三項指標仍然穩(wěn)居世界第一,互聯(lián)網(wǎng)普及率穩(wěn)步提升。 同時,網(wǎng)絡信息安全成為當前各界十分關注的問題,且CNNIC《報告》顯示,目前我國網(wǎng)民在娛樂、信息和社交類使用上比例較高,除了論壇/BBS夕卜,這三類網(wǎng)絡應用在網(wǎng)民中的普及率均在50%以上,特別是當網(wǎng)絡用戶數(shù)高達數(shù)億之后,互聯(lián)網(wǎng)上傳播的信息更是爆炸式的增長,因此如何監(jiān)管網(wǎng)絡上傳輸?shù)男畔?,防止不良信息等的快速傳播是一個嚴重的問題,該問題現(xiàn)在面臨兩個主要的困難首先,在網(wǎng)絡中傳輸?shù)木W(wǎng)絡流量(數(shù)據(jù)包)是程序無法直接理解的,即網(wǎng)絡上傳輸?shù)膽脤游募τ嬎銠C來說是"不可見"的,必須要通過處理轉(zhuǎn)化為計算機可處理的信息格式;其次,網(wǎng)絡技術的發(fā)展和網(wǎng)絡帶寬的需求促使網(wǎng)絡設備向更高速的方向發(fā)展,因此如何解決計算機在高帶寬網(wǎng)絡環(huán)境下的實時流量采集還原瓶頸同樣是一個嚴峻的問題。 本發(fā)明旨在解決在高速網(wǎng)絡帶寬下將"不可見"網(wǎng)絡流量轉(zhuǎn)換為計算機可直接處理的信息的問題,為識別和阻斷不良非法的網(wǎng)絡信息傳播提供技術支持。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于解決現(xiàn)有網(wǎng)絡流量中傳輸數(shù)據(jù)"不可見"和在高帶寬網(wǎng)絡環(huán)境下的實時流量采集還原瓶頸的問題,且充分利用現(xiàn)有計算機的處理器多核并發(fā)運算優(yōu)勢,提升設備的處理能力,該發(fā)明采用二級并行策略方法以充分挖掘現(xiàn)有多核計算機的處理效率首先通過捕獲并二次分流原始流量為多個細網(wǎng)絡流量實現(xiàn)在流量級別上的一級并行;然后在細網(wǎng)絡流量還原流程中有數(shù)據(jù)傳遞的工作模塊之間采用"生產(chǎn)者_消費者模型"松耦合的多線程架構(gòu)實現(xiàn)在線程層次上的二級并行。該發(fā)明通過TCP會話重組和應用層協(xié)議解析還原"不可見"的網(wǎng)絡流量到"可見"的應用層文件,這樣就為識別和阻斷網(wǎng)絡上不良信息的傳播提供了技術支持。此外,該方法對每一細網(wǎng)絡流量的還原流程實現(xiàn)智能負載均衡,且同時支持IPv4和IPv6協(xié)議。 本發(fā)明解決其技術問題所采用的技術方案是一種網(wǎng)絡流量還原方法,其特征在于 該網(wǎng)絡流量還原方法首先通過流量捕獲模塊捕獲原始網(wǎng)絡流量并通過對MAC地址做哈希運算將原始流量分流成多個粗網(wǎng)絡流量,與此同時通過流量分流模塊將每一個粗網(wǎng)絡流量再進一步分流,分流成多個細網(wǎng)絡流量;然后對每一細網(wǎng)絡流量的IP數(shù)據(jù)包(IPv4和IPv6)采用TCP會話重組模塊進行TCP會話重組得到TCP會話,同時更新相應會話的會話狀態(tài),會話狀態(tài)轉(zhuǎn)變?yōu)榻Y(jié)束或超時時,該會話將被轉(zhuǎn)存于待還原TCP會話隊列;最后采用智能解析還原模塊按序提取待還原TCP會話隊列中的會話,通過協(xié)議解析、解碼和解壓縮操作把該會話還原到應用層文件,將該應用層文件信息與對應會話信息提交至數(shù)據(jù)庫,同時智能解析還原模塊自動化地實現(xiàn)該細網(wǎng)絡流量的負載均衡; 上述流量捕獲模塊根據(jù)服務器計算核心數(shù)目設置粗網(wǎng)絡流量數(shù)目m,相應地設置粗網(wǎng)絡流量編號依次為0、1、……、m-l ;該模塊包括以下步驟
      (l-l)、該模塊從高速網(wǎng)絡中抓取原始數(shù)據(jù)包; (1-2)、對抓取到的數(shù)據(jù)包進行協(xié)議過濾,只保留IPv4和IPv6數(shù)據(jù)包; (1-3)、對每一個IP數(shù)據(jù)包提取SMAC(源MAC地址)和DMAC(目的MAC地址)兩
      個字段值; (l-4)、將SMAC和DMAC做異或運算后的結(jié)果對m(粗網(wǎng)絡流量數(shù)目)取余,得到的結(jié)果即為該IP數(shù)據(jù)包將被分流到的粗網(wǎng)絡流量編號,然后將該IP數(shù)據(jù)包分流到具有該編號的粗網(wǎng)絡流量; 上述流量分流模塊對每一粗網(wǎng)絡流量均進行流量分流,并根據(jù)粗網(wǎng)絡流量數(shù)目m,設置每一粗網(wǎng)絡流量分成的細網(wǎng)絡流量數(shù)目為n,細網(wǎng)絡流量編號依次為0、……、n-l ;對一個粗網(wǎng)絡流量進行分流包括以下步驟
      (2-1)、從該粗網(wǎng)絡流量中提取數(shù)據(jù)包;(2-2)、對每一個IP數(shù)據(jù)包提取SIP(源IP地址)和DIP(目的IP地址)兩個字段值; (2-3)、將SIP和DIP做異或運算并將結(jié)果對n取余,得到的結(jié)果即為該IP數(shù)據(jù)包將被分流到的細網(wǎng)絡流量編號,然后將該IP數(shù)據(jù)包分流到具有相同編號的細網(wǎng)絡流量;
      上述TCP會話重組模塊以TCP會話的源IP地址SIP (SIPv4或SIPv6)、目的IP地址DIP(DIPv4或DIPv6)、源端口號(SP)和目的端口號(DP)組成的四元組為key,并以上述四個參數(shù)經(jīng)異或運算計算哈希值,分別創(chuàng)建對應于IPv4和對應于IPv6的TCP會話散列表;散列表的節(jié)點為一個TCP會話, 一個TCP會話包含兩個鏈表,分別存放該TCP會話源端發(fā)送的數(shù)據(jù)包和目的端發(fā)送的數(shù)據(jù)包,且每一個鏈表中的數(shù)據(jù)包都按TCP序列號和確認號重新排列;該模塊包括以下步驟 (3-1) 、 TCP重組模塊獲取IP碎片重組模塊處理后的IP數(shù)據(jù)包,提取其IP協(xié)議版本(IPv4或者IPv6);判斷其是否是TCP數(shù)據(jù)包,如果是,則轉(zhuǎn)步驟(3-2);否則轉(zhuǎn)步驟(3-1); (3-2)、提取數(shù)據(jù)包中的四元組(key),通過哈希計算并在相應會話散列表(對應于IPv4或者IPv6)中查找是否存在同一四元組(key)的TCP會話,如果是,則取得該key的TCP會話并轉(zhuǎn)步驟(3-3);否則轉(zhuǎn)步驟(3-4); (3-3)、獲取該數(shù)據(jù)包TCP包頭中的FIN、 RST、 ACK、序列號、確認號、窗口大小等字段值,然后把該數(shù)據(jù)包在步驟(3-2)中查找到的TCP會話中利用上述獲得的FIN、RST、ACK、序列號、確認號、窗口大小等字段值進行重組排序操作,并且更新該TCP會話的狀態(tài),如果狀態(tài)變?yōu)榻Y(jié)束、重置或超時,則轉(zhuǎn)步驟(3-5),否則轉(zhuǎn)步驟(3-1); (3-4)、由于在相應會話散列表(對應于IPv4或IPv6)中不存在同一 Key的TCP會話,所以在該會話散列表(對應于相應IP協(xié)議版本)中創(chuàng)建具有相應Key的散列表(即哈希表)節(jié)點(即TCP會話),轉(zhuǎn)步驟(3-1); (3-5)、將TCP會話從與其對應的會話散列表中取出并轉(zhuǎn)移到待處理的TCP會話隊列中; (3-6)、在TCP重組的過程中啟動一個定時器,每隔5秒或者自行設定的時間去掃描分別對應于IPv4和IPv6的兩個TCP會話散列表,以清除超過10秒或者自行設定的時間內(nèi)沒有更新(即沒有新的數(shù)據(jù)包到來)的TCP會話,并將被清除的會話轉(zhuǎn)移至待處理的TCP會話隊列中; 上述智能解析還原模塊包括以下步驟 (4-l)、計算該細網(wǎng)絡流量的負載指數(shù)I,并將該指數(shù)與給定的負載閾值(默認
      為0. 95或者自行設定)比較如果I大于負載閾值,則該細網(wǎng)絡流量負載狀態(tài)為重載,轉(zhuǎn)
      (4-2);如果I小于等于負載閾值,則該細網(wǎng)絡流量負載狀態(tài)為輕載,轉(zhuǎn)(4-3); (4-2)、從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,然
      后將該會話完整保存于會話緩存文件中,同時將緩存會話數(shù)加一,轉(zhuǎn)(4-1); (4-3)、判斷緩存會話數(shù)是否為零,如果是,轉(zhuǎn)(4-4);否則,轉(zhuǎn)(4_5); (4-4)、從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,并
      智能分析該會話對應的時間、應用層協(xié)議、會話數(shù)據(jù)大小等會話信息,然后將該會話遞交給
      相應應用層協(xié)議處理模塊,進行解析、解碼、解壓縮以完成還原處理,轉(zhuǎn)(4-6); (4-5)、從會話緩存文件中順序提取系統(tǒng)處于重載狀態(tài)時緩存的會話,并將緩存會
      話數(shù)減一,然后智能分析該會話對應的應用層協(xié)議、會話數(shù)據(jù)大小等會話信息,并根據(jù)會話
      信息將該會話遞交給相應的應用層協(xié)議解析還原模塊,進行解析、解碼、解壓縮以完成還原
      處理,轉(zhuǎn)(4-6); (4-6)、將還原后的文件后綴名與常規(guī)文件后綴名庫進行匹配,如果該后綴名不屬于常規(guī)后綴名庫,則通過智能分析其對應會話信息、文件頭信息和文件數(shù)據(jù)信息以確定該文件格式,然后給該文件添加正確的后綴名,最后存儲還原生成的文件,同時將該文件的信息和對應會話信息提交至數(shù)據(jù)庫,轉(zhuǎn)(4-1)。 其中,所述根據(jù)服務器計算核心數(shù)目設置粗網(wǎng)絡流量數(shù)目m是指粗網(wǎng)絡流量數(shù)目m的取值等于服務器計算核心的數(shù)目;所述根據(jù)粗網(wǎng)絡流量數(shù)目m,設置每一粗網(wǎng)絡流量分成的細網(wǎng)絡流量數(shù)目為n是指n取值為2或4;所述步驟(4-6)中的文件后綴名庫包含網(wǎng)頁文件、音/視頻文件、文檔文件、二進制文件等各種常規(guī)文件類型的后綴名。
      由于在還原過程中存在頻繁的動態(tài)內(nèi)存操作,因此為了提高系統(tǒng)的效率和穩(wěn)定性,整個還原流程中頻繁的動態(tài)內(nèi)存操作均采用內(nèi)存池(Memory Pool)技術實現(xiàn)。
      智能解析還原模塊中的會話緩存文件存取采用"FIFO"策略,待還原TCP會話隊列中的會話存取也采用"FIF0"策略。 整個還原方法采用二級并行策略首先通過流量分流實現(xiàn)在流量級別上的一級并行;然后在細流量還原流程中有數(shù)據(jù)傳遞的工作模塊之間采用"生產(chǎn)者_消費者模型"松耦合的多線程架構(gòu)以實現(xiàn)在線程層次上的二級并行。 所述步驟(4-6)中細網(wǎng)絡流量的負載指數(shù)(L)取決于如下參數(shù)對應計算核心使用率(P)、該細網(wǎng)絡流量重組模塊中分別對應于IPv4與IPv6的會話散列表的裝填因子(即aV4、 aV6),即L = P ( a V4+a V6);散列表的裝填因子定義為裝填因子=填入表中的元素(即節(jié)點)個數(shù)/散列表的長度。 所述步驟(1-4)和步驟(2-3)中的異或運算采用2個字節(jié)為單位進行計算,步驟(3-2)中的哈希計算也采用2個字節(jié)為單位進行計算將所有參與異或運算的參數(shù)均拆分成2個字節(jié)(16位)等大小的單元,如果參數(shù)大小剛好為16位則不用拆分,然后對所有拆分后的單元進行異或計算。


      圖1是本發(fā)明的總體框架示意 圖2是圖1中TCP會話重組模塊流程 圖3是圖1中智能解析還原模塊流程圖。
      具體實施例方式
      參見圖1 ,是本發(fā)明的整體流程。 首先對利用流量捕獲模塊從骨干網(wǎng)絡上截取到原始數(shù)據(jù)包并進行協(xié)議過濾和分流,由于實驗用服務器CPU為四核心處理器,所以設置粗(網(wǎng)絡)流量數(shù)目為4,則此時圖1中的粗(網(wǎng)絡)流量數(shù)目m取值為4。首先過濾原始網(wǎng)絡流量提取IP數(shù)據(jù)包(包括IPv4與IPv6數(shù)據(jù)包),然后對提取的IP數(shù)據(jù)包采用哈希算法實現(xiàn)分流,該算法采用IP數(shù)據(jù)包中的源MAC(SMAC)和目的MAC(DMAC)做異或運算,然后將運算結(jié)果對m取余的結(jié)果作為哈希值,具體異或運算為把源(目的)MAC拆分成16位(2字節(jié))大小的3個值,然后把該16位大小的值(單元)依次做異或運算。經(jīng)哈希計算后的哈希值取值范圍為集合{0,1,2,3},分別對應于粗網(wǎng)絡流量0、粗網(wǎng)絡流量1、粗網(wǎng)絡流量2和粗網(wǎng)絡流量3 ;即如果數(shù)據(jù)包(IP數(shù)據(jù)包)的源MAC和目的MAC經(jīng)哈希函數(shù)計算得到的哈希值為l,則該數(shù)據(jù)包將被分流到粗(網(wǎng)絡)流量1中,其它哈希值以此類推。 上述流量分流中的哈希函數(shù)以源MAC和目的MAC字段值作為參數(shù)可以保證原始網(wǎng)絡流量中TCP會話的所有數(shù)據(jù)包都分流在同一個粗網(wǎng)絡流量中,即保證了分流后的粗網(wǎng)絡流量中TCP會話的完整性,也保證后續(xù)的流量分流模塊和TCP會話重組模塊的可行性;對分流后的4個粗網(wǎng)絡流量均通過流量分流模塊進行第二次流量分流,即將粗網(wǎng)絡流量進一步分流為細網(wǎng)絡流量;最后對細網(wǎng)絡流量進行IP碎片重組、TCP會話重組,并且智能解析還原重組后的TCP會話。 在具體實施時,針對具體還原流程中存在大量的內(nèi)存操作的現(xiàn)實和現(xiàn)有動態(tài)內(nèi)存
      管理的缺陷,整個重組還原流程內(nèi)存管理采用內(nèi)存池(Memory Pool)技術實現(xiàn),不僅提高流
      量還原的效率,而且能夠減少內(nèi)存碎片的產(chǎn)生,提高程序的穩(wěn)定性。 參見圖2,是圖1所述網(wǎng)絡流量還原的方法中TCP會話重組模塊的流程。 TCP會話重組模塊以TCP會話的源IP (IPv4或者IPv6)、目的IP (IPv4或者IPv6)、
      源端口號和目的端口號組成的四元組為key,并以上述四個參數(shù)計算哈希值,分別創(chuàng)建對應
      于IPv4與ipv6的TCP會話散列(哈希)表。會話散列表的節(jié)點為一個TCP會話。 一個
      TCP會話有兩個鏈表,分別存放該TCP會話源端發(fā)送的數(shù)據(jù)包和目的端發(fā)送的數(shù)據(jù)包,屬于
      該會話的數(shù)據(jù)包要在插入鏈表時進行重新組合序。
      在TCP會話重組模塊初始時,啟動一個定時器,每隔固定時間(默認5秒)去掃描兩個TCP會話散列表(分別對應于IPv4與IPv6),及時清除一些超過給定時間(默認10秒)內(nèi)沒有新的數(shù)據(jù)包到來的TCP會話,且將超時TCP會話都按序遞交至待還原TCP會話隊列。 以下是TCP會話重組模塊的具體步驟 步驟一 TCP會話重組首先順序提取IP碎片重組模塊處理后的IP數(shù)據(jù)包的IP協(xié)議版本(IPv4或者IPv6),判斷經(jīng)IP碎片重組處理后的IP數(shù)據(jù)包是否是TCP數(shù)據(jù)包,如果是,則轉(zhuǎn)步驟二 ;否則丟棄該數(shù)據(jù)包并且轉(zhuǎn)步驟一。 步驟二 提取該TCP數(shù)據(jù)包中的源IP (v4/v6)、目的IP (v4/v6)、源端口號和目的端口號組成的四元組(key),通過哈希計算在相應TCP會話散列表中查找是否存在相同key的TCP會話,如果是,則取得該具有相同key的TCP會話并轉(zhuǎn)步驟三;否則轉(zhuǎn)步驟四。
      步驟三獲取該數(shù)據(jù)包TCP包頭中的序列號、確認號、窗口大小、FIN、RST、ACK等字段值,然后在步驟二中查找到的TCP數(shù)據(jù)流中利用上面獲取的序列號、確認號、窗口大小、FIN、 RST、 ACK等信息進行TCP重組排序操作如果該數(shù)據(jù)包是來自源端的,則把該數(shù)據(jù)包在相應TCP會話的源(source)端數(shù)據(jù)包鏈表中進行重組排序操作,否則在TCP會話的目的(destination)端數(shù)據(jù)包鏈表中進行重組排序操作。在重組排序的同時更新該TCP會話的狀態(tài),如果TCP會話狀態(tài)變?yōu)榻Y(jié)束、重置或超時,則轉(zhuǎn)步驟五,否則轉(zhuǎn)步驟
      步驟四由于在相應TCP會話散列表中(即分別對應于IPv4或IPv6)不存在相應Key的TCP會話,所以根據(jù)該TCP數(shù)據(jù)包中包含的SYN等字段值,判斷是否是新到達的TCP會話,如果是,則在相應TCP會話散列表中創(chuàng)建具有相應Key的TCP會話;如果否,則丟棄該數(shù)據(jù)包,轉(zhuǎn)步驟一。 步驟五將該TCP會話從相應TCP會話散列表中取出并轉(zhuǎn)移到待處理的TCP會話隊列中。此時在待處理TCP會話對列中TCP會話都是經(jīng)過重新組合的,TCP包頭之后數(shù)據(jù)按照順序拼接起來即得到該會話實際傳輸?shù)膽脤訑?shù)據(jù)。 參見圖3,是圖1所述網(wǎng)絡流量還原方法中智能解析還原模塊的流程圖。 首先初始化該智能解析還原模塊,包括設置細網(wǎng)絡流量負載閾值等。該智能解析
      還原模塊包括以下步驟 步驟一 計算該細網(wǎng)絡流量的負載指數(shù)I,并將該指數(shù)與給定的負載閾值比較如果I大于負載閾值,則該細網(wǎng)絡流量負載狀態(tài)為重載,轉(zhuǎn)步驟二 ;如果I小于等于負載閾值,則該細網(wǎng)絡流量負載狀態(tài)為輕載,轉(zhuǎn)步驟三; 步驟二 從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,然后將該會話完整保存于會話緩存文件中,同時將緩存會話數(shù)加一,轉(zhuǎn)步驟一 ;通過緩存系統(tǒng)處于重載時的待還原會話可以有效的均衡相應細網(wǎng)絡流量的負載,從而實現(xiàn)該細網(wǎng)絡流量的負載均衡。
      步驟三判斷緩存會話數(shù)是否為零,如果是,轉(zhuǎn)步驟四;否則,轉(zhuǎn)步驟五; 步驟四從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,并
      智能分析該會話對應的時間、應用層協(xié)議、會話數(shù)據(jù)大小等會話信息,然后將該會話遞交給
      相應應用層協(xié)議處理模塊進行協(xié)議解析、解碼、解壓縮處理,完成還原處理,轉(zhuǎn)步驟六; 步驟五從會話緩存文件中順序提取系統(tǒng)處于重載狀態(tài)時緩存的會話,并將緩存
      8會話數(shù)減一,然后智能分析該會話對應的應用層協(xié)議、會話數(shù)據(jù)大小等會話信息并根據(jù)會話信息將該會話遞交給相應的應用層協(xié)議解析還原模塊進行協(xié)議解析、解碼、解壓縮處理,完成還原處理,轉(zhuǎn)步驟六; 步驟六將還原后的文件后綴名與常規(guī)文件后綴名庫進行匹配,如果該后綴名不屬于常規(guī)后綴名庫,則通過智能分析其對應會話信息、文件頭信息和文件數(shù)據(jù)信息以確定該文件格式,然后給該文件添加正確的后綴名,最后存儲還原后生成的文件,同時將該文件的信息和對應會話信息提交至數(shù)據(jù)庫,轉(zhuǎn)步驟一。 以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定
      本發(fā)明的具體實施方式
      僅限于此,對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單的推演或替換,都應當視為屬于本發(fā)明由所
      提交的權(quán)利要求書確定專利保護范圍。
      權(quán)利要求
      一種網(wǎng)絡流量還原方法,其特征在于,按照如下步驟該網(wǎng)絡流量還原方法(1)通過流量捕獲模塊捕獲原始網(wǎng)絡流量并通過對MAC地址做哈希運算將原始流量分流成多個粗網(wǎng)絡流量,與此同時通過流量分流模塊將每一個粗網(wǎng)絡流量再進一步分流,分流成多個細網(wǎng)絡流量;(2)對每一細網(wǎng)絡流量的IP數(shù)據(jù)包采用TCP會話重組模塊進行TCP會話重組得到TCP會話,同時更新相應會話的會話狀態(tài),會話狀態(tài)轉(zhuǎn)變?yōu)榻Y(jié)束或超時時,該會話將被轉(zhuǎn)存于待還原TCP會話隊列;(3)采用智能解析還原模塊按序提取待還原TCP會話隊列中的會話,通過協(xié)議解析、解碼和解壓縮操作把該會話還原到應用層文件,將該應用層文件信息與對應會話信息提交至數(shù)據(jù)庫,同時智能解析還原模塊自動化地實現(xiàn)該細網(wǎng)絡流量的負載均衡。
      2. 如權(quán)利要求1所述一種網(wǎng)絡流量還原方法,其特征在于,所述步驟(1)是 流量捕獲模塊根據(jù)服務器計算核心數(shù)目設置粗網(wǎng)絡流量數(shù)目m,相應地設置粗網(wǎng)絡流量編號依次為0、1、……、m-l ;包括以下步驟: (l-l)、該模塊從高速網(wǎng)絡中抓取原始數(shù)據(jù)包;(1-2)、對抓取到的數(shù)據(jù)包進行協(xié)議過濾,只保留IPv4和IPv6數(shù)據(jù)包;(1-3)、對每一個IP數(shù)據(jù)包提取源MAC地址SMAC和目的MAC地址DMAC兩個字段值;(1-4)、將SMAC和DMAC做異或運算后的結(jié)果對m取余,得到的結(jié)果即為該IP數(shù)據(jù)包將被分流到的粗網(wǎng)絡流量編號,然后將該IP數(shù)據(jù)包分流到具有該編號的粗網(wǎng)絡流量;流量分流模塊對每一粗網(wǎng)絡流量均進行流量分流,并根據(jù)粗網(wǎng)絡流量數(shù)目m,設置每一粗網(wǎng)絡流量分成的細網(wǎng)絡流量數(shù)目為n,細網(wǎng)絡流量編號依次為0、……、n-l ;對一個粗網(wǎng)絡流量進行分流包括以下步驟(2-1)、從該粗網(wǎng)絡流量中提取數(shù)據(jù)包;(2-2)、對每一個IP數(shù)據(jù)包提取SIP和DIP兩個字段值;(2-3)、將SIP和DIP做異或運算并將結(jié)果對n取余,得到的結(jié)果即為該IP數(shù)據(jù)包將被 分流到的細網(wǎng)絡流量編號,然后將該IP數(shù)據(jù)包分流到具有相同編號的細網(wǎng)絡流量。
      3. 如權(quán)利要求1所述一種網(wǎng)絡流量還原方法,其特征在于,所述步驟(2)是TCP會話重組模塊以TCP會話的源IP地址SIP、目的IP地址DIP、源端口號和目的端口 號組成的四元組為key,并以上述四個參數(shù)經(jīng)異或運算計算哈希值,分別創(chuàng)建對應于IPv4 和對應于IPv6的TCP會話散列表;散列表的節(jié)點為一個TCP會話, 一個TCP會話包含兩個 鏈表,分別存放該TCP會話源端發(fā)送的數(shù)據(jù)包和目的端發(fā)送的數(shù)據(jù)包,且每一個鏈表中的 數(shù)據(jù)包都按TCP序列號和確認號重新排列;包括以下步驟(3-1) 、 TCP重組模塊獲取IP碎片重組模塊處理后的IP數(shù)據(jù)包,提取其IP協(xié)議版本; 判斷其是否是TCP數(shù)據(jù)包,如果是,則轉(zhuǎn)步驟(3-2);否則轉(zhuǎn)步驟(3-1);(3-2)、提取數(shù)據(jù)包中的四元組,通過哈希計算并在相應會話散列表中查找是否存在 同一四元組的TCP會話,如果是,則取得該key的TCP會話并轉(zhuǎn)步驟(3_3);否則轉(zhuǎn)步驟 (3-4);(3-3)、獲取該數(shù)據(jù)包TCP包頭中的FIN、RST、ACK、序列號、確認號、窗口大小等字段值, 然后把該數(shù)據(jù)包在步驟(3-2)中查找到的TCP會話中利用上述獲得的FIN、 RST、 ACK、序列 號、確認號、窗口大小等字段值進行重組排序操作,并且更新該TCP會話的狀態(tài),如果狀態(tài) 變?yōu)榻Y(jié)束、重置或超時,則轉(zhuǎn)步驟(3-5),否則轉(zhuǎn)步驟(3-1);(3-4)、由于在相應會話散列表中不存在同一 Key的TCP會話,所以在該會話散列表中 創(chuàng)建具有相應Key的散列表節(jié)點,轉(zhuǎn)步驟(3-1);(3-5)、將TCP會話從與其對應的會話散列表中取出并轉(zhuǎn)移到待處理的TCP會話隊列中;(3-6)、在TCP重組的過程中啟動一個定時器,每隔5秒或者自行設定的時間去掃描分 別對應于IPv4和IPv6的兩個TCP會話散列表,以清除超過10秒或者自行設定的時間內(nèi)沒 有更新的TCP會話,并將被清除的會話轉(zhuǎn)移至待處理的TCP會話隊列中。
      4. 如權(quán)利要求1所述一種網(wǎng)絡流量還原方法,其特征在于,所述步驟(3)是(4-1)、計算該細網(wǎng)絡流量的負載指數(shù)I,并將該指數(shù)與給定的負載閾值比較如果I大 于負載閾值,則該細網(wǎng)絡流量負載狀態(tài)為重載,轉(zhuǎn)(4-2);如果I小于等于負載閾值,則該細 網(wǎng)絡流量負載狀態(tài)為輕載,轉(zhuǎn)(4-3);(4-2)、從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,然后將 該會話完整保存于會話緩存文件中,同時將緩存會話數(shù)加一,轉(zhuǎn)(4-1);(4-3)、判斷緩存會話數(shù)是否為零,如果是,轉(zhuǎn)(4-4);否則,轉(zhuǎn)(4-5);(4-4)、從TCP會話重組模塊生成的待處理TCP會話隊列中順序提取TCP會話,并智能 分析該會話對應的時間、應用層協(xié)議、會話數(shù)據(jù)大小等會話信息,然后將該會話遞交給相應 應用層協(xié)議處理模塊,進行解析、解碼、解壓縮以完成還原處理,轉(zhuǎn)(4-6);(4-5)、從會話緩存文件中順序提取系統(tǒng)處于重載狀態(tài)時緩存的會話,并將緩存會話 數(shù)減一,然后智能分析該會話對應的應用層協(xié)議、會話數(shù)據(jù)大小等會話信息,并根據(jù)會話信 息將該會話遞交給相應的應用層協(xié)議解析還原模塊,進行解析、解碼、解壓縮以完成還原處 理,轉(zhuǎn)(4-6);(4-6)、將還原后的文件后綴名與常規(guī)文件后綴名庫進行匹配,如果該后綴名不屬于常 規(guī)后綴名庫,則通過智能分析其對應會話信息、文件頭信息和文件數(shù)據(jù)信息以確定該文件 格式,然后給該文件添加正確的后綴名,最后存儲還原生成的文件,同時將該文件的信息和 對應會話信息提交至數(shù)據(jù)庫,轉(zhuǎn)(4-1)。
      5. 如權(quán)力要求2所述一種網(wǎng)絡流量還原方法,其特征在于,所述根據(jù)服務器計算核心 數(shù)目設置粗網(wǎng)絡流量數(shù)目m是指粗網(wǎng)絡流量數(shù)目的取值等于服務器計算核心的數(shù)目;所 述根據(jù)粗網(wǎng)絡流量數(shù)目m,設置每一粗網(wǎng)絡流量分成的細網(wǎng)絡流量數(shù)目為n是指n取值為 2或4。
      6. 如權(quán)利要求l所述一種網(wǎng)絡流量還原方法,其特征在于,所述步驟(4-6)中細網(wǎng)絡流 量的負載指數(shù)L取決于如下參數(shù)對應計算核心使用率P、該細網(wǎng)絡流量重組模塊中分別對 應于IPv4與IPv6的會話散列表的裝填因子aV4禾P a V6,即L = P ( a V4+a V6);散列表 的裝填因子定義為裝填因子=填入表中的節(jié)點個數(shù)/散列表的長度。
      7. 如權(quán)利要求l所述一種網(wǎng)絡流量還原方法,其特征在于,所述步驟(1-4)和步驟 (2-3)中的異或運算采用2個字節(jié)為單位進行計算,步驟(3-2)中的哈希計算也采用2個字 節(jié)為單位進行計算將所有參與異或運算的參數(shù)均拆分成2個字節(jié)等大小的單元,如果參 數(shù)大小剛好為16位則不用拆分,然后對所有拆分后的單元進行異或計算。
      全文摘要
      本發(fā)明涉及的網(wǎng)絡流量還原方法屬于互聯(lián)網(wǎng)技術領域,本發(fā)明公開了一種還原網(wǎng)絡流量至文件的方法,該方法采用二級并行策略方法以充分挖掘多核計算機的處理效率首先捕獲高速流量,采用Mac地址異或和IP地址異或的方法進行兩次分流,將捕獲到的初始流量分解為多個細流量,實現(xiàn)流量的二級并行分解;然后在細流量還原流程中有數(shù)據(jù)傳遞的工作模塊之間采用“生產(chǎn)者-消費者模型”松耦合的多線程架構(gòu)實現(xiàn)在線程層次上的并行。另外該方法對每一細流量實現(xiàn)負載均衡,且同時支持IPv4和IPv6協(xié)議。本發(fā)明旨在解決在高速網(wǎng)絡帶寬下將“不可見”網(wǎng)絡流量轉(zhuǎn)換為計算機可直接處理的信息的問題,為識別和阻斷不良非法的網(wǎng)絡信息傳播提供技術支持。
      文檔編號H04L29/06GK101795230SQ20101011258
      公開日2010年8月4日 申請日期2010年2月23日 優(yōu)先權(quán)日2010年2月23日
      發(fā)明者倪華, 鄭慶華, 陶敬 申請人:西安交通大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1