日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Wireshark实验——IP 协议

發(fā)布時間:2023/12/15 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 Wireshark实验——IP 协议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄IP轉(zhuǎn)發(fā)與路由選擇IP 分片IPv4 數(shù)據(jù)報traceroute捕獲執(zhí)行 traceroute 的數(shù)據(jù)包分析數(shù)據(jù)包分片參考資料

IP

IP 是整個 TCP/IP 協(xié)議族的核心,也是構(gòu)成互聯(lián)網(wǎng)的基礎(chǔ)。IP 位于 TCP/IP 模型的網(wǎng)絡(luò)層(相當(dāng)于OSI模型的網(wǎng)絡(luò)層),對上可載送傳輸層各種協(xié)議的信息,例如 TCP、UDP 等;對下可將 IP 信息包放到鏈路層,通過以太網(wǎng)、令牌環(huán)網(wǎng)絡(luò)等各種技術(shù)來傳送。為了能適應(yīng)異構(gòu)網(wǎng)絡(luò),IP 強調(diào)適應(yīng)性、簡潔性和可操作性,并在可靠性做了一定的犧牲。IP 不保證分組的交付時限和可靠性,所傳送分組有可能出現(xiàn)丟失、重復(fù)、延遲或亂序等問題。——百度百科


下面來看一些基礎(chǔ)知識:

轉(zhuǎn)發(fā)與路由選擇

轉(zhuǎn)發(fā)是指將分組從一個輸入鏈路接口轉(zhuǎn)移到適當(dāng)?shù)?strong>輸出鏈路接口的路由器的本地動作,當(dāng)一個分組到達某路由器時,路由器就必須把分組轉(zhuǎn)移到適當(dāng)?shù)妮敵鲦溌?,這是網(wǎng)絡(luò)層數(shù)據(jù)平面的唯一功能,同時也是最重要的。接下來看看什么是路由選擇,所謂路由選擇就是確定的分組從源到目的地所采用的端到端路徑的網(wǎng)絡(luò)范圍處理,也就是分組從發(fā)送方發(fā)出時,網(wǎng)絡(luò)層需要確定分組采用的路由或路徑,這需要路由選擇算法的支撐。

IP 分片

在鏈路層中存在很多鏈路層協(xié)議,但是所有鏈路層協(xié)議能夠承載的網(wǎng)絡(luò)層分組并不是一樣的,有的協(xié)議只能承載大的數(shù)據(jù)報,而有的只能承載小分組。一個鏈路幀能夠承載的最大數(shù)據(jù)量稱之為最大傳輸單元 MTU。由于路由器之間可能使用了不同的鏈路層協(xié)議,因此 MTU 將在數(shù)據(jù)報轉(zhuǎn)發(fā)的時候?qū)?IP 數(shù)據(jù)報產(chǎn)生限制。因此 IP 數(shù)據(jù)報可以進行分片操作,即數(shù)據(jù)報拆分成多個小的 IP 數(shù)據(jù)報,以此來適應(yīng)不同鏈路的 MTU。最終這些被分片的數(shù)據(jù)報將在接收端系統(tǒng)中重新組裝成完整版。

IPv4 數(shù)據(jù)報


接下來研究 IP 協(xié)議,重點關(guān)注 IP 數(shù)據(jù)報(IP datagram)。通過分析在執(zhí)行 traceroute 程序發(fā)送和接收的一系列 IP 數(shù)據(jù)報的過程來完成這個實驗,研究 IP datagram 中的各個字段 (fields)和 IP fragmentation 的方法。

traceroute

