摘 要:為滿足軟件工具的通用性、靈活性和可擴(kuò)展性,本文基于元模型的思想,建立了一種關(guān)于網(wǎng)絡(luò)封包數(shù)據(jù)解析方法的信息單元通用描述模型,并用面向?qū)ο蟮乃枷雽?duì)其進(jìn)行了封裝。
關(guān)鍵詞:網(wǎng)絡(luò)封包數(shù)據(jù) 解析信息單元 描述模型
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2011)03(c)-0030-01
1 引言
在目前高速的網(wǎng)絡(luò)通訊和復(fù)雜的網(wǎng)絡(luò)診斷中,網(wǎng)絡(luò)封包數(shù)據(jù)的解析是了解網(wǎng)絡(luò)中流動(dòng)的數(shù)據(jù)包的種類和這些數(shù)據(jù)包的具體信息以及網(wǎng)絡(luò)安全與否的一個(gè)重要環(huán)節(jié)。計(jì)算機(jī)之間進(jìn)行通信時(shí),交互的所有信息都封裝在數(shù)據(jù)包中,通過(guò)解析這些采集到的網(wǎng)絡(luò)封包數(shù)據(jù),可以清楚地了解到相互通信的計(jì)算機(jī)之間的通信目的;可以確定網(wǎng)絡(luò)是否受到攻擊入侵;可以診斷網(wǎng)絡(luò)應(yīng)用程序可能出現(xiàn)問(wèn)題的原因以及了解整個(gè)網(wǎng)絡(luò)在各個(gè)時(shí)段內(nèi)的網(wǎng)絡(luò)負(fù)載情況等。
2 網(wǎng)絡(luò)封包數(shù)據(jù)的解析過(guò)程
捕獲后的網(wǎng)絡(luò)封包數(shù)據(jù)經(jīng)過(guò)解析后才能得到想要的信息,如作為網(wǎng)絡(luò)監(jiān)聽(tīng)所需要的數(shù)據(jù)幀的源地址、目的地址、協(xié)議類型等信息。
每一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包都是基于某一個(gè)網(wǎng)絡(luò)協(xié)議產(chǎn)生的[1],所以分析網(wǎng)絡(luò)數(shù)據(jù)包首先要分析其協(xié)議的內(nèi)容。一般情況下,協(xié)議的分析過(guò)程如下:首先對(duì)捕獲到的網(wǎng)絡(luò)封包數(shù)據(jù)進(jìn)行相應(yīng)的過(guò)濾和分解,再進(jìn)行具體的協(xié)議分析。由于網(wǎng)絡(luò)具有OSI的7層協(xié)議模型,協(xié)議數(shù)據(jù)是由上至下封裝后發(fā)送的,故協(xié)議分析需要由下至上進(jìn)行,即:首先對(duì)鏈路層的協(xié)議識(shí)別后進(jìn)行組包還原,然后脫去鏈路層協(xié)議頭,再將里面的數(shù)據(jù)提交給網(wǎng)絡(luò)層分析,直至經(jīng)過(guò)傳輸層到達(dá)應(yīng)用層。
數(shù)據(jù)包協(xié)議類型分析完畢之后,根據(jù)網(wǎng)絡(luò)封包數(shù)據(jù)的相應(yīng)協(xié)議類型進(jìn)行解包,輸出包信息,就完成網(wǎng)絡(luò)封包數(shù)據(jù)的解析,為后續(xù)的相關(guān)分析提供數(shù)據(jù)支持。
3 網(wǎng)絡(luò)封包數(shù)據(jù)解析方法
數(shù)據(jù)包解析的一種方法是PLA算法(文獻(xiàn)[2]),解決了如何判別在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包是什么類型、用到了哪些協(xié)議的問(wèn)題。
還有一種基于Winsock技術(shù)的數(shù)據(jù)包解析方法(文獻(xiàn)[3]),其用CProtocolInfo類來(lái)處理發(fā)送和接收的數(shù)據(jù)包并將需要的信息分離出來(lái)。
通過(guò)分析網(wǎng)絡(luò)封包數(shù)據(jù)解析的過(guò)程及上述解析方法可知,網(wǎng)絡(luò)封包數(shù)據(jù)解析通用方法是將截獲的網(wǎng)絡(luò)封包數(shù)據(jù)解析為用戶指定格式的、可讀的信息單元,其實(shí)質(zhì)是建立網(wǎng)絡(luò)封包數(shù)據(jù)中一定長(zhǎng)度單位的比特流(稱為比特單元)與信息條目之間的映射關(guān)系,如圖1所示。
4 信息單元描述模型
在眾多軟件工具的應(yīng)用中,特別是仿真系統(tǒng),信息單元種類多,數(shù)量大,且不同的仿真應(yīng)用,可能有不同類型的信息單元。圖1中比特單元與信息條目之間的映射關(guān)系可變,如有的是簡(jiǎn)單的比例函數(shù)關(guān)系,有的是復(fù)雜的指數(shù)函數(shù)關(guān)系,更有的需要采用指定的解密算法等。
因此,為滿足軟件工具的通用性、靈活性和可擴(kuò)展性等要求,本文基于元模型的思想,建立了信息單元的通用描述模型,并用面向?qū)ο蟮乃枷脒M(jìn)行了封裝,如圖2所示。
信息單元節(jié)點(diǎn)類QNPIUNode:從網(wǎng)絡(luò)封包比特流的前端截取指定長(zhǎng)度(單位為位或字節(jié))的比特單元,按用戶指定的轉(zhuǎn)換規(guī)則將其解析為可讀信息。這里的轉(zhuǎn)換規(guī)則主要包含如下兩方面內(nèi)容:
(1)信息在比特單元中的編碼方式。即信息以何種方式編碼為比特單元,如整型、浮點(diǎn)、字符串等方式。
(2)解析結(jié)果的表示方式。即解析得到的信息單元的數(shù)據(jù)類型定義、轉(zhuǎn)換函數(shù)定義等。
信息單元元素類QNPIUItem:將多個(gè)信息節(jié)點(diǎn)實(shí)例按一定的順序組織起來(lái)形成一個(gè)整體,同時(shí),它又是自包含的,因此,利用NPIUItem類可以定義復(fù)雜的信息單元。另外,定義NPIUItem類可以方便地實(shí)現(xiàn)某些特定的應(yīng)用需求,如對(duì)某些信息條目組進(jìn)行加密、或某些信息條目組的重復(fù)次數(shù)不固定等。
信息單元實(shí)體類QNPIUEntity:從整體角度實(shí)現(xiàn)信息單元屬性描述,如名稱、標(biāo)識(shí)值等,并根據(jù)定義的特征值對(duì)比特流進(jìn)行匹配,匹配成功后,則利用NPIUItem進(jìn)行數(shù)據(jù)解析。
解析時(shí),用戶可利用軟件工具提供的可視化界面,實(shí)現(xiàn)信息單元的定義,系統(tǒng)自動(dòng)根據(jù)用戶定義,組裝節(jié)點(diǎn)、元素和實(shí)體,建立信息單元描述模型。一個(gè)典型的信息單元描述模型如圖3所示。
5 小結(jié)
本文綜述了網(wǎng)絡(luò)封包數(shù)據(jù)的解析過(guò)程,介紹了現(xiàn)有的網(wǎng)絡(luò)封包數(shù)據(jù)解析方法,基于元模型的思想,建立了信息單元的通用描述模型,并用面向?qū)ο蟮乃枷脒M(jìn)行了封裝,滿足了在網(wǎng)絡(luò)封包數(shù)據(jù)解析方面各類網(wǎng)絡(luò)軟件工具的通用性、靈活性和可擴(kuò)展性。與此同時(shí),希望能引起研究人員的橫向比較和討論,集思廣益,形成一套標(biāo)準(zhǔn)化、規(guī)范化、可操作性強(qiáng)的網(wǎng)絡(luò)封包數(shù)據(jù)解析線路,為數(shù)據(jù)解析建設(shè)服務(wù)。
參考文獻(xiàn)
[1]周明天,汪文勇.TCP/IP網(wǎng)絡(luò)原理與技術(shù).北京:清華大學(xué)出版社,1993.
[2]王錦超,李飛,沈明玉.網(wǎng)絡(luò)數(shù)據(jù)包的協(xié)議分析算法設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(4):30~32.
[3]熊安萍.基于Winsock技術(shù)的數(shù)據(jù)包解析研究.計(jì)算機(jī)科學(xué),2006,33(12):81~82,134.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文
科技創(chuàng)新導(dǎo)報(bào)2011年9期