欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于多狀態(tài)機的協(xié)議解析系統(tǒng)及方法與流程

文檔序號:12600612閱讀:549來源:國知局
一種基于多狀態(tài)機的協(xié)議解析系統(tǒng)及方法與流程

本發(fā)明涉及一種基于多狀態(tài)機的協(xié)議解析系統(tǒng)及解析方法。



背景技術(shù):

現(xiàn)有的協(xié)議一般都是以鍵-值對的形式定義的。鍵也就是通常所說的特征碼,值則是通常所說的有效數(shù)據(jù)。在實際操作時,通過對特征碼的循環(huán)匹配,將相應(yīng)的有效數(shù)據(jù)進行保存,當(dāng)識別到的特征碼為結(jié)束特征碼的時候,則輸出匹配結(jié)果。

現(xiàn)有的解析方法存在著如下幾點不足:

(I)解析速度慢;

(II)在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,特征碼可能被分段傳輸,導(dǎo)致特征碼匹配不到;

(III)無法定義特征碼出現(xiàn)的先后順序;

(V)所有的特征碼都聚集在一個狀態(tài)機里面,可能造成狀態(tài)機爆炸;

(IV)沒有容錯機制和跳轉(zhuǎn)機制。

以下對本案涉及到的幾個名詞進行解釋:

(I)狀態(tài):用于匹配的最小單位。比如特征碼China包含有C、h、i、n和a五個狀態(tài)。

(II)狀態(tài)機:一個有向圖形,由一組節(jié)點和一組相應(yīng)的轉(zhuǎn)移函數(shù)組成。

(III)前置狀態(tài):用于保存上次匹配結(jié)束時的最終狀態(tài)。



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

本發(fā)明的目的,在于提供一種基于多狀態(tài)機的協(xié)議解析方法,其可提高解析效率,解決特征碼被分段傳輸?shù)膯栴},并可進行容錯處理。

為了達成上述目的,本發(fā)明的解決方案是:

一種基于多狀態(tài)機的協(xié)議解析系統(tǒng),包括:

多狀態(tài)機生成模塊,用于定義需要的狀態(tài)機以及狀態(tài)機之間的跳轉(zhuǎn)關(guān)系;以及,

狀態(tài)機匹配模塊,用于待匹配數(shù)據(jù)的輸入、中間匹配結(jié)果的保存以及最終匹配結(jié)果的輸出。

一種基于多狀態(tài)機的協(xié)議解析方法,包括如下步驟:

步驟1,初始化所有狀態(tài)機,并定義各狀態(tài)機之間的跳轉(zhuǎn)關(guān)系,形成多狀態(tài)機;

步驟2,將待匹配的數(shù)據(jù)輸入多狀態(tài)機進行匹配,輸出匹配結(jié)果。

上述步驟1中,對基于Http協(xié)議的多狀態(tài)機,將特征碼“POST”作為根狀態(tài)機下的特征碼,“\r\n\r\n”為“POST”特征碼下的結(jié)束特征碼。

上述步驟1中,對基于Smtp協(xié)議的多狀態(tài)機,將特征碼“To:”作為根狀態(tài)機下的特征碼,“\r\n\r\n”為“To:”特征碼下的結(jié)束特征碼。

上述步驟2的具體內(nèi)容是:

步驟21,將待匹配的數(shù)據(jù)輸入多狀態(tài)機進行匹配;如果前置狀態(tài)不為空,則將當(dāng)前狀態(tài)恢復(fù)為前置狀態(tài);否則從根狀態(tài)機開始匹配;

步驟22,如果匹配到特征碼,則執(zhí)行步驟23,否則執(zhí)行步驟25;

步驟23,如果特征碼為結(jié)束特征碼,則執(zhí)行步驟24,否則保存對應(yīng)的有效數(shù)據(jù),并跳轉(zhuǎn)到該特征碼對應(yīng)的狀態(tài)機,并執(zhí)行步驟22;

步驟24,將獲取到的有效數(shù)據(jù)進行整合并分析:如果有效數(shù)據(jù)符合解析的協(xié)議特征,則輸出解析結(jié)果并跳轉(zhuǎn)到該特征碼對應(yīng)的狀態(tài)機;否則判定匹配結(jié)果為臟數(shù)據(jù),丟棄獲取到的有效數(shù)據(jù),并跳轉(zhuǎn)到容錯狀態(tài)機;執(zhí)行完上述操作后執(zhí)行步驟22;

步驟25,匹配結(jié)束,將最后匹配到的狀態(tài)保存為前置狀態(tài)。

上述步驟24中,容錯狀態(tài)機為根狀態(tài)機。

采用上述方案后,本發(fā)明具有以下特點:

