亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于混合模式匹配算法的網(wǎng)絡(luò)入侵檢測

        2022-12-01 01:06:12琰,馬強(qiáng)
        計算機(jī)測量與控制 2022年11期
        關(guān)鍵詞:模式匹配有效載荷緩沖區(qū)

        周 琰,馬 強(qiáng)

        (國家氣象信息中心,北京 100081)

        0 引言

        隨著計算機(jī)網(wǎng)絡(luò)入侵技術(shù)的快速發(fā)展,防火墻、用戶身份驗證和數(shù)據(jù)加密等傳統(tǒng)安全技術(shù)已無法充分保障網(wǎng)絡(luò)安全[1]。網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS)作為對網(wǎng)絡(luò)傳輸進(jìn)行即時監(jiān)視的防御機(jī)制,可以有效提高網(wǎng)絡(luò)系統(tǒng)的安全性[2]。NIDS可分為兩類[3]:基于異常的檢測和基于模式的檢測。其中,基于異常的檢測將入侵者不同于正常網(wǎng)絡(luò)的異常行為識別為惡性攻擊,從而可以檢測到未知和已知攻擊,但檢測結(jié)果假陽性率高[4];基于模式的檢測通過匹配預(yù)定義的攻擊模式來檢測異常,具有操作簡單、誤報率低的優(yōu)點,但無法檢測新型入侵攻擊模式[5]。

        通常,當(dāng)數(shù)據(jù)包有效載荷中識別出任何異常模式,NIDS將發(fā)出警告并攔截該數(shù)據(jù)包,從而保護(hù)網(wǎng)絡(luò)中的正常資源[6]。當(dāng)采用基于模式的檢測設(shè)計NIDS時,模式匹配過程占NIDS執(zhí)行時間約70%[7],設(shè)計出高效的模式匹配算法對模式識別至關(guān)重要。模式匹配消耗系統(tǒng)執(zhí)行時間的70%,是影響NIDDS系統(tǒng)整體性能的關(guān)鍵因素。模式匹配算法可以分為單模式匹配和多模式匹配。其中,單模式匹配是在一個字符串內(nèi)找到單一模式,例如,字符串查找(KMP)算法[8]和字符串匹配(BM)算法[9];多模式匹配可以同時識別一個字符串中的多個模式,例如,Wu-Manber(WM)算法[10]和Aho-Corasick匹配(AC)算法[22]。

        利用硬件處理的模式匹配算法主要通過可編程門陣列(FPGA)[11]、內(nèi)容可尋址存儲器(CAM)[12]和特定應(yīng)用集成電路(ASIC)[13],從而實現(xiàn)高效匹配速度。然而相比硬件實現(xiàn)算法相比,在通用處理器(GPP)[14]上通過軟件實現(xiàn)算法具有成本低、可擴(kuò)展性強(qiáng)的優(yōu)點。目前,單獨利用中央處理器(CPU)運(yùn)算能力無法滿足高速網(wǎng)絡(luò)條件下模式識別速度,現(xiàn)有研究側(cè)重于在軟件平臺部署具有更高并行處理能力的圖形處理單元(GPU)來實現(xiàn)模式匹配算法[15]。盡管GPU比CPU具有更強(qiáng)的處理能力,但基于GPU的模式匹配算法在內(nèi)核啟動和數(shù)據(jù)傳輸方面具有延遲,導(dǎo)致整體性能受到限制[16]。此外,CPU所支持的單指令多數(shù)據(jù)(SIMD)操作可用于加速模式匹配。因此,在CPU和GPU之間設(shè)計高效的協(xié)同模式匹配算法已成為研究熱點。文獻(xiàn)[17]提出了基于拋物線Radon變換的CPU/GPU協(xié)同模式匹配算法,通過CPU多線程與多個GPU協(xié)同并行提高網(wǎng)絡(luò)流量檢測的吞吐量。文獻(xiàn)[18]利用基于隊列的混合調(diào)度策略設(shè)計了CPU/GPU協(xié)同模式匹配算法,縮短了CPU與GPU完成各自計算任務(wù)后的等待時間,加快了網(wǎng)絡(luò)流量檢測的整體延遲。文獻(xiàn)[19]和文獻(xiàn)[20]根據(jù)CPU處理后的數(shù)據(jù)包加載到GPU平臺的移植過程,分別設(shè)計了非確定性有窮自動機(jī)(NFA)和確定性有窮自動機(jī)(DFA),優(yōu)化了網(wǎng)絡(luò)接口與CPU和GPU的并行性,從而提高了僵尸網(wǎng)絡(luò)檢測處理性能。文獻(xiàn)[21]設(shè)計了基于CPU/GPU混合模式匹配算法(HPMA)的NIDS,實現(xiàn)CPU與GPU任務(wù)分配平衡,但具有不同長度的輸入流量數(shù)據(jù)包會導(dǎo)致GPU并行處理多線程執(zhí)行時間的增加,從而導(dǎo)致網(wǎng)絡(luò)流量檢測的吞吐量下降。

        本文提出了一種具有長度約束的CPU/GPU混合模式匹配算法(LHPMA)來設(shè)計NIDS。當(dāng)傳入數(shù)據(jù)包加載到CPU時,LHPMA根據(jù)預(yù)先設(shè)定的有效載荷長度約束對數(shù)據(jù)包進(jìn)行提前分類。長度超過約束的數(shù)據(jù)包直接分配給CPU進(jìn)行快速預(yù)過濾;否則,數(shù)據(jù)包直接分配給GPU進(jìn)行全模式匹配。通過減少有效載荷長度的多樣性,提升了CPU/GPU協(xié)同檢測網(wǎng)絡(luò)入侵的性能。

        1 CPU/GPU混合模式匹配算法(HPMA)

        文獻(xiàn)[21]提出的HPMA將網(wǎng)絡(luò)入侵檢測任務(wù)分為兩部分:數(shù)據(jù)包預(yù)過濾和全模式匹配。利用CPU執(zhí)行預(yù)過濾對“正?!焙汀翱梢伞睌?shù)據(jù)包進(jìn)行分類,結(jié)合GPU對可疑數(shù)據(jù)包進(jìn)行全模式匹配。HPMA的整體架構(gòu),如圖1所示。

        圖1 HPMA的整體架構(gòu)

        首先,傳入數(shù)據(jù)包發(fā)送至CPU的主存儲器中,CPU訪問數(shù)據(jù)包并根據(jù)查找表(表名、基本信息表、間接尋址表和字段說明)對數(shù)據(jù)包進(jìn)行預(yù)過濾。當(dāng)表的大小足夠小時,可以降低內(nèi)存訪問延遲并減少預(yù)過濾時間,從而提高過濾率并降低數(shù)據(jù)傳輸延遲。然后,將預(yù)過濾后的可疑數(shù)據(jù)包發(fā)送至GPU進(jìn)行全模式匹配。由于GPU紋理內(nèi)存的訪問延遲比設(shè)備內(nèi)存的訪問延遲低得多,采用AC算法[22]對GPU紋理內(nèi)存中存儲的可疑數(shù)據(jù)包進(jìn)行全模式匹配,并將查找表(狀態(tài)轉(zhuǎn)換表、接受狀態(tài)表和失敗狀態(tài)表)復(fù)制到GPU紋理內(nèi)存中,從而加快檢測速度。最后,當(dāng)全模式匹配完成后,將數(shù)據(jù)包匹配結(jié)果復(fù)制并返回CPU主存儲器。

        通過在HPMA中使用預(yù)過濾方法,CPU可以進(jìn)行快速的預(yù)過濾并達(dá)到較高的過濾率,從而減少GPU的延遲,提升網(wǎng)絡(luò)流量檢測效率。然而,在以下條件下,HPMA性能會受到限制:①所有傳入數(shù)據(jù)包最終都傳送至GPU,造成多余操作[23];②網(wǎng)絡(luò)流量由不同長度的數(shù)據(jù)包組成,造成GPU并行處理中每個線程的執(zhí)行時間不一致[24]。針對限制①,文獻(xiàn)[25]提出了基于性能的CPU/GPU混合模式匹配算法(CHPMA),CHPMA首先估計系統(tǒng)的CPU和GPU處理能力,在運(yùn)行期間,CHPMA根據(jù)CPU的歷史過濾率和GPU處理能力自動進(jìn)行處理選擇。針對限制②,本文提出了LHPMA來提升CPU/GPU協(xié)同檢測網(wǎng)絡(luò)入侵的性能。

        2 具有長度約束的HPMA(LHPMA)

        2.1 整體架構(gòu)和程序

        與文獻(xiàn)[21]中的HPMA不同,本文提出的LHPMA在CPU對數(shù)據(jù)包進(jìn)行預(yù)過濾期間,增加了長度約束分離算法(LBSA),即傳入數(shù)據(jù)包發(fā)送至CPU主存儲器之前,通過LBSA處理后進(jìn)入預(yù)過濾緩沖區(qū)。LBSA主要用于檢查數(shù)據(jù)包有效載荷長度并對數(shù)據(jù)包進(jìn)行分類。在經(jīng)過LBSA處理后,部分?jǐn)?shù)據(jù)包存儲在CPU主存儲器中的預(yù)過濾緩沖區(qū)中,從而直接交付給CPU作預(yù)過濾的準(zhǔn)備;剩余數(shù)據(jù)包則直接發(fā)送至CPU主存儲器中的全匹配緩沖區(qū),用于存儲要由GPU處理的全模式匹配數(shù)據(jù)包。LHPMA的整體架構(gòu),如圖2所示。

        圖2 LHPMA的整體架構(gòu)

        當(dāng)CPU主存儲器中的預(yù)過濾緩沖區(qū)變滿時,則由CPU訪問數(shù)據(jù)包并根據(jù)查找表(表名、基本信息表、間接尋址表和字段說明)對數(shù)據(jù)包進(jìn)行預(yù)過濾,預(yù)過濾的數(shù)據(jù)包也發(fā)送至全匹配緩沖區(qū);當(dāng)全匹配緩沖區(qū)變滿時,緩沖區(qū)內(nèi)的數(shù)據(jù)包就會轉(zhuǎn)移到GPU設(shè)備內(nèi)存中,采用AC算法[22]對GPU紋理內(nèi)存中存儲的可疑數(shù)據(jù)包進(jìn)行全模式匹配,并將查找表(狀態(tài)轉(zhuǎn)換表、接受狀態(tài)表和失敗狀態(tài)表)復(fù)制到GPU紋理內(nèi)存中,從而加快檢測速度。最后,當(dāng)全模式匹配完成后,將數(shù)據(jù)包匹配結(jié)果復(fù)制并返回CPU主存儲器。LHPMA的整體過程,如圖3所示。

        圖3 LHPMA整體過程

        2.2 長度約束分離算法(LBSA)

        LBSA的偽代碼,如算法1所示。LBSA算法根據(jù)預(yù)先設(shè)定的有效載荷長度約束對傳入數(shù)據(jù)包進(jìn)行分類,從而減少GPU并行處理的有效載荷長度多樣性。給定數(shù)據(jù)包有效載荷集P和長度約束Lb,LBSA算法可以用Lb確定P中的有效載荷。

        算法1:長度約束分離算法(LBSA)

        輸入:數(shù)據(jù)包有效載荷集P和長度約束Lb

        輸出:數(shù)據(jù)包有效載荷匹配結(jié)果

        1)TPB←空;//預(yù)過濾緩沖區(qū)

        2)TFB←空;//全匹配緩沖區(qū)

        3)Pf←空;//預(yù)過濾有效載荷

        4)idxPB←0;//預(yù)過濾緩沖區(qū)的索引

        5)for每個Pido

        6)Li←Pi的有效載荷長度

        7)ifLi>Lbthen

        8)TPB[idxPB]←Pi;//將Pi存儲在預(yù)過濾緩沖區(qū)中

        9)idxPB←idxPB+1;

        10)else

        11)TFB←TFB∪Pi;//將Pi存儲在全匹配緩沖區(qū)中

        12)end

        13)

        14)ifTPB變滿時then

        15)Pf←預(yù)過濾的TPB;//執(zhí)行預(yù)過濾算法

        16)TFB←TFB∪Pf;//將Pf存儲在全匹配緩沖區(qū)中

        17)Pf←空;

        18)TPB←空;

        19)idxPB←0;

        20)end

        21)

        22)ifTFB變滿時then

        23) 結(jié)果←全匹配的TFB;//執(zhí)行全匹配算法

        24)TFB←空;//匹配結(jié)果復(fù)制并返回

        25)end

        26)end

        最初,預(yù)過濾緩沖區(qū)TPB和全匹配緩沖區(qū)TFB為空。同時,設(shè)置有效載荷集Pf用于臨時存儲預(yù)過濾結(jié)果,也是空(第1~3行)。預(yù)過濾緩沖區(qū)的索引idxPB設(shè)置為0(第4行)。對于P中的每個有效載荷,LBSA測量數(shù)據(jù)包Pi的有效載荷長度Li,從而與長度約束Lb進(jìn)行比較(第5~6行)。如果有效載荷長度Li超過長度約束Lb,則系統(tǒng)將數(shù)據(jù)包Pi存儲在預(yù)過濾緩沖區(qū)TPB中,并等待CPU執(zhí)行預(yù)過濾過程(第7~8行)。在數(shù)據(jù)包Pi存儲在TPB后,預(yù)過濾緩沖區(qū)的索引idxPB將增加 (第9行)。否則,數(shù)據(jù)包Pi將存儲在全匹配緩沖區(qū)TFB中,并等待GPU執(zhí)行全模式匹配(第10~11行)。

        當(dāng)預(yù)過濾緩沖區(qū)TPB變滿時,則緩沖區(qū)中的所有數(shù)據(jù)包由CPU執(zhí)行預(yù)過濾得到有效載荷集Pf,并將其存儲在全匹配緩沖區(qū)TFB中(第14~16行),系統(tǒng)清除存儲在Pf、TPB和idxPB中的數(shù)據(jù)并繼續(xù)處理下一批傳入數(shù)據(jù)包(第17~19行)。同時,當(dāng)全匹配緩沖區(qū)TFB變滿時,緩沖區(qū)中的所有數(shù)據(jù)包將復(fù)制到GPU設(shè)備內(nèi)存中并由GPU執(zhí)行全模式匹配過程。最后,將數(shù)據(jù)包匹配結(jié)果復(fù)制并返回CPU主存儲器,系統(tǒng)會清除存儲在TFB的數(shù)據(jù)(第22~24行)。

        在本文設(shè)計的LBSA算法中,較短的數(shù)據(jù)包有效載荷由GPU處理,從而提高整體效率。由于使用較短數(shù)據(jù)包是一種典型的攻擊方式,大量的數(shù)據(jù)包可以在較短的時間內(nèi)生成并發(fā)送,如果將此類數(shù)據(jù)包直接發(fā)送至GPU,則可以減少由此類數(shù)據(jù)包引起的CPU預(yù)過濾的冗余操作。此外,GPU可以對較短數(shù)據(jù)包進(jìn)行較強(qiáng)的并行處理。同時,較長數(shù)據(jù)包由CPU進(jìn)行預(yù)過濾而不發(fā)送至GPU進(jìn)行全模式匹配檢測,從而減輕了GPU處理負(fù)擔(dān)并減少數(shù)據(jù)傳輸延遲。

        3 實驗分析

        3.1 實驗設(shè)置

        本文設(shè)計的預(yù)過濾和全模式匹配分別基于CPU和GPU組成的通用并行計算架構(gòu)(CUDA)平臺實現(xiàn)多線程并行處理。實驗的硬件規(guī)格,如表1所示。

        表1 實驗的硬件規(guī)格

        CUDA平臺中配置的GPU塊數(shù)和每塊的線程數(shù)分別為128和64。同時,設(shè)置的預(yù)過濾緩沖區(qū)和全匹配緩沖區(qū)分別為1 MB和256 MB。利用文獻(xiàn)[21]中的HPMA算法的源代碼創(chuàng)建LHPMA算法的源代碼,結(jié)合算法1創(chuàng)建LBSA算法的源代碼,所有源代碼采用GCC4.8.4進(jìn)行編譯,操作系統(tǒng)利用64位的Ubuntu14.04(內(nèi)核版本3.13)。

        本文從Snort入侵檢測系統(tǒng)提取并生成實驗所需的模式集。Snort構(gòu)成的模式集包含的模式數(shù)量最多,但字符數(shù)最少。模式集中的數(shù)據(jù)包長度從1到208 bytes不等,平均為13.8 bytes。如果輸入數(shù)據(jù)流中的字符串是模式集中任何模式的重要前綴字符串,則視為惡意攻擊。如果前綴字符串覆蓋了整個字符串的80%以上,則視為正常流量。對于每個輸入數(shù)據(jù)流量,根據(jù)匹配率,從模式集中隨機(jī)選擇適當(dāng)?shù)那熬Y,并嵌入正常流量中。對于Snort構(gòu)成的模式集采用HTML格式,并在Linux服務(wù)器中的/usr/bin下的所有文件連接起來作為正常數(shù)據(jù)流。同時,利用模式集生成預(yù)過濾和全模式匹配的查詢表,并加載到檢測系統(tǒng)中。從谷歌、亞馬遜和雅虎的門戶網(wǎng)站提取的網(wǎng)絡(luò)流量中選取真實的數(shù)據(jù)包檢測作為傳入數(shù)據(jù)包的輸入。輸入流量中的數(shù)據(jù)包有效載荷長度信息,如表2所示。

        表2 輸入流量的數(shù)據(jù)包有效載荷長度信息

        3.2 CPU與GPU之間的數(shù)據(jù)傳輸性能

        在分析LHPMA的結(jié)果之前,還需分析影響GPU處理性能的因素。不同全匹配緩沖區(qū)中CPU和GPU之間的數(shù)據(jù)平均傳輸速率,如圖4所示。其中,x軸表示全匹配緩沖區(qū)的大小,y軸表示以Gbps為單位的數(shù)據(jù)平均傳輸速率,AC-GPU表示利用GPU通過AC算法檢測數(shù)據(jù)包的匹配方法。

        圖4 全匹配緩沖區(qū)中CPU和GPU之間的數(shù)據(jù)平均傳輸速率

        由圖4可以看出,當(dāng)全匹配緩沖區(qū)較小時,數(shù)據(jù)傳輸率非常低,即傳輸?shù)臄?shù)據(jù)包有效載荷很少。例如,當(dāng)全匹配緩沖區(qū)為0.25 MB時,數(shù)據(jù)傳輸速率為1.95 Gbps。當(dāng)全匹配緩沖區(qū)較大時,更多的數(shù)據(jù)包有效載荷在同一時間被傳輸,GPU執(zhí)行的數(shù)據(jù)傳輸速率會更高。例如,當(dāng)全匹配緩沖區(qū)為256 MB時,數(shù)據(jù)傳輸速率為35.1 Gbps。最佳方案的并不是將全匹配的緩沖區(qū)大小設(shè)置的越大越好,這是由于過大的緩沖區(qū)會導(dǎo)致數(shù)據(jù)包有效載荷等待時間過長,從而影響整體性能。因此,選擇位于數(shù)據(jù)傳輸速率收斂的轉(zhuǎn)折點作為全匹配緩沖區(qū)的臨界值,本文選取全匹配緩沖區(qū)為256 MB。

        3.3 GPU處理性能

        不同全匹配緩沖區(qū)中GPU性能,如圖5所示。其中,x軸表示全匹配緩沖區(qū)的大小,y軸表示以Gbps為單位的平均吞吐量,AC-GPU-100和AC-GPU-1460分別表示較短(100 bytes)和較長(1 460 bytes)數(shù)據(jù)包有效載荷集。

        圖5 全匹配緩沖區(qū)中GPU性能

        由圖5可以看出,在全匹配緩沖區(qū)中,AC-GPU-1460比AC-GPU-100的吞吐量低,較長的數(shù)據(jù)包有效載荷集在全匹配緩沖區(qū)的吞吐量較小,這是由于LBSA算法將較長的數(shù)據(jù)包過濾后直接發(fā)送至全匹配緩沖區(qū),等待GPU的處理,造成了GPU性能降低。當(dāng)全匹配緩沖區(qū)較小時,GPU性能較低,尤其是在全匹配緩沖區(qū)為2 MB的AC-GPU-1460情況下。數(shù)據(jù)包有效載荷的數(shù)量很少,導(dǎo)致GPU線程利用率低,從而降低了整體性能。即輸入有效載荷集的長度也會影響GPU效率。較短的數(shù)據(jù)包可收集成更多的數(shù)據(jù)包,有利于GPU的并行處理能力。因此,AC-GPU-100的效率表現(xiàn)為5.37 Gbps到9.03 Gbps,高于 AC-GPU-1460從2.71 Gbps到6.10 Gbps的效率。

        不同有效載荷長度中GPU性能,如圖6所示。

        圖6 有效載荷長度中GPU性能

        由圖6可以看出,較短的數(shù)據(jù)包有利于GPU效率。這是由于GPU具有較強(qiáng)的并行處理能力,可將較短的數(shù)據(jù)包中的有效載荷集在GPU紋理內(nèi)存中集中收集狀態(tài)轉(zhuǎn)換表并做統(tǒng)一識別處理,加速了并行處理較短的數(shù)據(jù)包的能力。當(dāng)有效載荷集長度為250 bytes時,GPU最多可以完成高達(dá)8.0 Gbps的吞吐量。隨著有效載荷長度的增加,GPU的吞吐量逐漸下降。這是由于GPU設(shè)備內(nèi)存中較短的有效載荷數(shù)量多于較長的有效載荷數(shù)量,同時,GPU內(nèi)核的數(shù)量遠(yuǎn)大于CPU內(nèi)核的數(shù)量,從而GPU利用多線程并行處理提高檢測流量的吞吐量。

        3.4 LHPMA性能

        不同有效載荷長度約束中LHPMA性能,如圖7所示。其中,x軸表示有效載荷長度約束Lb,y軸表示以Gbps為單位的平均吞吐量,LHPMA-AC表示LHPMA通過AC算法檢測數(shù)據(jù)包的匹配方法。

        圖7 有效載荷長度約束中LHPMA性能

        由圖7可以看出,當(dāng)Lb=0時,所有傳入數(shù)據(jù)包都以12.7 Gbps的吞吐量通過預(yù)過濾緩沖區(qū),即數(shù)據(jù)包通過LBSA算法后所有數(shù)據(jù)包都沒有通過預(yù)過濾緩沖區(qū)就被發(fā)送至CPU。隨著Lb的增加,吞吐量提升至14.0 Gbps。當(dāng)Lb=750時,這與圖6的結(jié)果相對應(yīng)。即通過LBSA算法將較長的數(shù)據(jù)包存儲在CPU主存儲器中的預(yù)過濾緩沖區(qū)中,CPU訪問較長的數(shù)據(jù)包并根據(jù)查找表(表名、基本信息表、間接尋址表和字段說明)對數(shù)據(jù)包進(jìn)行預(yù)過濾,降低內(nèi)存訪問延遲并減少預(yù)過濾時間,同時,較短的數(shù)據(jù)包存儲在CPU主存儲器中的全匹配緩沖區(qū)中,當(dāng)全匹配緩沖區(qū)變滿時,全匹配緩沖區(qū)內(nèi)的數(shù)據(jù)包就會轉(zhuǎn)移到GPU設(shè)備內(nèi)存中,采用AC算法對GPU紋理內(nèi)存中存儲的可疑數(shù)據(jù)包進(jìn)行全模式匹配,AC算法通過插入許多模式,從前往后遍歷數(shù)據(jù)包的整個字符串,要插入的字符其節(jié)點再先前已經(jīng)建成,直接去考慮下一個字符即可,當(dāng)發(fā)現(xiàn)當(dāng)前要插入的字符沒有再其前一個字符所形成的樹下沒有節(jié)點,就要創(chuàng)建一個新節(jié)點來表示這個字符,接下往下遍歷其他的字符。并將查找表(狀態(tài)轉(zhuǎn)換表、接受狀態(tài)表和失敗狀態(tài)表)復(fù)制到GPU紋理內(nèi)存中,使得有效載荷長度的多樣性減少,從而提高過濾率并降低數(shù)據(jù)傳輸延遲。LHPMA提高了檢測流量的吞吐量。當(dāng)Lb=1 460時,吞吐量下降至5.9 Gbps,這是由于AC算法從數(shù)據(jù)包的根節(jié)點開始,每次根據(jù)讀入的字符沿著自動機(jī)向下移動。當(dāng)讀入的字符,在分支中不存在時,遞歸走失敗路徑。如果走失敗路徑走到了根節(jié)點,則跳過該字符,處理下一個字符。因為AC自動機(jī)是沿著輸入文本的最長后綴移動的,所以在讀取完所有輸入文本后,最后遞歸走失敗路徑,直到到達(dá)根節(jié)點,這樣可以檢測出所有的模式。所有傳入數(shù)據(jù)包都沒有通過預(yù)過濾緩沖區(qū)就被發(fā)送至GPU,從而數(shù)據(jù)傳輸延遲和有效載荷長度多樣性導(dǎo)致LHPMA性能的下降。

        將本文提出的LHPMA與HPMA[21]、僅使用CPU[26]、僅使用GPU[27]的性能進(jìn)行對比,如圖8所示。其中,HPMA-AC和AC-CPU分別表示HPMA和CPU通過AC算法檢測數(shù)據(jù)包的匹配方法,同時,LHPMA-AC選擇的長度約束Lb=750。

        圖8 LHPMA與其他方法的性能對比

        由圖8可以看出,LHPMA-AC、HPMA-AC、AC-GPU和AC-CPU的吞吐量分別為13.8、12.7、5.9和4.6 Gbps,表明LHPMA-AC比HPMA-AC增強(qiáng)了性能。這是由于LHPMA-AC比HPMA-AC增加了LBSA算法,根據(jù)預(yù)先設(shè)定的有效載荷長度約束對傳入數(shù)據(jù)包進(jìn)行分類,較長的數(shù)據(jù)包分配至CPU主存儲器中的預(yù)過濾緩沖區(qū)中,憑借CPU更強(qiáng)的處理能力可以對較長的數(shù)據(jù)包進(jìn)行檢測,而較短的數(shù)據(jù)包分配至CPU主存儲器中的全匹配緩沖區(qū)中,憑借GPU更強(qiáng)的多線程并行處理能力可以對較短的數(shù)據(jù)包進(jìn)行檢測,從而減少GPU并行處理的有效載荷長度多樣性。同時,LHPMA-AC分別比僅適用GPU-AC和僅適用CPU-AC方法高出了2.3和3.0倍。這是由于LHPMA-AC綜合了CPU較強(qiáng)的處理能力和GPU并行處理能力,提升了CPU/GPU協(xié)同檢測網(wǎng)絡(luò)入侵的性能。

        4 結(jié)束語

        本文提出了一種具有數(shù)據(jù)包有效載荷長度約束的CPU/GPU混合模式匹配算法(LHPMA)來設(shè)計NIDS,提高了輸入流量中各種有效載荷長度情況下的入侵檢測效率。通過預(yù)先設(shè)定長度約束分離算法(LBSA)對傳入數(shù)據(jù)包進(jìn)行分類,減少有效載荷長度的多樣性。將較長的數(shù)據(jù)包分配給CPU主存儲器的預(yù)過濾緩沖區(qū)中,直接由CPU訪問數(shù)據(jù)包并根據(jù)查找表對數(shù)據(jù)包進(jìn)行預(yù)過濾,并將預(yù)過濾的數(shù)據(jù)包也發(fā)送至全匹配緩沖區(qū)。同時,將較短的數(shù)據(jù)包分配給CPU主存儲器的全匹配緩沖區(qū)中,并發(fā)送至GPU設(shè)備內(nèi)存中,結(jié)合AC算法對GPU紋理內(nèi)存中存儲的可疑數(shù)據(jù)包進(jìn)行全模式匹配,提升了CPU/GPU協(xié)同檢測網(wǎng)絡(luò)入侵的性能。實驗結(jié)果表明,在LBSA算法中選擇適當(dāng)?shù)拈L度約束,可以有效提升LHPMA的性能,并且LHPMA的性能優(yōu)于HPMA以及CPU和GPU的單獨處理方法。未來的研究中,將致力于分析輸入流量中不同有效載荷長度分布情況,改進(jìn) LHPMA方法對CPU/GPU協(xié)同處理網(wǎng)絡(luò)入侵的性能。

        猜你喜歡
        模式匹配有效載荷緩沖區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
        理念牽引 機(jī)制創(chuàng)新 人才驅(qū)動 做有效載荷創(chuàng)新發(fā)展領(lǐng)跑者
        面向有效載荷數(shù)字化研制的標(biāo)準(zhǔn)化工作轉(zhuǎn)型初探
        衛(wèi)星有效載荷研制流程的策劃與推進(jìn)
        基于模式匹配的計算機(jī)網(wǎng)絡(luò)入侵防御系統(tǒng)
        電子制作(2019年13期)2020-01-14 03:15:32
        具有間隙約束的模式匹配的研究進(jìn)展
        移動信息(2018年1期)2018-12-28 18:22:52
        OIP-IOS運(yùn)作與定價模式匹配的因素、機(jī)理、機(jī)制問題
        基于散列函數(shù)的模式匹配算法
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
        久久伊人精品中文字幕有尤物 | 三级黄片一区二区三区| 91色老久久偷偷精品蜜臀懂色| 久久国产色av免费观看| 玩弄放荡人妻一区二区三区| 大陆啪啪福利视频| 白白色发布在线观看视频| 国产成人av乱码在线观看| 少妇内射高潮福利炮| 亚洲国产AⅤ精品一区二区不卡| 亚洲国产精品激情综合色婷婷| 国产高清av在线播放| 久久99精品久久久久久hb无码| 99日本亚洲黄色三级高清网站| 亚洲国产精品av麻豆网站| 久久久久成人精品无码中文字幕 | 亚洲乱码一区av春药高潮| 国产精品厕所| 国产美女高潮流白浆免费观看| 亚洲高清中文字幕视频| 日日碰狠狠添天天爽无码| 亚洲V在线激情| 精品一区二区三区牛牛| 亚洲精品中文幕一区二区| 欧美疯狂性xxxxxbbbbb| 性无码国产一区在线观看| av成人一区二区三区| 日产亚洲一区二区三区| 最新无码国产在线播放| 牛仔裤人妻痴汉电车中文字幕| 极品少妇xxxx精品少妇偷拍| 国产乱子伦一区二区三区| 亚洲AV永久无码精品一区二国| 五月激情在线视频观看| 国内精品卡一卡二卡三| 亚洲乱码一区二区三区成人小说 | 亚洲九九夜夜| 国产av一卡二卡日韩av| 蜜桃久久精品成人无码av| 亚洲Va中文字幕久久无码一区| 免费国产不卡在线观看|