一、實驗?zāi)康?/h2>
1、分析IP協(xié)議與IP數(shù)據(jù)報;
2、分析ICMP協(xié)議。
二、實驗環(huán)境
與因特網(wǎng)連接的計算機,操作系統(tǒng)為Windows,安裝有Wireshark、IE或其他瀏覽器。
三、預(yù)備知識
四、實驗步驟
1、IP協(xié)議分析
(1)在命令提示符中,利用ipconfig -all查看自己主機的ip及MAC地址,查看自己的網(wǎng)關(guān)ip地址并記錄。(物理地址 : C8-D9-D2-19-FC-4E,IPv4 地址: 10.0.132.12,默認網(wǎng)關(guān): 10.0.132.254)
(2)運行wireshark抓包分析工具,在命令提示符輸入”ping 網(wǎng)關(guān)地址”,命令運行結(jié)束后,停止抓包。在wireshark過濾欄中,設(shè)置過濾條件過濾從網(wǎng)關(guān)ip地址到本機ip地址的數(shù)據(jù)包,查看捕獲數(shù)據(jù)包的ip協(xié)議分組結(jié)構(gòu),截圖并記錄下表。
版本 |
首部長度 |
區(qū)分服務(wù) |
總長度 |
||||
4 |
20bit(5) |
0x00(0) |
60 |
||||
標識 |
標記 |
片偏移 |
|||||
0x000085ca(34250) |
0x00 |
0 |
|||||
生存時間 |
協(xié)議 |
首部校驗和 |
|||||
255 |
01(ICMP) |
0x000018ec[validation disabled] |
|||||
源地址 |
目的地址 |
||||||
10.0.132.254 |
10.0.132.12 |
(3)根據(jù)捕獲的數(shù)據(jù)包信息思考并回答以下問題:
- 首部長度是如何計算的?總長度是如何計算的?
IP首部固定部分有20字節(jié),除非含有選項部分。故最小長度為20字節(jié)。首部長度是指IP首部占32bit字的數(shù)目,包括選項(如果有)。首部長度本身為4bit字段,能表示的二進制最大數(shù)為1111,換算成十進制為15,即首部最長為15個32bit長度,即最大長度60字節(jié)。
- 生存時間取值是多少?表示什么含義?找到從202.115.32.43發(fā)送給本機ip的數(shù)據(jù)包,查看ip報頭中的生存時間取值,與上表中的生存時間取值相比有什么變化?說明了什么?
生存時間(TTL)是IP協(xié)議包中的一個值,它告訴網(wǎng)絡(luò)路由器包在網(wǎng)絡(luò)中的時間是否太長而應(yīng)被丟棄。有很多原因使包在一定時間內(nèi)不能被傳遞到目的地。例如,不正確的路由表可能導(dǎo)致包的無限循環(huán)。一個解決方法就是在一段時間后丟棄這個包,然后給發(fā)送者一個報文,由發(fā)送者決定是否要重發(fā)。TTL的初值通常是系統(tǒng)缺省值,是包頭中的8位的域。TTL的最初設(shè)想是確定一個時間范圍,超過此時間就把包丟棄。由于每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經(jīng)過的路由器個數(shù)。當記數(shù)到0時,路由器決定丟棄該包,并發(fā)送一個ICMP報文給最初的發(fā)送者。
- 協(xié)議字段表示什么?本實驗中協(xié)議字段為什么是這個取值?
1.版本:即圖中的“Version 4”,表示IP 的版本號,4比特
2.首部長度:即圖中的“Header length”的這段,表示IP數(shù)據(jù)包頭長度,4比特,IP數(shù)據(jù)包頭最短為20字節(jié),但是其長度可變,具體長度取決于可選項字段的長度。
3.優(yōu)先級與服務(wù)類型:即圖中“DIfferentiated services field”這段,用于表示數(shù)據(jù)包的優(yōu)先級和服務(wù)類型,8比特。通過在數(shù)據(jù)包中劃分一定的優(yōu)先級,用于實現(xiàn)Qos(服務(wù)質(zhì)量)的要求
4.總長度:即圖中 的“Total length”這段,用以指示整個IP數(shù)據(jù)包的長度,16比特。最長為65535字節(jié),包括包頭和數(shù)據(jù)。
5.標識符:即圖中的“Identification”這段,表示IP數(shù)據(jù)包的標識符,16比特。當IP對上層數(shù)據(jù)進行分片時,它將給所有的分片分配一組編號,然后將這些編號放入標識符字段中,保證分片不會被錯誤的重組。標識符字段用于標識一個數(shù)據(jù)包,以便接收節(jié)點可以重組被分片的數(shù)據(jù)包。
6.標志:即圖中的“Flags”,標志字段,3比特,標志和分片一起被用來傳遞信息。例如,當數(shù)據(jù)包從一個以太網(wǎng)發(fā)送到另一個以太網(wǎng)時,指示對當前的包不能進行分片或者一個包被分片后指示在一系列的分片中最后一個分片是否已發(fā)出。
7.段偏移量:即圖中的“fragment offset”,該字段用于表示段偏移量,13比特。段偏移量中包含的信息是在一個分片序列中如何將各分片重新連接起來。
8.TTL:即圖中的“time to live”,該字段用于表示IP 數(shù)據(jù)包的生命周期,8比特。該字段包含的信息是防止一個數(shù)據(jù)包在網(wǎng)絡(luò)中無限循環(huán)的轉(zhuǎn)發(fā)下去。
TTL值對應(yīng)于一個數(shù)據(jù)包通過路由器的數(shù)目。一個數(shù)據(jù)包沒經(jīng)過一個路由器,TTL將減去1.當TTL值為0時,數(shù)據(jù)包將被丟棄。
9.協(xié)議號:即圖中的“Protocol”,協(xié)議字段,8比特。該字段用以指示在IP 數(shù)據(jù)包中封裝的是哪個協(xié)議,是TCP 還是UDP,tcp的協(xié)議號是6,UDP的協(xié)議號是17 ,這里我們看到的是TCP 協(xié)議號是6。
10.首部校驗和:即圖中的“Header checksum status”,該字段用于表示校驗和,16比特。校驗和是16位的錯誤檢測字段。目的主機和網(wǎng)絡(luò)中的每個網(wǎng)關(guān)都要重新計算包頭的校驗和,就如同源主機所做的一樣。如果數(shù)據(jù)沒有被改動過,兩個計算結(jié)果應(yīng)該是一樣的。
- 啟動抓包,“ping 本網(wǎng)絡(luò)廣播地址”,停止抓包。截圖并回答:ping命令是否有回應(yīng)?從哪一臺主機產(chǎn)生的回應(yīng)?。
請求超時
- 啟動抓包,“ping 127.0.0.1”,通過設(shè)置過濾器,嘗試找到目的地址為127.0.0.1的數(shù)據(jù)包。截圖并回答:是否能找到?為什么?
不能找到
因為默認情況下,Wireshark無法捕獲127.0.0.1的報文
- 啟動抓包,“ping 192.168.31.1?–l 3000”,通過設(shè)置過濾器,找到本主機發(fā)出的第一個3000字節(jié)的3個數(shù)據(jù)包分片,截圖并記錄下表。
分片1 |
分片2 |
分片3 |
|
總長度 |
1500 |
1500 |
68 |
標識 |
0x00003d07 |
0x00003d07 |
0x00003d07 |
MF標志 |
Set |
Set |
Not set |
DF標志 |
Not set |
Not set |
Not set |
片偏移 |
0 |
1480 |
2960 |
根據(jù)捕獲的數(shù)據(jù)包信息回答以下問題:
- 原始數(shù)據(jù)包是如何被劃分成不同大小分片的?本機的MTU可能是多少?
分片和重新組裝的過程對傳輸層是透明的,其原因是當IP數(shù)據(jù)報進行分片之后,只有當它到達目的站時,才可進行重新組裝,且它是由目的端的IP層來完成的。分片之后的數(shù)據(jù)報根據(jù)需要也可以再次進行分片。IP分片和完整IP報文差不多擁有相同的IP頭,ID域?qū)τ诿總€分片都是一致的,這樣才能在重新組裝的時候識別出來自同一個IP報文的分片。在IP頭里面,16位識別號唯一記錄了一個IP包的ID,具有同一個ID的IP分片將會重新組裝;而13位片偏移則記錄了某IP片相對整個包的位置;而這兩個表中間的3位標志則標志著該分片后面是否還有新的分片。這三個標志就組成了IP分片的所有信息,接受方就可以利用這些信息對IP數(shù)據(jù)進行重新組織。
1500
- 不同分片的標識字段取值是否一致?為什么?
是?
IP軟件在存儲器中維持一個計數(shù)器,每產(chǎn)生一個數(shù)據(jù)包,計數(shù)器就加1,并將此值賦給標識字段。但這個“標識”并不是序號,因為IP是無連接服務(wù),數(shù)據(jù)包不存在按序接收的問題。當數(shù)據(jù)包由于長度超過網(wǎng)絡(luò)的MTU而必須分片時,同一個數(shù)據(jù)包被分成多個片,這些片的標識都一樣,也就是數(shù)據(jù)包這個標識字段的值就被復(fù)制到所有的數(shù)據(jù)包分片的標識字段中。相同的標識字段的值使分片后的各數(shù)據(jù)包片最后能正確地重裝成為原來的數(shù)據(jù)包。
- 不同分片的MF和DF標志位取值有何不同?為什么?
DF=0表示可以分片,MF = 1表示后面還有分片,MF = 0表示后面沒有分片
- 每個分片的片偏移分別是多少?片偏移的含義是什么?
0 1480 2960
2、ICMP協(xié)議的分組結(jié)構(gòu)
(1)查看上述抓包結(jié)果中的第3個分片的ICMP數(shù)據(jù)包,填寫下表:
類型 |
代碼 |
檢驗和 |
標識符 |
序號 |
數(shù)據(jù)長度 |
IPv4 |
0 |
0xcfbd[correct] |
1-256 |
17-4352 |
68 |
回答以下問題:
- 該ICMP報文屬于哪種類型?
查詢報文
- 重新設(shè)置過濾條件,找到ICMP echo reply報文,其類型號是多少?
8
- 3000字節(jié)的數(shù)據(jù)分成了3片,每個分片中都有IP頭部信息嗎?為什么?
有 ip頭部信息出現(xiàn)在每個ip報文數(shù)據(jù)報中,用于指定ip通信的遠端ip地址,目的端ip地址,指導(dǎo)ip分片和重組,以及部分的通信行為。
- 3000字節(jié)的數(shù)據(jù)分成了3片,每個分片中都有ICMP頭部信息嗎?為什么?
有 ICMP是在IP數(shù)據(jù)報的內(nèi)部被傳輸?shù)?,緊跟著IP報文的首部,如果IP首部有可選部分,則緊跟著可選部分
- 啟動抓包,在命令提示符中輸入“ping baidu.com -i 4”(節(jié)點數(shù)最多為4),運行結(jié)束后停止抓包,設(shè)置過濾器,顯示ICMP報文,截圖并回答:
- 觀察TTL exceeded報文,該ICMP報文的類型號和代碼分別是多少,代表的含義是什么?
類型號8 代碼0
- 觀察TTL exceeded報文的ICMP數(shù)據(jù)部分,請問該數(shù)據(jù)部分包括了哪些部分?為什么這樣?
源端口抑制報文路由器在處理報文時會有一個緩存隊列。如果超過了最大緩存隊列,將無法處理,從而丟棄報文,并向源發(fā)送一個ICMP源冷卻報文(Type為4),告訴對方不在接收報文了。
超時報文
網(wǎng)絡(luò)傳輸IP數(shù)據(jù)報的過程中,如果IP數(shù)據(jù)報的TTL值逐漸遞減為0時,需要丟棄數(shù)據(jù)報,這時候路由器需要向源發(fā)送方發(fā)送ICMP超時報文(Type為11),code為0,表示傳輸過程中超時了.
參數(shù)錯誤報文(Parameter Problem Message)
當路由器或主機處理數(shù)據(jù)報文時,發(fā)現(xiàn)因為報文頭的參數(shù)錯誤而不得不丟棄報文時,需要向源發(fā)送方發(fā)送參數(shù)錯誤報文(Type為12).當錯誤為0時,報文中的Pointer指出錯誤的字節(jié)位置
改變路由重定向(Redirect Message)
當路由收到IP數(shù)據(jù)報,發(fā)現(xiàn)數(shù)據(jù)報的目的地址在路由表中沒有,他就會發(fā)ICMP重定向報文(Type為5)個源發(fā)送方,告訴它發(fā)送的地址不在
回送請求和回答
Type為8是請求回顯報文(Echo);Type(0)是回顯應(yīng)答報文。請求回顯包或回顯應(yīng)答報文屬于查詢報文,Ping就是用這種報文進行查詢和應(yīng)答的。
時間戳請求和回答文章來源:http://www.zghlxwxcb.cn/news/detail-451767.html
時間戳報文時用來記錄收發(fā)以及傳輸時間的報文Originate Timestamp記錄的是發(fā)送方發(fā)送報文的時刻。Receive Timestamp記錄的是接收方收到的報文的時刻;Transmit Timestamp表示回顯這最后發(fā)送報文的時刻。文章來源地址http://www.zghlxwxcb.cn/news/detail-451767.html
到了這里,關(guān)于【計算機網(wǎng)絡(luò)】IP協(xié)議與ICMP協(xié)議分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!