Windows 付属の ttcp コマンドを使用して
ネットワークのスループットを調査する方法は次の通り。
準備するモノ:Windows PC 2 台
Windows XP あるいは Windows 2003 のインストール CD
ttcp の使い方は簡単で、
Windows に ttcp.exe を任意の場所にコピーしておいて、
ttcp.exe を DOS プロンプトから実行するだけ。
これだけで、PC と PC の間のネットワークのスループットを計測できる。
ttcp.exe はインストール CD の以下の場所にある。
\VALUEADD\MSFT\NET\TOOLS
準備ができたら特別なオプションは指定せずに早速 ttcp を実行してみる。
ttcp を実行する際は、2 台の PC で受信側と送信側というそれぞれ 2 つの役割を
実行する必要がある。
まず以下のコマンドを受信側の PC で実行する。
>ttcp -r
続いて送信側の PC で以下のコマンドを実行するとスループットの計測開始。
例は、受信側の IP アドレスが 1.1.1.1 の場合。
>ttcp -t 1.1.1.1
ttcp は受信側の準備ができていないと送信しないので、
先に受信側のコマンドを実行しておく必要がある。
実行後の出力結果は次の通り。
○ 受信側の出力結果
>ttcp -r ttcp-r: local 1.1.1.1 <- remote 2.2.2.2 ttcp-r: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp ttcp-r: 16777216 bytes in 279266 real milliseconds = 58 KB/sec ttcp-r: 2051 I/O calls, msec/call = 136, calls/sec = 7, bytes/call = 8180
○ 送信側の出力結果
>ttcp -t 1.1.1.1 ttcp-t: local 2.2.2.2 -> remote 1.1.1.1 ttcp-t: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp -> 1.1.1.1 ttcp-t: done sending, nbuf = -1 ttcp-t: 16777216 bytes in 279144 real milliseconds = 58 KB/sec ttcp-t: 2048 I/O calls, msec/call = 136, calls/sec = 7, bytes/call = 8192
何もオプションを指定せずに実行すると、TCP を使った測定が実行される。
結果からスループットは送信側から見ても受信側から見ても
58 KB/sec (464 Kbps) であることが分かる。
これを使えば、例えばルータやファイアウォールを 2 台の PC で挟んで
実行することでルータやファイアウォールのスループットを計測することもできる。
さらに言えば、ルータやファイアウォールで帯域制限を実行している場合に、
意図した通りに動作しているかを確認することも可能。
SSG5 で帯域制限 ( traffic shape )
上記例は、SS5 で 500 Kbps の帯域制限をかけた場合の出力結果。
比較のために、SSG5 で帯域制限する前の受信側の出力結果は次の通り。
>ttcp -r ttcp-r: local 1.1.1.1 <- remote 2.2.2.2 ttcp-r: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp ttcp-r: 16777216 bytes in 1575 real milliseconds = 10402 KB/sec ttcp-r: 2068 I/O calls, msec/call = 0, calls/sec = 1313, bytes/call = 8112
制限がかかっていないと 80 Mbps ぐらい出ていることが分かる。
その接続が制限をかけることで 464 Kbps になっていることで、
帯域制限の機能が意図した通り動作していることが確認できる。