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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Wireshark实验——IP 协议

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

目錄IP轉發與路由選擇IP 分片IPv4 數據報traceroute捕獲執行 traceroute 的數據包分析數據包分片參考資料

IP

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


下面來看一些基礎知識:

轉發與路由選擇

轉發是指將分組從一個輸入鏈路接口轉移到適當的輸出鏈路接口的路由器的本地動作,當一個分組到達某路由器時,路由器就必須把分組轉移到適當的輸出鏈路,這是網絡層數據平面的唯一功能,同時也是最重要的。接下來看看什么是路由選擇,所謂路由選擇就是確定的分組從源到目的地所采用的端到端路徑的網絡范圍處理,也就是分組從發送方發出時,網絡層需要確定分組采用的路由或路徑,這需要路由選擇算法的支撐。

IP 分片

在鏈路層中存在很多鏈路層協議,但是所有鏈路層協議能夠承載的網絡層分組并不是一樣的,有的協議只能承載大的數據報,而有的只能承載小分組。一個鏈路幀能夠承載的最大數據量稱之為最大傳輸單元 MTU。由于路由器之間可能使用了不同的鏈路層協議,因此 MTU 將在數據報轉發的時候對 IP 數據報產生限制。因此 IP 數據報可以進行分片操作,即數據報拆分成多個小的 IP 數據報,以此來適應不同鏈路的 MTU。最終這些被分片的數據報將在接收端系統中重新組裝成完整版。

IPv4 數據報


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

traceroute

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

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

捕獲執行 traceroute 的數據包

啟動 Wireshark 并開始數據包捕獲:


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


3. 接下來發送一組長度 2000 的數據報。


4. 接下來發送一組長度 3500 的數據報。


5. 停止 Wireshark 數據包擷取


分析數據包

回答問題:

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


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


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

3. IP header 有多少 bytes? IP datagram 的有效負載中有多少 bytes?


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


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


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


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

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

保持不變:

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

必須更改:

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

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

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


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



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

分片

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


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


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


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



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


創建了 3 個片段。

參考資料

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。