ttcp - test TCP and UDP performance

ネットワークのパフォーマンスを測定するツール。

ネットワークといっても、二つのノード間の速度を測定するものである。

ネットワークを測定するツールは専用ツールしかないと思っていたんだけど、ttcpなるコマンドを発見。発見というほどでもなく昔っからあるツールで知らなかっただけだった。

BSDやLinux、Windows、MacOSXなど、どのような環境でも実行できそう。

というわけで導入してみた。

Windows

インストールディスクに入っているらしいのであるが、プリインストールマシンだったので、ディスクはない。
購入したときにバックアップを作成したので、もしかしたら何処かにあるかもしれないのであるが面倒だったので、もう少し調べてみるとCygwinにもttcpがあることが分かった。
普段からviを使いたい(爆)ので導入していた。でもttcpは入れていなかったので、再度Cygwinのsetup.exeを起動してttcpをチェックする。Cygwinのsetupに従ってインストールされた。

MacOSX Leopard

とりあえずターミナルでコマンドをたたいてみたが、入ってなかった。
ソースからコンパイルするかとも思ったが、darwinportsを利用してみる。

darwinportsからdarwinportsをダルンロードしてきてインストールする。

ターミナルからttcpのインストールを実行する。

%  cd /opt/local/bin/portslocation/dports/ttcp
%  sudo port install ttcp  
Password:

実行してみる

受信側の準備

$ ttcp -r -s
ttcp-r: buflen=8192, rbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
   :
   :

送信側の準備

% ttcp -t -s node.ip.address
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> node.ip.address
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 0.37 real seconds = 44378.47 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.18, calls/sec = 5547.31
ttcp-t: 0.0user 0.0sys 0:00real 2% 0i+0d 0maxrss 0+0pf 557+0csw

というわけで、16MBのランダムデータ(-sオプション)を送信するのにかかった時間が表示される。 あっという間に終わってしまうので、

ttcp -t -s -n20480 node.ip.address

とすることで、160MBのデータを送信してみると、実時間は、0.37秒から3.62秒となっている。

Mac -> WinとWin -> Macでは転送速度が大分違うので、パフォーマンスの差はマシンの差でもあるんでしょうね。 そうだ、今度BootCampでもやってみよっと。

追記 1

先のスループットは、HUB経由だった。

Atom君ルータでやってみた。送信側と受信側の環境は同じ。

iMac === HUB === Atom === Win

ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> node.ip.addr
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 1.65 real seconds = 9946.70 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.82, calls/sec = 1243.34
ttcp-t: 0.0user 0.0sys 0:01real 1% 0i+0d 0maxrss 0+0pf 3438+0csw

うむ約1/5になるのね。
考察はもうちょっと勉強してからだな。


Last-modified: 2022-05-05 (木) 22:27:10