本發(fā)明涉及網(wǎng)絡(luò)通信,尤其涉及一種遙測數(shù)據(jù)結(jié)構(gòu)及遙測方法。
背景技術(shù):
1、隨著計(jì)算機(jī)網(wǎng)絡(luò)和信息技術(shù)的飛速發(fā)展,傳統(tǒng)數(shù)據(jù)中心、企業(yè)、互聯(lián)網(wǎng)服務(wù)提供商對網(wǎng)絡(luò)的構(gòu)建和管理越來越具有挑戰(zhàn)性,同時傳統(tǒng)的網(wǎng)絡(luò)測量也越來越難以滿足網(wǎng)絡(luò)運(yùn)維的市場需求。軟件定義網(wǎng)絡(luò)(software-defined?networking,sdn)的提出為此提供了一種新的網(wǎng)絡(luò)架構(gòu)和網(wǎng)絡(luò)測量思路——網(wǎng)絡(luò)遙測。
2、相較于sflow、ipfix、netflow、psamp等傳統(tǒng)網(wǎng)絡(luò)測量技術(shù),網(wǎng)絡(luò)遙測可以按需收集細(xì)粒度網(wǎng)絡(luò)狀態(tài)信息。目前已經(jīng)存在的網(wǎng)絡(luò)遙測機(jī)制主要應(yīng)用于擁塞控制、流量工程等領(lǐng)域。作為新型網(wǎng)絡(luò)測量技術(shù),目前關(guān)于網(wǎng)絡(luò)遙測的研究主要集中在網(wǎng)絡(luò)遙測機(jī)制、遙測數(shù)據(jù)的編碼與傳輸、遙測任務(wù)編排等方面,主要應(yīng)用于流量工程、故障定位等領(lǐng)域,相關(guān)研究成果處于“能測就行”的起步階段。
3、帶內(nèi)網(wǎng)絡(luò)遙測(int)是一種目前常用的被動遙測技術(shù),也存在諸多局限性,包括:(1)網(wǎng)絡(luò)遙測范圍受到遙測點(diǎn)布局的限制,不適當(dāng)?shù)倪b測點(diǎn)布局對于全局網(wǎng)絡(luò)視圖難以獲??;在進(jìn)行網(wǎng)絡(luò)遙測之前,需要由網(wǎng)絡(luò)管理員提前指定探測路徑和遙測數(shù)據(jù)指標(biāo),在遙測過程中無法動態(tài)調(diào)整;(2)int在實(shí)現(xiàn)上是將遙測指令和網(wǎng)絡(luò)數(shù)據(jù)封裝到用戶數(shù)據(jù)報文,一方面這會降低用戶數(shù)據(jù)報文的有效載荷比,降低用戶體驗(yàn),同時會限制int遙測的最大數(shù)據(jù)量;另一方面int需要在遙測的發(fā)送端和接收端進(jìn)行用戶數(shù)據(jù)報文的遙測指令嵌入和遙測數(shù)據(jù)提取工作,這會進(jìn)一步影響用戶數(shù)據(jù)報文的傳輸。
4、基于int存在網(wǎng)絡(luò)探測范圍有限、可擴(kuò)展性不足的問題,提出一種在提供多類型網(wǎng)絡(luò)數(shù)據(jù)的前提下提高網(wǎng)絡(luò)遙測效率,保證網(wǎng)絡(luò)遙測的健壯性、可靠性的網(wǎng)絡(luò)遙測方法是很有必要的。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對現(xiàn)有技術(shù)中存在的探測范圍有限、可擴(kuò)展性不足、遙測數(shù)據(jù)量有限或者數(shù)據(jù)量偏大即造成交換機(jī)資源開銷大、解析速度慢、計(jì)算效率低等問題,提供了一種遙測數(shù)據(jù)結(jié)構(gòu)及遙測方法,所述方案具體包括:
2、一種遙測數(shù)據(jù)結(jié)構(gòu),所述結(jié)構(gòu)包括:
3、遙測數(shù)據(jù)圖,同步控制塊和遙測數(shù)據(jù)包結(jié)構(gòu);
4、所述遙測數(shù)據(jù)圖用于以設(shè)備id為標(biāo)識進(jìn)行環(huán)形存儲,所述遙測數(shù)據(jù)圖內(nèi)部通過多元交叉鏈表存儲;
5、所述同步控制塊用于同步和管理環(huán)形存儲結(jié)構(gòu)和多元交叉鏈表;
6、所述遙測數(shù)據(jù)包結(jié)構(gòu)用于組織和傳輸遙測數(shù)據(jù)的格式,所述遙測數(shù)據(jù)包結(jié)構(gòu)包括遙測頭部字段和元數(shù)據(jù)字段。
7、進(jìn)一步的,還提供一種優(yōu)選方式,所述同步控制塊包括:
8、同步控制塊讀寫鎖,用于整個同步控制塊的讀寫同步;
9、遙測數(shù)據(jù)圖頭指針,用于遙測數(shù)據(jù)圖記錄環(huán)形存儲結(jié)構(gòu)數(shù)據(jù)的開始地址;
10、遙測數(shù)據(jù)圖尾指針,用于遙測數(shù)據(jù)圖記錄環(huán)形存儲結(jié)構(gòu)數(shù)據(jù)的末地址;
11、遙測數(shù)據(jù)圖擴(kuò)展控制模塊,用于存儲遙測數(shù)據(jù)圖結(jié)構(gòu)的物理存儲信息;
12、遙測數(shù)據(jù)圖讀寫同步模塊,用于遙測數(shù)據(jù)圖的寫操作、遙測數(shù)據(jù)圖存儲更新、遙測數(shù)據(jù)圖擴(kuò)展空間物理存儲信息修改操作以及遙測數(shù)據(jù)圖的讀取、復(fù)制操作;
13、數(shù)據(jù)提取讀指針,用于存儲待寫入遙測數(shù)據(jù)的讀取指針數(shù)據(jù);
14、數(shù)據(jù)提取存儲空閑空間,用于存儲待寫入遙測數(shù)據(jù)存儲的剩余空間大??;
15、數(shù)據(jù)提取擴(kuò)展控制模塊,用于存儲待寫入遙測數(shù)據(jù)擴(kuò)展空間物理存儲信息;
16、數(shù)據(jù)提取讀寫同步模塊,用于待寫入數(shù)據(jù)的寫操作、擴(kuò)展空間物理存儲信息修改操作以及寫入數(shù)據(jù)的讀取、復(fù)制操作;
17、操作同步鎖,用于內(nèi)核態(tài)嵌入數(shù)據(jù)到遙測數(shù)據(jù)包、統(tǒng)計(jì)網(wǎng)絡(luò)數(shù)據(jù)并寫入遙測數(shù)據(jù)圖、遙測數(shù)據(jù)類型請求信息更新等操作和用戶態(tài)統(tǒng)計(jì)網(wǎng)絡(luò)設(shè)備信息寫入遙測數(shù)據(jù)圖、提取請求的遙測數(shù)據(jù)類型信息之間的同步。
18、基于同一發(fā)明構(gòu)思,本發(fā)明還提供一種遙測數(shù)據(jù)結(jié)構(gòu)遙測方法,所述方法包括:
19、s1:解析數(shù)據(jù)包頭部信息,獲取頭部信息獲取數(shù)據(jù)包類型;
20、s2:對于用戶數(shù)據(jù)包,根據(jù)解析的頭部信息收集所需的網(wǎng)絡(luò)數(shù)據(jù);
21、s3:將所述收集的各種網(wǎng)絡(luò)數(shù)據(jù)以遙測數(shù)據(jù)圖的形式進(jìn)行存儲;
22、s4:根據(jù)采集的各種網(wǎng)絡(luò)數(shù)據(jù)及內(nèi)核對遙測數(shù)據(jù)圖的寫請求更新同步控制塊,用戶數(shù)據(jù)包匹配流表并轉(zhuǎn)發(fā);
23、s5:對于遙測數(shù)據(jù)包,解析遙測頭部,獲取遙測數(shù)據(jù)圖字段及數(shù)據(jù)類型,并更新同步控制塊;
24、s6:內(nèi)核態(tài)程序根據(jù)待寫入遙測數(shù)據(jù)、mtu確定是否分片;嵌入數(shù)據(jù)到遙測數(shù)據(jù)包;
25、s7:更新遙測數(shù)據(jù)包頭部信息;遙測數(shù)據(jù)包執(zhí)行重校驗(yàn);匹配流表并轉(zhuǎn)發(fā)。
26、進(jìn)一步的,還提供一種優(yōu)選方式,所述步驟s3包括:
27、s31:若存入遙測數(shù)據(jù)圖中的網(wǎng)絡(luò)數(shù)據(jù)是初始數(shù)據(jù),則初始化遙測數(shù)據(jù)圖,以設(shè)備id作為標(biāo)識;
28、s32:將源ip地址、目的ip地址、本數(shù)據(jù)流信息存入遙測數(shù)據(jù)圖的ip子圖,ip子圖以本數(shù)據(jù)流流向及多元交叉鏈表構(gòu)建ip子圖;
29、s33:更新遙測數(shù)據(jù)圖的全網(wǎng)統(tǒng)計(jì)信息圖;
30、s34:更新遙測數(shù)據(jù)圖的流表統(tǒng)計(jì)信息圖。
31、進(jìn)一步的,還提供一種優(yōu)選方式,所述步驟s4包括:
32、s41:嘗試獲取同步控制塊讀寫鎖;
33、s42:更新數(shù)據(jù)圖的各種控制信息;
34、s43:釋放同步控制塊讀寫鎖;
35、s44:如果定時器到達(dá)更新間隔,在遙測數(shù)據(jù)統(tǒng)計(jì)周期末對遙測數(shù)據(jù)圖的環(huán)形結(jié)構(gòu)和同步控制塊數(shù)據(jù)更新;
36、s45:在遙測數(shù)據(jù)統(tǒng)計(jì)周期末,更新定時器嘗試獲取同步控制塊讀寫鎖;
37、s46:獲取讀寫鎖之后,將待寫入數(shù)據(jù)塊的同步信息、遙測數(shù)據(jù)圖的同步信息、待寫入數(shù)據(jù)的存儲信息重置;
38、s47:記錄本次周期遙測數(shù)據(jù)圖頭指針位置為上一周期遙測數(shù)據(jù)圖頭指針;
39、s48:將遙測數(shù)據(jù)圖頭指針指向遙測數(shù)據(jù)圖末指針;
40、s49:將末指針和遙測數(shù)據(jù)圖物理存儲空間的末存儲地址之間的空間置零;
41、s410:將遙測數(shù)據(jù)圖物理存儲空間的首地址和上一周期遙測數(shù)據(jù)圖頭指針之間的空間置零;釋放同步控制塊的讀寫鎖。
42、進(jìn)一步的,還提供一種優(yōu)選方式,所述步驟s5包括:
43、s51:當(dāng)內(nèi)核態(tài)更新同步控制塊的操作同步鎖后獲取同步控制塊讀寫鎖;
44、s52:讀取遙測數(shù)據(jù)包提取的元數(shù)據(jù)位圖,確定遙測數(shù)據(jù)類型;
45、s53:遍歷遙測數(shù)據(jù)圖中對應(yīng)遙測數(shù)據(jù)類型的多元數(shù)據(jù)鏈表;
46、s54:根據(jù)信息熵計(jì)算公式計(jì)算所需的各種網(wǎng)絡(luò)數(shù)據(jù)信息熵;
47、s55:將所述種網(wǎng)絡(luò)數(shù)據(jù)信息熵寫入待寫入數(shù)據(jù)存儲區(qū)域;
48、s56:更新同步控制塊的操作同步鎖、釋放同步控制塊讀寫鎖。
49、基于同一發(fā)明構(gòu)思,本發(fā)明還提供一種計(jì)算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器中存儲有計(jì)算機(jī)程序,當(dāng)所述處理器運(yùn)行所述存儲器存儲的計(jì)算機(jī)程序時,所述處理器執(zhí)行如上述中任一項(xiàng)中所述的一種遙測數(shù)據(jù)結(jié)構(gòu)遙測方法。
50、基于同一發(fā)明構(gòu)思,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)用于儲存計(jì)算機(jī)程序,所述計(jì)算機(jī)程序執(zhí)行上述任一項(xiàng)所述的一種遙測數(shù)據(jù)結(jié)構(gòu)遙測方法。
51、本發(fā)明的有益之處在于:
52、本發(fā)明解決了現(xiàn)有技術(shù)中存在的探測范圍有限、可擴(kuò)展性不足、遙測數(shù)據(jù)量有限或者數(shù)據(jù)量偏大即造成交換機(jī)資源開銷大、解析速度慢、計(jì)算效率低等問題。
53、本發(fā)明提供遙測數(shù)據(jù)結(jié)構(gòu)及遙測方法,該方法通過設(shè)計(jì)多數(shù)據(jù)類型遙測,以元數(shù)據(jù)位圖多維標(biāo)識所需遙測數(shù)據(jù);設(shè)計(jì)遙測數(shù)據(jù)圖結(jié)構(gòu)進(jìn)行數(shù)據(jù)的存儲,使得sdn交換機(jī)上存儲的網(wǎng)絡(luò)數(shù)據(jù)更具邏輯性,在存儲較多數(shù)據(jù)時可以提高數(shù)據(jù)的統(tǒng)計(jì)、整合、提取效率,同時,不考慮交換機(jī)長期存儲占用時甚至可以持久化存儲;遙測數(shù)據(jù)圖在物理存儲上采用共享內(nèi)存的方式實(shí)現(xiàn),在邏輯上是環(huán)形存儲,這可以有效提高內(nèi)核態(tài)和用戶態(tài)同步操作的效率,同時盡可能的降低網(wǎng)絡(luò)設(shè)備資源占用;同步控制塊在設(shè)計(jì)上使用了原子變量協(xié)同的方式,是一種無鎖同步機(jī)制,用于遙測數(shù)據(jù)圖的讀寫同步,同時也應(yīng)用于內(nèi)核態(tài)和用戶態(tài)程序協(xié)同作業(yè),同步邏輯清晰明確,繼而避免有鎖同步帶來的中斷問題、中斷程序上下文頻繁恢復(fù)的問題,可以有效提高遙測效率。此外,本發(fā)明針對多類型遙測數(shù)據(jù)設(shè)計(jì)了遙測頭部,同時也針對丟包、飽和攻擊、遙測數(shù)據(jù)量過大等可能存在的問題做了防范,保證本網(wǎng)絡(luò)遙測方法的適用性與健壯性。
54、本發(fā)明應(yīng)用于流量工程領(lǐng)域。