ping命令有什麼具體作用?
ping命令——詳細幫助
校驗與遠端計算機或本地計算機的連線。只有在安裝 TCP/IP 協議之後才能使用該命令。
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
校驗與指定計算機的連線,直到使用者中斷。
-a
將地址解析為計算機名。
-n count
傳送由 count 指定數量的 ECHO 報文,預設值為 4。
-l length
傳送包含由 length 指定資料長度的 ECHO 報文。預設值為 64 位元組,最大值為 8192 位元組。
-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——注意
Ping 命令透過向計算機發送 ICMP 迴應報文並且監聽迴應報文的返回,以校驗與遠端計算機或本地計算機的連線。對於每個傳送報文, Ping 最多等待 1 秒,並打印發送和接收把報文的數量。比較每個接收報文和傳送報文,以校驗其有效性。預設情況下,傳送四個迴應報文,每個報文包含 64 位元組的資料(週期性的大寫字母序列)。
可以使用 Ping 實用程式測試計算機名和 IP 地址。如果能夠成功校驗 IP 地址卻不能成功校驗計算機名,則說明名稱解析存在問題。這種情況下,要保證在本地 HOSTS 檔案中或 DNS
資料庫中存在要查詢的計算機名。
下面顯示 Ping 輸出的示例:(Windows使用者可用:開始->執行,輸入“command” 調出command視窗使用此命令)
C:\>ping ds。internic。net
Pinging ds。internic。net [192。20。239。132] with 32 bytes of data:
Reply from 192。20。239。132: bytes=32 time=101ms TTL=243
Reply from 192。20。239。132: bytes=32 time=100ms TTL=243
Reply from 192。20。239。132: bytes=32 time=120ms TTL=243
Reply from 192。20。239。132: bytes=32 time=120ms TTL=243
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 127。0。0。1,127。0。0。1 回送地址Ping回送地址是為了檢查本地的TCP/IP協議有沒有設定好;
3。 Ping本機IP地址,這樣是為了檢查本機的IP地址是否設定有誤;
4。 Ping本網閘道器或本網IP地址,這樣的是為了檢查硬體裝置是否有問題,也可以檢查本機與本地網路連線是否正常;(在非區域網中這一步驟可以忽略)
5。 Ping遠端IP地址,這主要是檢查本網或本機與外部的連線是否正常。
在檢查網路連通的過程中可能出現一些錯誤,這些錯誤總的來說分為兩種最常見。
1。 Request Timed Out
“request time out”這提示除了在《PING(一)》提到的對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和閘道器設定錯誤。
①、IP不正確:
IP不正確主要是IP地址設定錯誤或IP地址衝突,這可以利用ipconfig /all這命令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動檢測在網路中是否有相同的IP地址並提醒你是否設定正確。在NT中不但會出現“request time out”這提示而且會出現“Hardware error”這提示資訊比較特殊不要給它的提示所迷惑。
②、閘道器設定錯誤:這個錯誤可能會在第四個步驟出現。閘道器設定錯誤主要是閘道器地址設定不正確或閘道器沒有幫你轉發資料,還有就是可能遠端閘道器失效。這裡主要是在你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地址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連線沒有問題,但與某臺主機連線存在問題。
舉個例子吧。
我管理的網路有19臺機,由一臺100M集線器連線伺服器,使用DHCP動態分配IP地址。
有一次有位同事匆忙地告訴我“我的OUTLOOK打不開了”,我到他機器檢查,首先我檢查了本地網路設定,我用ipconfig /all看IP分配情況一切正常。接著我就開始PING網路中的其中一臺機器,第一次PING結果很正常,但OUTLOOK還是無法使用其它網路軟體和Copy網路檔案都可以使用但網路速度很慢,第二次PING我用了一個引數-t(-t可以不中斷地PING對方,當時我想PING一次可能發現不了問題)發現有time=30ms和request time out,從伺服器PING這臺機就更有趣,request time out比正常資料還多,在局域中竟然有time=30ms和request time out太不正常了。開始我認為是網絡卡的問題但換網絡卡後故障依舊,重做網線還是不能解決問題,這故障真有趣!最後我沒辦法了把它插在集線器埠上的另一端的網線換到另一個埠,哈!故障解決了。原來是集線器埠壞了。
如何用Ping命令來判斷一條鏈路的速度?
Ping這個命令除了可以檢查網路的連通和檢測故障以外,還有一個比較有趣的用途,那就是可以利用它的一些返回資料,來估算你跟某臺主機之間的速度是多少位元組每秒
我們先來看看它有那些返回資料。
Pinging 202。105。136。105 with 32 bytes of data:
Reply from 202。105。136。105: bytes=32 time=590ms TTL=114
Reply from 202。105。136。105: bytes=32 time=590ms TTL=114
Reply from 202。105。136。105: bytes=32 time=590ms TTL=114
Reply from 202。105。136。105: bytes=32 time=601ms TTL=114
Ping statistics for 202。105。136。105:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 590ms, Maximum = 601ms, Average = 593ms
在例子中“bytes=32”表示ICMP報文中有32個位元組的測試資料(這是估算速度的關鍵資料),“time=590ms”是往返時間。
怎樣估算鏈路的速度呢?舉個例子吧。我們把A和B之間設定為PPP鏈路。
從上面的PING例子可以注意到,預設情況下發送的ICMP報文有32個位元組。除了這32個位元組外再加上20個位元組的IP首部和8個位元組的ICMP首部,整個IP資料報文的總長度就是60個位元組(因為IP和ICMP是Ping命令的主要使用協議,所以整個資料報文要加上它們)。另外在使用Ping命令時還使用了另一個協議進行傳輸,那就是PPP協議(點對點協議),所以在資料的開始和結尾再加上8個位元組。在傳輸過程中,由於每個位元組含有8bit資料、1bit起始位和1bit結束位,因此傳輸速率是每個位元組2。98ms。由此我們可以估計需要405ms。即68*2。98*2(乘2是因為我們還要計算它的往返時間)。
我們來測試一下33600 b/s的鏈路:
Pinging 202。105。36。125 with 32 bytes of data:
Reply from 202。105。36。125: bytes=32 time=415ms TTL=114
Reply from 202。105。36。125: bytes=32 time=415ms TTL=114
Reply from 202。105。36。125: bytes=32 time=415ms TTL=114
Reply from 202。105。36。125: bytes=32 time=421ms TTL=114
Ping statistics for 202。105。36。125:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 415ms, Maximum = 421ms, Average = 417ms
看是不是差不多啊。^_^
這裡大家可能要注意到,這估算值跟實際值是有誤差的,為什麼呢?因為我們現在估算的是一個理論值,還有一些東西我們沒有考慮。比如在網路中的其它干擾,這些干擾主要來之別的計算機。因為在你測試時不可能全部計算機停止使用網路給你做測試,這是不實際的。另外就是傳輸裝置,因為有某些裝置如MODEM它在傳輸時會把資料壓縮後再發送,這大大減少了傳輸時間。這些東西產生的誤差我們是不能避免的,但其數值大約在5%以內我們都可以接受(利用MODEM傳輸例外),但是可以減少誤差的產生。比如把MODEM的壓縮功能關閉和在網路沒有那麼繁忙時進行測試。有時候誤差是無須消除的。因為我們需要這些誤差跟所求得的理論值進行比較分析,從而找出網路的缺陷而進行最佳化。這時測試網路的所有資料包括誤差都會成為我們最佳化的依據。
還要注意,這種演算法在區域網並不適用,因為在區域網中速度非常的快幾乎少於1ms,而Ping的最小時間解析度是1ms,所以根本無法用Ping命令來檢測速度。如果想測試速度那就要用專門儀器來檢測。
總的來說,Ping命令是一個在故障檢查方面很有用而且很便利的工具,你不應該忽視它的存在。
駭客教學,ping命令的使用,瞬間成為電腦高手
可以測定遠端主機是否在聯通狀態,還可以測定遠端主機的響應時間。
ping後面加IP地址就可以測試你的電腦與該地址的連線情況。