(1)本發(fā)明采用多狀態(tài)機間跳轉(zhuǎn)的方式,可以解耦狀態(tài)之間的關(guān)系,可以避免狀態(tài)機爆炸,提高解析效率;

(2)本發(fā)明可以解決特征碼被分段傳輸而導(dǎo)致的匹配失敗問題;

(3)本發(fā)明具有容錯機制,可以對臟數(shù)據(jù)進行識別和處理;

(4)狀態(tài)機匹配之后,輸出的即是最終數(shù)據(jù),而不是一堆無序的狀態(tài)。

附圖說明

圖1是本發(fā)明的多狀態(tài)機的拓?fù)鋱D;

圖2是本發(fā)明的多狀態(tài)機匹配流程圖。

具體實施方式

以下將結(jié)合附圖,對本發(fā)明的技術(shù)方案進行詳細(xì)說明。

本發(fā)明提供一種基于多狀態(tài)機的協(xié)議解析系統(tǒng),包括如下兩個模塊:

(1)多狀態(tài)機生成模塊,用于定義需要的狀態(tài)機以及狀態(tài)機之間的跳轉(zhuǎn)關(guān)系;

(2)狀態(tài)機匹配模塊,用于待匹配數(shù)據(jù)的輸入、中間匹配結(jié)果的保存以及最終匹配結(jié)果的輸出。

基于以上系統(tǒng),本發(fā)明還提供一種基于多狀態(tài)機的協(xié)議解析方法,包括如下步驟:

步驟1,生成多狀態(tài)機

包含:

步驟11,初始化所有狀態(tài)機;

步驟12,定義各狀態(tài)機之間的跳轉(zhuǎn)關(guān)系,形成多狀態(tài)機。

以下將以基于Http協(xié)議和Smtp協(xié)議的多狀態(tài)機的生成為例,說明步驟1的實現(xiàn)過程。

a.根據(jù)Http協(xié)議的RFC協(xié)議規(guī)范,Http在上傳數(shù)據(jù)的時候,具有特征碼“POST”;在“POST”特征碼下,具有特征碼“Host:”、“Content-Length:”和“\r\n\r\n”等;其中“\r\n\r\n”為“POST”特征碼下的結(jié)束特征碼;

b.根據(jù)Smtp協(xié)議的RFC協(xié)議規(guī)范,Smtp協(xié)議在發(fā)送郵件的時候,具有特征碼“To:”,在“To:”特征碼下,具有特征碼“From:”,“Subject:”和“\r\n\r\n”等;其中“\r\n\r\n”為“To:”特征碼下的結(jié)束特征碼;

c.根據(jù)Http協(xié)議和Smtp的協(xié)議特征,將特征碼“POST”和“To:”作為根狀態(tài)機下的特征碼;

d.根據(jù)以上描述,基于Http協(xié)議和Smtp協(xié)議的多狀態(tài)機的拓?fù)鋱D如圖1所示。

步驟2,多狀態(tài)機匹配

配合圖2所示,包含:

步驟21,將待匹配的數(shù)據(jù)輸入多狀態(tài)機進行匹配;如果前置狀態(tài)不為空,則將當(dāng)前狀態(tài)恢復(fù)為前置狀態(tài);否則從根狀態(tài)機開始匹配;

步驟22,如果匹配到特征碼,則執(zhí)行步驟23,否則執(zhí)行步驟25;

步驟23,如果特征碼為結(jié)束特征碼,則執(zhí)行步驟24,否則保存對應(yīng)的有效數(shù)據(jù),并跳轉(zhuǎn)到該特征碼對應(yīng)的狀態(tài)機,并執(zhí)行步驟22;

步驟24,將獲取到的有效數(shù)據(jù)進行整合并分析:如果有效數(shù)據(jù)符合我們所解析的協(xié)議特征,則輸出解析結(jié)果并跳轉(zhuǎn)到該特征碼對應(yīng)的狀態(tài)機;否則判定匹配結(jié)果為臟數(shù)據(jù),丟棄獲取到的有效數(shù)據(jù),并跳轉(zhuǎn)到容錯狀態(tài)機(一般為根狀態(tài)機)。執(zhí)行完上述操作后執(zhí)行步驟22;

步驟25,匹配結(jié)束,將最后匹配到的狀態(tài)保存為前置狀態(tài)。

以下將給出步驟2的實施實例。

實例1:匹配一段正確的Http協(xié)議報文

a、輸入以下內(nèi)容到多狀態(tài)機進行匹配:POST index.jsp\r\nHost:127.0.0.1\r\nContent-;

b、前置狀態(tài)為空,從根狀態(tài)機開始匹配;

