【筆記】tcp/ip illustrated 【7 ping】

1、參考


TCP/IP詳解 卷1:協議(英文版)

TCP/IP詳解 卷1:協議緩存

2、名詞解釋


RR,record route, 記錄路由安全

3、內容


1. 概要

ping本來定義爲聲納定位物體,ping程序是Mike Muuss編寫,用於測試某個主機是否能夠到達
ping程序發送一個ICMP回顯請求報文到指定主機,並等待返回ICMP回顯應答
通常,若是不能Ping到某臺主機,就不能Telnet, FTP到那臺主機,若是不能Telnet到某臺主機,那麼一般能夠用Ping程序來肯定問題出在哪裏
Ping程序還能測出到本機的往返時間,代表主機和目標主機的網絡距離服務器

隨着安全意識的加強,出現了提供訪問控制清單的路由器和防火牆,一臺主機的可達性可能不僅是取決於IP層是否可達,還取決於使用何種協議以及端口號,因此,Ping程序的運行結果可能顯示某個主機不可達,可是能夠Telnet遠程登陸到該臺主機的25端口網絡

2. ping程序

稱發送ping程序爲客戶,被ping的主機爲服務器,大多數TCP/IP實現都在內核中直接支持Ping服務器(不是一個用戶進程,ICMP查詢服務,例如:地址掩碼或者時間戳請求,也是在內核中實現)異步

clipboard.png

Unix系統在實現ping程序時候,把ICMP報文中的標識符字段設置成發送進程的ID號,這樣,即便同一臺主機上同時運行多個ping程序實例,ping程序能夠識別出返回的信息測試

序列號從0開始,每發送一次新的回顯請求,遞增1,ping程序打印出返回的每一個分組的序列號,運行查看是否有分組丟失、失序、重複(由於IP層是盡力而爲的數據報傳遞服務,因此這些狀況均可能發生)spa

2.1 局域網輸出

當返回ICMP回顯應答時候,要打印出序列號和TTL,計算往返時間
經過在ICMP報文數據中存放發送請求的時間值計算往返時間(當應答返回時候,用當前時間減去存放在ICMP報文中的時間值,便是往返時間)操作系統

clipboard.png

clipboard.png

如上,第一行包含目的主機的IP地址和主機名稱,說明主機名稱被解析爲IP地址(利用DNS協議)
一般,第一個往返時間值比其餘的大,因爲目的端的硬件地址不在ARP高速緩存中的緣由blog

2.2 廣域網輸出

clipboard.png
在一個廣域網上,結果可能會有很大不一樣,上面的例子是某個工做日的下午的運行結果,
序列號爲1,2,3,4等回顯請求或者回顯應答在某個地方丟失,往返時間發送了很大的變化
經過廣域網還有可能看到重複的分組(即相同的序列號的分組被打印兩次或者屢次),失序的分組(序列號爲N+1的分組在序列號N的分組以前被打印)接口

2.3 線路SLIP連接

SLIP鏈路,由於它們常常運行於低速的異步方式(9600b/s或者更低)
默認狀況下,ICMP報文有56個字節,再加上20個字節的IP首部和8個字節的ICMP首部,IP數據報的總長度爲84字節
根據鏈路層,SLIP會在IP數據報的開始結尾加上END字符,此外,SLIP幀還有可能再增長一些字節,取決於數據報中的每一個字節的值,

假設,把主機bsdi和slip之間的SLIP鏈路傳輸速率設置爲1200 b/s
因爲一個字節有8位數據,1位起始位,1位結束位,傳輸速率是1秒120個字節,即一個字節 1000 / 120 = 8.33 ms
估計須要1433(86 8.33 2)ms

clipboard.png

由上,往返時間大約是1.5秒,可是程序發送ICMP回顯請求是1秒1次,
說明在第一個回顯應答返回以前,就已經發送了兩次請求(分別在0秒和1秒),因此,總結行中丟失一個分組,實際上並未丟失,極可能應答仍然在返回的途中

2.4 撥號SLIP鏈路

對於撥號的SLIP鏈路來講,狀況有些變化,由於在鏈路的兩端增長了調制解調器,用於sun和netb系統之間的調制解調器,帶來了時延,隨着數據的壓縮,分組長度可能會減小,可是因爲使用了錯誤控制協議,分組長度有可能會增長

接收端的調制解調器只能在驗證了循環檢驗字符(檢驗和)後才能釋放收到的數據
最後,還須要處理每一端的計算機異步串行接口,許多操做系統只能在固定的時間間隔內,或者收到若干字符後,纔去讀這些接口

clipboard.png

3. IP記錄路由選項

Ping程序提供了查看IP記錄路由選項的機會,提供了-R參數,用於記錄路由功能
使得ping程序在發送出去的IP數據報中設置IP RR選項(該IP數據報包含ICMP回顯請求報文),這樣
每一個處理該數據報的路由器都把它的IP地址放入選項字段中,
當數據報到達目的端後,IP地址清單應該複製到ICMP回顯應答中,這樣返回途中,全部通過的路由器地址也會被加入到清單中,當ping程序收到回顯應答時候,就打印出IP地址清單

最大的問題,IP首部中只有有限的空間存放IP地址,首部中的首部長度字段只有4位,所以整個IP首部最長只能包含15個32位長的字(60個字節)因爲IP首部固定長度是20字節,RR選項使用3個字節,只有37個字節來存放IP地址清單,即只能存放9個IP地址

相關文章
相關標籤/搜索