ping(PING命令)

ping(網路診斷工具)

PING命令一般指本詞條

本詞條是多義詞,共4個義項
更多義項 ▼ 收起列表 ▲

ping (Packet Internet Groper)是一種網際網路包探索器,用於測試網路連線量的程式。Ping是工作在 TCP/IP網路體系結構中套用層的一個服務命令, 主要是向特定的目的主機傳送 ICMP(Internet Control Message Protocol 網際網路報文控制協定)Echo 請求報文,測試目的站是否可達及了解其有關狀態。

基本介紹

  • 中文名:網際網路包探索器
  • 外文名:Packet Internet Groper
  • 簡稱:PING
  • 作用:測試網路連線量
基本信息,實現方式,ICMPPing,TCPPing,UDPPing,ping命令用法,Windowsping,用戶Ping,擴展Ping,檢查網路故障,影響因素,

基本信息

ping用於確定本地主機是否能與另一台主機成功交換(傳送與接收)數據包,再根據返回的信息,就可以推斷TCP/IP參數是否設定正確,以及運行是否正常、網路是否通暢等。Ping命令可以進行以下操作:
①通過將ICMP(Internet控制訊息協定)回顯數據包傳送到計算機並偵聽回顯回複數據包來驗證與一台或多台遠程計算機的連線。
②每個傳送的數據包最多等待一秒。
③列印已傳輸和接收的數據包數。
需要注意的是,Ping成功並不一定就代表TCP/IP配置正確,有可能還要執行大量的本地主機與遠程主機的數據包交換,才能確信TCP/IP配置的正確性。如果執行ping成功而網路仍無法使用,那么問題很可能出在網路系統的軟體配置方面,ping成功只保證當前主機與目的主機間存在一條連通的物理路徑。

實現方式

ICMPPing

ICMP是一種將差錯與控制集於一體的協定,不僅用於傳輸差錯報文,還用於訊息控制報文。它與IP協定相互依賴:IP在傳送一個差錯或控制報文時要用到ICMP,而ICMP利用IP來傳遞報文。
ICMP報文分為信息報文、差錯報文、控制報文。信息報文一般由客戶端發出,例如用於測試目的地址可達性的回應請求/應答報文;而差錯報文一般由伺服器或是路由器發出,表示網路或主機不能完成要求的服務。當傳送一份ICMP差錯報文時,文始終包含了IP首部和產生ICMP差錯報文的IP數據報的前8個位元組。
ICMP Ping就是向目標主機傳送ICMP信息報文,目標主機(有時是路由器)回應ICMP信息報文或差錯報文,Ping程式根據這些收到的ICMP報文,以知道目標主機的可達性。可用於Ping的信息報文有:回應請求與回響報文、時間戳請求與回響報文和掩碼請求與回響報文。

TCPPing

在進行ICMPPing的時候,如果在目標主機的網路網關過濾了ICMP Ping包,ICMPPing的結果就不準確了。此時,應該考慮其他方式,如TCPPing、LIDPPing。TCP的功能是在一對ULP(UpperLayerProtocol,高層協定)之間提供的數據報服務基礎上,建立可靠的端對端連線,並提供虛電路服務和面向數據流的傳輸服務。TCP中的基本傳輸單元是段(Segment),一個TCP段由段頭和數據流兩部分組成。
在TCP協定中,SYN包用來表示建立連線請求。如果對方連線埠處在listening狀態,就會回送ACK包,並附上自己的ISN。但是如果對方連線埠是關閉的,它會發回一個RST包,表示應該馬上下線(少數情況下會發回一個同時置SYN和ACK位的包)。如果我們向一個連線埠傳送ACK包,而事先沒有與此連線埠建立連線,那么,無論連線埠是否打開,它都會回送一個RST包。所以可以看出,無論這個連線埠是否打開,總會有某一種數據包返回,以此可以判定目標主機可達。而目標主機如果不可達,路由器就會向掃描主機傳送目的地不可達的ICMP報文。這樣,通過向目標主機傳送TCPSYN包或TCPACK包就可以準確判斷目標主機是否可達,而且根據RFC793(TCP),目標主機(或路由器)都無法禁止TCPSYN包和TCPACK包,因此,TCPPing的準確性比ICMPPing的準確性要高。在實現的時候,需要利用RAW Socket,定製TCP包並封裝在IP包中。在Linux系統下,非root用戶是沒有此項權利的,同樣Windows的非.Administrator組用戶也不能直接填寫TCP包頭和IP包頭。

UDPPing

TCP/IP協定組中,用戶數據報協定(UDP)提供套用進程之間數據報傳送的基本機制。每個UDP報文不僅傳送用戶數據,而且還包括傳送方和接收方的協定連線埠號。
UDPPing與TCPPing的原理類似,通過RAWSocket定製UDP包,主要是格式化UDP包中的目的連線埠號,一般指定一個數量值很大的目的連線埠號(比如31558),很少應用程式用到數量值入的連線埠號,也就是說該連線埠很有可能是處於關閉狀態。首先構建好UDP報文,然後遞交給IP實體傳送。如果目標主機不可達(網路不通或主機未打開),則路由器將傳送一個目的不可達ICMP報文。而如果目標主機可達,在其接收數據時,其UDP實體首先判斷接收到的目的連線埠號是否與當前使用的某連線埠號匹配,如果匹配,則將數據報放入到對應的接收佇列,否則如果目的連線埠號對應的連線埠關閉則丟棄該數據報,並回送一個“連線埠不可達”的ICMP報文,因此,只要目標主機可達,UDPPing程式將收到一個UDP回應包(也可能沒有)或者“連線埠不可達”的ICMP報文而目標主機不可達,將收到“目的不可達’’的ICMP報文。

