国产精品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>

      加速DPI設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法和DPI設(shè)備與流程

      文檔序號:11693114閱讀:353來源:國知局
      加速DPI設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法和DPI設(shè)備與流程

      本發(fā)明涉及網(wǎng)絡技術(shù)領(lǐng)域,特別涉及一種加速dpi設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法和dpi設(shè)備。



      背景技術(shù):

      近年來,網(wǎng)絡發(fā)展越來越迅速,網(wǎng)絡的規(guī)模不斷擴大,網(wǎng)絡的用戶數(shù)不斷增加,網(wǎng)絡提供的應用和業(yè)務種類不斷豐富,網(wǎng)絡也變得越來越復雜。網(wǎng)絡新業(yè)務層出不窮,有p2p、voip、流媒體、webtv、音視頻聊天、互動在線游戲和虛擬現(xiàn)實等。新業(yè)務的數(shù)據(jù)流量是相當巨大,在很大程度上加重了網(wǎng)絡擁塞,降低了網(wǎng)絡性能,劣化了網(wǎng)絡服務質(zhì)量,妨礙了正常的網(wǎng)絡業(yè)務的開展和關(guān)鍵應用的普及。

      完善網(wǎng)絡的運維管理僅僅是網(wǎng)絡需求的一方面。隨著大數(shù)據(jù)相關(guān)技術(shù)越來越受到關(guān)注,網(wǎng)絡中的大數(shù)據(jù)蘊含的重大價值如何被充分挖掘出來也需要深入研究,這也提出了如何將網(wǎng)絡中的大數(shù)據(jù)采集上來并很好的分門別類,從而方便在線分析和數(shù)據(jù)挖掘。深度包檢測(deeppacketinspection,dpi)是解決上述問題和滿足上述需求的基礎(chǔ)技術(shù)。dpi技術(shù)基于二層到七層網(wǎng)絡協(xié)議的分析,能夠?qū)崿F(xiàn)對網(wǎng)絡中數(shù)據(jù)的精確感知,從而做到對網(wǎng)絡現(xiàn)狀的精確把握。

      當前dpi主要使用專有的硬件設(shè)備,價格昂貴,這不便于升級與擴展,而通用設(shè)備則支持快速的升級與擴展但在性能上會有較大的下降。如何在通用平臺上增強dpi設(shè)備的數(shù)據(jù)處理與轉(zhuǎn)發(fā)能力便顯得尤為重要。

      目前,現(xiàn)有dpi設(shè)備軟件架構(gòu)傳統(tǒng)實現(xiàn)通常是將報文傳給網(wǎng)卡,再送到內(nèi)核netfilter模塊處理,有的甚至需要把報文傳遞到tcp/ip上層協(xié)議處理,最后再將報文轉(zhuǎn)發(fā)出去。整個過程要經(jīng)歷cpu中斷處理、網(wǎng)絡協(xié)議棧、內(nèi)核上下文切換等多個費時的cpu操作和i/o處理環(huán)節(jié),由此導致數(shù)據(jù)處理與轉(zhuǎn)發(fā)速度降低,影響設(shè)備處理效率。



      技術(shù)實現(xiàn)要素:

      為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法和深度包檢測設(shè)備。所述技術(shù)方案如下:

      一方面,一種加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法,包括以下步驟:

      將接收到的流量均勻的分散到多個流量識別分類處理模塊;

      每一個流量識別分類處理模塊根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息;

      將經(jīng)過協(xié)議檢測后的流量進行轉(zhuǎn)發(fā)。

      進一步的,所述深度包檢測設(shè)備至少包括第一網(wǎng)卡和第二網(wǎng)卡,其中,所述將接收到的流量均勻的分散到多個流量識別分類處理模塊的步驟具體包括:

      判斷流量是從所述第一網(wǎng)卡接收到還是從所述第二網(wǎng)卡接收到;

      如果流量是從所述第一網(wǎng)卡接收到,則確定接收到的流量為上行流量,并根據(jù)流量中報文的源ip地址或者源mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊;

      如果流量是從所述第二網(wǎng)卡接收到,則確定接收到的流量為下行流量,并根據(jù)流量中報文的目的ip地址或者目的mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      進一步的,所述每一個流量識別分類處理模塊根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息的步驟具體包括:

      提取流量中報文的唯一標識;

      根據(jù)所述唯一標識判斷該報文是否屬于已有的連接跟蹤;

      如果該報文不是屬于已有的連接跟蹤,則以該報文的唯一標識為鍵值為該報文創(chuàng)建新的連接跟蹤,并進行協(xié)議檢測,以及記錄檢測到的連接跟蹤信息。

      進一步的,所述每一個流量識別分類處理模塊根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息的步驟具體還包括:

      如果該報文屬于已有的連接跟蹤,則判斷該報文所屬的連接跟蹤是否完成協(xié)議檢測;

      如果沒有完成協(xié)議檢測,則進行協(xié)議檢測;

      如果完成了協(xié)議檢測,則更新該報文所屬的連接跟蹤信息。

      進一步的,所述將經(jīng)過協(xié)議檢測后的流量進行轉(zhuǎn)發(fā)的步驟包括:

      根據(jù)預設(shè)的訪問控制列表將經(jīng)過流量識別分類處理模塊處理后的流量進行過濾;

      將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)。

      進一步的,所述將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)的步驟具體包括:

      將過濾后的上行流量經(jīng)過限速和整形處理后通過所述第二網(wǎng)卡進行轉(zhuǎn)發(fā);

      或者將過濾后的下行流量經(jīng)過限速和整形處理后通過所述第一網(wǎng)卡進行轉(zhuǎn)發(fā)。

      進一步的,所述加速深度包檢測設(shè)備設(shè)有多核cpu,所述每個流量識別分類處理模塊通過任務綁定到每個cpu核上。

      進一步的,采用輪詢模式接收和轉(zhuǎn)發(fā)報文,并且不同的cpu核與核之間通過共享內(nèi)存方式進行通信。

      進一步的,且加速深度包檢測設(shè)備的內(nèi)存采用大頁內(nèi)存管理方式。

      進一步的,所述方法還包括以下步驟:

      對于已經(jīng)深度檢測多個報文仍然無法確定協(xié)議類型的數(shù)據(jù)連接,則放棄該條數(shù)據(jù)連接的檢測。

      另一方面,一種深度包檢測設(shè)備,包括負載均衡模塊、訪問控制模塊、qos模塊和多個流量識別分類處理模塊,其中,

      所述負載均衡模塊,用于將接收到的流量均勻的分散到多個流量識別分類處理模塊;

      每一個流量識別分類處理模塊,用于根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息;

      所述訪問控制模塊,用于根據(jù)預設(shè)的訪問控制列表將經(jīng)過流量識別分類處理模塊處理后的流量進行過濾;

      所述qos模塊,用于將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)。

      進一步的,所述深度包檢測設(shè)備至少包括第一網(wǎng)卡和第二網(wǎng)卡,其中,所述負載均衡模塊具體用于:

      判斷流量是從所述第一網(wǎng)卡接收到還是從所述第二網(wǎng)卡接收到;

      如果流量是從所述第一網(wǎng)卡接收到,則確定接收到的流量為上行流量,并根據(jù)流量中報文的源ip地址或者源mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      進一步的,所述負載均衡模塊具體還用于:

      如果流量是從所述第二網(wǎng)卡接收到,則確定接收到的流量為下行流量,并根據(jù)流量中報文的目的ip地址或者目的mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      進一步的,每一個流量識別分類處理模塊,具體用于:

      提取流量中報文的唯一標識;

      根據(jù)所述唯一標識判斷該報文是否屬于已有的連接跟蹤;

      如果該報文不是屬于已有的連接跟蹤,則以該報文的唯一標識為鍵值為該報文創(chuàng)建新的連接跟蹤,并進行協(xié)議檢測,以及記錄檢測到的連接跟蹤信息。

      進一步的,每一個流量識別分類處理模塊,具體還用于:

      如果該報文屬于已有的連接跟蹤,則判斷該報文所屬的連接跟蹤是否完成協(xié)議檢測;

      如果沒有完成協(xié)議檢測,則進行協(xié)議檢測;

      如果完成了協(xié)議檢測,則更新該報文所屬的連接跟蹤信息。

      進一步的,所述訪問控制列表包括白名單訪問控制列表或者黑名單訪問控制列表,其中,所述訪問控制模塊,具體用于:

      將流量中與預設(shè)白名單訪問控制列表相符的報文轉(zhuǎn)發(fā),將流量中與預設(shè)白名單訪問控制列表不相符的報文丟棄;

      或者將流量中與預設(shè)黑名單訪問控制列表相符的報文丟棄,將流量中與預設(shè)黑名單訪問控制列表不相符的報文轉(zhuǎn)發(fā)。

      進一步的,所述qos模塊,具體用于:

      將過濾后的上行流量經(jīng)過限速和整形處理后通過所述第二網(wǎng)卡進行轉(zhuǎn)發(fā);

      或者將過濾后的下行流量經(jīng)過限速和整形處理后通過所述第一網(wǎng)卡進行轉(zhuǎn)發(fā)。

      本發(fā)明實施例提供的技術(shù)方案帶來的有益效果包括:(1)通過綁定任務到多個cpu上,并行執(zhí)行以提升效率,不同的業(yè)務在相互獨立的cpu上面處理,業(yè)務之間互不干擾,不會搶占cpu,從而也可以充分利用每一個cpu核的資源,同時本發(fā)明還可以定制一些業(yè)務,如流量數(shù)據(jù)收集業(yè)務、系統(tǒng)日志業(yè)務、流量控制業(yè)務、流量異常提醒等;(2)根據(jù)報文的連接跟蹤信息判斷報文是否需要協(xié)議深度檢測,還是進入下一步處理,對已完成檢測的報文不需要重新檢測,從而減少了冗余處理。使用連接跟蹤表來記錄連接狀態(tài),大部分數(shù)據(jù)連接僅需檢測連接的控制報文或首包,從而減少了處理時間;(3)使用hugepage,即大頁內(nèi)存管理方式,與傳統(tǒng)的4kb的普通頁管理方式相比,本發(fā)明使用hugepage為管理大內(nèi)存(例如8gb以上)更高效、更穩(wěn)定;(4)本發(fā)明采用輪詢模式,減少中斷機制時間開銷,使用共享內(nèi)存的方式,減少了內(nèi)存拷貝,提升了處理性能;(5)本發(fā)明的技術(shù)方案實施不需要更改內(nèi)核協(xié)議棧,減少優(yōu)化可能帶來的風險,并且操作起來更加簡單,維護方便;(6)本發(fā)明的技術(shù)方案所采用的硬件花費成本低,僅僅通過使用2張萬兆網(wǎng)卡分別作為數(shù)據(jù)上、下行,整體性能達到16g~20g,通過這種方案可以節(jié)約成本并提高性能。

      附圖說明

      為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明一實施方式中加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法流程圖;

      圖2為本發(fā)明一實施方式中深度包檢測設(shè)備在網(wǎng)絡中實際位置示意圖;

      圖3為本發(fā)明一實施方式中圖1所示步驟s1的詳細子步驟流程圖;

      圖4為本發(fā)明一實施方式中圖1所示步驟s2的詳細子步驟流程圖;

      圖5為本發(fā)明一實施方式中圖1所示步驟s3的詳細子步驟流程圖;

      圖6為本發(fā)明一實施方式中深度包檢測設(shè)備10的內(nèi)部結(jié)構(gòu)示意圖。

      具體實施方式

      為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      以下將對本發(fā)明所提供的一種加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法進行詳細說明。

      請參閱圖1,為本發(fā)明一實施方式中加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法流程圖。

      在一實施方式中,該加速深度包檢測設(shè)備數(shù)據(jù)處理與轉(zhuǎn)發(fā)的方法應用于深度包檢測(deeppacketinspection,dpi)設(shè)備,其中,所述dpi設(shè)備在網(wǎng)絡中的實際位置如圖2所示。

      請參閱圖2,所示為本發(fā)明一實施方式中深度包檢測設(shè)備在網(wǎng)絡中實際位置示意圖。

      如圖2所示,dpi設(shè)備設(shè)置在網(wǎng)絡出口處,dpi設(shè)備將互聯(lián)網(wǎng)中的網(wǎng)絡數(shù)據(jù)通過交換機、寬帶接入服務器端等用戶側(cè)設(shè)備下載給不同的的用戶主機(例如主機a和b),不同的用戶通過各自的主機可以將相關(guān)數(shù)據(jù)上傳到互聯(lián)網(wǎng),上傳的相關(guān)數(shù)據(jù)通過交換機、寬帶接入服務器端等用戶側(cè)設(shè)備發(fā)送至dpi設(shè)備,經(jīng)由dpi設(shè)備的處理后發(fā)送至互聯(lián)網(wǎng)。dpi設(shè)備不僅能處理下行流量,還能處理上行流量。dpi設(shè)備作為網(wǎng)絡接口設(shè)備,其位置可以根據(jù)實際需要靈活設(shè)置,一般部署在網(wǎng)絡出口處,也可部署在網(wǎng)絡骨干層、城域網(wǎng)和企業(yè)內(nèi)部,并不一定局限于本發(fā)明圖2所示的網(wǎng)絡位置,例如dpi設(shè)備還可以直接與不同用戶的主機連接,在此不做限定。

      請繼續(xù)參閱圖1,在步驟s1中,將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      在一實施方式中,dpi設(shè)備至少包括第一網(wǎng)卡和第二網(wǎng)卡,不論是上行流量還是下行流量,dpi設(shè)備利用第一網(wǎng)卡接收流量并利用第二網(wǎng)卡轉(zhuǎn)發(fā)流量,或者dpi設(shè)備利用第二網(wǎng)卡接收流量并利用第一網(wǎng)卡轉(zhuǎn)發(fā)流量,其中,第一網(wǎng)卡和第二網(wǎng)卡的類型可以是pci網(wǎng)卡,pci網(wǎng)卡具有兩個端口(port),每個pci網(wǎng)卡都可以運行一個dpi程序,兩個pci網(wǎng)卡就可以運行兩個dpi程序,從而達到數(shù)據(jù)處理和轉(zhuǎn)發(fā)的增倍效果,當然,第一網(wǎng)卡和第二網(wǎng)卡的類型還可以是其它類型的網(wǎng)卡,在此不做限定。

      其中,所述將接收到的流量均勻的分散到多個流量識別分類處理模塊的步驟s1具體包括s11-s13三個子步驟,如圖3所示。

      請參閱圖3,所示為本發(fā)明一實施方式中圖1所示步驟s1的詳細子步驟流程圖。

      在步驟s11中,判斷流量是從所述第一網(wǎng)卡接收到還是從所述第二網(wǎng)卡接收到。

      在一實施方式中,dpi設(shè)備中的第一網(wǎng)卡和第二網(wǎng)卡是作為上、下行接口的網(wǎng)卡,流量可以從第一網(wǎng)卡進入,也可以從第二網(wǎng)卡進入。

      如果流量是從所述第一網(wǎng)卡接收到,則在步驟s12中,確定接收到的流量為上行流量,并根據(jù)流量中報文的源ip地址或者源mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      在一實施方式中,無論哪個網(wǎng)卡在接收到流量之后,都會將流量進行負載均衡處理,即將接收到的流量均勻的分散到多個流量識別分類處理模塊,每一個流量識別分類處理模塊分擔處理一部分流量。

      如果流量是從所述第二網(wǎng)卡接收到,則在步驟s13中,確定接收到的流量為下行流量,并根據(jù)流量中報文的目的ip地址或者目的mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      在一實施方式中,負載均衡的方式根據(jù)接收的流量的流向而定,如果是上行流量則采用源ip地址或者源mac地址對接收到的流量進行均衡處理,如果是下行流量則采用目的ip地址或者目的mac地址對接收到的流量進行均衡處理。當然,在實際的應用當中,對從網(wǎng)卡接收到的流量進行負載均衡處理并不一定是嚴格的平均分配,也需要參考不同流量識別分類處理模塊的實際處理能力和當前模塊的繁忙程度,例如,如果第一流量識別分類處理模塊的實際處理能力強且當前比較空閑,則會分配到比較多的流量進行處理,如果第二流量識別分類處理模塊的實際處理能力較弱且當前比較繁忙,則會分配到比較少的流量進行處理,在此不做限定。

      不僅如此,上述除了采用ip地址字段特征進行分散流量之外,還可以采用mac地址字段特征進行分散流量,其中的處理方式與前述相類似,例如,如果流量是從所述第一網(wǎng)卡接收到,則確定接收到的流量為上行流量,并根據(jù)流量中報文的源mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊;如果流量是從所述第二網(wǎng)卡接收到,則確定接收到的流量為下行流量,并根據(jù)流量中報文的目的mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊。

      本發(fā)明實施方式在數(shù)據(jù)處理前段使用了負載均衡機制,根據(jù)報文的ip地址、mac地址等特征字段散列流量中的報文,進而避免了在大流量情況下單個任務處理能力不夠的狀況,提高了處理效率。

      請繼續(xù)參閱圖1,在步驟s2中,每一個流量識別分類處理模塊根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息。

      在一實施方式中,所述每一個流量識別分類處理模塊根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息的步驟s2具體包括s21-s26六個子步驟,如圖4所示。

      請參閱圖4,所示為本發(fā)明一實施方式中圖1所示步驟s2的詳細子步驟流程圖。

      在步驟s21中,提取流量中報文的唯一標識。

      在一實施方式中,報文的唯一標識為vlanid+五元組信息。

      在一實施方式中,唯一標識包括協(xié)議類型、源ip地址或者源mac地址、目的ip地址或者目的mac地址、源端口和目的端口,不論是上行流量還是下行流量,每一個流量識別分類處理模塊都會首先提取流量中報文的唯一標識。

      在步驟s22中,根據(jù)所述唯一標識判斷該報文是否屬于已有的連接跟蹤。

      在一實施方式中,已有的連接跟蹤表明之前已經(jīng)了數(shù)據(jù)連接,其中,已有的連接跟蹤可以采用連接跟蹤表的形式來進行維護數(shù)據(jù)連接的信息,該連接跟蹤表的內(nèi)容包括tcp/ip七層中第二層信息(例如vlan、源mac地址、目的mac地址)、tcp/ip七層中第三層信息(例如源ip地址或者源mac地址、目的ip地址或者目的mac地址、第三層協(xié)議類型)、tcp/ip七層中第四層信息(例如第四層協(xié)議類型、源端口、目的端口)、報文的個數(shù)、報文的字節(jié)數(shù)、url信息、連接狀態(tài)等。其中,判斷是否屬于已有的連接跟蹤,主要是判斷提取到的報文的唯一標識是否在連接跟蹤表內(nèi),如果在連接跟蹤表內(nèi),則表明該報文屬于已有的連接跟蹤,如果不在連接跟蹤表內(nèi),則表明該報文不屬于已有的連接跟蹤。本發(fā)明的連接跟蹤表采用大頁內(nèi)存(hugepage)管理方式,通過使用大頁內(nèi)存可以提高頁表的查詢效率,節(jié)省頁表項開銷,而且內(nèi)存數(shù)據(jù)始終在物理內(nèi)存中,不會交換到磁盤上的,如此可以讓高性能程序保持穩(wěn)定,內(nèi)存在操作系統(tǒng)啟動期間被動態(tài)分配并被保留,不會與系統(tǒng)的其它進程產(chǎn)生內(nèi)存搶占行為,保證了系統(tǒng)的穩(wěn)定運行。

      如果該報文不是屬于已有的連接跟蹤,則在步驟s23中,為該報文創(chuàng)建新的連接跟蹤,并進行協(xié)議檢測,以及記錄檢測到的連接跟蹤信息。

      在一實施方式中,為該報文創(chuàng)建新的連接跟蹤,主要是將該報文的信息添加到連接跟蹤表內(nèi),進行協(xié)議檢測主要是檢測該報文的協(xié)議類型,記錄檢測到的連接跟蹤信息需要與已有的連接跟蹤表內(nèi)的內(nèi)容相符。

      如果該報文屬于已有的連接跟蹤,則在步驟s24中,判斷該報文所屬的連接跟蹤是否完成協(xié)議檢測。

      如果完成了協(xié)議檢測,則在步驟s25中,更新該報文所屬的連接跟蹤信息。

      在一實施方式中,主要是將完成了協(xié)議檢測后得知的協(xié)議類型添加到已有的跟蹤信息表內(nèi)。

      如果沒有完成協(xié)議檢測,則在步驟s26中,進行協(xié)議檢測,然后在協(xié)議檢測完成之后將得知的協(xié)議類型添加到已有的跟蹤信息表內(nèi),更新該報文所屬的連接跟蹤信息,如步驟s25所示。本發(fā)明的實施方式通過對一條數(shù)據(jù)連接的初始報文進行深度檢測便可以確定其所屬的流量協(xié)議類型,對于檢測出協(xié)議類型的數(shù)據(jù)連接,后面收到的同一條連接的其它報文便無需再次做深度檢測,僅更新數(shù)據(jù)連接的相關(guān)信息,如此進一步提高了數(shù)據(jù)的處理效率。

      本發(fā)明實施方式對于已經(jīng)深度檢測了多個報文但仍無法確定協(xié)議類型的數(shù)據(jù)連接這種情況,采取放棄的措施,即放棄這條數(shù)據(jù)連接的檢測。這樣一來在很大程度上提高了報文檢測效率,而且對于不需要再做協(xié)議檢測的數(shù)據(jù)連接,極大的提高了轉(zhuǎn)發(fā)效率,并縮減了轉(zhuǎn)發(fā)延遲。

      請繼續(xù)參閱圖1,在步驟s3中,將經(jīng)過協(xié)議檢測后的流量進行轉(zhuǎn)發(fā)。

      在一實施方式中,所述將經(jīng)過協(xié)議檢測后的流量進行轉(zhuǎn)發(fā)的步驟s3具體包括s31-s32兩個子步驟,如圖5所示。

      在步驟s31中,根據(jù)預設(shè)的訪問控制列表將經(jīng)過流量識別分類處理模塊處理后的流量進行過濾。

      在一實施方式中,訪問控制列表(accesscontrollists,acl)包括白名單訪問控制列表或者黑名單訪問控制列表,其中,所述根據(jù)預設(shè)的訪問控制列表將經(jīng)過流量識別分類處理模塊處理后的流量進行過濾的步驟s31具體包括:

      將流量中與預設(shè)白名單訪問控制列表相符的報文轉(zhuǎn)發(fā),將流量中與預設(shè)白名單訪問控制列表不相符的報文丟棄;

      或者將流量中與預設(shè)黑名單訪問控制列表相符的報文丟棄,將流量中與預設(shè)黑名單訪問控制列表不相符的報文轉(zhuǎn)發(fā)。

      在一實施方式中,白名單訪問控制列表或者黑名單訪問控制列表可以通過唯一標識來進行設(shè)置,例如白名單可以包含有一個或者多個協(xié)議類型、一個或者多個源ip地址或者源mac地址、一個或者多個目的ip地址或者目的mac地址、一個或者多個源端口、一個或者多個目的端口。對應的白名單訪問控制列表為:如果接收到的報文信息在所述白名單中存在,則將該報文進行轉(zhuǎn)發(fā),如果接收到的報文信息在所述白名單中不存在,則將該報文進行丟棄。對應的黑名單訪問控制列表為:如果接收到的報文信息在所述黑名單中存在,則將該報文進行丟棄,如果接收到的報文信息在所述黑名單中不存在,則將該報文進行轉(zhuǎn)發(fā)。

      在步驟s32中,將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)。

      在一實施方式中,所述將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)的步驟s32具體包括:

      將過濾后的上行流量經(jīng)過限速和整形處理后通過所述第二網(wǎng)卡進行轉(zhuǎn)發(fā);

      或者將過濾后的下行流量經(jīng)過限速和整形處理后通過所述第一網(wǎng)卡進行轉(zhuǎn)發(fā)。

      在一實施方式中,將過濾后的流量經(jīng)過限速和整形處理,保證了網(wǎng)絡的正常運行,在處理完之后根據(jù)報文信息決定發(fā)送報文到上行網(wǎng)卡還是下行網(wǎng)卡。

      在一實施方式中,所述方法還包括以下步驟:

      對于已經(jīng)深度檢測多個報文仍然無法確定協(xié)議類型的數(shù)據(jù)連接,則放棄該條數(shù)據(jù)連接的檢測。

      本發(fā)明實施方式使用了輪詢模式接收和轉(zhuǎn)發(fā)報文,避免了中斷機制時間開銷,同時在不同cpu間通過共享內(nèi)存方式通信,避免報文的多次拷貝。具體包括:所述加速深度包檢測設(shè)備設(shè)有多核cpu,所述每個流量識別分類處理模塊通過任務綁定到每個cpu核上,采用輪詢模式接收和轉(zhuǎn)發(fā)報文,并且在不同的cpu核與核之間進行數(shù)據(jù)傳輸時不需要經(jīng)過報文拷貝,只是通過共享內(nèi)存方式處理報文,所有任務之間通信都是通過共享內(nèi)存方式通信實現(xiàn)的,且所述加速深度包檢測設(shè)備的內(nèi)存采用大頁內(nèi)存管理方式。本發(fā)明的數(shù)據(jù)處理跳過了內(nèi)核,數(shù)據(jù)在網(wǎng)卡接收后,直接發(fā)往應用層面,無需經(jīng)過內(nèi)核處理,簡化了處理流程。

      以下將對本發(fā)明所提供的一種深度包檢測設(shè)備進行詳細說明。

      請參閱圖5,所示為本發(fā)明一實施方式中深度包檢測設(shè)備10的內(nèi)部結(jié)構(gòu)示意圖。

      在一實施方式中,深度包檢測設(shè)備10設(shè)置在網(wǎng)絡出口處,深度包檢測設(shè)備10將互聯(lián)網(wǎng)中的網(wǎng)絡數(shù)據(jù)通過交換機、寬帶接入服務器端等用戶側(cè)設(shè)備下載給不同的的用戶主機(例如主機a和b),不同的用戶通過各自的主機可以將相關(guān)數(shù)據(jù)上傳到互聯(lián)網(wǎng),上傳的相關(guān)數(shù)據(jù)通過交換機、寬帶接入服務器端等用戶側(cè)設(shè)備發(fā)送至深度包檢測設(shè)備10,經(jīng)由深度包檢測設(shè)備10的處理后發(fā)送至互聯(lián)網(wǎng)。深度包檢測設(shè)備10不僅能處理下行流量,還能處理上行流量。深度包檢測設(shè)備10作為網(wǎng)絡接口設(shè)備,其位置可以根據(jù)實際需要靈活設(shè)置,一般部署在網(wǎng)絡出口處,也可部署在網(wǎng)絡骨干層、城域網(wǎng)和企業(yè)內(nèi)部,并不一定局限于本發(fā)明圖2所示的網(wǎng)絡位置,例如深度包檢測設(shè)備10還可以直接與不同用戶的主機連接,在此不做限定。

      在一實施方式中,深度包檢測設(shè)備10包括第一網(wǎng)卡11、第二網(wǎng)卡12、負載均衡模塊13、多個流量識別分類處理模塊14、訪問控制模塊15、qos模塊16。

      負載均衡模塊13,用于將接收到的流量均勻的分散到多個流量識別分類處理模塊。其中,深度包檢測設(shè)備10至少包括第一網(wǎng)卡11和第二網(wǎng)卡12,不論是上行流量還是下行流量,深度包檢測設(shè)備10利用第一網(wǎng)卡11接收流量并利用第二網(wǎng)卡12轉(zhuǎn)發(fā)流量,或者深度包檢測設(shè)備10利用第二網(wǎng)卡12接收流量并利用第一網(wǎng)卡11轉(zhuǎn)發(fā)流量,其中,第一網(wǎng)卡11和第二網(wǎng)卡12的類型可以是pci網(wǎng)卡,pci網(wǎng)卡具有兩個端口(port),每個pci網(wǎng)卡都可以運行一個dpi程序,兩個pci網(wǎng)卡就可以運行兩個dpi程序,從而達到數(shù)據(jù)處理和轉(zhuǎn)發(fā)的增倍效果,當然,第一網(wǎng)卡11和第二網(wǎng)卡12的類型還可以是其它類型的網(wǎng)卡,在此不做限定。

      在一實施方式中,負載均衡模塊13,具體用于:

      判斷流量是從所述第一網(wǎng)卡11接收到還是從所述第二網(wǎng)卡12接收到;

      如果流量是從所述第一網(wǎng)卡11接收到,則確定接收到的流量為上行流量,并根據(jù)流量中報文的源ip地址或者源mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊14。

      在一實施方式中,負載均衡模塊13,具體還用于:

      如果流量是從所述第二網(wǎng)卡12接收到,則確定接收到的流量為下行流量,并根據(jù)流量中報文的目的ip地址或者目的mac地址將接收到的流量均勻的分散到多個流量識別分類處理模塊14。

      其中,深度包檢測設(shè)備10中的第一網(wǎng)卡11和第二網(wǎng)卡12是作為上、下行接口的網(wǎng)卡,流量可以從第一網(wǎng)卡11進入,也可以從第二網(wǎng)卡12進入。其中,無論哪個網(wǎng)卡在接收到流量之后,都會將流量進行負載均衡處理,即將接收到的流量均勻的分散到多個流量識別分類處理模塊14,每一個流量識別分類處理模塊14分擔處理一部分流量。其中,負載均衡的方式根據(jù)接收的流量的流向而定,如果是上行流量則采用源ip地址或者源mac地址對接收到的流量進行均衡處理,如果是下行流量則采用目的ip地址或者目的mac地址對接收到的流量進行均衡處理。當然,在實際的應用當中,對從網(wǎng)卡接收到的流量進行負載均衡處理并不一定是嚴格的平均分配,也需要參考不同流量識別分類處理模塊14的實際處理能力和當前模塊的繁忙程度,例如,如果第一流量識別分類處理模塊的實際處理能力強且當前比較空閑,則會分配到比較多的流量進行處理,如果第二流量識別分類處理模塊的實際處理能力較弱且當前比較繁忙,則會分配到比較少的流量進行處理,在此不做限定。

      每一個流量識別分類處理模塊14,用于根據(jù)各自所接收到的流量進行協(xié)議檢測,并更新連接跟蹤信息。

      在一實施方式中,每一個流量識別分類處理模塊14,具體用于:

      提取流量中報文的唯一標識;

      根據(jù)所述唯一標識判斷該報文是否屬于已有的連接跟蹤;

      如果該報文不是屬于已有的連接跟蹤,則以該報文的唯一標識為鍵值為該報文創(chuàng)建新的連接跟蹤,并進行協(xié)議檢測,以及記錄檢測到的連接跟蹤信息。

      在一實施方式中,唯一標識包括協(xié)議類型、源ip地址或者源mac地址、目的ip地址或者目的mac地址、源端口和目的端口,不論是上行流量還是下行流量,每一個流量識別分類處理模塊都會首先提取流量中報文的唯一標識。

      在一實施方式中,已有的連接跟蹤表明之前已經(jīng)了數(shù)據(jù)連接,其中,已有的連接跟蹤可以采用連接跟蹤表的形式來進行維護數(shù)據(jù)連接的信息,該連接跟蹤表的內(nèi)容包括tcp/ip七層中第二層信息(例如vlan、源mac地址、目的mac地址)、tcp/ip七層中第三層信息(例如源ip地址或者源mac地址、目的ip地址或者目的mac地址、第三層協(xié)議類型)、tcp/ip七層中第四層信息(例如第四層協(xié)議類型、源端口、目的端口)、報文的個數(shù)、報文的字節(jié)數(shù)、url信息、連接狀態(tài)等。其中,判斷是否屬于已有的連接跟蹤,主要是判斷提取到的報文的唯一標識是否在連接跟蹤表內(nèi),如果在連接跟蹤表內(nèi),則表明該報文屬于已有的連接跟蹤,如果不在連接跟蹤表內(nèi),則表明該報文不屬于已有的連接跟蹤。本發(fā)明的連接跟蹤表采用大頁內(nèi)存(hugepage)管理方式,通過使用大頁內(nèi)存可以提高頁表的查詢效率,節(jié)省頁表項開銷,而且內(nèi)存數(shù)據(jù)始終在物理內(nèi)存中,不會交換到磁盤上的,如此可以讓高性能程序保持穩(wěn)定,內(nèi)存在操作系統(tǒng)啟動期間被動態(tài)分配并被保留,不會與系統(tǒng)的其它進程產(chǎn)生內(nèi)存搶占行為,保證了系統(tǒng)的穩(wěn)定運行。

      在一實施方式中,為該報文創(chuàng)建新的連接跟蹤,主要是將該報文的信息添加到連接跟蹤表內(nèi),進行協(xié)議檢測主要是檢測該報文的協(xié)議類型,記錄檢測到的連接跟蹤信息需要與已有的連接跟蹤表內(nèi)的內(nèi)容相符。

      在一實施方式中,每一個流量識別分類處理模塊14,具體還用于:

      如果該報文屬于已有的連接跟蹤,則判斷該報文所屬的連接跟蹤是否完成協(xié)議檢測;

      如果沒有完成協(xié)議檢測,則進行協(xié)議檢測;

      如果完成了協(xié)議檢測,則更新該報文所屬的連接跟蹤信息。

      在一實施方式中,進行協(xié)議檢測,然后在協(xié)議檢測完成之后將得知的協(xié)議類型添加到已有的跟蹤信息表內(nèi),更新該報文所屬的連接跟蹤信息。本發(fā)明的實施方式通過對一條數(shù)據(jù)連接的初始報文進行深度檢測便可以確定其所屬的流量協(xié)議類型,對于檢測出協(xié)議類型的數(shù)據(jù)連接,后面收到的同一條連接的其它報文便無需再次做深度檢測,僅更新數(shù)據(jù)連接的相關(guān)信息,如此進一步提高了數(shù)據(jù)的處理效率。

      訪問控制模塊15,用于根據(jù)預設(shè)的訪問控制列表將經(jīng)過流量識別分類處理模塊處理后的流量進行過濾。

      在一實施方式中,訪問控制列表包括白名單訪問控制列表或者黑名單訪問控制列表,其中,所述訪問控制模塊15,具體用于:

      將流量中與預設(shè)白名單訪問控制列表相符的報文轉(zhuǎn)發(fā),將流量中與預設(shè)白名單訪問控制列表不相符的報文丟棄;

      或者將流量中與預設(shè)黑名單訪問控制列表相符的報文丟棄,將流量中與預設(shè)黑名單訪問控制列表不相符的報文轉(zhuǎn)發(fā)。

      在一實施方式中,白名單訪問控制列表或者黑名單訪問控制列表可以通過唯一標識來進行設(shè)置,例如白名單可以包含有一個或者多個協(xié)議類型、一個或者多個源ip地址或者源mac地址、一個或者多個目的ip地址或者目的mac地址、一個或者多個源端口、一個或者多個目的端口。對應的白名單訪問控制列表為:如果接收到的報文信息在所述白名單中存在,則將該報文進行轉(zhuǎn)發(fā),如果接收到的報文信息在所述白名單中不存在,則將該報文進行丟棄。對應的黑名單訪問控制列表為:如果接收到的報文信息在所述黑名單中存在,則將該報文進行丟棄,如果接收到的報文信息在所述黑名單中不存在,則將該報文進行轉(zhuǎn)發(fā)。

      本發(fā)明提供的訪問控制模塊15用于對流量進行過濾,可以添加流量黑名單或者白名單,而且可以根據(jù)具體情況進行配置。

      qos模塊16,用于將過濾后的流量經(jīng)過限速和整形處理后進行轉(zhuǎn)發(fā)。

      在一實施方式中,qos模塊16,具體用于:

      將過濾后的上行流量經(jīng)過限速和整形處理后通過所述第二網(wǎng)卡進行轉(zhuǎn)發(fā);

      或者將過濾后的下行流量經(jīng)過限速和整形處理后通過所述第一網(wǎng)卡進行轉(zhuǎn)發(fā)。

      在一實施方式中,將過濾后的流量經(jīng)過限速和整形處理,保證了網(wǎng)絡的正常運行,在處理完之后根據(jù)報文信息決定發(fā)送報文到上行網(wǎng)卡還是下行網(wǎng)卡。

      本發(fā)明提供的qos模塊16可以采取qos策略以達到控制用戶流量、限速、流量整形等目的。

      除此之外,在本發(fā)明的其它實施方式中,深度包檢測設(shè)備10還可以包括后臺數(shù)據(jù)采集模塊(圖中未畫出),主要用于負責后臺數(shù)據(jù)的統(tǒng)計處理。后臺數(shù)據(jù)采集模塊根據(jù)前面幾個任務記錄的連接跟蹤信息來采集數(shù)據(jù),具體包括首先遍歷連接跟蹤表,并根據(jù)連接創(chuàng)建時間、系統(tǒng)當前時間來判斷連接是否超時,刪除超時連接。維護了多個數(shù)據(jù)庫來供多個模塊使用,其中多個數(shù)據(jù)庫分別包括“主要數(shù)據(jù)庫”、“異常數(shù)據(jù)庫”、“日志數(shù)據(jù)庫”、“url數(shù)據(jù)庫”。

      其中,后臺數(shù)據(jù)采集模塊具體包括數(shù)據(jù)庫統(tǒng)計子模塊、流量異常提醒子模塊、系統(tǒng)日志子模塊以及url收集子模塊這四個子模塊。

      數(shù)據(jù)庫統(tǒng)計子模塊,用于負責統(tǒng)計數(shù)據(jù)并插入數(shù)據(jù)庫,從而保存數(shù)據(jù),包含了實時流量狀況,例如top用戶、top應用、top連接,也包含了累計流量狀態(tài),例如24小時流量趨勢、應用流量累計分布情況等。其中,數(shù)據(jù)庫統(tǒng)計子模塊的數(shù)據(jù)庫設(shè)計共分為四張表,這個是主要的數(shù)據(jù)庫,保存整體的信息,四張表包括:

      dict表:即數(shù)據(jù)字典表,用于存儲屬性id和屬性名稱的對應關(guān)系,可以通過配置文件增加;

      protocol表:即協(xié)議表,用于存儲協(xié)議id和協(xié)議名稱的對應關(guān)系,增加規(guī)則庫將導致該表增加;

      flow表:即流表,將記錄每條流從開始到結(jié)束的統(tǒng)計信息,包括7層信息、流量數(shù)據(jù)等;

      flow_section表:即流表片段,每單位時間記錄一次流的動態(tài)信息。

      流量異常提醒子模塊,用于流量異常提醒模塊主要負責監(jiān)測報文是否異常,及時發(fā)出警告。流量異常提醒子模塊根據(jù)連接跟蹤信息判斷是否異常流量,并記錄到異常數(shù)據(jù)庫。異常的檢測算法有很多種,比如平時正常的大流量突然在某天中斷了,比如突然大量的tcpsynrst等流量。

      系統(tǒng)日志子模塊,用于負責記錄系統(tǒng)事件的發(fā)生信息,包括流量日志、會話日志、url日志等。系統(tǒng)日志子模塊讀取連接跟蹤信息,并分類為流量日志、會話日志、url日志,把日志信息寫入日志數(shù)據(jù)庫。

      url收集子模塊,用于負責采集url,并插入數(shù)據(jù)庫。其中,url收集子模塊在遍歷連接跟蹤時候,判斷當前連接協(xié)議類型是否是http,如果是則提取出http里面的url信息并存入url數(shù)據(jù)庫。

      其中,本發(fā)明提供的數(shù)據(jù)庫統(tǒng)計子模塊、流量異常提醒子模塊、系統(tǒng)日志子模塊以及url收集子模塊不需要直接得到報文,避免了任務處理影響數(shù)據(jù)轉(zhuǎn)發(fā),這些任務可以從連接跟蹤中獲取數(shù)據(jù)信息,并做相應的分析處理,根據(jù)用戶具體定制需求,還可以添加更多的業(yè)務模塊,比如收集dns、特定服務器ip地址等。

      本發(fā)明提供的一種深度包檢測設(shè)備10,使用了輪詢模式接收和轉(zhuǎn)發(fā)報文,避免了中斷機制時間開銷,同時在不同cpu間通過共享內(nèi)存方式通信,避免報文的多次拷貝。具體包括:采用輪詢模式接收和轉(zhuǎn)發(fā)報文,并且在不同的cpu核與核之間進行數(shù)據(jù)傳輸時不需要經(jīng)過報文拷貝,只是通過共享內(nèi)存方式處理報文,所有任務之間通信都是通過共享內(nèi)存方式通信實現(xiàn)的。本發(fā)明的數(shù)據(jù)處理跳過了內(nèi)核,數(shù)據(jù)在網(wǎng)卡接收后,直接發(fā)往應用層面,無需經(jīng)過內(nèi)核處理,簡化了處理流程。

      以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

      通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

      以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1