標籤:
一、設計原理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
TCP/IP協議資料包檔案PCAP分析器