高速無線LAN情報局

無線区間のスループットを測ろう!

自分の使っている無線LANのスループットは気になるものです。インターネット上の速度測定サイトで計測してみたものの、結果が無線のスピードによるものなのか、回線のスピードによるものなのか、判断がつかなかったりします。
やはり、ここはローカルでスピード測定するべきでしょう。PCが2台あれば、簡単に測定することができます。

▼ ▼ ▼ ▼ ▼

まず、ローカルに簡単なネットワークを構築します。以下の図のような構成を組んでみてください。

構成例

図の例では、デスクトップのPC AをLANケーブルでアクセスポイントに接続、ラップトップのPC Bを無線でアクセスポイントに接続しています。とにかく、無線区間をひとつ挟んでPC AとPC Bが通信できれば問題ありません。アクセスポイントとPC Aの間に100MbpsのHUBを挟んで、それぞれにストレートで接続してもOKです。
それができたら、PC AとPC B、アクセスポイントに適当なIPアドレスを固定で割り振って、ちゃんと通信できるようにしましょう。例えば、アクセスポイントを192.168.0.1、PC Aを192.168.0.2、PC Bを192.168.0.3にし、それぞれサブネットマスク255.255.255.0にします。

▼ ▼ ▼ ▼ ▼

とにかく、ローカルなネットワーク(LAN)が完成したら、次にスループット計測ツールを使って、無線間のスループットを測定してみましょう。
ここでお勧めするスループット計測ツールは、PCATTCPというツールです。PCATTCPは、米Printing Communications Associates社で配布されているネットワークの転送速度を測定するMS-DOSで動作するツールです。
PCATTCPは、送信側でメモリ上にデータを生成して送信し、受信側でそのデータをメモリで受けて破棄するため、ハードディスクでの処理が必要なく、ディスクへのアクセスタイムによる影響などを排除して速度測定ができるのが特長です。
そのため、いちいちハードディスクに書き込むFTPなどのデータ転送よりも、ある程度正確なデータ転送速度の計測を期待することができます。また、FTPを使った計測では、FTPサーバを立てる必要があり、何かと面倒ですが、PCATTCPを使うと非常に簡単にスループットの計測ができます。
PCATTCPは、下記のURLで申し込むことにより、最新版を入手できます。まず、最新版を手に入れましょう。

pcattcp.dlr@pcausa.comへサブジェクトをPCATTCP Download Requestとした空メールを送信すると、ダウンロードできるURLが自動で返信されます。
2003年4月15日現在、PCATTCPの最新版バージョンはV2.01.01.05です。

▼ ▼ ▼ ▼ ▼

さて、ここまで用意できたら、PC AとPC BにPCATTCPを入れます。それぞれ、CドライブとかDドライブとか、どこでもいいので展開したフォルダをまるごと入れましょう。インストール作業はこれで終わりです。
それができたら、コマンドプロンプトを立ち上げ、先ほどPCATTCP本体をほりこんだフォルダへ移動します。とりあえず、テストで1回やってみましょう。
データの受信側をPC Aとし、送信側をPC Bとします。まず、PC Aで次のコマンドを入力して、受信可の状態にします。

> pcattcp -r -f m

次に、PC Bで送信コマンドを入力し、PC Aへデータを送ります。

> pcattcp -t -f m 192.168.0.2

結果はPC AのプロンプトにもPC BのプロンプトにもMbps単位で自動的に表示されます。
この例では、ちゃんと1024byte=1Kbyte、1024Kbyte=1Mbyteと計算してくれるので、測定データも正確です。FTPでは1000で割った値を返してくるので、これで計算するとちょっとおかしくなったりするのです。通信の世界では、1000単位で計算するのが正しいとか諸説ありますが、PCATTCPでは1024ずつ桁上げして計算しています。
送信されるデータのサイズは、デフォルトで8192×2048=16777216byte(16Mbyte)です。-sオプションを付けてコマンドを入れると分かりますが、ABCDEFG...と順番に並んだアホなデータの送信です。
PC Aを送信側、PC Bを受信側にしても試してみましょう。

▼ ▼ ▼ ▼ ▼

ある程度、基本的な使い方が慣れてきたら、自分好みのオプションを付けてもやってみましょう。よく使いそうなオプションを以下に記します。

-r受信側にする
-RTCP/UDPどちらも連続して受信する
-t送信側にする
-l #バッファの大きさを#(byte)にする
-n #送信するバッファの数を#にする
-f #送受信のレートの表示単位を指定する
(k=Kb/s、m=Mb/s、g=Gb/s、K=Kbytes/s、M=Mbytes/s、G=Gbytes/s)
-p使用するポートを指定する(送信側、受信側で必要)
-c(送信時)データを絶え間なく送信(Ctrl+Cが押されるまで送信し続ける)
(受信時)切れ目なく連続して受信する

-lと-nオプションで、送信するデータを16Mbyteからもっと大きくしたりできます。また、受信側で-sオプションを使うと、受け取ったデータをstdout(DOSプロンプト)に表示できますが、これを使うとスループットの結果が落ちてしまうので、使わない方が賢明でしょう。他に、-uオプションでUDPでデータの送受信ができますが、無線のデータをUDPで送ると、これまたスループット計測の意味がないので、これも使わないようにしましょう。-uオプションを使うと、ACK応答などを待たない分、猛烈に速いスループットが出たりします。それはそれで面白いのですが。
スループットを正確に出すには、何回か測定した結果を平均する必要がありますが、いちいち受信側と送信側のマシンでコマンドを実行するのは面倒です。そこで、受信側では-Rオプションを使って連続してデータを受け取れるようにしておきましょう。

> pcattcp -R -f m

それで、測定側で何回か送信コマンドを入れるか、コマンドを繰り返すバッチファイルでも作成して、送信も連続して行うようにすればいいでしょう。

▼ ▼ ▼ ▼ ▼

アンテナの向きを変えたり、位置を変えたり、いろいろ試してスループットが最速になる状態で使えるようになればベストでしょう。目標値は、11aなら20Mbps、11gなら18Mbps、11bなら4.5Mbpsというところでしょうか。

(2003.04.15)