コンピュータ環境におけるネットワークは非常に複雑になっています。この記事は、コンピュータ・ハードウェアとそのネットワーク・パフォーマンスに関し、さまざまな経験レベルのユーザーにとって簡潔かつ網羅的な情報を提供することを目的としています。
もし自分が使用しているネットワークのパフォーマンスを知りたいだけの場合は、このページ下部の「ネットワーク・アダプタのパフォーマンスを測定する」欄を参照してください。
ネットワークの主要要素
1.LAN と WAN
ネットワーク・パフォーマンスについて議論する場合は、まず対象が広域ネットワーク(WAN)なのか、ローカル域ネットワーク(LAN)なのかを明確にすることが重要です。
LAN(Local Area Network)は、自分の家庭または企業内部のネットワークです。家庭内では通常、インターネットプロバイダ(ISP)に提供されたモデム兼ルーター機器を使用しています。企業内などの接続コンピュータ数の多い環境では、モデムとルーターはそれぞれ専用機で、ネットワーク・スイッチなどの他の機器と組み合わせて使用されることもあります。
家庭内にあるモデム(兼ルーター)は、同軸ケーブル、光ファイバーケーブル、電話線、広域ワイヤレスなど様々な方法で ISP と接続されていますが、これがWAN と LAN を分ける明確な接点です。つまりモデムと IPS との接続自体、さらにその先のクラウドネットワークが WAN と言えます。一方、モデムとそれが構成する内部ネットワーク内の様々なデバイスは、LAN に属しています。
2.リンクレート
自分が使っているコンピュータがどんな機器に接続されているかにかかわらず、ほとんどすべての接続には何らかのリンクレートが設定されています。リンクレートとは、個々の接続において最大でどのくらい早くデータを転送できるかを示すものです。ただし、データ転送元と先として接続された両端の機器に、実際にどれだけ速度でデータを転送されるかを保証するものではありません。
これは個々のデバイス間におけるリンクレートとは別に、実際の転送スピードに影響するネットワーク構成内の「ボトルネック」の概念によって説明できます。下記の例によって説明します。
概要: 転送するデータは、USB 3.0 フラッシュ・ドライブに保存されています。これをある 1 台のコンピュータ「PC(1)」から、同じ LAN 上にある別のコンピュータ「PC(2)」へ転送したいとします。
この時データは、「フラッシュ・ドライブ→ PC(1)→ LAN 内のルーター → PC(2)→ 内蔵 SATA ハードディスク」へと転送されます。各デバイス間のリンクレートはどのようになるでしょうか。
- 800Mbps — 使用している USB 3.0 フラッシュ・ドライブは(PC の USB 3.0 ポートに接続された場合であれば)、100MB/秒(800Mbps)速度での読み書きが可能
- 480Mbps — しかしこのケースでは、この USB 3.0 フラッシュ・ドライブを PC(1) の USB 2.0 ポートに挿し込んだため、フラッシュ・ドライブから PC(1)へは USB 2.0 のリンクレートである最大 480Mbps でデータ転送
- 1000Mbps — PC(1)のギガビット・イーサネットポートからイーサネットケーブルを介し、LAN 内のルーターへは最大 1Gpbs(1000Mbps)のリンクレートで転送が可能
- 300Mbps — PC(2)は、Wi-Fi アダプタによりルーターワイヤレス接続している。このときのワイヤレス接続のリンクレートは最大 300Mbps まで
- 480Mbps — PC(2)の Wi-Fi アダプタは USB 2.0 ポートに挿し込んであるため、Wi-Fi アダプタから PC(2)へは、 480Mbps のリンクレートで転送される
- 6000Mbps — PC(2)は、内蔵されたハードディスクに最大 6Gbps のリンクレートでデータ転送が可能
- 1600Mbps—内蔵された SATA ハードディスク・ドライブは、200MB/秒(1600Mbps)速度での読み書きが可能
上記の転送例では、ステップ 4 の「300Mbps」がもっとも低速なリンクレートです。つまり他のデバイス間のリンクレートがどれほど早くても、このデータ転送の最大リンクレートは、「ボトルネック」である 300Mbps までに制限されます。
もしも Wi-Fi 接続ではなく有線ギガビット・イーサネット接続に変更すれば、ステップ 4 のリンクレートは 1000Mbps です。その場合の「ボトルネック」は、ステップ 2 および 5 の 480 Gbps になります。
3.インターフェースとポート
インターフェースとは
ネットワーク・インターフェースは、有線、無線を問わず、機器間のネットワークを構成するためのハードウェアです。たとえば、デスクトップ PC に内蔵された「NIC(ネットワーク・インターフェース・カード)」や、USB 有線 LAN イーサネット・アダプタなどがこれにあたります。
ポートとは
PC 用語では、物理的な接続口のことをポートと呼ぶことがあります。しかしネットワーク用語におけるポートは実は論理上の構成要素のことで、通常「ネットワーク・ポート」と呼ばれます。ネットワーク・インターフェースには 65,535 個の論理的な「ポート」が用意されており、 それぞれが別のデータ接続として認識されます。
ネットワーク・アダプタのパフォーマンスを測定する
ネットワーク・アダプタのパフォーマンスを正しく測定するには、以下の点に注意する必要があります。
- 単純な LAN 環境を使用すること
- 測定に影響を与えるようなボトルネック(特に、リンクレートによるボトルネック)を排除すること
ネットワークパフォーマンスを測定する、ウェブブラウザ上で使用する speedtest.net、 fast.com などのサイトは、必然的に WAN を介した計測です。したがってネットワークアダプタ自身のパフォーマンスを測定するには適切とは言えません。
データファイルをある PC から同一 LAN 上の別の PC に転送するという方法も、ネットワークのベンチマークを測定するのに最適な方法とは言えません。ファイル転送はデータが保存されるハードディスクのパフォーマンス制限があったり、度々起こることですが並行タスク処理が実はできていないなど、さまざまなボトルネックを生じさせる可能性があるからです。
もっとも正確にベンチマークを測定できる方法は、LAN 上で iPerf コマンドを使用することです。効率的にネットワーク・アダプタのパフォーマンスを測定するために、ルーターやネットワークスイッチなどの機器を介さずに、2 台の PC 間で一対一対応の接続を確立してください。
1. iPerf の使用手順
iPerf を使って接続をテストするには、最低でも 2 台のネットワーク・インターフェース、つまり通常は 2 台のコンピュータが必要です。そしてそれぞれのインターフェース(PC)に割り当てられた IP アドレスがわかっていなければなりません。いずれかの PC が iPerf サーバーとして、もう片方が iPerf クライアントとして機能します。そして、使用している PC の OS に合った、最新バージョンの iPerf ソフトウェアを各々の PC にダウンロードし、導入しておきます。 この説明では、iPref ソフトウェのバージョンは 3.x です。
1-1. iPref をサーバーモードで起動する
Windows システム
- ネットワーク・インターフェース機器に対し、最新のデバイスドライバが導入されていることを確認します。多くの場合、ネットワークカードや USB ネットワークチップ用のデバイスドライバは Windows Update により最新状態に保たれています。
- Plugable 社製の USB ネットワーク・アダプタ用デバイスドライバは、こちらからダウンロードできます。
- Windows 用 iPerf ソフトウェアをダウンロードし、解凍します。
- コマンドプロンプトを開きます。
- Windows Key + R または + R キーを押し、ウィンドウ内に
cmd
と入力して改行キーを押します。 - あるいは、スタートメニュー内で
Command Prompt
を検索してオープンします。
- Windows Key + R または + R キーを押し、ウィンドウ内に
- iPerf をダウンロードしたディレクトリに移動します。
-
cd
コマンドで、ディレクトリを移動します。- 例:Windows のデスクトップ上に 「iperf」というフォルダーが作成されている場合、 下記のコマンドで該当ディレクトリへ移動できます。
cd %USERPROFILE%\Desktop\iperf
- 例:Windows のデスクトップ上に 「iperf」というフォルダーが作成されている場合、 下記のコマンドで該当ディレクトリへ移動できます。
-
- 下記のコマンドを使用し、iPerf をサーバーモードで起動します。
iperf3.exe -s
macOS
- iPref をインストールするのに最も便利なのは、ターミナル内で brew を使用することです。こちらからダウンロードし、このページを参照してください。
- ネットワーク・インターフェース機器に対し、最新のデバイスドライバが導入されていることを確認します。多くの場合、ネットワークカードや USB ネットワークチップ用のデバイスドライバは macOS 内蔵のため、macOS に最新のアップデートを適用することを推奨します。
- Plugable 社製の USB ネットワーク・アダプタ用デバイスドライバは、こちらからダウンロードできます。
- ターミナルを開きます。
- 下記のコマンドを使用し、iPerf をサーバーモードで起動します。
iperf3 -s
Linux
- iPref をインストールするのに最も便利なのは、Linux ディストリビューションに含まれているパッケージ・マネージャーを使用することです。例えば Ubuntu では、
apt
を使用します。sudo apt install iperf3
- ネットワーク・インターフェース機器に対し、最新のデバイスドライバが導入されていることを確認します。
- Plugable 社製の USB ネットワーク・アダプタ用デバイスドライバは、こちらからダウンロードできます。
- ターミナルを開きます。
- 下記のコマンドを使用し、iPerf をサーバーモードで起動します。
iperf3 -s
1-2. iPref をクライアントモードで起動する
同じ LAN 内で稼働している iPref サーバーをターゲットとして、別の PC 上でiPref クライアントを起動します。30 秒毎に実行するには -t 30
オプションを、同時に 4 つの接続を実行するには -P 4
オプションを使用できます。ネットワークリンク内を飽和状態にするために、並列処理を 4 つ同時に接続するのが最適とされています。
Windows
- コマンドプロンプトを開きます。
- Windows Key + R または + R キーを押し、ウィンドウ内に
cmd
と入力して改行キーを押します。 - あるいは、スタートメニュー内で
Command Prompt
を検索してオープンします。
- Windows Key + R または + R キーを押し、ウィンドウ内に
- iPerf をダウンロードしたディレクトリに移動します。
-
cd
コマンドで、ディレクトリを移動します。- 例:Windows のデスクトップ上に 「iperf」というフォルダーが作成されている場合、 下記のコマンドで該当ディレクトリへ移動できます。
cd %USERPROFILE%\Desktop\iperf
- 例:Windows のデスクトップ上に 「iperf」というフォルダーが作成されている場合、 下記のコマンドで該当ディレクトリへ移動できます。
-
- 下記のコマンドを使用し、iPerf をクライアントモードで起動します。 下記の例では IP アドレスを「192.168.0.200」としていますが、これは実際の iPref サーバーの IP アドレスに置き換えてください。
iperf3.exe -c 192.168.0.200 -t 30 -P 4
macOS / Linux
- ターミナルを開きます。
- 下記のコマンドを使用し、iPerf をクライアントモードで起動します。 下記の例では IP アドレスを「192.168.0.200」としていますが、これは実際の iPref サーバーの IP アドレスに置き換えてください。
iperf3 -c 192.168.0.200 -t 30 -P 4
iPerf が実行され、ネットワーク・パフォーマンスのテストが行われます。もし実行に失敗した場合は、iPref が使用しているネットワークのファイヤーウォールにブロックされていないことを確認してください。
2. なぜベンチマークテストに iPerf が適しているのか
iPref は PC のメモリ上で実行され、CPU を直接使用して送信データを生成します。これはすでにあるファイルをストレージからストレージへ転送するのとは異なり、他の要因から派生する潜在的なボトルネックを軽減できます。また、既存ファイルを転送する方法では並列のネットワーク処理が行われているかどうかが明確でないのに対し、データ転送に使用される並列接続数を明示的に制御することができるという特徴があります。
3. 結論
ネットワークのパフォーマンスを正確に把握するには、さまざまな構成要素を考慮し、外的要因によるボトルネックの影響を受けない手法を採用する必要があります。