一、設計原理
1.PCAP檔案構成
參考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909
PCAP檔案由一個PCAP檔案頭和多個PCAP資料包組成,PCAP資料又由資料標頭和資料包内容組成。資料包内容才是我們将要進行分析還原的TCP/IP協定資料。PCAP總體結構如圖 11所示:

圖 11 PCAP檔案總體結構
以TCP協定為例,詳細解析PCAP檔案格式。PCAP前24個位元組為檔案頭,包含了檔案資訊,其結構如圖 11所示。接着16個位元組為TCP協定資料包標頭,記錄這個標頭的一些資訊。再接着為協定資料包内容,長度不定,本例為TCP,其結構為:以太網幀、IP頭、TCP頭、資料域。如圖 12所示:
圖 12 PCAP檔案舉例
2.TCP/IP協定棧
計算機網絡的各層及其協定的集合就構成了網絡的體系結構,即計算機網絡及其構成所完成的精确定義。OSI參考模型如圖 13所示,其中每個實體通常定義兩種不同的接口:一個是為同一計算機上使用它的通信服務的其他上層實體定義的服務接口,簡稱服務;另一個是為另一台計算機上對等實體定義的對等接口,即協定。
圖 13 OSI參考模型
在實際應用中,OSI并沒有被采用,TCP/IP協定族才是實際的标準,如圖 14所示。鍊路層,TCP/IP協定族的最低層,也稱為網絡接口層,通常包含作業系統中的裝置驅動程式和對應的網絡接口卡,對應于OSI參考模型中的資料鍊路層和實體層。網絡層,也稱為網際網路層,由于該層的主要協定為IP,通常也簡稱為IP層。傳輸層,通常所說的兩台計算機之間的通信其實是指兩台計算機上對應的應用程式之間的資料通信,傳輸層提供的就是應用程式間的通信,一般也稱為端到端的通信。應用層向使用者提供一組常用的應用程式。
圖 14 TCP/IP協定族
3.各個協定格式
本設計将實作對ARP、IPv4、ICMP、UDP、DHCP等協定進行實際解包分析。
ARP資料包格式如圖 15所示:
圖 15 ARP資料包格式
IPv4資料包格式如圖 16所示:
圖 16 IPv4資料包格式
ICMP資料包格式如圖 17所示:
圖 17 ICMP資料包格式
UDP資料包格式如圖 18所示:
圖 18 UDP資料包格式
DHCP資料包格式如圖 19、圖 20所示:
圖 19 DHCP資料包結構
圖 20 DHCP資料包格式
二、設計方案及實作
1.整體架構
PCAP檔案分析器由3個包實作,分别是com.qiusongde.packet、com.qiusongde.pacpparser、com.qiusongde.UI,如圖 21所示:
圖 21 PCAP檔案分析器代碼架構
在com.qiusongde.UI這個包中:MyUI類主要實作使用者互動界面,實作選擇檔案,根據檔案路徑建立輸入流InputStream,并展示分析結果;ExtensionFileFilter類實作檔案過濾器,隻能打開PCAP檔案。
在com.qiusongde.pcapparser這個包中:Pcappparser類主要根據圖 11、圖 12實作讀取PCAP檔案并轉換成相應的資料結構Pcap、PcapHeader、PcapData,友善後邊進行分析,ProtocolJudge類根據圖 14判斷其協定類型。
com.qiusongde.packet這個包主要根據圖 15、圖 16、圖 17、圖 18、圖 19、圖 20、圖 21,實作對轉換後的PCAP等資料結構進行分析。
整體互動示意圖 22如所示:
圖 22 整體互動示意圖
2.界面
主界面,如圖 23所示,左邊表格将用來顯示PCAP檔案中包含的網絡資料簡介,右邊的兩個文本框将分别用來展示原網絡資料和分析後的詳細資訊。
圖 23 主界面
檔案選擇器,如圖 24所示,讓使用者自由浏覽并選擇要打開的PCAP檔案。
圖 24 檔案選擇器
打開相應的PCAP檔案後,左邊表格添加相應的項,用來顯示PCAP檔案中攜帶的網絡資料,如圖 25。
圖 25 表格界面
選中相應的表格行之後,将在右邊的文本框顯示分析結果,并以16進制格式顯示原網絡資料,如圖 26所示。
圖 26 文本框界面
三、源代碼資料及說明文檔
http://download.csdn.net/detail/sdzuiaidanpianji/9602633