分析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軟體的使用加深對此的瞭解(報頭長度,版本,總長度)。通過瀏覽網頁產生大量資料包。應該多捕捉多一些包,並去了解每個欄位的含義。
----說明----這是自己計算機網路實驗課製作的,哈哈