iperf3:XNUMXつのLANデバイスとWiFiデバイス間の速度を測定するためのチュートリアル

iperf3は、ローカルネットワークまたはインターネット上の3台以上のコンピューター間の帯域幅を測定するための人気のあるiperfプログラムの最新バージョンです。 この新しいiperf2バージョンは古いiperf4と互換性がないため、この新しいプログラムを使用する場合は、サーバーとクライアントの両方を更新する必要があります。 このツールを使用すると、TCP、UDP、およびSCTPプロトコルに関連するさまざまなパラメーターを非常に高度な方法で調整できます。もちろん、IPv6ネットワークとIPv3ネットワークの両方と互換性があります。 Iperf10は、ローカルネットワークの実際のパフォーマンスをさらに圧迫できるように多くの改善が加えられているため、マルチギガビットやXNUMXG機器のパフォーマンステストを実行するのに理想的です。 ダウンロードしてパフォーマンスを測定する方法を知りたいですか?

この記事では、LAN-LAN、LAN-WAN、およびLAN-WANで得られるパフォーマンスを測定するために、長い間iperf3を使用してきました。 無線LAN 6つのテスト。 2Gbpsの速度を超えるとすぐに、iperf1よりもはるかに優れた動作をすることがわかりました。したがって、ルーター、スイッチ、またはWiFi 6アクセスポイントを使用する場合は、このプログラムを使用して、達成した速度をより正確に測定できます。 。

iperf3

このチュートリアルでは、この非常に興味深いプログラムを使用して、ローカルLANに接続されているかインターネットに接続されているかに関係なく、XNUMX台のコンピューター間の実際の速度を測定する方法を説明します。TCPおよびUDPプロトコルを使用するためです。 XNUMXつ以上のクライアントが直接通信し、実際の速度を確認するために、サーバー上のポートを開くことができます。

Iperf3の主な機能

iperf3は完全に更新されたプログラムであり、相互に互換性がないため、iperf2とは関係ありません。 iperf3はiperf2の最高のものを継承し、新しい機能を組み込んで、問題なくマルチギガビットの速度で測定を実行できるようにします。 実行するテストごとに、アップロードとダウンロードの帯域幅、パケット損失、およびその他のパラメータが通知されます。

TCPおよびSCTPプロトコルに関しては、帯域幅を測定し、MTU(最大転送ユニット)およびMSS(最大セグメントサイズ)のサイズを報告することができます。さらに、ソケットを介したTCPウィンドウサイズの構成もサポートします。バッファ。 UDPに関しては、クライアントはさまざまなUDPデータストリームを作成でき、パケット損失、ジッター(遅延ジッター)を測定でき、マルチキャストもサポートします。 クライアントは、サーバーとの複数の同時接続を確立できます。さらに、サーバーは、複数の異なるソースから複数の同時接続を受信できます。 もちろん、特定の時間実行したり、送信する特定の量のデータを定義したりすることもできます。

iperf3のその他の重要な機能は、接続ステータス、これまでの帯域幅、ジッター、パケット損失などを定期的に表示する機能です。また、オペレーティングシステムでiperfサーバーをデーモンとして機能させることもできます。 組み込まれているその他の新機能には、TCPプロトコル自体からTCP Slowstartを無視する可能性、UDPまたはTCPの帯域幅を設定する、IPv6のフローラベルを設定する、輻輳制御アルゴリズムを構成する、すべての情報をJSON形式で取得する可能性があります。また、ハードディスク上で直接読み取りおよび書き込みテストを実行することもできます。

この新しいiperf3プログラムはBSDライセンスです。つまり、オープンソースでクロスプラットフォームであり、互換性があります。 Windows, Linux, Android、MacOS X、FreeBSD、OpenBSD、NetBSD、VxWorks、Solarisオペレーティングシステムおよびその他多数。

Iperf3のダウンロードとインストール

このプログラムは、 Iperf3の公式ウェブサイト さまざまなオペレーティングシステムで利用できる最新バージョンがあります。 ダウンロードしたら、ZIPファイルを解凍して実行できるようにする必要がありますが、この場合、グラフィカルユーザーインターフェイスや実行可能スクリプトがないため、Windowsまたはコマンドラインから実行する必要があります。 Linux / MacOS。

Windows、Linux、およびmacOSでのiperf3の実行

ダウンロードしたZIPを解凍したら、コマンドプロンプト(cmd)またはLinuxターミナルに入り、コマンド「cd」を使用して別のディレクトリに移動します。iperf3ディレクトリにいるときは、サーバーモードで実行する必要があります。 PCの場合、および別のPCのクライアントモードの場合:

iperf3.exe ./iperf3

もちろん、それを実行するときは、引数を入れていないので、iperfの助けを借ります。

動作と初速度テスト

iperf3の操作は非常に単純です。最初に明確にしなければならないのは、それがコマンドラインから実行されるプログラムであり、その動作を構成するためのさまざまな引数があることです。 クライアント/サーバープログラムに直面するときは、3つのiperfXNUMXを実行する必要があります。XNUMXつはサーバーとしてのPCで、もうXNUMXつはクライアントとしてのiperfを実行して、クライアントからサーバーへの速度を確認します。

サーバーモードでiperf3を起動するには:

iperf3.exe -s ./iperf3 -s

後で説明する特定のオプションを使用して、クライアントモードでiperf3を起動するには:

iperf3.exe -c IP -P 50 -fg -t 5

