iperfの使い方 〜基礎編②〜
今回の授業は、前回に引き続きiperfの使い方を教えていきます。前回は、iperfをデフォルト設定で使用しましたが、今回はオプションを付けて試験してみたいと思います。前回の授業を受けていない方は、こちらから。
iperfの使い方 〜基礎編①〜
Contents
iperfのオプション
iperfにはたくさんのオプションがあります。全部のオプションを覚えようとすると大変ですので、よく使う物を教えていこうと思います。
共通
まずは、サーバとクライアントの両方で使用できるオプションから紹介させていただきます。
※一部、共通オプションですが、内容が異なるのでそれぞれのオプションとして紹介させていただきます。
-i (–interval) num
コマンドプロント上に表示される間隔。デフォルトでは『1秒』で表示されるようになっております。
-B (–bind) address
使用するIPアドレス(NIC)を指定することが出来ます。クライアントであれば送信用NIC、サーバであれば受信用NICの指定となり、複数のNICを搭載しているパソコンであれば、指定した方が間違いがないでしょう。
サーバ
続いてサーバで使用するオプションについて紹介していきます。サーバは、それほどオプションが多くないので覚えておくといいでしょう。
-s (–server)
iperfサーバを起動させます。
-p (–port) num
待ち受けるポート番号を指定することが出来ます。
-D (–daemon)
デーモンとして起動させて、バックグラウンドで動作させます。
クライアント
最後にクライアントのオプションについて紹介していきます。クライアント側の方が知っておくべきオプションが多いですので、実際に手を動かして覚えておきましょう。
-c (–client)
iperfクライアントを起動させます。
-u (–udp)
TCPではなくUDPを使用します。
-p (–port) num
送信するポート番号を指定することが出来ます。
-t (–time) num
トラフィックを流し続ける時間を指定します。デフォルトでは10秒となります。
-b (–bandwidth) num
トラフィック量を指定します。TCPのデフォルトは無制限で、UDPのデフォルトは1Mbpsとなります。
ここまでがよく使われるオプションの紹介となりますが、これ以外にも多くのオプションがあります。全部覚えようとするとどうしても大変になってしまいますので、『-h (–help)』オプションの一覧を表示することが出来ます。忘れてしまった場合は、これで確認しましょう。
スループット試験(オプション付き)
それでは実際にオプションを付けた試験を実施してみたいと思います。構成は前回と同様の構成で試してみたいと思います。以下の構成を見ながら試験してみましょう。
CISCO 1812J
![]() |
CISCO Cisco 1812J 固定構成型 セキュアブロードバンドアクセスルータ CISCO1812-J/K9 中古価格 |
CISCO 892J
![]() |
中古価格 |
TCPのスループット試験
まずはTCPの10000番ポートを使用したスループット試験をしてみたいと思います。また、1分間トラフィックを流して5秒間隔で結果を出力させてみたいと思います。前回と同様の手順で試験を進めていきたいと思います。まずはサーバを立ち上げましょう。今回のオプションは『-s』、『-p』、『-i』を使用して具体的に待ち受けるポート番号、表示間隔を指定したいと思います。
サーバ側
C:\iperf>iperf3.exe -s -p 10000 -i 5
これでサーバの起動は完了となります。それではクライアントのコマンドを入れていきます。クライアントは、60秒間トラフィックを出し続けるように設定したいと思いますので、オプションの『-c』と『-t』も使用していきます。
クライアント側
C:\iperf>iperf3.exe -c 172.16.1.1 -p 10000 -t 60 -i 5
このコマンドにより、172.16.1.1にTCP10000で、60秒間トラフィックを出して5秒毎に結果が出力されるようになります。出力結果は以下の通りとなります。
サーバ側の実行結果
C:\iperf>iperf3.exe -s -p 10000 -i 5
———————————————————–
Server listening on 10000
———————————————————–
Accepted connection from 172.16.1.2, port 49893
[ 5] local 172.16.1.1 port 10000 connected to 172.16.1.2 port 49894
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-5.00 sec 56.5 MBytes 94.8 Mbits/sec
[ 5] 5.00-10.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 10.00-15.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 15.00-20.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 20.00-25.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 25.00-30.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 30.00-35.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 35.00-40.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 40.00-45.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 45.00-50.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 50.00-55.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 55.00-60.00 sec 56.6 MBytes 94.9 Mbits/sec
[ 5] 60.00-60.03 sec 302 KBytes 94.5 Mbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-60.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-60.03 sec 679 MBytes 94.9 Mbits/sec receiver
クライアント側の実行結果
C:\iperf>iperf3.exe -c 172.16.1.1 -p 10000 -t 60 -i 5
Connecting to host 172.16.1.1, port 10000
[ 4] local 172.16.1.2 port 49894 connected to 172.16.1.1 port 10000
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-5.00 sec 56.8 MBytes 95.2 Mbits/sec
[ 4] 5.00-10.00 sec 56.6 MBytes 95.0 Mbits/sec
[ 4] 10.00-15.00 sec 56.5 MBytes 94.8 Mbits/sec
[ 4] 15.00-20.00 sec 56.6 MBytes 95.0 Mbits/sec
[ 4] 20.00-25.00 sec 56.6 MBytes 95.0 Mbits/sec
[ 4] 25.00-30.00 sec 56.5 MBytes 94.8 Mbits/sec
[ 4] 30.00-35.00 sec 56.6 MBytes 95.0 Mbits/sec
[ 4] 35.00-40.00 sec 56.6 MBytes 95.0 Mbits/sec
[ 4] 40.00-45.00 sec 56.5 MBytes 94.8 Mbits/sec
[ 4] 45.00-50.00 sec 56.6 MBytes 95.1 Mbits/sec
[ 4] 50.00-55.01 sec 56.6 MBytes 94.9 Mbits/sec
[ 4] 55.01-60.01 sec 56.5 MBytes 94.8 Mbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-60.01 sec 679 MBytes 94.9 Mbits/sec sender
[ 4] 0.00-60.01 sec 679 MBytes 94.9 Mbits/sec receiveriperf Done.
サーバの出力結果を確認すると、TCPのポート10000番で受信していることがわかりますね。また、結果も5秒間隔でトラフィックデータが表示されているのがわかりますね。ここまでうまく出来ましたか?コマンドエラーなどになってしまった場合、ちゃんとiperfが保存されているフォルダに移動しているか?実行コマンド・オプションに間違いがないか?などを確認してみましょう。
UDPのスループット試験
続いて、UDPの試験をやってみたいと思います。30秒間を10秒間隔で表示したいと思います。それではサーバからコマンドを実行していきますが、使用するオプションは、『-s』と『-i』となります。ここで注意しておきたいのは、UDPで待ち受けることが出来ない点です。
サーバ側
C:\iperf>iperf3.exe -s -i 10
続いてクライアント側にコマンドを入れていきましょう。クライアント側で使用するオプションは、『-c』、『-u』、『-t』、『-i』となります。これらのオプションを使って、UDPトラフィックを30秒間出力して、取得力結果を10秒間隔で表示するようにします。
クライアント側
C:\iperf>iperf3.exe -c 172.16.1.1 -u -t 30 -i 10
これだけでiperfのコマンドは終了となります。それでは続いて出力結果を見ていこうと思います。
サーバ側の実行結果
C:\iperf>iperf3.exe -s -i 10
———————————————————–
Server listening on 5201
———————————————————–
Accepted connection from 172.16.1.2, port 50164
[ 5] local 172.16.1.1 port 5201 connected to 172.16.1.2 port 49322
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.01 sec 1.24 MBytes 1.04 Mbits/sec 0.227 ms 0/159 (0%)
[ 5] 10.01-20.01 sec 1.25 MBytes 1.05 Mbits/sec 0.279 ms 0/160 (0%)
[ 5] 20.01-30.01 sec 1.25 MBytes 1.05 Mbits/sec 0.312 ms 0/160 (0%)
[ 5] 30.01-30.03 sec 0.00 Bytes 0.00 bits/sec 0.312 ms 0/0 (0%)
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-30.03 sec 0.00 Bytes 0.00 bits/sec 0.312 ms 0/479 (0%)
TCPの出力結果と比べて、『Jitter』と『Lost/Total Datagrams』が増えていることが分かりますね。このjitterとは、トラフィックの伝送時間の揺らぎのことを言い、Lost/Total Datagramsは、ドロップしたパケット数と総パケット数を表しています。これが表示されていれば、UDPでトラフィックが流れていたと判断できます。続いてクライアントについても見ていきましょう。
クライアント側の実行結果
C:\iperf>iperf3.exe -c 172.16.1.1 -u -t 30 -i 10
Connecting to host 172.16.1.2, port 5201
[ 4] local 172.16.1.2 port 49322 connected to 172.16.1.1 port 5201
[ ID] Interval Transfer Bandwidth Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 10.00-20.00 sec 1.25 MBytes 1.05 Mbits/sec 160
[ 4] 20.00-30.00 sec 1.25 MBytes 1.05 Mbits/sec 160
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-30.00 sec 3.75 MBytes 1.05 Mbits/sec 0.312 ms 0/479 (0%)
[ 4] Sent 479 datagramsiperf Done.
サーバと比べてみるといくつか表示内容が異なりますね。例えば、Jitterが10秒間隔で表示されていないのは、UDPの場合にACKというサーバからの応答がないからとなります。同様に、Lost/Total Datagramsも総パケット数しか表示されていませんが、これもサーバから受信パケット数の応答がないため、どれだけのパケットが破棄されてしまったがわからないからとなります。このようにUDPのスループット試験を実施した場合、クライアントとサーバで結果に差分があるので注意しましょう。
まとめ
今回の授業はここまでとします。オプションの使い方について紹介させていただきました。必要なのはたくさん使って、慣れることが重要となります。この授業を読んで理解したつもりにならずに、自分でいろんなオプションを指定して実行してみましょう。『習うより慣れろ!』まさにこれですね。次回で、このiperfをバッチファイルで自動ログ取得までさせてみたいと思います。
iperfの使い方 〜応用編(自動実行のやり方)〜
ツールの紹介
“iperfの使い方 〜基礎編②〜” に対して2件のコメントがあります。