Ping命令詳解

Ping命令詳解

1、Ping的基礎知識

ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻並不是很多,當然我也並不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。

Ping是潛水艇人員的專用術語,表示回應的聲納脈衝,在網路中Ping 是一個十分好用的TCP/IP工具。它主要的功能是用來檢測網路的連通情況和分析網路速度。

Ping有好的善的一面也有惡的一面。先說一下善的一面吧。上面已經說過Ping的用途就是用來檢測網路的連同情況和分析網路速度,但它是通過什麼來顯示連通呢?這首先要了解Ping的一些參數和返回信息。

2、Ping命令詳解

首先需要打開DOS命令界面,通過點擊開始菜單中的「運行」選項,輸入「cmd」, 回車即可打開(如下圖)。

我們輸入 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 的遠程計算機。

3、怎樣使用Ping這命令來測試網路連通呢?

連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協議失效等,當然還包括設備等造成的故障。

首先我們講一下使用Ping命令的步驟。

使用Ping檢查連通性有五個步驟:

1. 使用ipconfig /all觀察本地網路設置是否正確,如圖;

  1. Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是為了檢查本地的TCP/IP協議有沒有設置好;

  2. Ping本機IP地址,這樣是為了檢查本機的IP地址是否設置有誤;

  3. Ping本網網關或本網IP地址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連接是否正常;(在非區域網中這一步驟可以忽略)

  4. Ping遠程IP地址,這主要是檢查本網或本機與外部的連接是否正常。

4、如何用Ping命令來判斷一條鏈路好壞?

Ping這個命令除了可以檢查網路的連通和檢測故障以外,還有一個比較有趣的用途,那就是可以利用它的一些返回數據,來估算你跟某台主機之間的速度是多少位元組每秒

我們先來看看它有那些返回數據。

在例子中」bytes=32」表示ICMP報文中有32個位元組的測試數據,」time=56ms」是往返時間。 Sent 發送多個秒包、Received 收到多個回應包、Lost 丟棄了多少個Minmum 最小值 、MAXimun 最大值、Average 平均值。所在圖上來看,來回只用了56MS 時間,lost =0 即是丟包數為0,網路狀態相當良好。 (更詳細可以使用-n參數 「ping –n 100 IP地址」 ping 100次。查看 Sent Received Lost Minmum MAXimun Average 這些值的變化。)

5、對Ping後返回信息的分析

1.Request timed out

這是大家經常碰到的提示信息,很多文章中說這是對方機器置了過濾ICMP數據包,從上面工作過程來看,這是不完全正確的,至少有下幾種情況。

(1) 對方已關機,或者網路上根本沒有這個地址:比如在上圖中主機A中PING 192.168.0.7 ,或者主機B關機了,在主機A中PING 192.168.0.5 都會得到超時的信息。

(2)對方與自己不在同一網段內,通過路由也無法找到對方,但有時對方確實是存在的,當然不存在也是返回超時的信息。

(3)對方確實存在,但設置了ICMP數據包過濾(比如防火牆設置)。

怎樣知道對方是存在,還是不存在呢,可以用帶參數 -a 的Ping命令探測對方,如果能得到對方的NETBIOS名稱,則說明對方是存在的,是有防火牆設置,如果得不到,多半是對方不存在或關機,或不在同一網段內。

(4)錯誤設置IP地址

正常情況下,一台主機應該有一個網卡,一個IP地址,或多個網卡,多個IP地址(這些地址一定要處於不同的IP子網)。但如果一台電腦的「撥號網路適配器」(相當於一塊軟網卡)的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這台主機就有兩個不同的介面處於同一網段內。當從這台主機Ping其他的機器時,會存在這樣的問題:

A.主機不知道將數據包發到哪個網路介面,因為有兩個網路介面都連接在同一網段。

B.主機不知道用哪個地址作為數據包的源地址。因此,從這台主機去Ping其他機器,IP層協議會無法處理,超時後,Ping 就會給出一個「超時無應答」的錯誤信息提示。但從其他主機Ping這台主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標誌即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這台機器了。

2.Destination host Unreachable

(1) 對方與自己不在同一網段內,而自己又未設置默認的路由,比如上例中A機中不設定默認的路由,運行Ping 192.168.0.1.4就會出現「Destination host Unreachable」。

(2)網線出了故障

這裡要說明一下「destination host unreachable」和 「time out」的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會出現「time out」,如果路由表中連到達目標的路由都沒有,那就會出現「destination host unreachable」。 3.Bad IP address

這個信息表示您可能沒有連接到DNS伺服器,所以無法解析這個IP地址,也可能是IP地址不存在。

4.Source quench received

這個信息比較特殊,它出現的機率很少。它表示對方或中途的伺服器繁忙無法回應。

5.Unknown host——不知名主機

這種出錯信息的意思是,該遠程主機的名字不能被域名伺服器(DNS)轉換成IP地址。故障原因可能是域名伺服器有故障,或者其名字不正確,或者網路管理員的系統與遠程主機之間的通信線路有故障。

6.No answer——無響應

這種故障說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網路配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。

7.Ping 127.0.0.1:127.0.0.1是本地循環地址

如果本地址無法Ping通,則表明本地機TCP/IP協議不能正常工作。

8.no rout to host:網卡工作不正常。

9.transmit failed,error code:10043網卡驅動不正常。

10.unknown host name:DNS配置不正確。

---------轉自網路

推薦閱讀:

計算機網路2---常見埠及ping命令相關
RCNN學習筆記(5):faster rcnn
案例:是誰丟了數據包?
在公司用免費的Wi-Fi被人監控了如何處理?
細說OSI七層協議模型及OSI參考模型中的數據封裝過程?

TAG:Ping | IP地址 | 計算機網路 |