為了生成一系列 IP 數(shù)據(jù)報,我們將使用 traceroute 程序向不同的目的地發(fā)送不同大小的數(shù)據(jù)報。traceroute 通過首先發(fā)送一個或多個帶有生存時間 (TTL) 字段設(shè)置為 1 的數(shù)據(jù)報;然后發(fā)送一個或多個帶有 TTL 字段設(shè)置為 2 的數(shù)據(jù)報到同一個目的地;然后發(fā)送一個或多個帶有 TTL 字段設(shè)置為 3 的數(shù)據(jù)報到同一個目的地,以此類推,直到目的地真正收到此數(shù)據(jù)報為止。路由器必須將每個接收到的數(shù)據(jù)報中的 TTL 減 1,如果 TTL 達到 0,路由器會向來源主機發(fā)送 ICMP 消息。由于這種行為,TTL 為 1 的數(shù)據(jù)報將導(dǎo)致距發(fā)送方一次跳躍的路由器,將 ICMP TTL 超出的消息發(fā)送回發(fā)送方主機;以TTL 為 2 發(fā)送的數(shù)據(jù)報將導(dǎo)致距離為兩次跳躍的路由器,將 ICMP 消息發(fā)送回發(fā)送方主機等等。以這種方式,執(zhí)行 traceroute 的主機可以通過查看包含ICMP TTL 超出消息的數(shù)據(jù)報中的來源 IP 地址來獲知其自身與目的地之間的路由器的身份。

不過 Windows 的 tracert 程序不允許更改 tracert 程序發(fā)送的 ICMP echo 請求(ping)消息的大小。因此要使用 pingplotter 等其他程序來實驗。

捕獲執(zhí)行 traceroute 的數(shù)據(jù)包

啟動 Wireshark 并開始數(shù)據(jù)包捕獲:


2. 啟動 pingplotter 并在“要跟蹤的地址窗口”中輸入目標(biāo)目標(biāo)的名稱,設(shè)置合適的“要跟蹤的次數(shù)”,然后 Trace 。


3. 接下來發(fā)送一組長度 2000 的數(shù)據(jù)報。


4. 接下來發(fā)送一組長度 3500 的數(shù)據(jù)報。


5. 停止 Wireshark 數(shù)據(jù)包擷取


分析數(shù)據(jù)包

回答問題:

選擇發(fā)送的第一個 ICMP Echo Request 消息,然后在 packet details window 中展開數(shù)據(jù)包的 Internet 協(xié)議部分。您的計算器的 IP 地址是多少?


192.168.67.249
2. 在 IP header 中,上層協(xié)議字段的值是多少?


上層協(xié)議字段的值為 1,查詢常見協(xié)議值:

3. IP header 有多少 bytes? IP datagram 的有效負(fù)載中有多少 bytes?


IP header 20 bytes,數(shù)據(jù)報一共有 56 bytes,因此有效負(fù)載中有 36 bytes。
4. 此 IP 數(shù)據(jù)報是否已被分段(fragmented)?


目測沒有,因為第一個包的 TTL 是 1,如果被分段就會出現(xiàn)多個 TTL 為 1 的包,可是沒發(fā)現(xiàn),所以沒分段。
5. 查看第一個 ICMP 及其所有后續(xù) ICMP 消息。


在您的計算器發(fā)送的這一系列 ICMP 消息中,IP 數(shù)據(jù)報中的哪些字段一直改變?


標(biāo)識符(Identification)、存活時間(Time To Live,TTL)、首部檢驗和 (Header Checksum)一直在變。
6. 哪些字段保持不變?哪個字段必須保持不變?哪些字段必須更改?
必須保持不變:

版本(Version):占 4 bit,通信雙方使用的版本必須一致,對于 IPv4 字段的值是4;
首部長度(Internet Header Length, IHL):占 4 bit,首部長度說明首部有多少 32 位字(4字節(jié))。由于IPv4首部可能包含數(shù)目不定的選項,這個字段也用來確定數(shù)據(jù)的偏移量;
區(qū)分服務(wù)(Differentiated Services,DS):占 6 bit,只有在使用區(qū)分服務(wù)時,這個字段才起作用,在一般的情況下都不使用這個字段;

保持不變:

