Ping是個使用頻率極高的實用程序,用於確定本地主機是否能與另一台主機交換(發送與接收)數據報。根據返回的信息,我們就可以推斷TCP/IP參數是否設置得正確以及運行是否正常。需要注意的是:成功地與另一台主機進行一次或兩次數 據報交換並不表示TCP/IP配置就是正確的,我們必須執行大量的本地主機與遠程主機的數據報交換,才能確信TCP/IP的正確性。
簡單的說,Ping就是一個測試程序,如果Ping運行正確,我們大體上就可以排除網絡訪問層、網卡、MODEM的輸入輸出線路、電纜和路由器等存在的故障,從而減小了問題的范圍。但由於可以自定義所發數據報的大小及無休止的高速發送,Ping也被某些別有用心的人作為DDOS(拒絕服務攻擊)的工具,例如許多大型的網站就是被黑客利用數百台可以高速接入互聯網的電腦連續發送大量Ping數據報而癱瘓的。
按照缺省設置,Windows上運行的Ping命令發送4個ICMP(網間控制報文協議)回送請求,每個32字節數據,如果一切正常,我們應能得到4個回送應答。 Ping能夠以毫秒為單位顯示發送回送請求到返回回送應答之間的時間量。如果應答時間短,表示數據報不必通過太多的路由器或網絡連接速度比較快。Ping還能顯示TTL(Time To Live存在時間)值,我們可以通過TTL值推算一下數據包已經通過了多少個路由器:源地點TTL起始值(就是比返回TTL略大的一個2的乘方數)-返回時TTL值。例如,返回TTL值為119,那麼可以推算數據報離開源地址的TTL起始值為128,而源地點到目標地點要通過9個路由器網段(128-119);如果返回TTL值為246,TTL起始值就是256,源地點到目標地點要通過9個路由器網段。
1、通過Ping檢測網絡故障的典型次序
正常情況下,當我們使用Ping命令來查找問題所在或檢驗網絡運行情況時,我們需要使用許多Ping命令,如果所有都運行正確,我們就可以相信基本的連通性和配置參數沒有問題;如果某些Ping命令出現運行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應的可能故障:
ping 127.0.0.1
這個Ping命令被送到本地計算機的IP軟件,該命令永不退出該計算機。如果沒有做到這一點,就表示TCP/IP的安裝或運行存在某些最基本的問題。
ping 本機IP
這個命令被送到我們計算機所配置的IP地址,我們的計算機始終都應該對該Ping命令作出應答,如果沒有,則表示本地配置或安裝存在問題。出現此問題時,局域網用戶請斷開網絡電纜,然後重新發送該命令。如果網線斷開後本命令正確,則表示另一台計算機可能配置了相同的IP地址。
ping 局域網內其他IP
這個命令應該離開我們的計算機,經過網卡及網絡電纜到達其他計算機,再返回。收到回送應答表明本地網絡中的網卡和載體運行正確。但如果收到0個回送應答,那麼表示子網掩碼(進行子網分割時,將IP地址的網絡部分與主機部分分開的代碼)不正確或網卡配置錯誤或電纜系統有問題。
ping 網關IP
這個命令如果應答正確,表示局域網中的網關路由器正在運行並能夠作出應答。
ping 遠程IP
如果收到4個應答,表示成功的使用了缺省網關。對於撥號上網用戶則表示能夠成功的訪問Internet(但不排除ISP的DNS會有問題)。
ping localhost
localhost是個作系統的網絡保留名,它是127.0.0.1的別名,每太計算機都應該能夠將該名字轉換成該地址。如果沒有做到這一帶內,則表示主機文件(/Windows/host)中存在問題。
ping www.xxx.com
對這個域名執行Ping www.xxx.com 地址,通常是通過DNS 服務器 如果這裡出現故障,則表示DNS服務器的IP地址配置不正確或DNS服務器有故障(對於撥號上網用戶,某些ISP已經不需要設置Dns服務器了)。順便說一句:我們也可以利用該命令實現域名對IP地址的轉換功能。
如果上面所列出的所有Ping命令都能正常運行,那麼我們對自己的計算機進行本地和遠程通信的功能基本上就可以放心了。但是,這些命令的成功並不表示我們所有的網絡配置都沒有問題,例如,某些子網掩碼錯誤就可能無法用這些方法檢測到。
2、Ping命令的常用參數選項
ping IP –t
連續對IP地址執行Ping命令,直到被用戶以Ctrl+C中斷。
ping IP -l 3000
指定Ping命令中的數據長度為3000字節,而不是缺省的32字節。
ping IP –n
執行特定次數的Ping命令。