7.Ping程序

介紹

ping是用來測試目的主機是否可達的一個程序測試

原理:向目的主機發送ICMP回顯請求報文,並等待返回ICMP回顯應答ui

  • ping客戶端:發送回顯請求的主機
  • ping服務端:被ping的主機

大部分TCP/IP實現都在內核中實現ping服務端code

ICMP回顯請求與應答

報文格式:blog

image_1chthn8f0jl2fnfuij16b8v2n9.png-59.6kB

  • 標識符:Unix採用進程id做爲標識符。用來匹配ICMP回顯請求與應答
  • 序號:從0開始,每次回顯請求都會+1。用來確認是否有分組丟失、重複、亂序

局域網內ping:進程

image_1chti1vqv17kn1dss1vom635nsj13.png-107.4kB

廣域網內ping:路由

image_1chti2ukv5qsdhv1lfc1i6112hm1g.png-155.6kB

觀察到出現高延遲和大量分組丟失狀況原理

IP記錄路由選項

做爲IP首部中的選項字段,最長40字節。用來記錄IP報文通過了哪些主機路由器

經過ping -R,程序就會記錄並使用IP記錄路由選項請求

當通過一個路由器,它記錄出口IP地址,當帶該選項的回顯應答回到源主機(發ping請求的主機),也會記錄該主機的入口地址。經過該功能,能夠發現實際路由過程當中會頻繁使用默認路由程序

IP記錄路由選項的報文:

image_1chtj1b0k1h3m1tfq12f6q4037g1t.png-57.6kB

  • code:IP選項類型。值7表明IP記錄路由選項
  • len:選項總字節長度。值爲39
  • ptr:存放下一個IP地址的位置。初始化值爲4,每當加入一個IP,值+4,當值爲40時表明已經記錄9個IP,空間已滿

經過這種方式記錄路由過程的問題:

  1. 不是全部主機都支持該選項。如今大部分系統都支持
  2. 記錄的IP有限。因爲只有40字節來記錄,除開記錄元信息的,最多隻能記錄9個IP

IP記錄時間戳選項

做爲IP首部中的選項字段,最長40字節。

IP記錄時間戳選項的報文:

image_1chtjp8veson23q80m1ju8hph2a.png-53.3kB

  • code:IP選項類型:值0x44表明IP記錄時間戳選項
  • len:選項總字節長度。值爲36或40
  • ptr:存放下一個時間戳的位置
  • OF:4位溢出字段。當路由器沒有空間追加時間戳時,就增長溢出字段的值
  • FL:4位標誌字段。不一樣標誌描述了時間戳部分該記錄哪些東西

可用FL:

image_1chtk38d823v15qv1p8b6l10rt2n.png-128.4kB

該方案的問題是:

  1. 一般標誌3纔有意義。標誌0功能太弱,標誌1會致使只能放4條記錄,而且可能都不是本身關心的
  2. 標誌3中指定了主機,但這些主機的時間戳可能並不許確
相關文章
相關標籤/搜索