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

        ?

        一種適于HTTP數(shù)據(jù)還原的QS改進算法*

        2015-06-23 13:55:21錢松波劉嘉勇
        通信技術(shù) 2015年3期
        關(guān)鍵詞:右移模式匹配末尾

        錢松波,劉嘉勇

        (四川大學(xué) 電子信息學(xué)院,四川 成都 610065)

        一種適于HTTP數(shù)據(jù)還原的QS改進算法*

        錢松波,劉嘉勇

        (四川大學(xué) 電子信息學(xué)院,四川 成都 610065)

        為了更快速、準(zhǔn)確地對HTTP應(yīng)用數(shù)據(jù)進行還原,文中研究了改進的單模式匹配算法。對BM算法、BMH算法和QS算法進行了分析,并重點研究了QS算法的改進思路,最后提出了一種適用于HTTP應(yīng)用數(shù)據(jù)還原的CIQS算法。CIQS算法考慮了HTTP模式串的字符特點,改進了模式串的字符比較順序,并對壞字符跳躍思想進行了改進,增大了跳躍距離。實驗結(jié)果表明,CIQS算法有效減少了匹配次數(shù),相比其他幾種算法有更好的時間性能。

        HTTP還原 模式匹配 CIQS算法

        0 引 言

        隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全問題也隨之產(chǎn)生,信息的有效檢測和監(jiān)控已成為一個重要問題。而HTTP協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最廣泛、最重要的通信協(xié)議[1],對它的通信數(shù)據(jù)的實時檢測和有效還原顯得十分有必要。

        在對HTTP應(yīng)用數(shù)據(jù)還原時,主要利用字符串匹配技術(shù)來提取有用信息,而模式匹配算法正是字符串匹配的重要方法,為了能更快速、精確地對內(nèi)容進行識別和還原,需要改進匹配算法,提升匹配效率。

        本文首先分析了三種典型的單模式匹配算法的優(yōu)缺點,然后重點在QS算法[2]的基礎(chǔ)上進行改進,并加入了對HTTP模式串字符特點的考慮,提出了一種改進算法,稱之為Character Improved Quick Search算法,簡稱為CIQS算法。

        1 三種典型的算法

        為了方便算法描述,進行以下定義:對于長度為n的待匹配文本字符串T=T1T2…Tn和長度為m的模式串P=P1P2…Pm(一般n≥m),如果對它們進行匹配,存在TiTi+1…Ti+mTi+m-1=P1P2…Pm-1Pm(其中1≤i≤n-m+1),則稱匹配成功,且返回模式串在文本串中匹配的位置,否則稱匹配失敗。

        1.1 BM算法

        BM算法[3]是由Boyer和Moore在1977提出的單模式匹配算法。其思想是:匹配時,先將模式串和待匹配文本串左對齊,比較從右向左進行,若發(fā)生失配,則用壞字符規(guī)則和好后綴規(guī)則來計算模式串的右移量,它的大小由較大的值決定。

        壞字符規(guī)則:當(dāng)文本串字符Ti與模式串字符Pj不匹配時,如果Ti不在模式串中出現(xiàn),則右移量為m;若Ti在模式串中出現(xiàn),則移動模式串,使Ti與它在模式串中最右出現(xiàn)的位置對齊,再開始下一輪匹配。右移量的具體確定方法如下

        好后綴規(guī)則:在模式串與文本串進行匹配時,如果發(fā)現(xiàn)字符Ti≠Pj,而Pj+1…Pm已經(jīng)匹配成功,則偏移量的確定分為兩種情況:當(dāng)模式串中的某一子串Pj-s+1…Pm-s和已匹配部分Pj+1…Pm相同,則模式串需要向右移動的距離為s位;如果Pj+1…Pm的后綴Ps+1…Pm與模式串的前綴P1…Pm-s相同,則右移量為s位。

        BM算法的匹配階段,最壞情況的時間復(fù)雜度為O(m*n)。

        1.2 BMH算法

        Horspool提出的BMH 算法[4]相對于BM算法更易實現(xiàn),它在預(yù)處理階段只使用壞字符規(guī)則,對匹配過程中的判斷也做了簡化,當(dāng)字符失配時,僅考慮文本串當(dāng)前窗口的末尾字符來計算右移量。

        BMH算法的匹配思想是:將模式串和文本串左對齊,先匹配文本串當(dāng)前窗口的末尾字符,如果匹配成功,再順序匹配其余的m-1位字符;當(dāng)文本串中有字符發(fā)生失配時,則由文本串當(dāng)前窗口的末尾字符來啟發(fā)模式串向右移動。匹配過程中的失配字符表如下式所示

        下面用實例來說明BMH算法的匹配過程,假設(shè)待匹配的文本串為“catchpostteachmatch”,模式串為“match”,具體匹配的過程如表1所示(加粗字體的字符表示需要比較的字符,點表示不用比較的字符,下同,不再說明)。

        表1 BMH算法匹配過程

        BMH算法在匹配階段的時間復(fù)雜度為O(m*n),并沒比BM算法更好,但是BMH算法簡化了初始化的過程,減少了比較次數(shù),因此在實際使用情況時要比BM算法的效率高。

        1.3 QS算法

        QS算法是Daniel M. Sunday在1990年提出的,該算法只采用壞字符規(guī)則,在匹配時把模式串與待匹配字符串左對齊,文本串與模式串的字符比較既可以從左向右也可以從右向左。

        QS的思想是:當(dāng)發(fā)生失配時,考慮文本串當(dāng)前匹配窗口的下一位字符來確定模式串向右移動的距離,然后產(chǎn)生一個新的窗口,繼續(xù)嘗試下一輪匹配,直到待匹配文本串T結(jié)束為止。匹配過程中的失配字符表如下式所示

        繼續(xù)用前面的例子來說明QS算法的匹配過程,匹配過程如表2所示。

        表2 QS算法匹配過程

        通過比較表1和表2的匹配結(jié)果可以發(fā)現(xiàn),QS算法的比較次數(shù)和字符比較個數(shù)比BMH算法都要小一些,跳躍的距離更大。

        QS算法在匹配階段的時間復(fù)雜度仍為O(m*n),但是它進一步減少了比較次數(shù)并增大了跳躍距離,因此QS算法的效率更高。

        1.4 改進算法的提出

        通過上面對三種典型算法的分析和比較可知,QS算法的最大移動距離可以達到m+1,比BM算法和BMH算法都要大,一定程度上的匹配效率最優(yōu)。因此在考慮將單模式匹配算法應(yīng)用到HTTP協(xié)議檢測還原中時,優(yōu)先考慮使用QS算法。

        但是QS算法僅用一個字符來計算右移量,會增加一些不必要的字符比較和移動;此外,在某些情況下,QS算法的效率不如BMH算法[5];最后,適當(dāng)?shù)淖址容^順序?qū)ζヅ湫室灿幸欢ǖ奶嵘??;谶@些考慮,本文提出了一種對QS算法進行改進的單模式匹配算法:CIQS算法。

        2 CIQS算法思想與實現(xiàn)

        2.1 對QS算法的改進

        通過上面的分析,發(fā)現(xiàn)QS算法在增大跳躍距離以及減少字符比較次數(shù)方面還有很多改進的空間,對它的改進主要考慮三個方面。

        1)第一個方面:由于QS算法只用一個字符計算右移量,會增加一些不必要的字符比較和移動。針對此問題提出的改進算法有很多,其中曾傳璜等人提出的Sunday2算法:利用窗口對文本串進行切片,使模式串的最大右移量從m+1增加到2m+1,有效減少了字符匹配次數(shù),提高了算法的性能[6]。但是Sunday2算法也有不足,它在預(yù)處理階段使用兩個壞字符函數(shù),即要建立兩個預(yù)處理表,增大了計算開銷。

        CIQS算法對此做的改進:在預(yù)處理階段仍然只使用QS算法的壞字符規(guī)則,并對匹配過程進行了改進,詳述在2.2節(jié)。CIQS算法的最大右移量仍可達到2m+1,如圖1所示。

        圖1 最大右移距離對比

        由圖1的結(jié)果可以看出,當(dāng)字符發(fā)生失配時,QS算法使模式串向右移動了6位,而CIQS算法使模式串向右移動了11位,即模式串移動了更大的距離,減少了字符匹配次數(shù)。

        2)第二個方面:考慮文本串當(dāng)前窗口的末尾字符Ti+m-1沒有在模式串中出現(xiàn)而Ti+m在模式串中出現(xiàn)時的情況,如圖2所示,這里待匹配文本串都用“contentmatch”,模式串用“match”,并從同一位置開始匹配。

        圖2 QS與BMH匹配對比

        由圖2可知,當(dāng)發(fā)生失配時,用QS算法計算的右移量為2,用BMH算法計算的值為5,此時QS算法的效率反而沒有BMH算法高。

        CIQS算法做的改進:當(dāng)字符發(fā)生失配時,如果當(dāng)前窗口末尾字符的下一位字符在模式串中,則繼續(xù)判斷當(dāng)前窗口的末尾字符是否在模式串中,如果沒在,則右移距離增大為m,否則不變,借此增大了右移距離。

        3)第三個方面:針對HTTP應(yīng)用數(shù)據(jù)還原時的模式串的特點,設(shè)計適當(dāng)?shù)淖址容^順序,可以有效減少字符比較次數(shù),提高算法匹配效率。

        對HTTP應(yīng)用數(shù)據(jù)還原時會用到的一部分模式串進行了整理,比如有content、title、email、word、me-ssage、username、nickname、subject等,這些模式串的特點是:大多為一些常用單詞或是與常用單詞十分相近的字符串,其后綴通常比較常見,在單詞表中存在大量的與它們相同后綴的單詞[7]。

        由于QS算法大多采用從右向左的順序來比較字符,如果在文本串中存在很多與模式串同后綴的字符串,則在匹配時就會出現(xiàn)如圖3所示的情況:即在模式串的末尾字符附近會連續(xù)成功匹配多個字符,但是直到模式串的首字符附近才出現(xiàn)不匹配,這顯然增加了大量不必要的字符比較,因此QS算法在這個應(yīng)用背景下還有改進的空間。

        圖3 字符比較順序?qū)Ρ?/p>

        CIQS算法對此做的改進:在QS算法從右向左順序比較字符的基礎(chǔ)上做了改進,在匹配的過程中,先匹配文本串當(dāng)前窗口的末尾字符Ti+m-1,如果末尾字符已經(jīng)匹配成功,不再繼續(xù)匹配末尾字符的前一個字符Ti+m-2,而是先去匹配文本串當(dāng)前窗口的首字符Ti,當(dāng)首字符和尾字符都匹配成功的情況下,再去逐個匹配剩余的字符。

        2.2 CIQS算法的實現(xiàn)

        CIQS算法的實現(xiàn)分為預(yù)處理和匹配處理兩部分。在預(yù)處理階段,CIQS算法與QS算法的處理方式相同,都是利用壞字符表函數(shù)求出文本串中每個字符的偏移量。而在匹配處理階段,CIQS算法的匹配步驟可以表述如下:

        1)將模式串P和待匹配文本串T左對齊,形成當(dāng)前窗口。

        2)在當(dāng)前窗口中先從末尾字符Ti+m開始匹配,如果成功,則去匹配首字符Ti,當(dāng)首字符和末尾字符同時匹配成功時,再繼續(xù)匹配剩余字符,當(dāng)全部匹配成功或出現(xiàn)失配時,當(dāng)前窗口字符匹配結(jié)束,然后求出模式串P的右移量。

        3)如果右移量不是m+1,要繼續(xù)判斷Ti+m-1是否在模式串中出現(xiàn),如果Ti+m-1不在則右移量增加到,m否則不變。

        4)如果模式串的右移量是m+1,接著判斷文本串下一窗口的尾字符Ti+2m是否在模式串中,如果不在,則右移量為2m+1,否則不變。

        5)模式串每次都根據(jù)右移量向右移動相應(yīng)距離,產(chǎn)生一個新的窗口,繼續(xù)嘗試下一輪匹配;如果模式串與文本串匹配成功,則返回在文本串中對應(yīng)的位置。

        6)當(dāng)文本串的指針位置超出了文本串長度時,說明匹配過程結(jié)束。整個匹配處理階段的算法邏輯流程如圖4所示。

        圖4 匹配過程流程

        2.3 CIQS算法的性能分析

        為了分析改進算法的性能優(yōu)勢,將CIQS算法與BMH算法和QS算法進行對比,繼續(xù)用前面提到的例子來說明CIQS的匹配過程,即假設(shè)待匹配的文本串為“catchpostteachmatch”,模式串為“match”,匹配的過程如表3所示。

        表3 CIQS算法匹配過程

        通過對比表1、表2和表3的匹配過程可以發(fā)現(xiàn),當(dāng)文本字符串中出現(xiàn)多個與模式串有相同后綴的字符時(這里為“atch”),CIQS算法做的字符比較次數(shù)明顯減少;且在某些情況下,CIQS算法的最大右移量可以達到2m+1,增大了移動距離。

        3 實驗測試與結(jié)果

        由上面的分析可知,CIQS算法在理論上有更好的性能。為了測試該算法的效率,將用實驗驗證。

        實驗在虛擬機上進行,實驗環(huán)境:物理機系統(tǒng)Windows 7,配置為Intel(R) Core(TM)2 T5750, 2.10 GHz,2 GB內(nèi)存;虛擬機為VMware Workstation 8,系統(tǒng)為CentOS5.2,內(nèi)存1 GB,采用C++編程。

        待匹配文本:用抓包軟件抓取一些諸如網(wǎng)頁論壇、網(wǎng)頁搜索、郵件等通信數(shù)據(jù)包,并隨機地將一些已重組的HTTP應(yīng)用層數(shù)據(jù)保存成txt文件,大小為6.9 MB。模式串:從待匹配樣本中隨機選取6個長度分別為3、4、5、6、7、8的字符串。

        對不同長度的每個模式串,分別用BMH算法、QS算法和CIQS算法對樣本進行匹配,統(tǒng)計匹配成功次數(shù),并對每次匹配過程進行計時。算法匹配成功次數(shù)統(tǒng)計結(jié)果如表4所示。

        表4 三種算法匹配成功次數(shù)

        從表4的結(jié)果可以看出,在不同的模式串長度下,使用BMH算法、QS算法和CIQS算法的匹配成功次數(shù)是一樣的,說明模式串在待匹配的文本串中已全部被找出,CIQS算法沒有出現(xiàn)漏報,該算法在查找字符串的準(zhǔn)確率上具有一定的可靠性。

        對同一個模式串用三種算法做耗時比較,分別重復(fù)匹配過程10次,對運行時間取平均值后的統(tǒng)計結(jié)果如圖5所示。

        圖5 算法匹配時間對比

        由圖5的結(jié)果可以看出,BMH算法、QS算法和CIQS算法在模式串長度增大的情況下,它們所需的匹配時間都在逐漸減小,這是因為這三種算法的最大安全跳躍距離都與模式串長度m有關(guān),m越大,跳躍的距離就越大,匹配時間就越短。

        此外,在同一個長度的模式串下,比較三種算法的運行時間,發(fā)現(xiàn)CIQS算法的匹配耗時最少,且隨著模式串長度的增加,CIQS算法比QS算法有更優(yōu)越的時間性能,這是因為隨著模式串長度的增加,文本串中出現(xiàn)與模式串相同后綴的機率也增大,因此改進算法的優(yōu)勢就會體現(xiàn)出來,使字符比較次數(shù)減少,提升了匹配效率。

        實驗說明CIQS算法比QS算法有更大的安全跳躍距離和更少的字符匹配次數(shù),在HTTP應(yīng)用數(shù)據(jù)還原中有更好的時間性能。

        4 結(jié) 語

        本文在對BM算法、BMH算法和QS算法進行了分析和比較,重點對QS算法進行了改進,在理論上證明了CIQS算法的可行性,并通過實驗驗證了該算法在HTTP數(shù)據(jù)還原應(yīng)用場景下的良好性能。但是隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)協(xié)議檢測還原中的模式匹配算法逐漸向多模式匹配方向發(fā)展,多模式匹配算法有更好的效率,因此如何對CIQS算法進行改進,使其從單模式匹配向多模式匹配技術(shù)方向發(fā)展是下一步的方向研究。

        [1] 陳雷,劉嘉勇.基于HTTP協(xié)議的POST數(shù)據(jù)分析與還原[J].通信技術(shù),2011,44(04):132-134. CHEN Lei, LIU Jia-yong. Analysis and Reversion of POST Data based on HTTP Protocol[J].COMMUNICATIONS TECHNOLOGY,2011,44(4):132-134.

        [2] SUNDAY Daniel M.A Very Fast Substring Search Algorit-hm[J].Communications of the ACM,1990,33(3):132-142.

        [3] BOYER Robert Stephen,MOORE J Strother.A Fast String Searching Algorithm[J].Communications of the ACM,1977,20:762-772.

        [4] HORSPOOL R Nigel.Practical Fast Searching in Strings [J] . Software Practice and Experience,1980,10(6):501-506.

        [5] 張玉新,李成海,白瑞陽.一種改進的單模式匹配算法[J].制造業(yè)自動化,2014 (11):15-17. ZHANG Yu-xin, LI Cheng-hai, BAI Rui-yang. Improved Single Pattern Matching Algorithm [J]. Manufacturing Automation, 2012,34(1):208-212.

        [6] 曾傳璜,段智宏.一種基于窗口切片的單模式匹配算法[J].江西理工大學(xué)學(xué)報,2011,32(03):22-25. ZENG Chuan-huang, DUAN Zhi-hong. Design and Realization of the Improved Sunday Pattern Matching Algorithm[J].Journal of Harbin University of Science and Technology,2011,32(3):22-25.

        [7] 陳杰.一種基于BMH算法的模式匹配算法[EB/OL].(2011-08-03)[2014-11-08].http://www.paper.edu.cn/releasepaper/content/201108-50. CHEN Jie.A New Algorithm for Pattern Match Based on BMH Algorithm[EB/OL].Beijing: Sciencepaper Online,2011-08-03[2014-11-08].http://www.paper.edu.cn/releasepaper/content/201108-50.

        QIAN Song-bo(1989-),male, graduate student, mainly working at network communication and network security.

        劉嘉勇(1962—),男,博士,教授,博士生導(dǎo)師,主要研究方向為信息安全。

        LIU Jia-yong(1962-),male,Ph.D.,professor, doctoral tutor,principally working at information security.

        A Modified Quick Search Algorithm for HTTP Data Reduction

        QIAN Song-bo, LIU Jia-yong

        (College of Electronic Information,Sichuan University,Chengdu Sichuan 610065,China)

        In order to achieve fairly quick and accurate reduction of HTTP application data, this paper discusses the modified single pattern matching algorithms, analyzes BM, BMH and QS algorithms,with focus on the improved idea of QS algorithm,and finally proposes a CIQS algorithm suitable for HTTP application data reduction. The characteristics of HTTP pattern strings in CIQS algorithm are considered,and the matching sequence of characters in the matching process is modified. Meanwhile, the idea for bad character jumping is improved,thus the jumping distance is increased. Experiment results show that CIQS algorithm effectively reduces the number of matching times,and enjoys better time performance as compared with other algorithms.

        HTTP reduction; pattern matching; CIQS algorithm

        date:2014-09-05;Revised date:2014-12-21

        TP301.6

        A

        1002-0802(2015)03-0351-06

        錢松波(1989—),男,碩士研究生,主要研究方向為網(wǎng)絡(luò)通信與網(wǎng)絡(luò)安全;

        10.3969/j.issn.1002-0802.2015.03.020

        2014-09-05;

        2014-12-21

        猜你喜歡
        右移模式匹配末尾
        “水溶液中的離子平衡”的“不一定”
        小數(shù)點后添0與去0,你會嗎
        究竟錯在哪兒
        華容道玩法大解密
        “0”的讀法和要領(lǐng)
        基于模式匹配的計算機網(wǎng)絡(luò)入侵防御系統(tǒng)
        電子制作(2019年13期)2020-01-14 03:15:32
        具有間隙約束的模式匹配的研究進展
        移動信息(2018年1期)2018-12-28 18:22:52
        OIP-IOS運作與定價模式匹配的因素、機理、機制問題
        太極拳養(yǎng)生八式(上)
        少林與太極(2018年8期)2018-08-26 05:53:58
        基于散列函數(shù)的模式匹配算法
        av免费在线国语对白| 久久精品国产亚洲AV高清特级| 精精国产xxx在线视频app| 美女把内衣内裤脱了给男人舔| 亚洲视频在线一区二区| 精品久久欧美熟妇www| 欧美成人在线A免费观看| 性一交一乱一乱一视频亚洲熟妇 | 美女网站免费福利视频| 少妇高潮惨叫喷水在线观看| 级毛片无码av| 91盗摄偷拍一区二区三区| 久久人妻无码一区二区| 五月天精品视频在线观看| 亚洲欧美日韩一区在线观看| 羞羞色院99精品全部免| 国产亚洲精品精品精品| 亚洲一二三区在线观看| 亚洲一码二码在线观看| 蜜桃tv在线免费观看| 痉挛高潮喷水av无码免费| 亚洲AⅤ永久无码精品AA| av是男人的天堂免费| 色又黄又爽18禁免费网站现观看| 亚洲精品无码成人片久久不卡| 亚洲欧洲日产国码久在线观看| 国产人妖av在线观看| 成熟丰满熟妇av无码区| 1000部精品久久久久久久久| 91久久精品国产性色tv| 国产内射视频在线免费观看| 欧美肥胖老妇做爰videos| 国产妇女乱一性一交| 日本一区二区三级免费| 少妇中文字幕乱码亚洲影视| a毛片全部免费播放| 少妇人妻字幕一区二区| 色与欲影视天天看综合网| 色欲aⅴ亚洲情无码av蜜桃| 中文字幕在线观看乱码一区| 亚洲国产一区二区三区|