ping 解析
Linux系統的ping命令是常用的網絡命令,它通常用來檢測與目標主機的連通性,經常說"ping以下機器,看是否開着,不能打開網頁時候,可以ping 一下網關,它是通過發送ICMP ECHO__REQUEST數據包到網絡主機。(send ICMP ECHO_REQUEST to network hosts),並顯示響應情況,這樣我們就可以根據它輸出的信息來確定目標主機是否可訪問(但這不是絕對的)。有些服務器為了防止通過ping探測到,通過防火牆設置了禁止ping或者在內核參數中禁止ping,這樣就不能通過ping確定該主機是否處於開啟狀態.
linux下的ping和windows下的ping稍有區別,linux下的ping不會自動終止,需要按Ctrl+c 終止 或者-c指定要求完成回應的次數。
ping 參數解釋
-b 允許ping網關地址
-c count 發送count次ECHO_REQUEST(回傳請求)數據包。當有deadline選項(最后期限,-w選項),在超時之前,ping等待ECHO_REPLY(回傳響應)直到count次。
-d 在正在使用的socket(套接字)上設置SO_DEBUG選項。本質上,Linux內核不使用此套接字選項。
-f 大量ping,極限ping。每個ECHO_REQUEST(回傳請求)打印一個點,每有一個ECHO_REPLY(回傳響應)打印一個退格符(Backspace)。這樣可以快速顯示丟棄的數據包數量。如果沒有給出間隔,它會將間隔設置為0,並按照它們返回或每秒百次的速度輸出數據包,以多者為准。只有超級用戶才可以0間隔使用此選項。
-i interval 發送每個數據包之間等待的間隔(單位秒)。默認設置是等待一秒,極限模式下不等待。只有超級用戶可以設置間隔值小於0.2秒。
-I
interface
address 將源地址設置為指定的接口地址。參數可以是數字IP地址或設備名稱。在ping IPv6 linklocal地址時,此選項是必需的。
-l preload 如果指定了preload,則ping發送許多不等待回復的數據包。只有超級用戶可以選擇超過3的預加載。
-n 僅限數字輸出。不會嘗試查找主機地址的符號名稱
-p pattern 你可以指定最多16個“pad”字節來填充你發送的數據包。這對於診斷網絡中的數據以來問題是有用的。例如-p ff將導致充滿整個被發送包。
-q 靜默輸出。除啟動和完成時的摘要行外,不顯示任何內容
-r 繞過正常的路由表並直接發送到連接接口上的主機。如果主機不在直接連接的網絡上,則返回錯誤。如果還是用了-I選項,則此選項可用於通過沒有路由的接口ping本地主機。
-R 記錄線路。包含ECHO_REQUEST數據包中的RECORD_ROUTE選項,並在返回的數據包上顯示路由緩沖區。請注意,IP報頭只能容納9個這樣的路由。許多主機忽略或放棄此選項。
-s packetsize 指定要發送的數據字節數。默認56,當與8字節的ICMP頭數據組合時,轉換為64個ICMP數據字節。
-t ttl 設置IP生存時間值(TTL)
-v 詳細輸出
-w deadline 指定一個以秒為單位的退出時間,不管ping退出之前發送或接收了多少數據包。在這種情況下,ping將一直發送數據包,直到deadline過期或count探針結束或一些來自網絡的錯誤通知。
指定ping的次數
以上顯示看着啰嗦,那么我們注重結果不注重過程:
上圖最后一行我們看到一個陌生的指標 mdev (Mean Deviation)
表示 ICMP 包的RTT偏離平均值的程度,主要用來衡量網速的穩定性,mdev值越大說明網絡越不穩定。
指定ping數據包大小
默認情況下,ping命令是以64字節大小的數據包來測試網絡連通性的,可以使用參數 -s 選項修改默認數據包大小。
實際工作中,我們通常使用 -s 選項來發現網絡環境中有關MTU(網絡上傳最大的數據包)的問題。
指定ping的TTL
TTL:指生存時間,是指數據包被路由器丟棄之前允許通過的路由器的跳數。
TTL 是由發送主機來設置的,為了防止數據包在網絡中無限循環,每個路由器在轉發網絡數據包時,都要求將TTL的值減少1,直到TTL減為0的那一刻,也就是這個數據包生命終結的時刻。
對於ping命令發出的數據包,可以使用 -t 選項,設定它在網絡上的生命時長。
下面是一些常用操作系統肥肉默認值:
1、Linux系統的TTL值為64或255
2、Windows NT/2000/XP 系統的TTL值為128
3、UNIX 系統的TTL值為255
指定ping的時間間隔
ping命令的核心功能就是查看網絡的連通性和網絡延遲,默認情況下,發生2個數據包之間的間隔是1秒。如果嫌默認1秒發送一個ping 包太慢,則可以使用 -i 選項指定發送兩個 ping 包之間的時間間隔,不過需要注意:只有root用戶才能設置低於0.2秒的時間間隔。
愛如潮水般的ping
使用 -i 選項可以指定發送時間間隔,我們希望盡可能更快的的速度發送和數據包,則可以使用 -f 選項來實現。
-f (flood ping) :潮水模式的ping。只有超管用戶可以使用。
0% packet :表示0丟包率。說明網卡非常正常。也沒有任何的網絡擁塞。
---------------- 歷經天華成此景,世間萬事出艱辛! -----------------