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