專利名稱:一種基于流的深度報(bào)文檢測協(xié)議解碼方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通訊領(lǐng)域,尤其涉及一種基于流的深度報(bào)文檢測 協(xié)-漢解碼方法、設(shè)備及系統(tǒng)。
背景技術(shù):
移動(dòng)通信業(yè)務(wù)給人們的通信方式發(fā)生了巨大變革,手機(jī)數(shù)據(jù)業(yè)務(wù) 已經(jīng)開始逐漸替代傳統(tǒng)的語音業(yè)務(wù)。 一方面,隨著移動(dòng)業(yè)務(wù)快速發(fā)展, 新的業(yè)務(wù)不斷引入,各種新的應(yīng)用層出不窮,給人們的生活工作帶來 了更多的便利,但另一方面,移動(dòng)業(yè)務(wù)發(fā)展的同時(shí)也使得數(shù)據(jù)網(wǎng)業(yè)務(wù) 種類及流量急速增長,造成對(duì)移動(dòng)數(shù)據(jù)業(yè)務(wù)進(jìn)行協(xié)議解碼性能的要求 越來越高。
目前協(xié)議解碼技術(shù)一般是純軟件解碼,由于用戶業(yè)務(wù)數(shù)據(jù)大都是 文本格式編碼,其業(yè)務(wù)數(shù)據(jù)量較大、數(shù)據(jù)業(yè)務(wù)協(xié)議較多,且通常情況 下業(yè)務(wù)數(shù)據(jù)被分割到多個(gè)數(shù)據(jù)包中,獲取該業(yè)務(wù)數(shù)據(jù)需要進(jìn)行字符串
查找,所以處理速度較慢,很難滿足實(shí)時(shí)解碼要求;另外,由于數(shù)據(jù) 傳輸過程中數(shù)據(jù)流多被分割到多個(gè)數(shù)據(jù)包中(即所謂跨包)從而需要 軟件組包,但是組包過程中需要同時(shí)保存數(shù)據(jù)流中的多個(gè)數(shù)據(jù)包,其 占用的內(nèi)存較大,需要的通用服務(wù)器較多,故其成本也較高。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是移動(dòng)通信中基于流的協(xié)議解碼方 法解碼速度慢且成本高,提出了一種解碼快速、成本較低的基于流的 協(xié)i義解碼方法、設(shè)備及系統(tǒng)。
為了解決上述技術(shù)問題,本發(fā)明提供一種基于流的深度報(bào)文檢測 協(xié)議解碼方法,包括
接收業(yè)務(wù)數(shù)據(jù)流,將不同的數(shù)據(jù)流分發(fā)到不同線程中處理;
識(shí)別分流后所述數(shù)據(jù)流的協(xié)議類型,將同一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊;
深度報(bào)文檢測處理模塊調(diào)用正則表達(dá)式規(guī)則庫,對(duì)所述數(shù)據(jù)進(jìn)行 協(xié)議解碼。
進(jìn)一步,在上述方法中,所述深度報(bào)文檢測處理模塊調(diào)用正則表
達(dá)式規(guī)則庫,對(duì)所述數(shù)據(jù)進(jìn)行協(xié)議解碼包括
所述深度報(bào)文檢測處理模塊獲取所述數(shù)據(jù)的協(xié)議類型后,根據(jù)正 則表達(dá)式規(guī)則庫查找到與所述數(shù)據(jù)協(xié)議類型對(duì)應(yīng)的協(xié)議解碼規(guī)則;
對(duì)包含所述數(shù)據(jù)的數(shù)據(jù)包進(jìn)行掃描,根據(jù)所述協(xié)議解碼規(guī)則從所 述數(shù)據(jù)包中提取所述數(shù)據(jù)的輸出信息;
根據(jù)所述輸出信息從所述數(shù)據(jù)包中提取所述數(shù)據(jù)的解碼信息。
進(jìn)一步,在上述方法中,所述接收業(yè)務(wù)數(shù)據(jù)流之前包括深度報(bào) 文檢測處理模塊進(jìn)行初始化并加載編譯后的正則表達(dá)式規(guī)則庫。
進(jìn)一步,在上述方法中,所述方法還包括對(duì)所述正則表達(dá)式規(guī)則 庫進(jìn)行編譯,將其轉(zhuǎn)換成深度報(bào)文檢測處理模塊可識(shí)別格式的數(shù)據(jù)。
進(jìn)一步,在上述方法中,所述將不同的數(shù)據(jù)流分發(fā)到不同線程中 處理包括分析提取數(shù)據(jù)中用戶的流信息,并根據(jù)所述用戶的流信息 將所述數(shù)據(jù)分發(fā)到不同線程中處理。
進(jìn)一步,在上述方法中,所述方法具體包括
對(duì)于TCP數(shù)據(jù)流,根據(jù)TCP數(shù)據(jù)流的源IP地址、目的IP地址、 源端口、目的端口和協(xié)議類型,將其分到不同的線程中;
對(duì)于UDP數(shù)據(jù)流,根據(jù)UDP數(shù)據(jù)流的源IP地址、源端口 、業(yè) 務(wù)ID、協(xié)議類型來將其分到不同的線程中。
進(jìn)一步,在上述方法中,所述識(shí)別分流后所述數(shù)據(jù)流的協(xié)議類型, 將同 一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊包括
對(duì)經(jīng)過分流的數(shù)據(jù)流的協(xié)議類型進(jìn)行識(shí)別,獲取所述數(shù)據(jù)流中數(shù) 據(jù)的協(xié)議類型;
根據(jù)實(shí)際要求的協(xié)議類型判斷所述數(shù)據(jù)流中的數(shù)據(jù)是否需要進(jìn) 行解碼,若不需要?jiǎng)t直接丟棄所述數(shù)據(jù),若需要,則將同一數(shù)據(jù)流分 發(fā)到相同深度報(bào)文檢測處理模塊。
進(jìn)一步,在上述方法中,所述將同一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊包括
在接收到新的數(shù)據(jù)流時(shí)建立新的流表;
當(dāng)接收到數(shù)據(jù)報(bào)文時(shí),先在所述流表中查找其對(duì)應(yīng)的流號(hào),若能 找到,再判斷所述數(shù)據(jù)報(bào)文是否為最后一個(gè)包,若不是,則將所述數(shù) 據(jù)報(bào)文歸入對(duì)應(yīng)的數(shù)據(jù)流中,否則進(jìn)行流的刪除;
當(dāng)所述數(shù)據(jù)流出現(xiàn)亂序或重發(fā)且所述數(shù)據(jù)流沒有被正常刪除時(shí), 啟動(dòng)定時(shí)器在定時(shí)時(shí)間內(nèi)將所述數(shù)據(jù)流進(jìn)行刪除。
一種基于流的深度報(bào)文檢測協(xié)議解碼設(shè)備,所述設(shè)備包括數(shù)據(jù)接 收模塊、數(shù)據(jù)分流模塊、協(xié)議類型識(shí)別模塊、流管理模塊及深度報(bào)文 檢測處理模塊,其中
所述數(shù)據(jù)接收模塊,用于接收移動(dòng)業(yè)務(wù)數(shù)據(jù);
所述數(shù)據(jù)分流模塊,連接于所述數(shù)據(jù)接收模塊,用于將不同的數(shù) 據(jù)流分發(fā)到不同線程中處理;
所述協(xié)議類型識(shí)別模塊,連接于所述數(shù)據(jù)分流模塊,用于各線程 對(duì)經(jīng)過分流的數(shù)據(jù)的協(xié)議類型進(jìn)行識(shí)別;
所述流管理模塊,連接于所述協(xié)議類型識(shí)別模塊,用于各線程將 同 一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊;
深度報(bào)文檢測處理模塊,連接于所迷流管理模塊,用于調(diào)用正則 表達(dá)式規(guī)則庫對(duì)經(jīng)過流管理模塊的數(shù)據(jù)進(jìn)行協(xié)議解碼。
一種基于流的深度報(bào)文檢測協(xié)議解碼系統(tǒng),所述系統(tǒng)包括路由設(shè) 備及深度報(bào)文檢測協(xié)議解碼設(shè)備,其中
所述路由設(shè)備,用于轉(zhuǎn)發(fā)網(wǎng)絡(luò)通信數(shù)據(jù)并同時(shí)將所轉(zhuǎn)發(fā)的數(shù)據(jù)復(fù) 制 一份發(fā)給所述深度報(bào)文檢測協(xié)議解碼設(shè)備;
所述深度報(bào)文檢測協(xié)議解碼設(shè)備,用于接收所述路由設(shè)備發(fā)送的 業(yè)務(wù)數(shù)據(jù),將不同的數(shù)據(jù)流分發(fā)到不同線程中處理,對(duì)所述數(shù)據(jù)的協(xié) 議類型進(jìn)行識(shí)別,將經(jīng)過協(xié)議類型識(shí)別后的同 一數(shù)據(jù)流分發(fā)到相同深 度報(bào)文檢測處理模塊,調(diào)用正則表達(dá)式規(guī)則庫對(duì)所述數(shù)據(jù)進(jìn)行協(xié)議解 碼。
本發(fā)明通過深度報(bào)文檢測硬件技術(shù)和正則表達(dá)式規(guī)則庫相接合, 并采用多線程技術(shù)對(duì)復(fù)雜的用戶業(yè)務(wù)數(shù)據(jù)進(jìn)行硬件解碼,大大提高了解碼速度,滿足實(shí)時(shí)解碼要求,而且減少了對(duì)服務(wù)器內(nèi)存的需求,降 低了成本。
圖1是本發(fā)明基于流的深度報(bào)文檢測協(xié)議解碼設(shè)備的結(jié)構(gòu)示意
圖2是本發(fā)明基于流的深度報(bào)文檢測協(xié)議解碼系統(tǒng)的結(jié)構(gòu)示意
圖3是本發(fā)明基于流的深度報(bào)文檢測協(xié)議解碼方法的流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。
在本發(fā)明的實(shí)施例中,考慮到DPI(Deep Packet Inspection,深度 報(bào)文檢測)硬件對(duì)數(shù)據(jù)進(jìn)行協(xié)議解碼時(shí)具有快速準(zhǔn)確的特點(diǎn),采用了 將DPI檢測設(shè)備并聯(lián)到路由器或交換機(jī)的組網(wǎng)方式。其中,DPI深度 報(bào)文檢測技術(shù)是一種基于應(yīng)用層數(shù)據(jù)的檢測技術(shù),當(dāng)IP數(shù)據(jù)包、TCP 或UDP數(shù)據(jù)流通過基于DPI技術(shù)的系統(tǒng)時(shí),DPI能正確提取所述數(shù) 據(jù)包或數(shù)據(jù)流信息,從而對(duì)移動(dòng)數(shù)據(jù)業(yè)務(wù)進(jìn)行監(jiān)測、控制、識(shí)別、分 類、統(tǒng)計(jì)。本發(fā)明的實(shí)施例采用DPI檢測技術(shù)并結(jié)合數(shù)據(jù)網(wǎng)監(jiān)測系統(tǒng) 特點(diǎn),解決了 DPI實(shí)時(shí)協(xié)議解碼問題。本實(shí)施例可應(yīng)用于移動(dòng)數(shù)據(jù)業(yè) 務(wù)系統(tǒng),如故障才殳訴系統(tǒng),故障定位系統(tǒng)。運(yùn)營商通過本發(fā)明可進(jìn)4亍 各種業(yè)務(wù)分析,/人而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)維護(hù)、優(yōu)化。
請(qǐng)參閱圖1,圖1是本發(fā)明基于流的DPI協(xié)議解碼設(shè)備的結(jié)構(gòu)示 意圖。DPI協(xié)議解碼設(shè)備100包括數(shù)據(jù)接收模塊102、數(shù)據(jù)分流模塊 104、協(xié)議類型識(shí)別模塊106、流管理模塊108及DPI處理模塊110。
其中,數(shù)據(jù)接收模塊102用于接收移動(dòng)業(yè)務(wù)數(shù)據(jù)。所述數(shù)據(jù)通過 路由器或交換機(jī)進(jìn)行分光或端口鏡像給DPI協(xié)議解碼設(shè)備100,即網(wǎng) 絡(luò)中路由器或交換機(jī)在轉(zhuǎn)發(fā)數(shù)據(jù)的同時(shí)將所轉(zhuǎn)發(fā)的數(shù)據(jù)復(fù)制一份發(fā) 給DPI協(xié)議解碼i更備100。數(shù)據(jù)分流模塊104,連接于數(shù)據(jù)接收模塊102,用于對(duì)數(shù)據(jù)接收 模塊102接收的數(shù)據(jù)進(jìn)行分流,即分析提取數(shù)據(jù)中用戶的流信息,并 根據(jù)所述用戶的流信息將不同的數(shù)據(jù)流分發(fā)到不同線程中處理。
協(xié)議類型識(shí)別模塊106,連接于數(shù)據(jù)分流模塊104,用于各線程 對(duì)經(jīng)過分流的數(shù)據(jù)的協(xié)議類型進(jìn)行識(shí)別,并丟棄屬于不需要分析的 協(xié)議類型的數(shù)據(jù)。
流管理模塊108,連接于協(xié)議類型識(shí)別模塊106,用于各線程對(duì) 經(jīng)過協(xié)議類型識(shí)別后的數(shù)據(jù)流的建立、維護(hù)、刪除、老化進(jìn)行管理, 使得同一數(shù)據(jù)流分發(fā)到相同DPI處理模塊進(jìn)行處理。其中,所述流 的建立是指一個(gè)新的流到來時(shí)建立新流表;所述流的維護(hù)是指對(duì)一 個(gè)流的中間數(shù)據(jù)報(bào)文的管理,當(dāng)一個(gè)數(shù)據(jù)報(bào)文到來時(shí),先在流表中 查找其對(duì)應(yīng)的流號(hào),若能找到,則說明所述數(shù)據(jù)報(bào)文不是第一個(gè)報(bào) 文,再判斷所述數(shù)據(jù)報(bào)文是否為最后一個(gè)包,若不是,則將所述數(shù) 據(jù)報(bào)文歸入對(duì)應(yīng)的數(shù)據(jù)流中,否則進(jìn)行流的刪除;流的老化是指當(dāng) 因?yàn)閿?shù)據(jù)出現(xiàn)亂序或重發(fā)而出現(xiàn)流沒有被正常刪除時(shí),啟動(dòng)定時(shí)器 在定時(shí)時(shí)間內(nèi)將其刪除。
DPI處理模塊110,連接于流管理模塊108,用于調(diào)用正則表達(dá) 式規(guī)則庫對(duì)經(jīng)過流管理模塊的數(shù)據(jù)進(jìn)行協(xié)議解碼。其中,DPI處理 模塊110包括至少一 DPI芯片,用于調(diào)用解碼函數(shù)及正則表達(dá)式規(guī) 則庫進(jìn)行解碼。所述DPI芯片包括多個(gè)引擎模塊,每個(gè)引擎模塊可 以獨(dú)自進(jìn)行協(xié)議解碼,即所述DPI芯片通過所述多個(gè)引擎模塊對(duì)數(shù) 據(jù)進(jìn)行并行協(xié)議解碼。基于DPI技術(shù)的協(xié)議解碼需要一個(gè)正則表達(dá) 式規(guī)則庫,所述正則表達(dá)式規(guī)則庫是定義了某些協(xié)議的規(guī)則,即規(guī) 定了某種類型的協(xié)議包含的信息內(nèi)容。當(dāng)有新的協(xié)議出現(xiàn)或協(xié)議升 級(jí)時(shí),所述正則表達(dá)式規(guī)則庫也要更新才能對(duì)具有新協(xié)議的數(shù)據(jù)流 進(jìn)行識(shí)別。
請(qǐng)參閱圖2,圖2是本發(fā)明基于流的DPI協(xié)議解碼系統(tǒng)的結(jié)構(gòu)示 意圖,所述系統(tǒng)包括路由器及DPI協(xié)議解碼設(shè)備。其中,所述路由器 用于在通信網(wǎng)絡(luò)中轉(zhuǎn)發(fā)業(yè)務(wù)數(shù)據(jù),并將所轉(zhuǎn)發(fā)的數(shù)據(jù)復(fù)制一份發(fā)給所 述DPI協(xié)議解碼設(shè)備;所述DPI協(xié)議解碼設(shè)備并聯(lián)于所述路由器上,用于接收所述路由器發(fā)送的數(shù)據(jù),對(duì)所述接收的數(shù)據(jù)進(jìn)行分流并對(duì)分流后的數(shù)據(jù)進(jìn)行協(xié)議類型判斷,再對(duì)每一個(gè)協(xié)議中數(shù)據(jù)進(jìn)行流管理,確保同一個(gè)數(shù)據(jù)流發(fā)送給同一個(gè)DPI處理模塊中進(jìn)行解碼,最后通過
DPI處理模塊對(duì)數(shù)據(jù)進(jìn)行協(xié)議解碼。這種并聯(lián)接入的方式由于是獨(dú)立
進(jìn)行數(shù)據(jù)協(xié)議解碼,所以對(duì)移動(dòng)系統(tǒng)進(jìn)行數(shù)據(jù)通信的影響較小。
請(qǐng)參閱圖3,圖3是圖2所示的系統(tǒng)在進(jìn)行協(xié)議解碼時(shí)的方法實(shí)施例流程圖,所述方法包括以下的步驟
步驟301: DPI處理模塊進(jìn)行初始化,并加載編譯后的正則表達(dá)式規(guī)則庫。其中,DPI處理模塊中的DPI芯片經(jīng)過初始化后才能正常工作,本步驟在DPI處理模塊進(jìn)行初始化之前還包括對(duì)所述正則表達(dá)式規(guī)則庫進(jìn)行編譯,將其轉(zhuǎn)換成DPI芯片可識(shí)別格式的數(shù)據(jù),這樣DPI處理模塊才能對(duì)數(shù)據(jù)報(bào)文進(jìn)行DPI協(xié)議解碼;
步驟302:所述數(shù)據(jù)接收模塊讀取業(yè)務(wù)數(shù)據(jù),并將其發(fā)給所述數(shù)據(jù)分流模塊。本步驟還包括所述路由器在轉(zhuǎn)發(fā)業(yè)務(wù)數(shù)據(jù)時(shí)并將所轉(zhuǎn)發(fā)的數(shù)據(jù)復(fù)制一份發(fā)給所述數(shù)據(jù)接收模塊;
步驟303:所述數(shù)據(jù)分流模塊接收到所述數(shù)據(jù)后,對(duì)其進(jìn)行分流。即分析提取數(shù)據(jù)中用戶的流信息,并根據(jù)所述用戶的流信息將所述數(shù)據(jù)分發(fā)到不同線程中處理。其中,對(duì)于TCP數(shù)據(jù)流,采用五元組進(jìn)4亍分流。所述五元組包4舌源IP地址、目的IP地址、源端口、目的端口和協(xié)議類型。所以纟艮據(jù)TCP tt據(jù)流的源IP地址、目的IP地址、源端口、目的端口和協(xié)議類型,將其分到不同的線程中;對(duì)于UDP數(shù)據(jù)流,則需要分析其應(yīng)用層某一關(guān)鍵字即業(yè)務(wù)ID才能區(qū)分是否為同一個(gè)流,即同一業(yè)務(wù)過程。所以根據(jù)源IP地址、源端口、業(yè)務(wù)ID、協(xié)議類型來對(duì)UDP數(shù)據(jù)流進(jìn)行流管理。如WSP協(xié)議中 一個(gè)上網(wǎng)業(yè)務(wù),是通過其源IP地址、源端口、 WTP中的teid、協(xié)議類型來確定的。所述數(shù)據(jù)通過數(shù)據(jù)分流模塊之后,不同的數(shù)據(jù)流分發(fā)到不同線程中并行進(jìn)行處理,從而提高了處理速度;
步驟304:各線程的所述協(xié)議類型識(shí)別模塊對(duì)經(jīng)過分流的數(shù)據(jù)的協(xié)議類型進(jìn)行識(shí)別,獲取所述數(shù)據(jù)的協(xié)議類型;
步驟305:判斷所述數(shù)據(jù)是否需要進(jìn)行解碼,若不需要,則直接丟棄所述數(shù)據(jù),否則進(jìn)行步驟306。其中,判斷的方法是根據(jù)實(shí)際要求判斷某種協(xié)議類型的數(shù)據(jù)是否需要進(jìn)行解碼;
步驟306:各線程的所述流管理模塊對(duì)協(xié)議類型識(shí)別后的數(shù)據(jù)進(jìn)行流管理,使得同一數(shù)據(jù)流分發(fā)到相同DPI處理沖莫塊進(jìn)行處理。所述流管理包括對(duì)數(shù)據(jù)流的建立、維護(hù)、刪除、老化進(jìn)行管理;
步驟307:所述DPI處理模塊根據(jù)正則表達(dá)式規(guī)則庫對(duì)經(jīng)過流管理模塊的數(shù)據(jù)進(jìn)行DPI協(xié)議解碼。所述DPI處理模塊獲取了所述數(shù)據(jù)的協(xié)議類型后,根據(jù)正則表達(dá)式規(guī)則庫查找到與所述數(shù)據(jù)協(xié)議類型對(duì)應(yīng)的協(xié)議解碼規(guī)則;再對(duì)包含所述數(shù)據(jù)的數(shù)據(jù)包進(jìn)行掃描,根據(jù)所述協(xié)議解碼規(guī)則從所述數(shù)據(jù)包中提取所述數(shù)據(jù)的輸出信息。
需要說明的是,所述DPI處理模塊支持跨包掃描。對(duì)于跨包數(shù)據(jù)報(bào)文,則在下一個(gè)數(shù)據(jù)報(bào)文中輸出結(jié)果,即若所述輸出信息中包含跨包字段,則需要在前一包和當(dāng)前包中取出對(duì)應(yīng)字段結(jié)果,即可獲得所述跨包的輸出信息。另外,由于本實(shí)施例中采用的是正則表達(dá)式規(guī)則庫匹配解碼的方法,所述輸出信息是匹配位置相對(duì)所述數(shù)據(jù)包的偏移量,所以步驟307還包括根據(jù)所述輸出信息從所述數(shù)據(jù)包提取解碼信息。
相比于現(xiàn)有技術(shù),本發(fā)明通過DPI硬件技術(shù)和正則表達(dá)式失見則庫相接合,并采用多線程技術(shù)對(duì)復(fù)雜的用戶業(yè)務(wù)數(shù)據(jù)進(jìn)行硬件解碼。由于在相同條件下,DPI硬件解碼速度是軟件解碼速度的IO倍以上,所以本發(fā)明大大提高了解碼速度,滿足實(shí)時(shí)解碼要求,而且由于DPI硬件支持跨包掃描,只需保存一個(gè)數(shù)據(jù)流中的前一 包及當(dāng)前包的信息,所以這就大大減少了對(duì)服務(wù)器內(nèi)存的需求,降低了成本。
以上僅為本發(fā)明的優(yōu)選實(shí)施案例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種基于流的深度報(bào)文檢測協(xié)議解碼方法,其特征在于,所述方法包括接收業(yè)務(wù)數(shù)據(jù)流,將不同的數(shù)據(jù)流分發(fā)到不同線程中處理;識(shí)別分流后所述數(shù)據(jù)流的協(xié)議類型,將同一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊;深度報(bào)文檢測處理模塊調(diào)用正則表達(dá)式規(guī)則庫,對(duì)所述數(shù)據(jù)進(jìn)行協(xié)議解碼。
2、 根據(jù)權(quán)利要求1所述基于流的深度報(bào)文檢測協(xié)議解碼方法, 其特征在于,所述深度報(bào)文檢測處理模塊調(diào)用正則表達(dá)式規(guī)則庫,對(duì) 所述數(shù)據(jù)進(jìn)行協(xié)議解碼包括所述深度才艮文檢測處理模塊獲取所述數(shù)據(jù)的協(xié)議類型后,根據(jù)正 則表達(dá)式規(guī)則庫查找到與所述數(shù)據(jù)協(xié)議類型對(duì)應(yīng)的協(xié)議解碼規(guī)則;對(duì)包含所述數(shù)據(jù)的數(shù)據(jù)包進(jìn)行掃描,根據(jù)所述協(xié)議解碼規(guī)則從所 述數(shù)據(jù)包中提取所述數(shù)據(jù)的輸出信息;根據(jù)所述輸出信息從所述數(shù)據(jù)包中提取所述數(shù)據(jù)的解碼信息。
3、 根據(jù)權(quán)利要求1所述基于流的深度報(bào)文檢測協(xié)議解碼方法, 其特征在于,所述接收業(yè)務(wù)數(shù)據(jù)流之前包括深度報(bào)文檢測處理模塊 進(jìn)行初始化并加載編譯后的正則表達(dá)式規(guī)則庫。
4、 根據(jù)權(quán)利要求3所述基于流的深度報(bào)文檢測協(xié)議解碼方法, 其特征在于,所述方法還包括對(duì)所述正則表達(dá)式規(guī)則庫進(jìn)行編譯,將其轉(zhuǎn)換成深度報(bào)文檢測處 理模塊可識(shí)別格式的數(shù)據(jù)。
5、 根據(jù)權(quán)利要求1所述基于流的深度報(bào)文檢測協(xié)議解碼方法, 其特征在于,所述將不同的數(shù)據(jù)流分發(fā)到不同線程中處理包括分析提取數(shù)據(jù)中用戶的流信息,并根據(jù)所述用戶的流信息將所述數(shù)據(jù)分發(fā)到不同線程中處理。
6、 根據(jù)權(quán)利要求5所述基于流的深度報(bào)文檢測協(xié)議解碼方法, 其特征在于,所述方法具體包括對(duì)于TCP數(shù)據(jù)流,根據(jù)TCP凄史據(jù)流的源IP地址、目的IP地址、 源端口、目的端口和協(xié)議類型,將其分到不同的線程中;對(duì)于UDP數(shù)據(jù)流,根據(jù)UDP數(shù)據(jù)流的源IP地址、源端口 、業(yè) 務(wù)ID、協(xié)議類型來將其分到不同的線程中。
7、 根據(jù)權(quán)利要求1的基于流的深度報(bào)文檢測協(xié)議解碼方法,其 特征在于,所述識(shí)別分流后所述數(shù)據(jù)流的協(xié)議類型,將同一數(shù)據(jù)流分 發(fā)到相同深度報(bào)文檢測處理模塊包括對(duì)經(jīng)過分流的數(shù)據(jù)流的協(xié)議類型進(jìn)行識(shí)別,獲取所述數(shù)據(jù)流中數(shù) 據(jù)的協(xié)議類型;根據(jù)實(shí)際要求的協(xié)議類型判斷所述數(shù)據(jù)流中的數(shù)據(jù)是否需要進(jìn) 行解碼,若不需要?jiǎng)t直接丟棄所述數(shù)據(jù),若需要,則將同一數(shù)據(jù)流分 發(fā)到相同深度報(bào)文檢測處理模塊。
8、 根據(jù)權(quán)利要求7的基于流的深度報(bào)文檢測協(xié)議解碼方法,其 特征在于,所述將同 一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊包 括在接收到新的數(shù)據(jù)流時(shí)建立新的流表;當(dāng)接收到數(shù)據(jù)報(bào)文時(shí),先在所述流表中查找其對(duì)應(yīng)的流號(hào),若能 找到,再判斷所述數(shù)據(jù)報(bào)文是否為最后一個(gè)包,若不是,則將所述數(shù) 據(jù)報(bào)文歸入對(duì)應(yīng)的lt據(jù)流中,否則進(jìn)行流的刪除;當(dāng)所述數(shù)據(jù)流出現(xiàn)亂序或重發(fā)且所述數(shù)據(jù)流沒有被正常刪除時(shí), 啟動(dòng)定時(shí)器在定時(shí)時(shí)間內(nèi)將所述數(shù)據(jù)流進(jìn)行刪除。
9、 一種基于流的深度報(bào)文檢測協(xié)議解碼設(shè)備,其特征在于,所 述設(shè)備包括數(shù)據(jù)接收模塊、數(shù)據(jù)分流模塊、協(xié)議類型識(shí)別模塊、流管理模塊及深度報(bào)文檢測處理模塊,其中所述數(shù)據(jù)接收模塊,用于接收移動(dòng)業(yè)務(wù)數(shù)據(jù);所述數(shù)據(jù)分流模塊,連接于所述數(shù)據(jù)接收模塊,用于將不同的數(shù)據(jù)流分發(fā)到不同線程中處理;所述協(xié)議類型識(shí)別模塊,連接于所述數(shù)據(jù)分流模塊,用于各線程 對(duì)經(jīng)過分流的數(shù)據(jù)的協(xié)議類型進(jìn)行識(shí)別;所述流管理模塊,連接于所述協(xié)議類型識(shí)別模塊,用于各線程將 同 一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊;深度報(bào)文檢測處理模塊,連接于所述流管理模塊,用于調(diào)用正則 表達(dá)式規(guī)則庫對(duì)經(jīng)過流管理模塊的數(shù)據(jù)進(jìn)行協(xié)議解碼。
10、 一種基于流的深度報(bào)文檢測協(xié)議解碼系統(tǒng),其特征在于,所 述系統(tǒng)包括路由設(shè)備及深度報(bào)文檢測協(xié)議解碼設(shè)備,其中所述路由設(shè)備,用于轉(zhuǎn)發(fā)網(wǎng)絡(luò)通信數(shù)據(jù)并同時(shí)將所轉(zhuǎn)發(fā)的數(shù)據(jù)復(fù) 制一份發(fā)給所述深度報(bào)文檢測協(xié)議解碼設(shè)備;所述深度報(bào)文檢測協(xié)議解碼設(shè)備,用于接收所述路由設(shè)備發(fā)送的 業(yè)務(wù)數(shù)據(jù),將不同的數(shù)據(jù)流分發(fā)到不同線程中處理,對(duì)所述數(shù)據(jù)的協(xié) 議類型進(jìn)行識(shí)別,將經(jīng)過協(xié)議類型識(shí)別后的同一數(shù)據(jù)流分發(fā)到相同深 度報(bào)文檢測處理模塊,調(diào)用正則表達(dá)式規(guī)則庫對(duì)所述數(shù)據(jù)進(jìn)行協(xié)議解 碼。
全文摘要
本發(fā)明提供一種基于流的深度報(bào)文檢測協(xié)議解碼方法,所述方法包括接收業(yè)務(wù)數(shù)據(jù)流,將不同的數(shù)據(jù)流分發(fā)到不同線程中處理;識(shí)別分流后所述數(shù)據(jù)流的協(xié)議類型,將同一數(shù)據(jù)流分發(fā)到相同深度報(bào)文檢測處理模塊;深度報(bào)文檢測處理模塊調(diào)用正則表達(dá)式規(guī)則庫,對(duì)所述數(shù)據(jù)進(jìn)行協(xié)議解碼。另外,本發(fā)明還提供了一種基于流的深度報(bào)文檢測協(xié)議解碼的設(shè)備及系統(tǒng)。本發(fā)明提高了解碼速度,滿足實(shí)時(shí)解碼要求,而且減少了對(duì)服務(wù)器內(nèi)存的需求,降低了成本。
文檔編號(hào)H04W24/04GK101605018SQ20091010835
公開日2009年12月16日 申請(qǐng)日期2009年6月17日 優(yōu)先權(quán)日2009年6月17日
發(fā)明者謝銀祥 申請(qǐng)人:中興通訊股份有限公司