1. 程式人生 > >分析IP協議資料包格式

分析IP協議資料包格式

目的

(1)掌握IP協議的作用和格式;

(2)理解IP資料包首部各欄位的含義;

(3)掌握IP資料包首部校驗和的計算方法。

工具

(1)軟體工具:抓包分析工具(wireshark);

(2)作業系統:Windows7 Dos ; 

(3)區域網環境。

原理

(1)IP協議位於網路層,是TCP/IP協議簇中的核心協議,提供資料傳輸 的最基本服務,是實現網路互聯的基本協議。


(2)IP資料報格式如下:


(3)校驗和演算法

IP校驗和主要是用來保證資料(IP報頭)的完整性的。它用的演算法非常簡單, 就是反碼求和校驗。需要注意的是反碼求和又叫1的補碼(one'scomplement), 而2的補碼就是我們通常說的補碼求和了。校驗演算法具體如下。

  ①傳送方

   1)將校驗和欄位置為0,然後將IP包頭按16位元分成多個單元,如包頭長度 不是16位元的倍數,則用0位元填充到16位元的倍數;

   2)對各個單元採用反碼加法運算(即高位溢位位會加到低位,通常的補碼運算 是直接丟掉溢位的高位),將得到的和的反碼填入校驗和欄位;

    3)傳送資料包。

  ②接收方

   1)將IP包頭按16位元分成多個單元,如包頭長度不是16位元的倍數,則用 0位元填充到16位元的倍數;

   2)對各個單元採用反碼加法運算,檢查得到的和是否符合是全1(有的實現可 能對得到的和會取反碼,然後判斷最終值是不是全0);

(4)對IP首部檢驗和的演算法如下:

1)把IP資料包的校驗和欄位置為0;

  2)把首部看成以16位為單位的數字組成,依次進行二進位制求和(注意:求和 時應將最高位的進位儲存,所以加法應採用32位加法);

  3)將上述加法過程中產生的進位(最高位的進位)加到低16位(採用32位加 法時,即為將高16位與低16位相加,之後還要把該次加法最高位產生的 進位加到低16位)

  4)將上述的和取反,即得到校驗和。

操作

(1)開啟抓包工具軟體(Wireshark),選擇選單命令“Capture”“Interfaces…”子選單項。彈出“Wireshark: Capture Interfaces”對話方塊。選擇網路介面,單擊“Start”按鈕開始網路資料包捕獲。


(2)瀏覽外部網站,確保協議分析軟體能夠捕獲足夠的網路資料包,單擊“Stop”按鈕,中斷網路協議分析軟體的捕獲程序,主介面顯示捕獲到的資料包。


幾乎所有的高層協議都使用IP協議進行網路傳輸,只有ARP和RARP報文不被封裝在IP資料報中。

(3)觀察協議樹區中IP資料包各個欄位的長度與值,是否符合IP報文格式。


IP源:112.237.231.93,目標:223.202.6.27

Version(版本):一個4位元組的欄位。IPv4。

報頭長度:一個8位元組的欄位,上圖為20位元組

總長度:一個16位元組的欄位,表示整個資料包的長度。包括資料和報頭。

在上圖中該值為518。

(4)檢視各個IP資料包的標識欄位和片偏移欄位,它們有何特徵。

標識欄位:不確定

片偏移欄位:都為零

(5)檢視各個IP資料包的資料報總長度欄位,記錄它的取值範圍。

60 328 53 71 40 158 1480 192 52 63

(6)觀察十六進位制對照區,根據IP首部校驗和方法使用“計算器”校驗捕獲的資料報中校驗和欄位的值。


對如圖十六進位制資料求反碼校驗和:0x4500,0x0206,0x04f3,0x4000,0x8006,

0xb5ce,0x70ed,0xe75d,0xdfca,0x061b

相加總和:3ffed

總結:

通過wireshark軟體的使用加深對此的瞭解(報頭長度,版本,總長度)。通過瀏覽網頁產生大量資料包。應該多捕捉多一些包,並去了解每個欄位的含義。

----說明----這是自己計算機網路實驗課製作的,哈哈