TCP/IP協議 卷一 PING

Ping

就是我們平時使用的額那個ping命令
是爲了測試以另一臺主機是否可達
發送ICMP回顯請求(類型8代碼0)報文給另一臺主機,等待返回ICMP回顯應答(類型0代碼0)報文
一般可以用該程序測試是否能聯通指定目標主機。但是如果對方的防火牆或者路由器能夠攔截此ICMP的話則不能作爲是否聯通的判斷依據

ICMP回顯請求應答報文格式

在這裏插入圖片描述
unix系統將標識符設置成發送進程的ID號。這樣各進程的ping程序都能識別到自己的應答
序列號從0開始沒發送一次請求+1

IP記錄路由選項

ping程序提供了查看IP記錄路由(RR)選項的機會
每個處理過該數據的路由器都會將它的IP地址放入地址清單中。當達到目的端的時候IP地址清單被複制到回顯應答中。 這樣ping程序收到回顯應答時,他就打印出這份IP地址清單
但是他是放在IP首部

那麼,有個問題。IP首部的長度字段只有4bitIP數據報傳送門
所以最長的長度是1111也就是15
那也就是說 最長只能存儲15個IP(4字節),也就是60字節
但是!但是!
IP首部要佔用20字節,RR選項字段要佔用3字節。扣除一下就剩下37字節了37/4就剩下9個還多1個字節,這個字節目前未知是幹嘛的,先放着,等到第二卷講實現的時候應該就會說到。
在這裏插入圖片描述

數據報字段講解

code ip選項類型 RR選項的值爲7
len RR選項的總長度。值爲39(字節)
ptr 指針字段 基於1的指針 指向存放下一個ip地址位置 最小值爲4.隨着IP的增加以4字節爲單位移動。當9個IP 全部加入進去ptr的值爲40.表示清單已滿

路由器存放的是出口IP地址RFC791規定

IP時間戳選項

與RR選項類似
在這裏插入圖片描述
code: 時間戳的0x44
len與ptr與RR選項的數據報的一致
OF: 4bit 溢出字段 作用:如果路由器發現IP數據報的長度無法容納時間錯的數據,則會增加溢出字段的值,以此來增加數據報的長度
FL: 4bit 標誌位
在這裏插入圖片描述
時間戳取值爲UTC午夜開始計算的毫秒數。不過這不是強制性的。路由器可以使用任意格式。但是要打開時間戳中的高位以標明非標準值

這裏有一個問題 只記錄時間戳不記錄IP是沒意義的
如果標誌位選擇1 也就是IP和時間戳都記錄 那隻能記錄4對
如果選擇3 指定IP寫入時間戳。
還有一個問題 誰能保證路由器上面的時間是正確的呢?

所以這個IP時間戳報文有毛用啊?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章