免費IP,ICMP,TCP及頻寬測試的好工具PsPing

PsPing簡介

PsPing是一個命令列公用程式,它用來測量網路的效能。除了標準的ICMP ping功能,

  • 它可以回報連接至TCP埠的延遲
  • 在系統溝通時TCP往返的延遲
  • 在連接系統時的TCP可用頻寬

此外取得min、max、average的值都在0.01ms,你可以還使用PsPing生成統計圖的結果,這讓你將結果匯整至試算表(spreadsheets)。

安裝

PSTools.zip下載至電腦磁碟上,然後解壓縮。開啟命令提示字元(cmd.exe),切換至PsPing所在目錄,輸入【psping】會顯示指令語法。

PsPing參數查詢

使用PsPing

PsPing實現Ping功能、TCP ping、延遲和頻寬測量。使用下列命令列選項來顯示每個類型的用法:

查詢PsPing語法

用法: psping -? [i|t|l|b]

參數說明:

  • -? I   ICMP ping 的用法。
  • -? T   TCP ping 的用法。
  • -? L   延隔時間測試的用法。
  • -? B   頻寬測試的用法。
ICMP ping參數查詢

ICMP ping語法

psping [[-6] | [-4]] [-h [buckets]] [-i <interval>] [-l <requestsize> [-q] [n-t|-<count>] [-w <count>] <destination>

參數說明:

  • -h 列出統計圖(每0.01ms一個值,預設顯示數為20)。
  • -i 以秒為單位的時間間隔(預設1秒)。指定為0為快速ping。
  • -l 請求大小。
  • -n Ping的次數。(預設5次)
  • -q 不輸出ping命令的過程。
  • -t Ping不停止執行,直到用Ctrl + C停止。輸入Ctrl + Break可暫時停止。
  • -w 執行指定數目的預熱ping(預設為 1)。
  • -4 使用 IPv4。
  • -6 使用 IPv6。

使用高速ping來測試,可使用-q和-i 0的組合。

ICMP ping測試

  • psping 192.168.3.1

    這是最簡單的用法,相於於cmd.exe裡的ping指令。

  • psping -h 5 192.168.3.1
    顯示統計圖結果

    這裡馬上看出PsPing的優點,它可以幫我們統計出整個ping數值的分佈,這個需有「有一分證據,說一分話」的情況下非常有用。

  • psping -h 5 -i 2 192.168.3.1

    使用-i指定每2秒ping一次,這在抓取平均值時會很有用,例如,要抓取ping一天的數據,設定為60秒或600秒。

  • psping -h 5 -i 2 -l 8192 192.168.3.1
    指定封包大小

    使用-l指定送出的封包大小。從圖可以看出,當我們加大送出封包大小時,回應時間很明顯變長。這個參數請不要對非你管理的主機測試,如果被認定為攻擊…發生了什麼事,我可不負責。

  • psping -h 5 -i 2 -q 192.168.3.1

    使用-q後,畫面就不會再輸出一行一的Reply from 192.168.3.1: 0.88ms訊息,換成一個百分比的計算。這個在長時間的測試上有用,也就是不管過程只管最後的統計結果即可。

  • psping -h 50 -i 60 -q -t 192.168.3.1

    使用-t即無限次的ping,直接按下Ctrl + C才會停止。而按下Ctrl + Break(即Pause Break)可暫停ping的操作。使用-t時,因為是使用Ctrl + C來中斷程式,所以-h參數會無效果。如果要有統計圖請使用-n來指定次數,例如,測試24小時的話可指定「-n 1440 -i 60 -q」。

  • psping -h 5 -w 2 192.168.3.1
    測試用ping

    Warmup是熱身或暖身的意思,也就是說先送出幾次暖身用的ping,而且不列入統計範圍。以圖來說,你可以發現,每次ping的前幾次的值都會比較高,如果我們想讓統計結果更為真實,就可以使用-w來忽略前N次的Ping結果。另外,我還發現一件好玩的事,如果使用的-w,那麼本來預設ping次數會由5變成4,所以下了「-w 2」後,ping的總次數為2 + 4 = 6,但如果你是指定-n,那就是「-n Num + -w Num」的次數。

  • psping -4 localhost
  • psping -6 localhost

如果你的網路同時支援IPv4與IPv6,你可以使用-4或-6來指定走IPv4或IPv6來測試。在比較新的作業系統(還要不太舊的網卡),都已經同時支援IPv4與IPv6,例如範例中的我們去測試localhost,使用-4或-6都是能正常測試,或者可使用如www.v6.facebook.com(IPv6地址是2620:0:1cfe:face:b00c::3)來進行IPv6的測試。不過一般預設都是走IPv4。

TCP ping語法

psping [[-6]|[-4]] [-h [buckets]] [-i <interval>] [-l <requestsize> [-q] [-t|-n <count>] [-w <count>] <destination:destport>

從語法來看,與ICMP的語法只差最後的目標是帶有埠(port)號的。

TCP ping測試

TCP ping測試

從上圖可以看出,TCP ping是帶有埠號,而且還是提示warmup。這對於非80埠的測試很有幫助。

TCP延遲測試語法

server: psping [[-6]|[-4]] <-s source:sourceport>

client: psping [[-6]|[-4]] [-h [buckets]] [-r] <-l requestsize>] <-n count> [-w <count>] <destination:destport>

TCP延遲是有「明確目標」的測試,從語法上可以看得出來,需要有一台Server一台Client,兩台主機直接進行對測。Server可以拿來進行延遲及頻寬測試,直到你按下Ctrl + C為止。

TCP延遲測試

server: psping -s 192.168.3.116:8080

當ping server啟動時,防火牆會跳出警告,記得要放行,不然會無法測試。

client: psping -h5 -n10 -w 2 192.168.3.116:8080

啟動ping server

這是當Server收到請求時的訊息。

client to server進行延遲測試

這是向Server進行延遲的測試結果。

TCP頻寬測試語法

server: psping [[-6]|[-4]] <-s source:sourceport>

client: psping [[-6]|[-4]] -b [-h [buckets]] [-r] <-l requestsize> <-n count> [-i <outstanding>] [-w <count>] <destination:destport>

  • -i 測試數量。(預設最小16和2倍CPU核心數)
  • -b 頻寬測試
  • -r 從server接收封包,而不是由client發出封包。
  • -w 頻寬測試裡的-w預設值預設為2倍CPU核心數。

要使用頻寬測試,在client必須多加一個-b的參數。另外,-r是反方向傳送的意思,由原本的client向server發送測試,改由server向client發送測試。

TCP頻寬測試

server: psping -s 192.168.3.116:8080

client: psping -b -l 8192 -n 100000 -h 10 10 192.168.3.116:8080

client: psping -b -r -l 8192 -n 100000 -h 10 10 192.168.3.116:8080

說白話,這就是在打流量。一個由client向server打流量,加上-r,由server向client打流量。

ping server提供TCP頻寬測試

以上是server看到的訊息。

client向server的頻寬測試

client向server的頻寬測試

server向client的頻寬測試

server向client的頻寬測試

我是在內網測試,所以速度非常的快。有時我們要測試外部伺服器的穩定度,可能會打個三天三夜的流量,這功能就可幫我很大的忙。

2 則留言:

  1. 請問頻寬測試,可否同時測試上傳與下載?

    回覆刪除
    回覆
    1. 同時好像沒辦法,換個方向打就好啦。

      刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。