Ping程序的使用

ping程序的目的是爲了測試一臺主機到另一臺主機是否可達。ping程序通過主機向目的主機發送一份ICMP(網絡控制報文協議)回顯請求,並等待返回的ICMP 回顯應答。也就是說ping程序需要通過運輸層(ICMP屬於網絡層協議)。

在Unix系統中,可以通過終端直接輸入ping命令執行ping程序,比如說我們輸入ping 127.0.0.1,終端就會執行ping程序,向localhost發送ICMP報文,程序執行如下:

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.058 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.066 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=7 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=8 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=9 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=10 ttl=64 time=0.066 ms
64 bytes from 127.0.0.1: icmp_seq=11 ttl=64 time=0.044 ms
64 bytes from 127.0.0.1: icmp_seq=12 ttl=64 time=0.031 ms
^C
--- 127.0.0.1 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 10998ms
rtt min/avg/max/mdev = 0.031/0.052/0.066/0.014 ms
  程序返回的應答當中,主要有icmp_seq和TTL以及time三個字段,icmp_seq表示ping程序發送的icmp報文的序號,TTL則是報文的壽命(Time  to live),該字段一般用來記錄報文從源地址到現在的位置(報文從源地址到目的地址中間可能會經過很多路由器,每經過一個路由器TTL自減1,當路由器檢查到TTL爲0時,則拋棄該報文並向源地址發送一個ICMP超時差錯報文)。因此TTL可以表示當前位置到源地址所需要的跳數(初始TTL減去當前TTL)。而time字段則是根據由ping收到應答報文和發出請求報文的時間相減得到。
  上面簡要描述了ping程序的工作原理和使用方法,下面可以總結一下。ping程序的特點是利用ICMP協議來達到判斷目的主機是否可達的目的,也可以利用ping程序判斷主機網絡是否配置正常。
發佈了31 篇原創文章 · 獲贊 26 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章