danny 2009-3-1 22:01
ping的作用~~參數,作用,錯誤說明
Ping是潛水艇人員的專用術語,表示回應的聲納脈衝,在網路中Ping 是一個十分好用的TCP/IP工具。它主要的功能是用來偵測網路的連通情況和分析網路速度。
Ping有好的善的一面也有惡的一面。先說一下善的一面吧。上面已經說過Ping的用途就是用來偵測網路的連同情況和分析網路速度,但它是通過什麼來顯示連通呢?這首先要瞭解Ping的一些參數和返回訊息。
以下是PING的一些參數︰
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list
-t
Ping 指定的計算機直到中斷。
-a
將位址解析為計算機名。
-n count
傳送 count 指定的 ECHO 數據包數。預設值為 4。
-l length
傳送含有由 length 指定的數據量的 ECHO 數據包。預設為 32 位元組;最大值是65,527。
-f
在數據包中傳送"不要分段"標誌。數據包就不會被路由上的閘道分段。
-i ttl
將"生存時間"字段設定為 ttl 指定的值。
-v tos
將"服務類型"字段設定為 tos 指定的值。
-r count
在"記錄路由"字段中記錄傳出和返回數據包的路由。count 可以指定最少 1 台,最多 9 台計算機。
-s count
指定 count 指定的躍點數的時間戳。
-j computer-list
利用 computer-list 指定的計算機清單路由數據包。連續計算機可以被中間閘道分隔(路由稀疏源)IP 容許的最大數量為 9。
-k computer-list
利用 computer-list 指定的計算機清單路由數據包。連續計算機不能被中間閘道分隔(路由嚴格源)IP 容許的最大數量為 9。
-w timeout
指定逾時間隔,單位為毫秒。
destination-list
指定要 ping 的遠端計算機。
Ping的返回訊息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。
"Request Timed Out"這個訊息表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。
"Destination Net Unreachable"這個訊息表示對方主機不存在或者沒有跟對方建立連線。這裡要說明一下"destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其它原因不可到達,這時候會出現"time out",如果路由表中連到達目標的路由都沒有,那就會出現"destination host unreachable"。
"Bad IP address" 這個訊息表示你可能沒有連線到DNS伺服器所以無法解析這個IP位址,也可能是IP位址不存在。
"Source quench received"訊息比較特殊,它出現的機率很少。它表示對方或中途的伺服器繁忙無法回應。
怎樣使用Ping這指令來測試網路連通呢?
連通問題是由許多原因引起的,如本地組態錯誤、遠端主機協定失效等,當然還含有設備等造成的故障。
首先我們講一下使用Ping指令的步驟。
使用Ping檢查連通性有五個步驟︰
1. 使用ipconfig /all觀察本地網路設定是否正確;
2. Ping 168.0.0.1,168.0.0.1 回送位址Ping回送位址是為了檢查本地的TCP/IP協定有沒有設定好;
3. Ping本機IP位址,這樣是為了檢查本機的IP位址是否設定有誤;
4. Ping本網閘道或本網IP位址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連線是否正常;(在非區域域網中這一步驟可以忽略)
5. Ping遠端IP位址,這主要是檢查本網或本機與外部的連線是否正常。
在檢查網路連通的過程中可能出現一些錯誤,這些錯誤總的來說分為兩種最常見。
1. Request Timed Out
"request time out"這提示除了對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和閘道設定錯誤。
1、IP不正確︰
IP不正確主要是IP位址設定錯誤或IP位址衝突,這可以利用ipconfig /all這指令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動偵測在網路中是否有相同的IP位址并提醒你是否設定正確。在NT中不但會出現"request time out"這提示而且會出現"Hardware error"這提示訊息比較特殊不要給它的提示所迷惑。
2、閘道設定錯誤︰這個錯誤可能會在第四個步驟出現。閘道設定錯誤主要是閘道位址設定不正確或閘道沒有幫你轉信數據,還有就是可能遠端閘道失效。這裡主要是在你Ping外部網路位址時出錯。錯誤表現為無法Ping外部主機返回訊息"Request timeout"。
2. Destination Host Unreachable
當你在開始PING網路計算機時如果網路設備出錯它返回訊息會提示"destination host unreachable"。如果區域域網中使用DHCP指派IP時,而碰巧DHCP失效,這時使用 PING指令就會產生此錯誤。因為在DHCP失效時客戶機無法指派到IP系統只有自設IP,它往往會設為不同子網的IP。所以會出現"Destination Host Unreachable"。另外子網遮罩設定錯誤也會出現這錯誤。
還有一個比較特殊就是路由返回錯誤訊息,它一般都會在"Destination Host Unreachable"前加上IP位址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連線沒有問題,但與某台主機連線存在問題。
如何用Ping指令來判斷一條link的速度?
Ping這個指令除了可以檢查網路的連通和偵測故障以外,還有一個比較有趣的用途,那就是可以利用它的一些返回數據,來估算你跟某台主機之間的速度是多少位元組每秒
這裡大家可能要注意到,這估算值跟實際值是有誤差的,為什麼呢?因為我們現在估算的是一個理論值,還有一些東西我們沒有考慮。比如在網路中的其它干擾,這些干擾主要來之別的計算機。因為在你測試時不可能全部計算機停止使用網路給你做測試,這是不實際的。另外就是傳輸設備,因為有某些設備如MODEM它在傳輸時會把數據壓縮後再傳送,這大大減少了傳輸時間。這些東西產生的誤差我們是不能避免的,但其數值大約在5%以內我們都可以接受(利用MODEM傳輸例外),但是可以減少誤差的產生。比如把MODEM的壓縮功能關閉和在網路沒有那麼繁忙時進行測試。有時候誤差是無須消除的。因為我們需要這些誤差跟所求得的理論值進行比較分析,從而找出網路的缺陷而進行最佳化。這時測試網路的所有數據含有誤差都會成為我們最佳化的依據。
還要注意,這種算法在區域域網並不適用,因為在區域域網中速度非常的快幾乎少於1ms,而Ping的最小時間解析度是1ms,所以根本不可使用Ping指令來偵測速度。如果想測試速度那就要用專門儀器來偵測。
Ping指令是一個在故障檢查方面很有用而且很便利的工具,你不應該忽視它的存在。