iperfの使い方
iperf(アイパーフ)は、ネットワークスループットを測定するためのフリーのソフトウェアです。
TCP/UDPのプロトコルや通信先ポート番号を指定できるなど様々なオプションが備わっており、スループット測定の他に、障害発生時のトラブルシューティングなどにもよく使われます。
そのため、ネットワーク技術者必須のツールのひとつと言っても過言ではありません。
この機会にぜひ、iperfの使い方も覚えておきましょう。
iperfダウンロード
下記サイトからダウンロードできます。(2011年5月現在)http://linhost.info/2010/02/ip……n-windows/
iperfはコマンドラインベースのツールであり、Windows上で使用する場合は通常、コマンドプロンプトから実行することになります。
ダウンロードしたらツールを実行しやすいよう、コマンドプロンプトの初期ディレクトリに実行ファイルを移動させておきましょう。
上記はコマンドプロンプトを起動した直後の画面です。赤枠の部分が初期ディレクトリ(フォルダ)になります。
Windows版の他にもMac版、Linux版もあります。
iperf使い方
iperfは、一方をクライアント、もう一方をサーバとして、2つ1組で使用することになります。
- iperf書式
- iperf [-s | -c IPアドレス] [オプション]
オプション種類(一部)
-i 指定した秒ごとに測定値を表示
-p 待受けポート番号を指定(デフォルト:5001)
-u UDPモードで起動(デフォルト:TCPモード)
-w ウィンドウサイズを指定
-b UDPの帯域を指定(デフォルト:1Mbps) ※クライアントモードのみ
-t 送信秒数を指定 ※クライアントモードのみ
※オプションは他にも多く存在しますが、ここでは最も基本的なもののみを紹介しています。詳しくは「iperf ‐‐help」コマンドを実行し、ヘルプを確認してください。
iperfサーバ起動
まずはサーバとなる「PC SV」側からiperfを起動します。
-sをつけて実行することで、サーバとして起動します。
iperfクライアント起動
続いて「PC CL」でiperfを起動します。
-c [サーバIPアドレス]をつけて実行することで、スループット測定が開始されます。
この場合、クライアント、サーバともに最低限のオプションしか指定していないため、全てデフォルトの設定(TCP 5001ポート宛てに可能なかぎりのトラフィックを10秒間送り続ける)で動作します。
iperfクライアント画面
C:\Users\gran>iperf -c 192.168.0.4 ------------------------------------------------------------ Client connecting to 192.168.0.4, TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [108] local 192.168.0.3 port 55707 connected with 192.168.0.4 port 5001 [ ID] Interval Transfer Bandwidth [108] 0.0-10.0 sec 21.7 MBytes 18.2 Mbits/sec
iperfサーバ結果画面
MacBook-Pro:~ user$ iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 256 KByte (default) ------------------------------------------------------------ [ 4] local 192.168.0.4 port 5001 connected with 192.168.0.3 port 55707 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 21.7 MBytes 18.2 Mbits/sec
10秒間のうち、21.7MByteのトラフィック量を受信し、ビットレートが18.2Mbpsであったことを示しています。
次に、UDPパケットをポート番号10000に対して、100Mbpsの帯域で送信した場合のスループットを測定してみます。
UDPでのスループットを測定したい場合は、クライアント、サーバ両方に-uオプションを指定します。
また、UDPの場合は、-bオプションにより、帯域(送信トラフィック量)も指定する必要があります。(-bオプションを指定しない場合は、デフォルトの1Mbpsで動作します。)
-pオプションはポート番号を指定します。サーバ側が待ち受けポート番号、クライアント側が送信先ポート番号を意味し、双方で同じ番号を指定する必要があります。
iperfクライアント画面
C:\Users\gran>iperf -c 192.168.0.4 -u -b 100m -p 10000 ------------------------------------------------------------ Client connecting to 192.168.0.4, UDP port 10000 Sending 1470 byte datagrams UDP buffer size: 8.00 KByte (default) ------------------------------------------------------------ [108] local 192.168.0.3 port 50940 connected with 192.168.0.4 port 10000 [ ID] Interval Transfer Bandwidth [108] 0.0-10.0 sec 17.8 MBytes 14.9 Mbits/sec [108] Server Report: [108] 0.0- 9.9 sec 17.8 MBytes 15.0 Mbits/sec 1.985 ms 0/12672 (0%) [108] Sent 12672 datagrams
iperfサーバ画面
MacBook-Pro:~ user$ iperf -s -u -p 10000 ------------------------------------------------------------ Server listening on UDP port 10000 Receiving 1470 byte datagrams UDP buffer size: 41.1 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.0.4 port 10000 connected with 192.168.0.3 port 50940 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0- 9.9 sec 17.8 MBytes 15.0 Mbits/sec 1.986 ms 0/12672 (0%)
UDPでは、受信トラフィック量やビットレートの他にジッタやパケットロス率も結果に表示されます。
※ジッタ(Jitter)とは遅延間隔がずれてしまう現象のことです。