ping命令用法

Windowsping

Windows系列的作業系統中,我們都可以使用ping命令來解決網路中出現的路由問題,方法如下:
①檢查當前的IP配置。在Windows系統中使用ipconfig.exe檢查IP配置。
②在Windows系統中,ping命令允許在命令行中輸入選項,命令形式如下:
C:\>ping169.254.104.10此時使用的是IP協定

用戶Ping

路由器的用戶模式下,也可以使用ping命令,它是一個簡單的全局命令,用法同Windows下相同,只是返回代碼不同。其形式是:Router>ping169.254.104.10路由器預設使用IP協定。

擴展Ping

在路由器的特權模式下,可以使用其他幾個選項,這就是所謂的擴展ping,它是互動形式工作的。擴展ping的可用其他選項包括:使用不同大小的數據包;增加應答等待時間間隔;一次傳送多於5個數據包;在IP報頭設定“不分段”位;在其他協定中使用ping,例如IPX和AppleTalk。方法是:在enable模式下輸入ping並按回車鍵即可啟動擴展ping,ping工具將提示輸入各種變數值。其形式是:
Router#ping
Protocol[ip]:***
TargetIPaddress:****
…………

檢查網路故障

正常情況下,當你使用Ping命令來查找問題所在或檢驗網路運行情況時,你需要使用許多Ping命令,如果所有都運行正確,你就可以相信基本的連通性和配置參數沒有問題;如果某些Ping命令出現運行故障,它也可以指明到何處去查找問題。下面就給出一個典型的檢測次序及對應的可能故障:
ping127.0.0.1——這個Ping命令被送到本地計算機的IP軟體,該命令永不退出該計算機。如果沒有做到這一點,就表示TCP/IP的安裝或運行存在某些最基本的問題。
ping本機IP——這個命令被送到你計算機所配置的IP位址,你的計算機始終都應該對該Ping命令做出應答,如果沒有,則表示本地配置或安裝存在問題。出現此問題時,區域網路用戶請斷開網路電纜,然後重新傳送該命令。如果網線斷開後,本命令正確,則表示另一台計算機可能配置了相同的IP位址
ping區域網路內其他IP——這個命令應該離開你的計算機,經過網卡及網路電纜到達其他計算機,再返回。收到回送應答表明本地網路中的網卡和載體運行正確。但如果收到0個回送應答,那么表示子網掩碼(進行子網分割時,將IP位址的網路部分與主機部分分開的代碼)不正確或網卡配置錯誤或電纜系統有問題。
ping網關IP——這個命令如果應答正確,表示區域網路中的網關路由器正在運行並能夠作出應答。
ping遠程IP——如果收到4個應答,表示成功的使用了預設網關。對於撥接用戶則表示能夠成功的訪問Internet(但不排除ISP的DNS會有問題)。
pinglocalhost——localhost是個作業系統的網路保留名,它是127.0.0.1的別名,每台計算機都應該能夠將該名字轉換成該地址。如果沒有做到這一條,則表示主機檔案(/Windows/host)中存在問題。
pingwww.baidu.com——對這個域名執行Ping命令,你的計算機必須先將域名轉換成IP位址,通常是通過DNS伺服器。如果這裡出現故障,則表示DNS伺服器的IP位址配置不正確或DNS伺服器有故障。
如果上面所列出的所有Ping命令都能正常運行,那么計算機可以進行本地和遠程通信。但是,這些命令的成功並不表示所有的網路配置都沒有問題,例如,某些子網掩碼錯誤就可能無法用這些方法檢測到。

影響因素

在物理鏈路連通和路由設定正確的情況下,使用Ping命令仍然屏不通,可能有以下幾個問題:
(1)網線剛插到交換機上就Ping通網關,忽略了生成樹的收斂時間。當然,較新的交換機都支持快速生成樹,或者有的管理員乾脆把用戶連線埠(accessport)的生成樹協定關掉,問題就解決了。
(2)不管中間經過了多少個節點,只要有節點(包括端節點)對ICMP信息包進行了過濾,Ping不通是正常的。最常見的就是防火牆的行為。
(3)某些路由器連線埠是不允許用戶Ping的。
(4)網路因設備間的逾時,造成ICMP報文無法在預設時間(2秒)內收到。逾時的原因有:主機沒有足夠的時間和資源來回響;路徑太長,沒到達目的地時TTL的值為0,最後一個路由器將發回ICMP逾時信息;使用擴展Ping,增加應答等待時間間隔等。
(5)引入NAT的場合會造成單向Ping通。NAT可以起到隱蔽內部地址的作用,當由內Ping外時,可以Ping通是因為NAT表的映射關係存在,當由外發起Ping區域網路主機時,就無從查找邊界路由器的NAT訪問列表了。

相關詞條

熱門詞條

聯絡我們