互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別裝置制造方法
【專(zhuān)利摘要】一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別裝置,該系統(tǒng)包括:初始化模塊,用于DPI處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存;數(shù)組搜索樹(shù)定位模塊,根據(jù)該特征碼信息建立特征碼搜索樹(shù);數(shù)據(jù)報(bào)文處理模塊,用于對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流;特征碼檢測(cè)模塊,用于根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。本發(fā)明一次報(bào)文掃描即可檢測(cè)出數(shù)據(jù)報(bào)文中是否包含已經(jīng)應(yīng)用的特征碼,從而提高多特征碼掃描的識(shí)別效率。
【專(zhuān)利說(shuō)明】互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)分析領(lǐng)域,特別涉及一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)TCP/IP通信領(lǐng)域,網(wǎng)絡(luò)管理最在意的是提供流量服務(wù)中的哪些流量占比較大,哪些流量會(huì)造成管道的擁塞,現(xiàn)有的網(wǎng)管系統(tǒng)中,通過(guò)網(wǎng)元的網(wǎng)絡(luò)流量(Net flow)統(tǒng)計(jì)可以知道哪些IP和端口的流量占比,但這遠(yuǎn)遠(yuǎn)滿足不了網(wǎng)絡(luò)管理的需求,網(wǎng)絡(luò)管理員更在意具體是哪些應(yīng)用(如通信軟件等)在占用寶貴的帶寬,甚至影響到一些需要保證的優(yōu)先服務(wù)內(nèi)容。需要對(duì)互聯(lián)網(wǎng)管道流量?jī)?nèi)容進(jìn)行識(shí)別,就需要使用到DPI (Deep PacketInspect1n,深度包檢測(cè))技術(shù),而DPI技術(shù)中最為關(guān)鍵的是如何使用特征碼技術(shù)高效、準(zhǔn)確識(shí)別流量所屬應(yīng)用。
[0003]當(dāng)前的特征碼識(shí)別一般采用的是正則表達(dá)式的匹配方式,正則表達(dá)式可以匹配任意長(zhǎng)度和位置的信息,使用及管理靈活,缺點(diǎn)是效率低下。互聯(lián)網(wǎng)應(yīng)用,特別是移動(dòng)互聯(lián)網(wǎng)的到來(lái),互聯(lián)網(wǎng)應(yīng)用呈現(xiàn)爆炸式劇增,需要匹配的特征碼也越來(lái)越多,系統(tǒng)需要對(duì)數(shù)據(jù)報(bào)文掃描的次數(shù)與特征碼的數(shù)量成正比,這樣就導(dǎo)致了識(shí)別效率與特征碼的數(shù)量成反比下降的趨勢(shì)。
【發(fā)明內(nèi)容】
[0004]鑒于以上內(nèi)容,本發(fā)明提出一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別裝置,通過(guò)流表技術(shù)和特征碼識(shí)別技術(shù),一次報(bào)文掃描即可檢測(cè)出數(shù)據(jù)報(bào)文中是否包含已經(jīng)應(yīng)用的特征碼,從而提高多特征碼掃描的識(shí)別效率。
[0005]一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,該方法包括:初始化步驟,創(chuàng)建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存;數(shù)組搜索樹(shù)定位步驟,從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù);數(shù)據(jù)報(bào)文處理步驟一,對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址;數(shù)據(jù)報(bào)文處理步驟二,根據(jù)預(yù)先設(shè)定的五兀組信息建立流表信息,將同屬于一個(gè)五兀組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流;特征碼檢測(cè)步驟一,根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;特征碼檢測(cè)步驟二,根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
[0006]一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng),該系統(tǒng)包括:初始化模塊,用于創(chuàng)建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存;數(shù)組搜索樹(shù)定位模塊,用于從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù);數(shù)據(jù)報(bào)文處理模塊,用于對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址;所述數(shù)據(jù)報(bào)文處理模塊,還用于根據(jù)預(yù)先設(shè)定的五元組信息建立流表信息,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流;特征碼檢測(cè)模塊,用于根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;所述特征碼檢測(cè)模塊,還用于根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
[0007]—種識(shí)別裝置,該識(shí)別裝置包括:存儲(chǔ)器;處理器;以及一個(gè)或多個(gè)模塊,所述一個(gè)或多個(gè)模塊被存儲(chǔ)在所述存儲(chǔ)器中并被配置成由所述處理器執(zhí)行,以完成以下指令:倉(cāng)丨」建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存;從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù);對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址;根據(jù)預(yù)先設(shè)定的五元組信息建立流表信息,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流;根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
[0008]相較于現(xiàn)有技術(shù),本發(fā)明所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法、系統(tǒng)及識(shí)別裝置,通過(guò)流表技術(shù)和特征碼識(shí)別技術(shù),一次報(bào)文掃描即可檢測(cè)出數(shù)據(jù)報(bào)文中是否包含已經(jīng)應(yīng)用的特征碼,從而提高多特征碼掃描的識(shí)別效率,以克服現(xiàn)有技術(shù)中多特征碼掃描效率低的缺陷。
[0009]
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0010]圖1是本發(fā)明互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)的應(yīng)用環(huán)境圖;
圖2是本發(fā)明互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)功能模塊圖;
圖3是本發(fā)明互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法的流程圖。
【具體實(shí)施方式】
[0011]為便于對(duì)本發(fā)明的理解,以下先對(duì)本實(shí)施方式中用到的關(guān)鍵技術(shù)進(jìn)行簡(jiǎn)要說(shuō)明。
[0012]數(shù)組搜索樹(shù)定位技術(shù):通過(guò)數(shù)組搜索樹(shù)技術(shù)實(shí)現(xiàn)流表、特征碼表的快速定位,在本實(shí)施方式中,所述數(shù)組搜索樹(shù)以數(shù)組方式進(jìn)行組織,包括流表搜索樹(shù)和特征碼表搜索樹(shù)。通過(guò)使用流表技術(shù),可以組織還原同一會(huì)話(868810=)數(shù)據(jù),并減少同一應(yīng)用的數(shù)據(jù)冗余檢測(cè)。通過(guò)特征碼表技術(shù),可以實(shí)現(xiàn)應(yīng)用的快速匹配。
[0013]特征碼匹配及排序技術(shù):通過(guò)位置和八XII字節(jié)比較技術(shù)實(shí)現(xiàn)數(shù)據(jù)報(bào)文的快速識(shí)別以及多種檢測(cè)手段組合,提高數(shù)據(jù)準(zhǔn)確度;通過(guò)智能自學(xué)習(xí)的特征碼動(dòng)態(tài)排序技術(shù),實(shí)現(xiàn)特征碼識(shí)別的優(yōu)先級(jí)動(dòng)態(tài)調(diào)整,達(dá)到性能優(yōu)化目的。
[0014]如圖1所示,是本發(fā)明互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)的應(yīng)用環(huán)境圖。該互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)26 (以下也簡(jiǎn)稱(chēng)為“系統(tǒng)”)應(yīng)用于識(shí)別裝置2中,該識(shí)別裝置2可以帶有數(shù)據(jù)采集接口 20和傳輸接口 22。所述識(shí)別裝置2通過(guò)數(shù)據(jù)采集接口 20獲取需要解析的數(shù)據(jù)報(bào)文(如I?報(bào)文),并通過(guò)傳輸接口 22將解析結(jié)果上傳到其它設(shè)備(如中心服務(wù)器所述識(shí)別裝置2還包括通過(guò)數(shù)據(jù)線或信號(hào)線相連的存儲(chǔ)器24和處理器28。在本實(shí)施方式中,所述識(shí)別裝置2可以是0?1 (0661)11181)6(31:1011,深度包檢測(cè))設(shè)備。需要說(shuō)明的是,圖1只是對(duì)識(shí)別裝置2軟件結(jié)構(gòu)和硬件結(jié)構(gòu)的示意性說(shuō)明,識(shí)別裝置2還包括其它必要的電子元器件和應(yīng)用軟件,在此不再一一贅述。
[0015]所述互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)26存儲(chǔ)于識(shí)別裝置2的存儲(chǔ)器24中,用于通過(guò)流表技術(shù)和特征碼識(shí)別技術(shù),一次報(bào)文掃描檢測(cè)出數(shù)據(jù)報(bào)文中是否包含已經(jīng)應(yīng)用的特征碼,從而確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用,具體方法流程參閱圖3的描述。需要說(shuō)明的是,在其他實(shí)施方式中,所述互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)26也可以設(shè)置于其他設(shè)備,如服務(wù)器中。
[0016]在本實(shí)施例中,所述互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)26可以提供一個(gè)或多個(gè)模塊,所述一個(gè)或多個(gè)模塊被存儲(chǔ)在所述識(shí)別裝置2的存儲(chǔ)器24中并被配置成由一個(gè)或多個(gè)處理器(本實(shí)施例為一個(gè)處理器28)執(zhí)行,以完成本發(fā)明。例如,參閱圖2所示,所述互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng)26包括初始化模塊261、數(shù)組搜索樹(shù)定位模塊262、數(shù)據(jù)報(bào)文處理模塊263、特征碼檢測(cè)模塊264、特征碼排序模塊265、及特征碼混合檢測(cè)模塊266。本發(fā)明所稱(chēng)的模塊是完成一特定功能的計(jì)算機(jī)程序段,比程序更適合于描述軟件在計(jì)算機(jī)中的執(zhí)行過(guò)程,關(guān)于各模塊的具體功能參閱圖3的描述。
[0017]如圖3所示,是本發(fā)明互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法的流程圖。
[0018]步驟S101,初始化模塊261創(chuàng)建DPI (Deep Packet Inspect1n,深度包檢測(cè))處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存。
[0019]通常而言,互聯(lián)網(wǎng)訪問(wèn)時(shí)會(huì)并發(fā)產(chǎn)生大量的會(huì)話連接,每一個(gè)會(huì)話連接在DPI實(shí)現(xiàn)時(shí),均需保存在流表中,為了提升流量識(shí)別性能和防止內(nèi)存碎片的產(chǎn)生,系統(tǒng)會(huì)預(yù)先申請(qǐng)一個(gè)大內(nèi)存塊用于后續(xù)流表使用。
[0020]步驟S102,數(shù)組搜索樹(shù)定位模塊262從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù)。在本實(shí)施方式中,所述特征碼配置文件可以是一個(gè)特征碼表,該特征碼表采用二維數(shù)組結(jié)構(gòu),其中,第一維度為特征碼的ASCII字符值,第二維度為特征碼起始位置。
[0021]在本實(shí)施方式中,系統(tǒng)預(yù)先建立特征碼搜索樹(shù),為達(dá)到特征碼快速匹配的目的,該特征碼搜索樹(shù)以數(shù)組方式進(jìn)行組織。由于互聯(lián)網(wǎng)通信數(shù)據(jù)報(bào)文傳輸?shù)臄?shù)據(jù)是二進(jìn)制的ASCII碼流,而一個(gè)字節(jié)的ASCII碼在0-255之間,因此建立256個(gè)一維數(shù)組可以快速定位一個(gè)字符特征的特征碼,而建立65536個(gè)一維數(shù)組則可以快速定位兩個(gè)連續(xù)特征字符的特征碼。在實(shí)際使用過(guò)程中,還可以加入其他特征,例如TCP (Transmiss1n ControlProtocol,傳輸控制協(xié)議)、UDP (User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)等組成二維數(shù)組或多維數(shù)組,保證數(shù)據(jù)的高離散率。
[0022]在本實(shí)施方式中,為解決存儲(chǔ)地址沖突問(wèn)題,數(shù)組形式組織的特征碼搜索樹(shù)末尾附加一串特征碼指針,例如,特征碼指針為C0:0x00、C2:0x03、C5:0xfe與CO:0x00,C4:0x04、C5:0xff,該特征碼指針掛接在數(shù)組下標(biāo)為[0]的特征碼搜索樹(shù)中。其中C〈n>中的η代表與第一個(gè)特征字的距離位置信息,如果η為負(fù)數(shù),則代表從數(shù)據(jù)報(bào)文末尾倒數(shù)的位置信息,C代表ASCII字符匹配,Οχ后面的數(shù)據(jù)是ASCII碼。在實(shí)際的特征碼中還會(huì)包含一些其他特征,例如P1:1035,代表校驗(yàn)?zāi)康亩丝跒?035的數(shù)據(jù)報(bào)文;L2:512,代表校驗(yàn)內(nèi)容長(zhǎng)度為512的數(shù)據(jù)報(bào)文等等。
[0023]步驟S103,數(shù)據(jù)報(bào)文處理模塊263對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址。其中,所述數(shù)據(jù)報(bào)文為T(mén)CP/IP數(shù)據(jù)報(bào)文,所述通信內(nèi)容的起始位置地址為所述通信內(nèi)容的首指針。
[0024]在本實(shí)施方式中,數(shù)據(jù)報(bào)文處理模塊263通過(guò)數(shù)據(jù)采集接口 20對(duì)流經(jīng)互聯(lián)網(wǎng)管道的扣?/〗?數(shù)據(jù)報(bào)文進(jìn)行采集,并對(duì)采集到的扣?/〗?數(shù)據(jù)報(bào)文進(jìn)行解析,根據(jù)扣?/〗?協(xié)議標(biāo)準(zhǔn),剝離扣?/〗?包頭信息,得到通信內(nèi)容的起始位置地址。該起始位置地址之后的信息為識(shí)別裝置2 (如0?1設(shè)備)需要分析識(shí)別的內(nèi)容。
[0025]步驟3104,數(shù)據(jù)報(bào)文處理模塊263根據(jù)預(yù)先設(shè)定的五元組信息建立流表信息,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流(以下也簡(jiǎn)稱(chēng)為“流”)。在本實(shí)施方式中,一條數(shù)據(jù)流對(duì)應(yīng)一個(gè)流節(jié)點(diǎn)。
[0026]具體而言,首先,數(shù)據(jù)報(bào)文處理模塊263判定流表是否存在。如果流表不存在,則執(zhí)行步驟3104,添加流節(jié)點(diǎn);如果流表存在,則不執(zhí)行步驟3104,直接執(zhí)行步驟3105。
[0027]在本實(shí)施方式中,數(shù)據(jù)報(bào)文處理模塊263根據(jù)扣?/〗?五元組信息(源I?、目的I?,源端口、目的端口、協(xié)議)建立流表信息,同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文稱(chēng)之為一條數(shù)據(jù)流,該數(shù)據(jù)流中的數(shù)據(jù)報(bào)文一定屬于同一個(gè)應(yīng)用。因此,只要一條數(shù)據(jù)流中任意一個(gè)數(shù)據(jù)報(bào)文被檢測(cè)出特征,該條數(shù)據(jù)流中的剩余數(shù)據(jù)報(bào)文就不需要再次進(jìn)行檢測(cè),可以最大幅度提升檢測(cè)效率。在本實(shí)施方式中,所述流表是以五元組信息為鍵值(1(67)的哈希數(shù)組(他也
保證其快速檢索能力。
[0028]在本實(shí)施方式中,采用流表技術(shù)減少對(duì)已識(shí)別應(yīng)用的數(shù)據(jù)報(bào)文做無(wú)效檢測(cè),從而提高系統(tǒng)整體處理性能。舉例而言,流表結(jié)構(gòu)示例如下:
8^10^0(16// 流節(jié)點(diǎn)結(jié)構(gòu)
I
111181^116(1 1111: 81如;// 源 I?地址
1111:如七」!) ;// 目的 I?地址
111181^116(1;// 源端 0
111181^116(1;// 目白勺端 0
111181^116(1;//11)十辦議
111181^116(1 1111: ; // 10
8^10^0(16 ^11 ;
8^10^0(16 噸;
1?紙
8^10^0(16^ ^,0^8122] [^,0^1,8122] [^,0^2,8122];在上述示例的流表結(jié)構(gòu)中,流表采用三維數(shù)組結(jié)構(gòu),在有限內(nèi)存空間使用的情況下,保證數(shù)據(jù)足夠離散,提升檢索效率,三維數(shù)組由五元組信息組成相應(yīng)的哈希鍵值匕示例如下。
[0029]111181^116(1 1111: 1^)8(1(1 = 001~6?+ 001~6?;
111181^116(1 1111: = 00^6.8^0^0^1: + 00^6.;
111181^116(1 1111: 0?? = 1^)8(1(1 % 皿父―01^—3122 ;
111181^116(1 1111:=% 嫩父―0卩卩1^3122 ;
111181^116(1 1111: 0打2 = (1611:8 % 嫩父—0??2—3123 ;
通過(guò)所述三維數(shù)組可以構(gòu)建一個(gè)流表搜索樹(shù),該流表搜索樹(shù)的內(nèi)存占用大小=流表的結(jié)構(gòu)大小* MAX_OFF_SIZE* MAX_0FF1_SIZE* MAX_0FF2_SIZE,通過(guò)調(diào)整宏定義可以滿足不同的設(shè)備內(nèi)存使用,其中,MAX_OFF_SIZE、MAX_0FF1_SIZE*、MAX_0FF2_SIZE分別代表三維數(shù)組中三個(gè)維度(即第一維度、第二維度、第三維度)的大小。
[0030]如果某條數(shù)據(jù)流尚未被識(shí)別,則系統(tǒng)根據(jù)特征碼表進(jìn)行快速檢索,查找該數(shù)據(jù)流所屬的應(yīng)用。進(jìn)一步地,如果該數(shù)據(jù)流已經(jīng)被識(shí)別(匹配到流節(jié)點(diǎn)),則通過(guò)設(shè)置兩個(gè)監(jiān)聽(tīng)(monitor)計(jì)數(shù)器,可以確定流表的命中次數(shù),以判定檢索的離散程度,示例如下。
[0031]SFlowNode *p = m_hashFlowTable[off][offl][off2];
while (p)
{
//匹配到流節(jié)點(diǎn)
if (ipadd == p->src_ip + p->dst_ip && port == (unsigned int)(p->dst_port+ p->src_port) && core, proto == p->proto)
{
//五元組存在
}
P = p->n;
monitor.flowsearchcnt++;//流表命中次數(shù)計(jì)數(shù)器
}
if(!p)
{
//建立流表新節(jié)點(diǎn)
Monitor.flowcnt++;//新建流表計(jì)數(shù)器
}
通過(guò)上述兩個(gè)監(jiān)聽(tīng)計(jì)數(shù)器(流表命中次數(shù)計(jì)數(shù)器與新建流表計(jì)數(shù)器)的值,可以判定檢索的離散程度。
[0032]步驟S105,特征碼檢測(cè)模塊264根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)單一校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描(或稱(chēng)之為“一次逐字掃描”),搜索匹配的特征碼。在本實(shí)施方式中,所述單一校驗(yàn)規(guī)則為固定位置特征碼識(shí)另IJ,即在數(shù)據(jù)報(bào)文的固定位置識(shí)別特征碼。
[0033]具體而言,所述特征碼檢測(cè)模塊26執(zhí)行一次報(bào)文掃描包括如下步驟:從所述通信內(nèi)容的起始位置地址開(kāi)始,獲取當(dāng)前位置對(duì)應(yīng)的單字節(jié)ASCII值,將該單字節(jié)ASCII值設(shè)置為特征碼搜索樹(shù)數(shù)組的下標(biāo),并根據(jù)該下標(biāo)查找特征碼節(jié)點(diǎn)指針。如果該特征碼節(jié)點(diǎn)指針為空,判定系統(tǒng)沒(méi)有當(dāng)前位置對(duì)應(yīng)的特征字開(kāi)頭的特征碼,直接搜索下一個(gè)位置的內(nèi)容;如果該特征碼節(jié)點(diǎn)指針不為空,則遍歷所有特征碼節(jié)點(diǎn)指針,命中特征碼節(jié)點(diǎn)后立刻跳出循環(huán),結(jié)束掃描。
[0034]在本實(shí)施方式中,特征碼節(jié)點(diǎn)包含有每個(gè)特征字的位置信息,通過(guò)指針偏移和ASCII字節(jié)比較,可以以最簡(jiǎn)潔的方式實(shí)現(xiàn)與正則表達(dá)式相同的功能。
[0035]在本實(shí)施方式中,通過(guò)特征碼檢測(cè)技術(shù),一次報(bào)文掃描即可檢測(cè)出數(shù)據(jù)報(bào)文是否包含已經(jīng)應(yīng)用的特征碼,從而達(dá)到通過(guò)數(shù)據(jù)流量快速識(shí)別出該數(shù)據(jù)報(bào)文所屬應(yīng)用的目的,特征碼表結(jié)構(gòu)如下:
5^1*110^ 80181^01168(1181III
I
80181^0 ^0181-01,15^ ;// 協(xié)議連指針鏈數(shù)組
I ;
//特征字節(jié)串
5^1*110^ 80181^0
I
111151^116(1 111^ 已口口―1己;// 用 10
吐虹 01181*05; // 特征碼串
3181^13)0 ;//特征碼分解后的內(nèi)容
80181^0 ;// 下一特征碼
80181^0 ^1*6 ;II 上一特征碼
111151^116(1 111^1 111^5011^ ;// 命中次數(shù)
I ;
80181^01168(1181III111^68(11)10 [256] [100] ; // 特征碼表在本實(shí)施方式中,特征碼節(jié)點(diǎn)通過(guò)特征碼表構(gòu)建,所述特征碼表釆用二維數(shù)組結(jié)構(gòu),該二維數(shù)組的第一維度為43(:11字符值,第二維度為特征碼起始位置。本實(shí)施方式中以掃描前100個(gè)字節(jié)的特征碼信息為例進(jìn)行舉例說(shuō)明,示例如下。
[0036](1^ 1=0 ; 1^001-0-)1)8^81,611^^11&&1? 100 ; 1++)
I
¢)111(161 = &111^68(11) 10 [^^1116] [1];
I
1? (01160^01181-0 (001^6, 1) ? 0)
1*6七 11111 1:1*116 ;
I
I
在本實(shí)施方式中,直接按數(shù)據(jù)報(bào)文的43(:11值和位置信息查找特征碼串,示例如下。
[0037]II匹配每個(gè)成功識(shí)別返回1,否則返回0
111^1:: 01160^01181-0 (81200^6^00^6, 80181^01168(1181III氺口七
0^^56^)
I
80181^0 ^01181-0=1)111(16^-)01181-01,15^ ;
^116 (¢)018^0)
I
8181= ;
I?(001^6, 口祖『10)
(
¢0181-0-) 1111:80111: ++://該特征碼命中次數(shù)累加
//801-1: 0181-0 1.181:
I
¢0181-0= ^018^0~? 116X1:;
I
0 ;
I
步驟3106,特征碼檢測(cè)模塊264根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。例如,如果匹配的特征碼屬于游戲類(lèi)應(yīng)用的特征碼,則確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用為游戲。
[0038]步驟3107,特征碼排序模塊265調(diào)整匹配的特征碼的排序,將命中率最高的特征碼排列在首位,實(shí)現(xiàn)特征碼優(yōu)化排序,提升識(shí)別效率。
[0039]具體而言,在本實(shí)施方式中,為每個(gè)特征碼節(jié)點(diǎn)設(shè)置一個(gè)命中匕)計(jì)數(shù)器,該命中計(jì)數(shù)器累計(jì)統(tǒng)計(jì)每個(gè)特征碼節(jié)點(diǎn)的命中次數(shù),特征碼節(jié)點(diǎn)每被命中一次,該命中計(jì)數(shù)器值加1。每次匹配命中時(shí),特征碼排序模塊265檢查特征碼節(jié)點(diǎn)指針的下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值(即命中次數(shù))是否大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值。如果下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值,則將下一個(gè)節(jié)點(diǎn)移到當(dāng)前節(jié)點(diǎn)之前,實(shí)現(xiàn)特征碼動(dòng)態(tài)優(yōu)化排序;如果下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值小于或等于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值,則不做任何處理。
[0040]系統(tǒng)經(jīng)過(guò)一段時(shí)間調(diào)整后,命中率高的特征碼會(huì)自動(dòng)排列在首部,從而達(dá)到優(yōu)化性能的目的。這種類(lèi)似冒泡的排序方法,采用事件驅(qū)動(dòng)方式,只在下一個(gè)節(jié)點(diǎn)的命中次數(shù)大于當(dāng)前節(jié)點(diǎn)的命中次數(shù)時(shí)移動(dòng)一次節(jié)點(diǎn)指針,幾乎不消耗處理器28的任何性能。
[0041]需要說(shuō)明的是,所述步驟3101至步驟3107的順序可以調(diào)整,某些步驟也可以刪除,例如,步驟3107可以放在步驟3105之后、3106之前執(zhí)行,也可以直接刪除。
[0042]進(jìn)一步地,在第二實(shí)施方式中,步驟3105也可以替換為步驟3105’:特征碼混合檢測(cè)模塊266根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼。
[0043]在第二實(shí)施方式中,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則。其中,所述基本校驗(yàn)規(guī)則包括固定位置特征碼識(shí)別,即第一實(shí)施方式中步驟3105中采用的校驗(yàn)規(guī)則。所述附加校驗(yàn)規(guī)則包括:浮動(dòng)位置特征碼識(shí)別、比較指定位置值與包長(zhǎng)度、比較報(bào)文端口、比較報(bào)文長(zhǎng)度、比較相同特征碼前綴的報(bào)文數(shù)量等。
[0044]以下舉例說(shuō)明所述復(fù)合式校驗(yàn)規(guī)則的具體運(yùn)用方法:
1111:8011(012001-6 ^00^6, 31已!^ 氺
I
8 界 11x11
I
0856 0:
II固定位置特征碼識(shí)別
break;
y τ-'?
case v:
//浮動(dòng)位置特征碼識(shí)別
break;
y
case K:
//比較指定位置值與包長(zhǎng)度,規(guī)定特征碼中R型只用2字節(jié)表示長(zhǎng)度,R:前面是低位,后面是1?位break;case Jr:
//比較指定位置值與包長(zhǎng)度,規(guī)定特征碼中R型只用2字節(jié)表示長(zhǎng)度,,r:前面是高位,后面是低位break;
y tV
case r:
//比較報(bào)文端口
break;
case JV:
//比較報(bào)文長(zhǎng)度
break;
case ’ NJ:
//比較相同特征碼前綴的報(bào)文數(shù)量
break;
default:
break;
}
return RSuccess;
}
具體地,各個(gè)校驗(yàn)規(guī)則定義如下:
C型:即基本校驗(yàn)規(guī)則(固定位置特征碼識(shí)別),表示在數(shù)據(jù)包的固定位置出現(xiàn)固定字符信息,表示為:Cx:Y。
[0045]說(shuō)明:x為數(shù)據(jù)的固定位置,即第X個(gè)字節(jié),其中,數(shù)據(jù)的字節(jié)是從0開(kāi)始計(jì)數(shù)的;Y表示在第X個(gè)字節(jié)上出現(xiàn)的內(nèi)容,如C0:0xFE,表示在第0個(gè)字節(jié)的內(nèi)容為OxFE。
[0046]F型:即浮動(dòng)位置特征碼識(shí)別,用于表示在數(shù)據(jù)包的某些相對(duì)位置連續(xù)出現(xiàn)固定字符信息,但位置不固定,表示方法為:F0:X0,Fl:Xl,F2:X2o
[0047]說(shuō)明:F后的數(shù)字表示相對(duì)位置,從0開(kāi)始,依此累加。X0、X1、X2等分別對(duì)應(yīng)每個(gè)相對(duì)位置的字符,如XI表示第一個(gè)相對(duì)位置的字符。
[0048]R/r型:即比較指定位置值與包長(zhǎng)度,包括兩種不同類(lèi)型(R類(lèi)型和r類(lèi)型),表示為:【R/r】【LOC】:【Value】。
[0049]說(shuō)明:由3個(gè)元素組成,具體說(shuō)明如下。
[0050]R/r:任選一個(gè)R類(lèi)型(第一類(lèi)型)或者r類(lèi)型(第二類(lèi)型),均表示為R類(lèi)型特征碼; 100:為指定長(zhǎng)度值的字節(jié)的開(kāi)始位置,表示第[0(:與11)01的2個(gè)字節(jié)為長(zhǎng)度值洱型表示前一字節(jié)(10(:位置)是低位,后一字節(jié)(1001位置)是高位,型表示前一字節(jié)是高位,后一字節(jié)是低位,由此得出數(shù)據(jù)長(zhǎng)度XX。
[0051]:定義可選值的意義如下,可以計(jì)算出數(shù)據(jù)長(zhǎng)度”。
[0052]0:代表數(shù)據(jù)包的數(shù)據(jù)部分長(zhǎng)度;
1:含[0(:位置2個(gè)字節(jié)的數(shù)據(jù)長(zhǎng)度,不包括[0(:前面的字節(jié);
2:不含[0(:位置2個(gè)字節(jié)的長(zhǎng)度,也不包括[0(:前面的字節(jié)。
[0053]其中,8/1'型的規(guī)則為:如果XX:冗,則判定特征碼滿足要求。
[0054]?型:即比較報(bào)文端口,用于表不傳輸層協(xié)議的端口,表不方法為:
[0055][型:即比較報(bào)文長(zhǎng)度,用于表示應(yīng)用層數(shù)據(jù)包的長(zhǎng)度檢驗(yàn),表示方法為:1[妨1]:[1611^1:11]。
[0056]表示應(yīng)用層數(shù)據(jù)包的長(zhǎng)度,V。有以下三種取值,每種取值確定驗(yàn)證碼的檢測(cè)計(jì)算方式。
[0057]0:1611^11=實(shí)際應(yīng)用層數(shù)據(jù)包長(zhǎng)度,則符合要求;
1:16^大于等于實(shí)際應(yīng)用層數(shù)據(jù)包長(zhǎng)度,則符合要求;
2:16^小于等于實(shí)際應(yīng)用層數(shù)據(jù)包長(zhǎng)度,則符合要求。
[0058]~型:即比較相同特征碼前綴的報(bào)文數(shù)量,用于表示單個(gè)數(shù)據(jù)流中上行包的個(gè)數(shù)限制,表示方法為:^: [860011(1],860011(1表示范圍[1, 15]中的任意整數(shù),如果單個(gè)數(shù)據(jù)流中的上行包的個(gè)數(shù)〈86⑶11(1,則符合要求。
[0059]在本實(shí)施方式中,所述復(fù)合式校驗(yàn)規(guī)則可以從所述基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則中選取多種校驗(yàn)規(guī)則組合成為一種特征碼混合檢測(cè)技術(shù)。通過(guò)該特征碼混合檢測(cè)技術(shù),系統(tǒng)在檢測(cè)特征碼時(shí),不僅僅在數(shù)據(jù)報(bào)文固定位置掃描匹配的字符串,還進(jìn)一步檢查數(shù)據(jù)報(bào)文里隱含的長(zhǎng)度信息、特征報(bào)文長(zhǎng)度信息,端口信息,以及同一流中超過(guò)一定數(shù)量的特征報(bào)文等,通過(guò)定義上述附加校驗(yàn)規(guī)則,可以實(shí)現(xiàn)多種特征碼的組合匹配,減少特征碼識(shí)別的誤判,使得應(yīng)用識(shí)別更加可靠,而現(xiàn)有技術(shù)中的正則表達(dá)式僅僅只能做到字符的匹配功能。
[0060]綜上所述,本發(fā)明所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法解決了如下技術(shù)問(wèn)題是:1)解決多特征碼掃描對(duì)系統(tǒng)的性能影響解決長(zhǎng)連接數(shù)據(jù)流特征碼掃描對(duì)系統(tǒng)性能的影響;
3)解決多種檢測(cè)手段識(shí)別互聯(lián)網(wǎng)流量,避免流量誤判。
[0061〕 由于采用了以上技術(shù)方案,可實(shí)現(xiàn)特征碼快速檢索定位能力,具有以下優(yōu)點(diǎn):1)隨應(yīng)用增多,特征碼的數(shù)量增加對(duì)系統(tǒng)的影響降到最低,對(duì)于一些長(zhǎng)連接的應(yīng)用,隨著特征碼的識(shí)別,系統(tǒng)性能反而可以得到提升,因?yàn)橐粭l數(shù)據(jù)流中的某一數(shù)據(jù)報(bào)文識(shí)別出特征碼以后,該數(shù)據(jù)流后續(xù)的數(shù)據(jù)報(bào)文不需要再做檢測(cè)可以實(shí)現(xiàn)多條件的流識(shí)別技術(shù),避免因?yàn)閱我坏恼齽t表達(dá)式掃描造成系統(tǒng)誤判:3)解決高速流量網(wǎng)絡(luò)的數(shù)據(jù)報(bào)文處理性能。
[0062]另外,需要指出的是,本發(fā)明所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法運(yùn)行可靠,可以通過(guò)互聯(lián)網(wǎng)訪問(wèn)的數(shù)據(jù)包特征碼識(shí)別絕大多數(shù)常用通信軟件,如頂(1118仏社16888叫1叩,即時(shí)通訊)軟件、游戲軟件、影音播放軟件等等。本方法設(shè)計(jì)簡(jiǎn)單,性能可靠,可以通過(guò)調(diào)優(yōu)散列值的方式達(dá)到不同的業(yè)務(wù)目的,該方法在普通4核雙⑶口,326內(nèi)存的86^61-上,可以滿足2*10%%流量的識(shí)別分析能力,解決了現(xiàn)有技術(shù)中多特征碼掃描性能不足的缺陷。
[0063]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的詳細(xì)說(shuō)明,不能認(rèn)定具體實(shí)施只局限于這些說(shuō)明。對(duì)于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,其特征在于,該方法包括: 初始化步驟,創(chuàng)建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存; 數(shù)組搜索樹(shù)定位步驟,從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù); 數(shù)據(jù)報(bào)文處理步驟一,對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址; 數(shù)據(jù)報(bào)文處理步驟二,根據(jù)預(yù)先設(shè)定的五元組信息建立流表信息,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流; 特征碼檢測(cè)步驟一,根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;及 特征碼檢測(cè)步驟二,根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
2.根據(jù)權(quán)利要求1所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,其特征在于,該方法還包括: 特征碼排序步驟,調(diào)整匹配的特征碼的排序,將命中率最高的特征碼排列在首位。
3.根據(jù)權(quán)利要求2所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,其特征在于,所述特征碼排序步驟包括: 為每個(gè)特征碼節(jié)點(diǎn)設(shè)置一個(gè)命中計(jì)數(shù)器,該命中計(jì)數(shù)器累計(jì)統(tǒng)計(jì)每個(gè)特征碼節(jié)點(diǎn)的命中次數(shù); 每次匹配命中時(shí),檢查特征碼節(jié)點(diǎn)指針的下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值是否大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值;及 如果下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值,則將下一個(gè)節(jié)點(diǎn)移到當(dāng)前節(jié)點(diǎn)之前。
4.根據(jù)權(quán)利要求1所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,其特征在于,所述基本校驗(yàn)規(guī)則包括固定位置特征碼識(shí)別,所述附加校驗(yàn)規(guī)則包括浮動(dòng)位置特征碼識(shí)別、比較指定位置值與包長(zhǎng)度、比較報(bào)文端口、比較報(bào)文長(zhǎng)度、比較相同特征碼前綴的報(bào)文數(shù)量。
5.根據(jù)權(quán)利要求4所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別方法,其特征在于: 所述固定位置特征碼識(shí)別,表示在數(shù)據(jù)包的固定位置出現(xiàn)固定字符信息; 所述浮動(dòng)位置特征碼識(shí)別,表示在數(shù)據(jù)包的不固定位置連續(xù)出現(xiàn)固定字符信息。
6.所述比較指定位置值與包長(zhǎng)度,表示在特征碼中只用兩個(gè)字節(jié)表示長(zhǎng)度,包括第一類(lèi)型和第二類(lèi)型,所述第一類(lèi)型定義前一字節(jié)是低位,后一字節(jié)是高位,所述第二類(lèi)型定義前一字節(jié)是高位,后一字節(jié)是低位; 所述比較報(bào)文端口,表示比較傳輸層協(xié)議的端口 ; 所述比較報(bào)文長(zhǎng)度,表示應(yīng)用層數(shù)據(jù)包的長(zhǎng)度檢驗(yàn) '及 所述比較相同特征碼前綴的報(bào)文數(shù)量,表示比較單個(gè)數(shù)據(jù)流中上行包的個(gè)數(shù)。
7.—種互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng),其特征在于,該系統(tǒng)包括: 初始化模塊,用于創(chuàng)建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存; 數(shù)組搜索樹(shù)定位模塊,用于從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù); 數(shù)據(jù)報(bào)文處理模塊,用于對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址; 所述數(shù)據(jù)報(bào)文處理模塊,還用于根據(jù)預(yù)先設(shè)定的五元組信息建立流表信息,將同屬于一個(gè)五元組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流; 特征碼檢測(cè)模塊,用于根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;及 所述特征碼檢測(cè)模塊,還用于根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
8.根據(jù)權(quán)利要求6所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng),其特征在于,該系統(tǒng)還包括: 特征碼排序模塊,用于調(diào)整匹配的特征碼的排序,將命中率最高的特征碼排列在首位。
9.根據(jù)權(quán)利要求7所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng),其特征在于,所述特征碼排序模塊調(diào)整匹配的特征碼的排序包括: 為每個(gè)特征碼節(jié)點(diǎn)設(shè)置一個(gè)命中計(jì)數(shù)器,該命中計(jì)數(shù)器累計(jì)統(tǒng)計(jì)每個(gè)特征碼節(jié)點(diǎn)的命中次數(shù); 每次匹配命中時(shí),檢查特征碼節(jié)點(diǎn)指針的下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值是否大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值;及 如果下一個(gè)節(jié)點(diǎn)的命中計(jì)數(shù)器值大于當(dāng)前節(jié)點(diǎn)的命中計(jì)數(shù)器值,則將下一個(gè)節(jié)點(diǎn)移到當(dāng)前節(jié)點(diǎn)之前。
10.根據(jù)權(quán)利要求6所述的互聯(lián)網(wǎng)應(yīng)用流量識(shí)別系統(tǒng),其特征在于,所述基本校驗(yàn)規(guī)則包括固定位置特征碼識(shí)別,所述附加校驗(yàn)規(guī)則包括浮動(dòng)位置特征碼識(shí)別、比較指定位置值與包長(zhǎng)度、比較報(bào)文端口、比較報(bào)文長(zhǎng)度、比較相同特征碼前綴的報(bào)文數(shù)量; 一種識(shí)別裝置,其特征在于,該識(shí)別裝置包括: 存儲(chǔ)器; 處理器;以及 一個(gè)或多個(gè)模塊,所述一個(gè)或多個(gè)模塊被存儲(chǔ)在所述存儲(chǔ)器中并被配置成由所述處理器執(zhí)行,以完成以下指令: 創(chuàng)建深度包檢測(cè)處理線程,并申請(qǐng)預(yù)設(shè)大小的流表內(nèi)存; 從預(yù)先設(shè)定的特征碼配置文件中讀取特征碼信息,并根據(jù)該特征碼信息建立特征碼搜索樹(shù); 對(duì)接收的數(shù)據(jù)報(bào)文進(jìn)行解析,得到該數(shù)據(jù)報(bào)文的通信內(nèi)容的起始位置地址; 根據(jù)預(yù)先設(shè)定的五兀組信息建立流表信息,將同屬于一個(gè)五兀組的數(shù)據(jù)報(bào)文合并成一條數(shù)據(jù)流; 根據(jù)所述特征碼搜索樹(shù)和流表信息,通過(guò)復(fù)合式校驗(yàn)規(guī)則,對(duì)所述通信內(nèi)容的起始位置地址開(kāi)始的信息執(zhí)行一次報(bào)文掃描,搜索匹配的特征碼,所述復(fù)合式校驗(yàn)規(guī)則包括基本校驗(yàn)規(guī)則和附加校驗(yàn)規(guī)則;及 根據(jù)匹配的特征碼確定該數(shù)據(jù)報(bào)文所屬的應(yīng)用。
【文檔編號(hào)】H04L12/26GK104333483SQ201410578118
【公開(kāi)日】2015年2月4日 申請(qǐng)日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】黃志云 申請(qǐng)人:深圳市傲天通信有限公司