ttcp を使ってみる

Misc 階層に戻る  |  ホームに戻る

ttcp とは

ttcp は米陸軍弾道学研究所で開発されたネットワークベンチマークソフトであり、 現在はパブリックドメインのソフトウェアとなっている。 全ソースが1000行に満たない、小さなソフトウェアである。

任意のホストA→ホストB間でトラフィックを発生させることができるが、 両端のホストに ttcp をインストールしておく必要がある。

ttcp の入手とコンパイル/インストール

FreeBSD の場合

ports ツリーに net/ttcp があるので、そこで make install するだけである。

# cd /usr/ports/net/ttcp
# make install clean

Solaris の場合

まず、ftp で ソースマニュアルドキュメント を入手する。その上で、以下のような手順でコンパイル・インストールする。

# gcc -O -c ttcp.c
# gcc -o ttcp ttcp.o -lsocket -lnsl
# mkdir -p /usr/local/bin /usr/local/man/man1 /usr/local/share/doc/ttcp
# cp ttcp /usr/local/bin
# strip /usr/local/bin/ttcp
# cp ttcp.1 /usr/local/man/man1
# cp README /usr/local/share/doc/ttcp

ちなみに、Solaris では /usr/openwin/bin に ttcp という同名のコマンドが存在する (ToolTalk メッセージを発生する cp コマンド) ので、注意すること。

使用方法

送信側ホストでは Transmission モード、受信側ホストでは Receive モードで ttcp を起動する。

(送信側)
# ttcp -t -s 受信側ホスト名
(受信側)
# ttcp -r -s

-t は Transmission モード、-r は Receive モードを意味する。 -s オプションは Transmission モードにおいては適当なパターン (*+,-. /0123456789:;<=>?@ABCD..... といった ASCII 文字の羅列となる) をパケットのデータ部に埋め込み、Receive モードにおいては受け取ったデータを無条件に捨ててしまう。 送受信するデータ自体が重要でない場合は -s オプションを付けると良い。 -s を付けないと 標準入出力からデータを受け渡しする。

10数秒経つとパケットの送信が終り、 送信側/受信側それぞれで結果が端末に出力される。

(送信側)
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> hostb
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 15.84 real seconds = 1034.39 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 7.92, calls/sec = 129.30
ttcp-t: 0.0user 11.6sys 0:15real 73% 12i+180d 304maxrss 0+2pf 1066+139csw
(受信側)
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 172.16.10.25
ttcp-r: 16777216 bytes in 15.83 real seconds = 1034.82 KB/sec +++
ttcp-r: 4015 I/O calls, msec/call = 4.04, calls/sec = 253.59
ttcp-r: 0.0user 1.6sys 0:15real 10% 0i+0d 0maxrss 0+0pf 1826+173csw

上は 100Base-TX スイッチングハブに差した同一セグメントのマシン同士 (どちらもアダプタは 100Base-TX であり、auto negotiation で full duplex となっている) の例であるが、片方のマシンが PCMCIA ネットワークアダプタを持つノート PC であるため、ほぼ 1MB/sec くらいしか出ていない。まあ、こんなものか。

ちなみに、通信自体は TCP で、送信側は任意の high port、受信側は 5001 番ポート (これがデフォルトらしい。-p オプションを使用することにより変更可能) を使用している。

Misc 階層に戻る  |  ホームに戻る

Copyright (C) 2001-2004
Last modified: Wed Aug 16 16:51:24 JST 2006
You are the 140003 th visitor.