iperf3を使用して基本的なパフォーマンステストを実行する方法がわかったら、このプログラムで使用できるすべてのオプションを紹介します。

一般的な構成オプション:クライアントとサーバー用

次の引数は、プログラム自体の実行後に次のように入力できます。「iperf3-arguments」および引数を入力するときの順序は重要ではありません。

  • -pポート:使用するポート(TCPまたはUDP)を選択できます。このポートは、サーバーとすべてのクライアントの両方に正確に存在する必要があります。
  • –cport port:このオプションを使用すると、iperf 3.1以降の場合にのみ、クライアント側でポートを指定できます。
  • -f形式:速度を確認したときに表示される測定単位を選択できます。
    • k:キロビット
    • K:キロバイト/秒
    • m:メガビット
    • M:メガバイト/秒
    • g:Gbps
    • G:ギガバイト/秒
  • -i間隔:秒単位で測定される時間間隔。ここで、iperf3は、帯域幅、ジッター、およびパケット損失に関するすべての情報を表示します。 デフォルトでは0です。
  • -Fファイル名:クライアントでは、ランダムな情報を使用する代わりに、ローカルネットワークで読み書きされるファイルです。 サーバー上では、ネットワークから読み取られてファイルに書き込まれるものです。
  • -Bホスト:特定のネットワークカードへのバインドを許可します。複数のインターフェイスがある場合に最適です。
  • -V:すべての詳細を含む出力(詳細)
  • -J:JSON形式で出力
  • –ログファイルファイル:出力をログファイルに送信します(iperf 3.1のみ)
  • –d:デバッグ
  • -v:プログラムバージョン
  • -h:プログラムヘルプを起動します

サーバーのみの構成オプション

次の引数は、プログラム自体の実行後に次のように入力できます。「iperf3-arguments」および引数を入力するときの順序は重要ではありません。 これらの引数は、iperf3サーバーでのみ使用できます。

  • -s:サーバーモードでiperfを起動します。
  • -D:デーモンとしてバックグラウンドでプログラムを起動します。
  • -I:-D(デーモン)での使用に最適なプロセスIDでファイルを書き込みます。

以下に、いくつかの例を示します。

デフォルトでiperf3サーバーを実行できます。これは、ポート5201でTCPプロトコルを自動的に使用します。

iperf3.exe -s

次の方法で、TCPとポート3を使用してiperf5000サーバーを実行できます。

./iperf3 -s -p 5000

顧客のみの構成オプション

次の引数は、プログラム自体の実行後に次のように入力できます。「iperf3-arguments」および引数を入力するときの順序は重要ではありません。 これらの引数は、iperf3クライアントでのみ使用できます。

  • -c IP_address:サーバーに接続するためにクライアントモードでiperfを起動します。直後にIPアドレスを定義する必要があります。
  • –Sctp – TCPの代わりにこのSCTPプロトコルを使用します(デフォルト)。
  • -u:TCPの代わりにUDPプロトコルを使用します(デフォルト)。
  • -b帯域幅:帯域幅をNビット/秒で定義できます。デフォルトでは、UDPでは1MB /秒、TCPでは無制限です。 -P引数を使用して複数のデータストリームを送信する場合、この帯域幅はそれぞれに適用されます。
  • -t時間:最大速度で情報を送信するための秒単位。 デフォルトでは10秒ですが、必要なものを配置できます。
  • -n number:時間(-t)を使用する代わりに、送信するデータの数。データを使用します。
  • -kパケット:時間(-t)またはデータ(-n)を使用する代わりに、送信するパケットの数。
  • -l(小文字のL):読み取りまたは書き込みされたバッファーの長さ。
  • -P番号:同時データフローの数。ネットワークを最大に圧縮するには、5以上にすることをお勧めします。
  • -R:iperfトラフィックは通常、クライアントからサーバーに送信されます。この引数を指定すると、トラフィックはサーバーからクライアントに送信されます。
  • -w size:TCPウィンドウサイズを指定します
  • -M mss:TCPMSSの構成を許可します
  • -N:TCP遅延なしオプションを構成します。
  • -4:IPv4ネットワークを使用しています。
  • -6:IPv6ネットワークを使用しています。
  • -S:送信パッケージのサービスのタイプ。
  • -Lラベル:IPv6ネットワークのフローラベルを構成できます。
  • -Z:ゼロコピー方式を使用し、プログラムによるCPU使用率を大幅に削減します。
  • -O秒:TCPスロースタートの問題を回避し、最初にバーストなしで測定を提供するために、テストの最初のX秒をスキップします。
  • -Tタイトル:各文字列の前にタイトルを付けることができます
  • -Cアルゴリズム:Linuxでiperf 3.0を使用し、FreeBSDでiperf 3.1を使用する場合にのみ、輻輳アルゴリズムを構成できます。

以下に、いくつかの例を示します。

いくつかの非常に興味深い引数を使用して、iperf3クライアントを実行できます。

iperf3.exe -c 192.168.1.10 -P 50 -p 5000 -fg -t 5

  • -c 192.168.1.10:定義されたIPを使用してクライアントモードで動作します。
  • -P 50:合計50のTCP接続を送信します
  • -p 5000:ポート5000を使用します。デフォルトは5201です。
  • -fg:速度をGbpsで表示します
  • -t 5:テストを5秒間開始します。

ご覧のとおり、このiperf3プログラムは、複雑なコマンドや引数を入力することなく、グラフィカルユーザーインターフェイスでiperfを実行できるため、非常にシンプルです。