本發(fā)明涉及一種SDN應(yīng)用層流量的建模方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的飛速發(fā)展,新的網(wǎng)絡(luò)應(yīng)用(如微博,微信以及各種APP等)誕生的速度越來越快,由于不同的網(wǎng)絡(luò)應(yīng)用采用了不同的協(xié)議,而且還有大量的應(yīng)用開發(fā)者直接開發(fā)私有協(xié)議實現(xiàn)特殊的通信功能,以致大約40%的網(wǎng)絡(luò)流量無法識別。軟件定義網(wǎng)絡(luò)(SDN)是下一代互聯(lián)網(wǎng)的核心技術(shù),目前是業(yè)界關(guān)注的重點。在SDN架構(gòu)中,應(yīng)用層通過北向接口接入SDN控制層為網(wǎng)絡(luò)應(yīng)用提供具更高的可擴(kuò)展性、靈活性、效率和可管理性,應(yīng)用開發(fā)者可以更方便地實現(xiàn)更豐富的應(yīng)用服務(wù)??梢姡S著網(wǎng)絡(luò)用戶數(shù)量持續(xù)攀升,SDN網(wǎng)絡(luò)中的流量必然會呈現(xiàn)出多樣化和海量化的特征。然而,現(xiàn)有的未知流量分析方法大都是基于人工分析,嚴(yán)重影響了網(wǎng)絡(luò)管理的運作效率,不適應(yīng)SDN網(wǎng)絡(luò)發(fā)展的需求。因此,研究和開發(fā)自動化的流量處理方法和技術(shù),是流量分析領(lǐng)域的迫切任務(wù)。
隱馬爾可夫模型已被廣泛證明并應(yīng)用于描述一個含有隱含未知參數(shù)的馬爾可夫過程。然而,現(xiàn)有的模型不能完整地對一些具有層次化結(jié)構(gòu)的網(wǎng)絡(luò)流進(jìn)行建模。隱馬爾可夫模型只刻畫了隱狀態(tài)之間的狀態(tài)轉(zhuǎn)移規(guī)律,但并沒有刻畫狀態(tài)內(nèi)部的微觀特性。即使是隱半馬爾可夫模型也只是籠統(tǒng)地描述了隨機(jī)序列中隱狀態(tài)的轉(zhuǎn)移規(guī)律以及隱狀態(tài)的持續(xù)時間長度,而沒有真正揭示狀態(tài)內(nèi)部的變化規(guī)律。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種SDN應(yīng)用層流量的建模方法。該方法根據(jù)應(yīng)用層網(wǎng)絡(luò)流量的一般特征,提出一種適用于SDN網(wǎng)絡(luò)應(yīng)用層流量建模方法的層次化隱馬爾可夫模型,用于對應(yīng)用層網(wǎng)絡(luò)協(xié)議報文建模,并基于最大似然概率準(zhǔn)則提取協(xié)議關(guān)鍵詞和自動重構(gòu)協(xié)議的報文格式。
為了達(dá)到上述目的,本發(fā)明一種SDN應(yīng)用層流量的建模方法,主要包括以下步驟:
第一步、采集SDN應(yīng)用層流量作為系統(tǒng)的輸入;
第二步、應(yīng)用數(shù)據(jù)挖掘方法,對SDN應(yīng)用層流量進(jìn)行預(yù)處理;
第三步、由預(yù)處理模塊輸出應(yīng)用層流量的最長頻繁項集;
第四步、利用層次化隱馬爾可夫模型進(jìn)行建模;
第五步、對層次化隱馬爾可夫模型參數(shù)初始化;
第六步、基于前向后向迭代過程進(jìn)行估計模型的參數(shù);
第七步、對參數(shù)進(jìn)行更新;
第八步、判斷迭代過程是否結(jié)束,
當(dāng)程序迭代過程結(jié)束時,輸出基于層次化隱馬爾可夫模型的應(yīng)用層流量特征模型;
當(dāng)程序迭代過程未結(jié)束時,返回第六步。
優(yōu)選地,所述第二步中的數(shù)學(xué)挖掘方法包括Apriori算法。
優(yōu)選地,所述第二步中的對SDN應(yīng)用層流量進(jìn)行預(yù)處理,包括提取網(wǎng)絡(luò)流量的最長頻繁項集。
本發(fā)明提出一種新的基于層次化隱馬爾可夫模型的SDN應(yīng)用層未知流量建模方法,具體包括:(1)用于刻畫具有層次化子結(jié)構(gòu)的隨機(jī)序列的微觀特性的層次化隱馬爾可夫模型(H2MM),(2)基于H2MM對SDN應(yīng)用層流量建模的方法。本發(fā)明為下一代互聯(lián)網(wǎng)技術(shù)SDN的流量分析建模提供一種有效的途徑。
對于數(shù)據(jù)報文結(jié)構(gòu)的表示方法,應(yīng)用層網(wǎng)絡(luò)流量的數(shù)據(jù)報文可表示為一個字節(jié)序列:o=o1o2...oT,其中T為數(shù)據(jù)報文的長度。數(shù)據(jù)報文具有層次化結(jié)構(gòu),即報文由一系列字段序列組成,每個字段本身也有內(nèi)部的微觀結(jié)構(gòu),也即o=o(1)o(2)...o(R),其中表示報文的第r個字段,r=1,2,...,R。
對于層次結(jié)構(gòu)的隱馬爾可夫模型,假設(shè)隨機(jī)過程的隱狀態(tài)的狀態(tài)空間為S={1,2,...,M},隱狀態(tài)之間的轉(zhuǎn)移概率為aij,其中i,j∈S。aij表示給定狀態(tài)i的條件下,隨機(jī)過程從狀態(tài)i向狀態(tài)j的轉(zhuǎn)移概率,即:
aij=P[st+1=j(luò)|st=i]。
狀態(tài)間的轉(zhuǎn)移概率還滿足:
假定狀態(tài)的最大持續(xù)時間長度為K,那么對每個給定狀態(tài)i定義K個相位:K={1,2,...,K},用(i,k)表示隨機(jī)過程處于狀態(tài)i的相位k,相位k代表一個狀態(tài)的進(jìn)化程度,或者代表狀態(tài)的馬爾可夫過程歷經(jīng)的程度。在一個狀態(tài)i中,隨著時間的推移,狀態(tài)的i的相位k只能從相位1開始,并逐一向右轉(zhuǎn)移,即由k轉(zhuǎn)變到k+1,再從k+1轉(zhuǎn)變到k+2,或者從某一相位直接向K(代表消亡相位)相位轉(zhuǎn)移,即因此,只有(i,k)→(i,k+1)和(i,k)→(i,K)的轉(zhuǎn)移概率不等于0,而其它相位之間的轉(zhuǎn)移概率定義為0。在給定(i,k)的情況下,觀測到觀測值c的概率為:
bi,k(c)=P[ot=c|st=i,pt=k]。
其中c是觀測值,觀測值的集合為V={0,1,2,...}。
當(dāng)從某個狀態(tài)(不等于i)轉(zhuǎn)移到狀態(tài)i時,首先進(jìn)入狀態(tài)i的相位1,在相位1時,以bi,1(c)的概率觀察到觀測值c,接著以相位轉(zhuǎn)移概率pi(1)轉(zhuǎn)移到相位2,或者轉(zhuǎn)移概率1-pi(1)結(jié)束當(dāng)前相位,并以狀態(tài)轉(zhuǎn)移概率aii'轉(zhuǎn)移到下一個狀態(tài)i';在相位k時,以bi,k(c)的概率觀察到觀測值c,接著以相位轉(zhuǎn)移概率pj(k)轉(zhuǎn)移到相位k+1,或者以轉(zhuǎn)移概率1-pj(k)結(jié)束當(dāng)前相位,然后以狀態(tài)轉(zhuǎn)移概率ajj'轉(zhuǎn)移到下一個狀態(tài)j';依此類推。pi(k)表示在給定狀態(tài)i時,由相位k向相位k+1轉(zhuǎn)移的概率分布,其定義為:
pi(k)=P[st+1=i,pt+1=k+1|st=i,pt=k],i∈S,k∈K。
H2MM的模型參數(shù)記為λ={A,B,P,π},其中A為模型的狀態(tài)轉(zhuǎn)移概率矩陣,B為觀測概率矩陣,P為狀態(tài)的相位轉(zhuǎn)移概率矩陣,π為初始狀態(tài)的概率分布。
狀態(tài)轉(zhuǎn)移概率矩陣定義為:
A={aij},i,j∈S。
觀測概率矩陣定義為:
B={bi,k(c)},i∈S,k∈K,c∈V。
狀態(tài)的相位轉(zhuǎn)移概率矩陣定義為:
P={pi(k)},i∈S,k∈K。
初始狀態(tài)的概率分布定義為:
π={πi},i∈S。
其中,πi=P[s1=i],i∈S,且滿足
對于最長頻繁項集,如果一個字符串x是另一個字符串x'的子串,則記為:設(shè)F為頻繁項集合,那么F的最長頻繁項集合FL定義為:任意給定x∈FL,不存在x'∈FL且x'∈F,使得
本發(fā)明沒有二進(jìn)制分析方法所面臨的限制條件,也能準(zhǔn)確地分析出未知流量的報文結(jié)構(gòu),而且還能揭示流量報文數(shù)據(jù)內(nèi)部的微觀特征。
本發(fā)明根據(jù)應(yīng)用層網(wǎng)絡(luò)流量的一般特征,提出一種適用于SDN網(wǎng)絡(luò)應(yīng)用層流量建模方法的層次化隱馬爾可夫模型,用于對應(yīng)用層網(wǎng)絡(luò)協(xié)議報文建模,并基于最大似然概率準(zhǔn)則提取協(xié)議關(guān)鍵詞和自動重構(gòu)協(xié)議的報文格式。
附圖說明
圖1為本發(fā)明的實施流程示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對本發(fā)明的保護(hù)范圍做出更為清楚明確的界定。
參照圖1,本發(fā)明實施例一種SDN應(yīng)用層流量的建模方法,主要包括以下步驟:
第一步、采集SDN應(yīng)用層流量作為系統(tǒng)的輸入;
第二步、應(yīng)用數(shù)據(jù)挖掘方法,如Apriori算法,對SDN應(yīng)用層流量進(jìn)行預(yù)處理,該預(yù)處理包括提取網(wǎng)絡(luò)流量的最長頻繁項集FL;
第三步、由預(yù)處理模塊輸出應(yīng)用層流量的最長頻繁項集;
第四步、利用層次化隱馬爾可夫模型進(jìn)行建模;
第五步、對層次化隱馬爾可夫模型參數(shù)初始化;
第六步、基于前向后向迭代過程進(jìn)行估計模型的參數(shù);
第七步、對參數(shù)進(jìn)行更新;
第八步、判斷迭代過程是否結(jié)束,
當(dāng)程序迭代過程結(jié)束時,輸出基于層次化隱馬爾可夫模型的應(yīng)用層流量特征模型;
當(dāng)程序迭代過程未結(jié)束時,返回第六步。
對于第四步,H2MM建模,具體流程為:令FL中的每個字符串都與一個狀態(tài)對應(yīng),如果x∈FL是狀態(tài)i對應(yīng)的一個字符串,則記x為xi,且xi的所有子字符串a(chǎn)∈xi都可能是狀態(tài)i的觀測值。H2MM的關(guān)鍵詞狀態(tài)數(shù)目為N=|FL|。另外定義若干個新的狀態(tài),代表數(shù)據(jù)狀態(tài),它的觀測值是觀測序列集中所有可能的字符。關(guān)鍵詞狀態(tài)數(shù)目與數(shù)據(jù)狀態(tài)數(shù)目的總和為M。
對于第五步,參數(shù)初始化。
相位數(shù)為
初始狀態(tài)服從等概率分布的初始化:πi=1/M。
狀態(tài)轉(zhuǎn)換概率矩陣服從等概率分布:aij=1/(M-1),并使之滿足
觀測概率的初始化為:
相位轉(zhuǎn)移概率的初始化為:
對于第六步,定義前向變量:
其中pt表示t時刻的相位,表示o1o2...ot,st]=i表示狀態(tài)i終止于時刻t,即st=i,但st+1≠i.同理,本文中出現(xiàn)的s[t=i表示狀態(tài)i開始于時刻t,即st=i,但st-1≠i。
前向變量的初始化條件:
α1(i,1)=πibi,1(01),i∈S。
α1(i,k)=0,i∈S,k>1。
α1(i)=πibi,1(01)(1-pi(1)),i∈S。
迭代公式:
αt(j,k)=αt-1(j,k-1)pj(k-1)bj,k(ot),j∈S,k>1。
其中,
定義后向變量:
迭代公式:
βt(i,k)=pi(k)bi,k+1(ot+1)βt+1(i,k+1)+(1-pi(k))βt(i)。
其中,
后向變量初始化條件為:
βT(i)=1,i∈S。
βT(i,k)=1,i∈S,k∈K。
為了更新模型的狀態(tài)轉(zhuǎn)移概率矩陣,定義以下中間變量:
隨機(jī)過程在t時刻的狀態(tài)為i的概率為:
遞歸公式:
遞推計算的初始化條件為:γT(i)=αT(i)。
對于第七步,為了更新模型的相位進(jìn)化概率,定義以下兩個變量:
報文模型的參數(shù)更新公式:
本發(fā)明提出一種新的基于層次化隱馬爾可夫模型的SDN應(yīng)用層未知流量建模方法,具體包括:(1)用于刻畫具有層次化子結(jié)構(gòu)的隨機(jī)序列的微觀特性的層次化隱馬爾可夫模型(H2MM),(2)基于H2MM對SDN應(yīng)用層流量建模的方法。本發(fā)明為下一代互聯(lián)網(wǎng)技術(shù)SDN的流量分析建模提供一種有效的途徑。
對于數(shù)據(jù)報文結(jié)構(gòu)的表示方法,應(yīng)用層網(wǎng)絡(luò)流量的數(shù)據(jù)報文可表示為一個字節(jié)序列:o=o1o2...oT,其中T為數(shù)據(jù)報文的長度。數(shù)據(jù)報文具有層次化結(jié)構(gòu),即報文由一系列字段序列組成,每個字段本身也有內(nèi)部的微觀結(jié)構(gòu),也即o=o(1)o(2)...o(R),其中表示報文的第r個字段,r=1,2,...,R。
對于層次結(jié)構(gòu)的隱馬爾可夫模型,假設(shè)隨機(jī)過程的隱狀態(tài)的狀態(tài)空間為S={1,2,...,M},隱狀態(tài)之間的轉(zhuǎn)移概率為aij,其中i,j∈S。aij表示給定狀態(tài)i的條件下,隨機(jī)過程從狀態(tài)i向狀態(tài)j的轉(zhuǎn)移概率,即:
aij=P[st+1=j(luò)|st=i]。
狀態(tài)間的轉(zhuǎn)移概率還滿足:
aii=0,i∈S;
假定狀態(tài)的最大持續(xù)時間長度為K,那么對每個給定狀態(tài)i定義K個相位:K={1,2,...,K},用(i,k)表示隨機(jī)過程處于狀態(tài)i的相位k,相位k代表一個狀態(tài)的進(jìn)化程度,或者代表狀態(tài)的馬爾可夫過程歷經(jīng)的程度。在一個狀態(tài)i中,隨著時間的推移,狀態(tài)的i的相位k只能從相位1開始,并逐一向右轉(zhuǎn)移,即由k轉(zhuǎn)變到k+1,再從k+1轉(zhuǎn)變到k+2,或者從某一相位直接向K(代表消亡相位)相位轉(zhuǎn)移,即因此,只有(i,k)→(i,k+1)和(i,k)→(i,K)的轉(zhuǎn)移概率不等于0,而其它相位之間的轉(zhuǎn)移概率定義為0。在給定(i,k)的情況下,觀測到觀測值c的概率為:
bi,k(c)=P[ot=c|st=i,pt=k]。
其中c是觀測值,觀測值的集合為V={0,1,2,...}。
當(dāng)從某個狀態(tài)(不等于i)轉(zhuǎn)移到狀態(tài)i時,首先進(jìn)入狀態(tài)i的相位1,在相位1時,以bi,1(c)的概率觀察到觀測值c,接著以相位轉(zhuǎn)移概率pi(1)轉(zhuǎn)移到相位2,或者轉(zhuǎn)移概率1-pi(1)結(jié)束當(dāng)前相位,并以狀態(tài)轉(zhuǎn)移概率aii'轉(zhuǎn)移到下一個狀態(tài)i';在相位k時,以bi,k(c)的概率觀察到觀測值c,接著以相位轉(zhuǎn)移概率pj(k)轉(zhuǎn)移到相位k+1,或者以轉(zhuǎn)移概率1-pj(k)結(jié)束當(dāng)前相位,然后以狀態(tài)轉(zhuǎn)移概率ajj'轉(zhuǎn)移到下一個狀態(tài)j';依此類推。pi(k)表示在給定狀態(tài)i時,由相位k向相位k+1轉(zhuǎn)移的概率分布,其定義為:
pi(k)=P[st+1=i,pt+1=k+1|st=i,pt=k],i∈S,k∈K。
H2MM的模型參數(shù)記為λ={A,B,P,π},其中A為模型的狀態(tài)轉(zhuǎn)移概率矩陣,B為觀測概率矩陣,P為狀態(tài)的相位轉(zhuǎn)移概率矩陣,π為初始狀態(tài)的概率分布。
狀態(tài)轉(zhuǎn)移概率矩陣定義為:
A={aij},i,j∈S。
觀測概率矩陣定義為:
B={bi,k(c)},i∈S,k∈K,c∈V。
狀態(tài)的相位轉(zhuǎn)移概率矩陣定義為:
P={pi(k)},i∈S,k∈K。
初始狀態(tài)的概率分布定義為:
π={πi},i∈S。
其中,πi=P[s1=i],i∈S,且滿足
對于最長頻繁項集,如果一個字符串x是另一個字符串x'的子串,則記為:設(shè)F為頻繁項集合,那么F的最長頻繁項集合FL定義為:任意給定x∈FL,不存在x'∈FL且x'∈F,使得
本發(fā)明沒有二進(jìn)制分析方法所面臨的限制條件,也能準(zhǔn)確地分析出未知流量的報文結(jié)構(gòu),而且還能揭示流量報文數(shù)據(jù)內(nèi)部的微觀特征。
本發(fā)明根據(jù)應(yīng)用層網(wǎng)絡(luò)流量的一般特征,提出一種適用于SDN網(wǎng)絡(luò)應(yīng)用層流量建模方法的層次化隱馬爾可夫模型,用于對應(yīng)用層網(wǎng)絡(luò)協(xié)議報文建模,并基于最大似然概率準(zhǔn)則提取協(xié)議關(guān)鍵詞和自動重構(gòu)協(xié)議的報文格式。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。