ping值
PC發送數據到收到反饋的時間
ping就是對一個網址發送測試數據包,看對方網址是否有響應並統計響應時間,以測試網路的連通性。ping值是指,從PC對網路伺服器發送數據到接收到伺服器反饋數據的時間。一般以毫秒計算。一般來說,ping值越小說明網速越高,一般10以下是最好的網速。玩網路遊戲的時候,如果ping值高就會感覺操作延遲。
PING (Packet Internet Groper),網際網路包探索器,用於測試網路連接量的程序。Ping發送一個ICMP(Internet Control Messages Protocol)即網際網路信報控制協議;回聲請求消息給目的地並報告是否收到所希望的ICMPecho (ICMP回聲應答)。它是用來檢查網路是否通暢或者網路連接速度的命令。作為一個生活在網路上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它所利用的原理是這樣的:利用網路上機器IP地址的唯一性,給目標IP地址發送一個數據包,再要求對方返回一個同樣大小的數據包來確定兩台網路機器是否連接相通,時延是多少。
ping指的是端對端連通,通常用來作為可用性的檢查, 但是某些病毒木馬會強行大量遠程執行ping命令搶佔你的網路資源,導致系統變慢,網速變慢。嚴禁ping入侵作為大多數防火牆的一個基本功能提供給用戶進行選擇。通常的情況下你如果不用作伺服器或者進行網路測試,可以放心的選中它,保護你的電腦。
工作流程
假定主機A的IP地址是192.168.1.1,主機B的IP地址是192.168.1.2,都在同一子網內,則當你在主機A上運行“Ping 192.168.1.2”后,都發生了些什麼呢?
首先,Ping命令會構建一個固定格式的ICMP請求數據包,然後由ICMP協議將這個數據包連同地址“192.168.1.2”一起交給IP層協議(和ICMP一樣,實際上是一組後台運行的進程),IP層協議將以地址“192.168.1.2”作為目的地址,本機IP地址作為源地址,加上一些其他的控制信息,構建一個IP數據包,並在一個映射表中查找出IP地址192.168.1.2所對應的物理地址(也叫MAC地址,熟悉網卡配置的朋友不會陌生,這是數據鏈路層協議構建數據鏈路層的傳輸單元——幀所必需的),一併交給數據鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據乙太網的介質訪問規則,將它們傳送出去。
主機B收到這個數據幀后,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查后,將有用的信息提取后交給ICMP協議,後者處理后,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。
從Ping的工作過程,我們可以知道,主機A收到了主機B的一個應答包,說明兩台主機之間的去、回通路均正常。也就是說,無論從主機A到主機B,還是從主機B到主機A,都是正常的。那麼,是什麼原因引起只能單方向Ping通的呢?
具體分析
正常情況下,一台主機應該有一個網卡,一個IP地址,或多個網卡,多個IP地址(這些地址一定要處於不同的IP子網)。但對於在公共場所使用的電腦,特別是網吧,人多手雜,其中不乏有“探索者”。曾有一次兩台電腦也出現了這種單方向Ping通的情況,經過仔細檢查,發現其中一台電腦的“撥號網路適配器”(相當於一塊軟網卡)的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這台主機就有兩個不同的介面處於同一網段內。當從這台主機Ping其他的機器時,會存在這樣的問題:
(1)主機不知道將數據包發到哪個網路介面,因為有兩個網路介面都連接在同一網段;
(2)主機不知道用哪個地址作為數據包的地址。因此,從這台主機去Ping其他機器,IP層協議會無法處理,超時后,Ping 就會給出一個“超時無法回答”的錯誤信息提示。但從其他主機Ping這台主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標誌即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這台機器了。
安裝個人防火牆
在共享上網的機器中,出於安全考慮,大部分作為伺服器的主機都安裝了個人防火牆軟體,而其他作為客戶機的機器則一般不安裝。幾乎所有的個人防火牆軟體,默認情況下是不允許其他機器Ping本機的。一般的做法是將來自外部的ICMP請求報文濾掉,但它卻對本機出去的ICMP請求報文,以及來自外部的ICMP應答報文不加任何限制。這樣,從本機Ping其他機器時,如果網路正常,就沒有問題。但如果從其他機器Ping這台機器,即使網路一切正常,也會出現“超時無應答”的錯誤。
大部分的單方向Ping通現象源於此。解決的辦法也很簡單,根據你自己所用的不同類型的防火牆,調整相應的設置即可。
怎樣使用Ping這命令來測試網路連通呢?
連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協議失效等,當然還包括設備等造成的故障。
首先我們講一下使用Ping命令的步驟。
使用Ping檢查連通性有六個步驟:
1、 使用ipconfig/all觀察本地網路設置是否正確;
2、 Ping127.0.0.1,127.0.0.1回送地址Ping回送地址是為了檢查本地的TCP/IP協議有沒有設置好;
3、Ping本機IP地址,這樣是為了檢查本機的IP地址是否設置有誤;
4、Ping本網網關或本網IP地址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連接是否正常;(在非區域網中這一步驟可以忽略)
5、Ping本地DNS地址,這樣做是為了檢查本地DNS伺服器是否工作正常。
6、Ping遠程IP地址,這主要是檢查本網或本機與外部的連接是否正常。
我們以下面一個網路為例:有A、B、C、D四台機子,一台路由RA,子網掩碼均為255.255.255.0,默認網關為192.168.0.1。
在同一網段內
在主機A上運行“Ping 192.168.0.5”后,都發生了些什麼呢? 首先,Ping命令會構建一個固定格式的ICMP請求數據包,然後由ICMP協議將這個數據包連同地址“192.168.0.5”一起交給IP層協議(和ICMP一樣,實際上是一組後台運行的進程),IP層協議將以地址“192.168.0.5”作為目的地址,本機IP地址作為源地址,加上一些其他的控制信息,構建一個IP數據包,並想辦法得到192.168.0.5的MAC地址(物理地址,這是數據鏈路層協議構建數據鏈路層的傳輸單元——幀所必需的),以便交給數據鏈路層構建一個數據幀。關鍵就在這裡,IP層協議通過機器B的IP地址和自己的子網掩碼,發現它跟自己屬同一網路,就直接在本網路內查找這台機器的MAC,如果以前兩機有過通信,在A機的ARP緩存表應該有B機IP與其MAC的映射關係,如果沒有,就發一個ARP請求廣播,得到B機的MAC,一併交給數據鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據乙太網的介質訪問規則,將它們傳送出去。
主機B收到這個數據幀后,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查后,將有用的信息提取后交給ICMP協議,後者處理后,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。
不在同一網段內
在主機A上運行“Ping 192.168.1.4”后,開始跟上面一樣,到了怎樣得到MAC地址時,IP協議通過計算髮現D機與自己不在同一網段內,就直接將交由路由處理,也就是將路由的MAC取過來,至於怎樣得到路由的MAC,跟上面一樣,先在ARP緩存表找,找不到就廣播。路由得到這個數據幀后,再跟主機D進行聯繫,如果找不到,就向主機A返回一個超時的信息。
Ping的返回信息有"Request Timed Out"、"Destination Host Unreachable"和"Bad IP address"還有"Source quench received"。
RequestTimed Out
這個信息表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。
這個信息表示對方主機不存在或者沒有跟對方建立連接。這裡要說明一下"destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其它原因不可到達,這時候會出現"time out",如果路由表中連到達目標的路由都沒有,那就會出現"destination host unreachable"。
Bad IP address
這個信息表示你可能沒有連接到DNS伺服器所以無法解析這個IP地址,也可能是IP地址不存在。
address
信息比較特殊,它出現的機率很少。它表示對方或中途的伺服器繁忙無法回應。
Unknownhost
不知名主機,這種出錯信息的意思是,該遠程主機的名字不能被域名伺服器(DNS)轉換成IP地址。故障原因可能是域名伺服器有故障,或者其名字不正確,或者網路管理員的系統與遠程主機之間的通信線路有故障。
Noanswer
無響應,這種故障說明本地系統有一條通向中心主機的路由,但卻接收不到它發給該中心主機的任何信息。故障原因可能是下列之一:中心主機沒有工作;本地或中心主機網路配置不正確;本地或中心的路由器沒有工作;通信線路有故障;中心主機存在路由選擇問題。
127.0.0.1
Ping127.0.0.1:127.0.0.1是本地循環地址
如果本地址無法Ping通,則表明本地機TCP/IP協議不能正常工作。
norout to host
網卡工作不正常。
transmitf
10043網卡驅動不正常。
unknownhostname
DNS配置不正確。
ping返回值的詳細解答
ping是一個功能強大的命令,在檢查網路連通性方面非常有用。
下面說說關於ping返回值的各種詳細意思.:
Replay form *** . *** . *** . *** : bytes = 32 time = 238 ms TTL = 128
其中:
bytes=32表示測試中發送的數據包大小是32個位元組.
time=238ms表示與對方主機往返一次所用的時間time=238ms.
TTL=128可以識別對方的操作系統.
TTL值對應操作系統
TTL值 | 對應操作系統 |
32 | Windows系列 |
64 | Linux |
128 | Win2000/NT |
255 | Unix |
在檢查網路連通的過程中可能出現一些錯誤,這些錯誤總的來說分為兩種最常見。
Request Timed Out
"request time out"這提示除了對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和網關設置錯誤。
①、IP不正確:
IP不正確主要是IP地址設置錯誤或IP地址衝突,這可以利用ipconfig /all這命令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動檢測在網路中是否有相同的IP地址並提醒你是否設置正確。在NT中不但會出現"request time out"這提示而且會出現"Hardware error"這提示信息比較特殊不要給它的提示所迷惑。
正常情況下,一台主機應該有一個網卡,一個IP地址,或多個網卡,多個IP地址(這些地址一定要處於不同的IP子網)。但對於在公共場所使用的電腦,特別是網吧,人多手雜,其中不泛有“探索者”。曾有一次兩台電腦也出現了這種單方向Ping通的情況,經過仔細檢查,發現其中一台電腦的“撥號網路適配器”(相當於一塊軟網卡)的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這台主機就有兩個不同的介面處於同一網段內。當從這台主機Ping其他的機器時,會存在這樣的問題:
(1)主機不知道將數據包發到哪個網路介面,因為有兩個網路介面都連接在同一網段;
(2)主機不知道用哪個地址作為數據包的源地址。因此,從這台主機去Ping其他機器,IP層協議會無法處理,超時后,Ping 就會給出一個“超時無應答”的錯誤信息提示。但從其他主機Ping這台主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標誌即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這台機器了。
②、網關設置錯誤:
這個錯誤可能會在第四個步驟出現。網關設置錯誤主要是網關地址設置不正確或網關沒有幫你轉發數據,還有就是可能遠程網關失效。這裡主要是在你Ping外部網路地址時出錯。錯誤表現為無法Ping外部主機返回信息"Request timeout"。
③、安裝了個人防火牆:
在共享上網的機器中,出於安全考慮,大部分作為伺服器的主機都安裝了個人防火牆軟體,而其他作為客戶機的機器則一般不安裝。幾乎所有的個人防火牆軟體,默認情況下是不允許其他機器Ping本機的。一般的做法是將來自外部的ICMP請求報文濾掉,但它卻對本機出去的ICMP請求報文,以及來自外部的ICMP應答報文不加任何限制。這樣,從本機Ping其他機器時,如果網路正常,就沒有問題。但如果從其他機器Ping這台機器,即使網路一切正常,也會出現“超時無應答”的錯誤。
大部分的單方向Ping通現象源於此。解決的辦法也很簡單,根據你自己所用的不同類型的防火牆,調整相應的設置即可。
Destination Host
當你在開始PING網路計算機時如果網路設備出錯它返回信息會提示"destination host unreachable"。如果區域網中使用DHCP分配IP時,而碰巧DHCP失效,這時使用 PING命令就會產生此錯誤。因為在DHCP失效時客戶機無法分配到IP系統只有自設IP,它往往會設為不同子網的IP。所以會出現"Destination Host Unreachable"。另外子網掩碼設置錯誤也會出現這錯誤。
還有一個比較特殊就是路由返回錯誤信息,它一般都會在"Destination Host Unreachable"前加上IP地址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連接沒有問題,但與某台主機連接存在問題。