iperfの使い方 〜基礎編②〜

ベル

今回の授業は、前回に引き続きiperfの使い方を教えていきます。前回は、iperfをデフォルト設定で使用しましたが、今回はオプションを付けて試験してみたいと思います。前回の授業を受けていない方は、こちらから。

 

iperfの使い方 〜基礎編①〜

iperfの使い方 〜基礎編①〜

 

 

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)オプションの一覧を表示することが出来ます。忘れてしまった場合は、これで確認しましょう。

 

 

スループット試験(オプション付き)

それでは実際にオプションを付けた試験を実施してみたいと思います。構成は前回と同様の構成で試してみたいと思います。以下の構成を見ながら試験してみましょう。

 

 

TCPのスループット試験

まずはTCP10000番ポートを使用したスループット試験をしてみたいと思います。また、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 receiver

iperf 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の出力結果と比べて、JitterLost/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 datagrams

iperf Done.

 

サーバと比べてみるといくつか表示内容が異なりますね。例えば、Jitter10秒間隔で表示されていないのは、UDPの場合にACKというサーバからの応答がないからとなります。同様に、Lost/Total Datagramsも総パケット数しか表示されていませんが、これもサーバから受信パケット数の応答がないため、どれだけのパケットが破棄されてしまったがわからないからとなります。このようにUDPのスループット試験を実施した場合、クライアントとサーバで結果に差分があるので注意しましょう。

 

まとめ

ベル

今回の授業はここまでとします。オプションの使い方について紹介させていただきました。必要なのはたくさん使って、慣れることが重要となります。この授業を読んで理解したつもりにならずに、自分でいろんなオプションを指定して実行してみましょう。『習うより慣れろ!』まさにこれですね。次回で、このiperfをバッチファイルで自動ログ取得までさせてみたいと思います。

 

iperfの使い方 〜応用編(自動実行のやり方)〜

iperfの使い方 〜応用編(自動実行のやり方)〜

 

 

ツールの紹介

ExPingを使いこなす方法を学ぼう!

Winmergeでログ比較 ~基礎編~

Winnergeでログ比較 〜応用編〜

 

 

Follow me!

iperfの使い方 〜基礎編②〜” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です