c、根狀態(tài)機匹配到特征碼“POST”,由于特征碼“POST”不是結(jié)束特征碼,獲取有效數(shù)據(jù)“index.jsp”后跳轉(zhuǎn)到預(yù)設(shè)好的Http狀態(tài)機對如下內(nèi)容進行匹配:\r\nHost:127.0.0.1\r\nContent-;

d、Http狀態(tài)機匹配到特征碼“Host:”,由于特征碼“Host:”不是結(jié)束特征碼,獲取有效數(shù)據(jù)“127.0.0.1”后,跳轉(zhuǎn)到預(yù)設(shè)好的Http狀態(tài)機對如下內(nèi)容進行匹配:\r\nContent-;

e、匹配結(jié)束,設(shè)置隸屬于Http狀態(tài)機的特征碼“Content-Length:”的“-”狀態(tài)為前置狀態(tài);

f、輸入以下內(nèi)容到狀態(tài)機進行匹配:Length:8\r\n\r\nHttpData;

g、前置狀態(tài)不為空,恢復(fù)隸屬于Http狀態(tài)機的特征碼“Content-Length:”的“-”狀態(tài)為當(dāng)前狀態(tài);

h、Http狀態(tài)機匹配到特征碼“Content-Length:”,由于特征碼“Content-Length:”不是結(jié)束特征碼,獲取有效數(shù)據(jù)“8”后,跳轉(zhuǎn)到預(yù)設(shè)好的Http狀態(tài)機對如下內(nèi)容進行匹配:\r\n\r\nHttpData;

i、Http狀態(tài)機匹配到特征碼“\r\n\r\n”,由于特征碼“\r\n\r\n”是結(jié)束特征碼,獲取有效數(shù)據(jù)“HttpData”后,判定獲取到的有效數(shù)據(jù)符合Http協(xié)議特征后輸出“index.jsp 127.0.0.1 HttpData”,跳轉(zhuǎn)到預(yù)設(shè)好的根狀態(tài)機,對如下內(nèi)容進行匹配:(內(nèi)容為空);

j、匹配結(jié)束,由于當(dāng)前處于根狀態(tài)機,并沒有處于任何狀態(tài),設(shè)置前置狀態(tài)為空。

實例2:匹配一段錯誤的Smtp協(xié)議報文

a、輸入以下內(nèi)容到根狀態(tài)機進行匹配:Welcome To:\r\n Beijing.\r\n\r\n;

b、前置狀態(tài)為空,從根狀態(tài)機開始匹配;

c、根狀態(tài)機匹配到特征碼“To:”,由于特征碼“To:”不是結(jié)束特征碼,獲取有效數(shù)據(jù)“”(空)后預(yù)跳轉(zhuǎn)到預(yù)設(shè)好的Smtp狀態(tài)機對如下內(nèi)容進行匹配:\r\nBeijing.\r\n\r\n;

d、Smtp狀態(tài)機匹配到特征碼“\r\n\r\n”,由于特征碼“\r\n\r\n”是結(jié)束特征碼,判定獲取到的有效數(shù)據(jù)不符合Smtp特征,故斷定獲取到了臟數(shù)據(jù)。清空數(shù)據(jù)并跳轉(zhuǎn)到容錯狀態(tài)機(根狀態(tài)機)對如下內(nèi)容進行匹配:(內(nèi)容為空);

5、匹配結(jié)束,由于當(dāng)前處于根狀態(tài)機,并沒有處于任何狀態(tài),設(shè)置前置狀態(tài)為空。

綜合上述,本發(fā)明一種基于多狀態(tài)機的協(xié)議解析系統(tǒng)及方法,通過解耦狀態(tài)機之間的邏輯關(guān)系,定義狀態(tài)機與狀態(tài)機之間的跳轉(zhuǎn)關(guān)系,從而實現(xiàn)用于解析協(xié)議的多狀態(tài)機模型,避免狀態(tài)機爆炸的問題,提高解析效率;同時,本發(fā)明可以識別臟數(shù)據(jù)并進行容錯處理。

以上實施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動,均落入本發(fā)明保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兴仁县| 盘锦市| 尤溪县| 望奎县| 安岳县| 太保市| 惠东县| 灌阳县| 蒙城县| 阿图什市| 库尔勒市| 阿图什市| 石门县| 萨嘎县| 永靖县| 万全县| 汾西县| 镇沅| 潮州市| 兰溪市| 专栏| 昭觉县| 民丰县| 邹城市| 罗源县| 京山县| 新兴县| 临颍县| 佛冈县| 绥中县| 耒阳市| 栖霞市| 邢台市| 和田市| 老河口市| 东辽县| 鄂尔多斯市| 天长市| 保定市| 贵州省| 同仁县|