顯式擁塞通告( Explicit Congestion Notification,ECN):允許在不丟棄報文的同時通知對方網(wǎng)絡(luò)擁塞的發(fā)生。
全長(Total Length):占 16 位字段,定義了報文總長,包含首部和數(shù)據(jù),單位為字節(jié)。這個字段的最小值是 20(0 字節(jié)數(shù)據(jù)),最大值是65535。
標(biāo)識符(Identification):占16位,這個字段主要被用來唯一地標(biāo)識一個報文的所有分片,因為分片不一定按序到達,所以在重組時需要知道分片所屬的報文。
分片偏移 (Fragment Offset):這個13位字段指明了每個分片相對于原始報文開頭的偏移量,以8字節(jié)作單位。
源地址:報文的發(fā)送端;
目的地址:報文的接收端;
選項:附加的首部字段可能跟在目的地址之后;

必須更改:

標(biāo)識符(Identification):占 16 位,主要被用來唯一地標(biāo)識一個報文的所有分片
存活時間(Time To Live,TTL):占 8 位,避免報文在互聯(lián)網(wǎng)中永遠存在。實現(xiàn)為跳數(shù)計數(shù)器,報文經(jīng)過的每個路由器都將此字段減1,當(dāng)此字段等于0時,報文不再向下一跳傳送并被丟棄,最大值是255。這是traceroute的核心原理;
首部檢驗和 (Header Checksum):占 16 位,檢驗和字段只對首部查錯,在每一跳,路由器都要重新計算出的首部檢驗和并與此字段進行比對,如果不一致,此報文將會被丟棄;
數(shù)據(jù)

所謂的保持不變指的是這次 traceroute 不會改變的,但是下一次 traceroute 可能就會改了。
7. 描述您在 IP datagram 的 Identification field 中的值中所看到的?

主要被用來唯一地標(biāo)識一個報文的所有分片,因此對于不同的報文就需要改變這個值,使得報文可以唯一確定。
下一步查找第一跳路由器發(fā)送到您的計算器的一系列 ICMP TTL 超出的回復(fù)訊息。
8. ID 字段和 TTL 字段的值是多少?


ID 字段 13673,TTL 字段 64。
9. 對于第一跳路由器發(fā)送到您的計算器的所有 ICMP TTL 超出的回復(fù),這些值是否保持不變?為什么?



ID 字段改變,TTL 字段不改變。

分片

在將 pingplotter 中的數(shù)據(jù)包大小更改為 2000 后,查找計算機發(fā)送的第一個 ICMP Echo Request 消息。該消息是否已碎片化為多個 IP 數(shù)據(jù)報?


可以看出該消息被碎片化為 2 個 IP 數(shù)據(jù)報。
11. IP 數(shù)據(jù)報的第一個片段。 IP 頭中的哪些信息表明數(shù)據(jù)報已碎片化? IP 頭中的哪些信息表明這是第一個片段還是后一個片段? 這個 IP 數(shù)據(jù)報有多長?


More fragments字段為 1 表示 Set,即該數(shù)據(jù)包被分片。通過 ID 字段判斷這是第一個片段,分片長度為 1480 bytes。
12. 找到碎片 IP 數(shù)據(jù)報的第二個片段。 IP 標(biāo)頭中的哪些信息表明這不是第一個數(shù)據(jù)報片段? 是否還有更多的片段?你是如何知道的?


Fragment Offset 字段表示偏移量,1480 bytes 的偏移量表示是上一個片段的后續(xù)。沒有更多片段了,因為 More fragments 字段為 Not set,表示后面沒有分片了。
13. 在第一個和第二個片段中,IP 標(biāo)頭中哪些字段發(fā)生了變化?



全長(Total Length)、標(biāo)志 (Flags)和分片偏移 (Fragment Offset)。
接下來在將 pingplotter 中的數(shù)據(jù)包大小更改為 3500 后,找到計算機發(fā)送的第一個 ICMP Echo Request 消息。
14. 從原始數(shù)據(jù)報創(chuàng)建了多少個片段?


創(chuàng)建了 3 個片段。

參考資料

《計算機網(wǎng)絡(luò) 自頂向下方法》 [美] James F.Kurose,Keith W.Ross 著,陳鳴 譯,機械工業(yè)出版社
IP (網(wǎng)絡(luò)之間互連的協(xié)議)
traceroute
IPv4 維基百科

總結(jié)

以上是生活随笔為你收集整理的Wireshark实验——IP 协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。