想跟朋友公司的一台機點對點做測試
普通的PING更不能在公司內部兩台機之間, 或是歐洲那邊的分公司以VPN聯系的網絡做測試
如果你直接打psping 會告訴你它有4大功能, 分別是ICMP Ping, TCP Ping, 延遲與帶寬測試
如果你用 –? 來查詢每個功能的用法, 會給予你更詳細的參數資料及說明
但普通使用者可能會看到頭昏, 所以我會提供每個功能的范例使用方式
Ping這個指令是遠古已有, 它簡單到我想很多家庭主婦也曾經聽過, 也大概想象到它的功能
平常如果我們想知道一個遠程機器有沒有開機, 也會很隨意的Ping一下,看看有沒有回應
這篇我主要用我們一台Web Server來做測試對象, 如果你用windows原生的ping指令可以看到
它會看看對方會不會支持IPv6, 當然你的機器也要懂IPv6
如果你想要強逼它進行IPv4的連接, 可以打ping –4 servername
有關其他參數使用方式請打ping –?查看
ping 原生設定發放4個ICMP PING要求, 你可以用-n 參數更改這個數字
這兩個測試報告我們可以看出, Srvweb01這台機有開機, 而且能響應ping, 響應速度介乎3-10ms (毫秒), 是很快的速度
要注意Windows的ping命令用的是ICMP Protocol, 這不同於TCP或UDP,
我這里就不討論這3種通訊協議的分別了, 因為這個令這篇文章增加20頁篇幅.
PsPing 也有這個傳統的功能, 但顯示的方式有點不同, 而且命令也有多些變化
例如如果我打ping –n 8 –w b –h 5 srvweb01 , 會有這個報告出來
-w 參數是warm up的意思, 說的是進行正式測試前先進行多少次(例子是3次) 熱身運動,
這個熱身運動有助取得更准確的數據, 大家可以看到熱身的延遲數據往往比較慢, 理由就不詳述了…(會再加10頁篇幅…)
-n 是指運行正式測試的次數, 例子是8次, 就是綠色圈圈的部份, 最后的報告會以這些資料做統計
-h 是指最后輸出的一個統計數據的筆數, 例子是 5, 所以藍色框框有5筆數據
順帶一提, 如果你要強制使用IPv4作聯機, 可以用 –4 這個參數, 例如
psping –4 –n 8 –w b –h 5 srvweb01
這個報告告訴我甚么呢? 基本上是跟Ping說的不相上下, 統計數據也是說延遲值由3~10ms不等
而總合報告指出有4筆數據顯示延遲在6.9ms 附近, 相比Ping的報告, 這個psping就是把數據擺好看一點.
Psping強大於它還可以讓你以TCP端口的方法來測試響應
以往如果你要測試埠的連接, 你可能會用telnet這個命令, 但它只能告訴你連的上還是連不上…
而且最大的問題是這個telnet命令從windows vista開始並不是預載的指令, 要后期補裝
使用的方法跟上面ICMP Ping的使用非常相同, 只要在測試目標后補上端口數字就可, 例如
psping -n 8 -w 3 -h 5 srvweb01:80
因為我要進行的目標是一台Web server, 所以我向它測試80埠,
事前你需要確認防火牆不會把你對端口的封包檔下來, 不然會出現以下訊息…
其他參數的用意是沒有分別的, 但為了方便閱讀我還是把上面的文字重抄一遍…
-w 參數是warm up的意思, 說的是進行正式測試前先進行多少次(例子是3次) 熱身運動,
-n 是指運行正式測試的次數, 例子是8次, 就是綠色圈圈的部份, 最后的報告會以這些資料做統計
-h 是指最后輸出的一個統計數據的筆數, 例子是 5, 所以藍色框框有5筆數據
順帶一提, 如果你要強制使用IPv4作聯機, 你也是可以用 –4 這個參數, 例如
我們來用Psping做封包延遲的測試, 先看看范例指令
psping -l 1500 -n 300 -h 10 srvweb01:80
這個測試一定要使用TCP端口才能完成, 所以我繼續使用80埠作測試
圖中看出我們要給予一些特別參數, 分別是:
-l 參數是設定封包大少, TCP聯機在Layer 2 Ethernet中的MTU (Maximum Transmission Unit)通常以1500 Bytes為一個單位,
或許你有聽過Jumbo Frame這個名詞, 你可以根據你的網絡環境作出修改, 如果你不清楚這兩行在說甚么…請用1500做單位
-n 是測試次數, 例子是300, 就是說這個測試會嘗試發送300個封包到對方主機
-h 是最后的統計數據筆數, 例子是10, 所以你回見到黃色框框有10筆資料
這里我們要怎樣理解呢?
Psping告訴我, 它發送了305個封包, 頭5個是熱身用的, 后面300個每個1500 Bytes
封包發送到對方的80埠成功聯機, 而且對方全部都有響應.
總合送出的封包大小是300 x 1500 = 450000 Bytes
很多封包在1ms以內得到響應, 浮游值在0.86 ~ 11.35 ms,
注意它說的是Roundtrip Latency, 就是說封包是發出去再收到響應這一整段的延遲時間
沒有比較可能會差一點點感覺, 我再以www.dotblogs.com.tw來做測試
由於怕它以為我在攻擊它, 所以我做50次封包測試就好
看到了嗎? 這個報告說明我的計算機跟Dotblogs之間普遍有29毫秒的延遲
是很好的速度, 其實封包到200ms延遲 也不會令人感覺很煩厭
超出這個數字就會感覺網絡好像響應越來越慢…
這關乎每個網絡節點的處理速度, 還有各地區的連接方式
如果在內部網絡都會有高延遲, 可能就跟不正常的網絡裝置有關了, 更甚這可能會出現掉封包的狀況
最后看看如何測試兩點間的帶寬
先說明一些關系, 帶寬你可以想象是一條水管的大小
水管越大, 理論上放水到另一端的理論速度也越快
但這也要看放水的一方給不給力.
對比在計算機世界, 帶寬是由你的計算機, 到另一計算機中間的總合串連關系
並不是單單由一方決定的, 比如說你的計算機LAN阜可以跑到1Gbps,
但如果對方的計算機只能跑到100 Mbps, 那么最終你們最快也只能用100 Mbps來傳資料
如果放大到互聯網世界, 還要看中間的路由器, 交換機的速度.
至於它們之間怎樣協議傳輸速度, 多出來又怎辦, 我希望往后有機會可以用10頁篇幅來說明
作為我這重職業的人, 很常聽到客戶說, 我的網絡明明達到光速了, 怎么看網頁(或其他東西) 會這么慢,
如果你也聽到相同的說話…可以把這篇文章推薦給你的朋友看看
回到主題. Psping 測試帶寬的指令范例如下
psping -b -l 1500 -n 15000 srvweb01:80
-b 參數決定這是要進行帶寬測試
-l 是封包大小, 我沿用基本的1500 Bytes
-n 是設定幾個封包, 這里建議設大一點, 因為網絡設備不是一開始就能用全速運作, 放多一點封包會准確一點
同樣你要設定端口數字, 我繼續用80來連接
這個報告可以看出, 我的計算機跟Web Server之間能用10 MB/s的速度來傳送數據 (注意Psping所用單位是 MB/s)
如果我把封包大小設成9000, 就是說每個封包有9000 Bytes, 還是能送到對方那邊
但由於封包會被中間的網絡設備剪裁成基本1500 Bytes封包的大小, 所以會有一些效能折減
圖中看出過程曾出現過5.87 MB/s 的低落傳輸速度, 令整體(Average)速度稍為下降.
網絡聯機其實很艱深, 如果這篇有任何出錯或理論錯誤出告知
希望大家能簡單認識Psping為我們帶來的用處!