検証した計算機環境
ubuntu(12.04 LTS)
tsunami-udpとは
サイズの大きいファイル自体の転送をUDPで、転送の制御をTCPで行うプロトコルです。
1つのHUBにつながっているマシン間で高速にファイルを転送したい! っていう時に便利。
遠いネットワーク越しの転送には不向きかも?
遠いネットワークごしの転送で有利っぽいですね?
インストール
公式(Tsunami UDP Protocol - Browse /tsunami-udp at SourceForge.net)に行って最新版のソースコード一式を入手します。
解凍して出てきたディレクトリ内の"recompile.sh"を実行した後に"sudo make install"すれば、"/usr"以下に"bin", "include", "lib"がインストールされます。めっちゃ簡単。
"/usr"以下にインストールしてほしくないと言う人は"recompile.sh"をエディタで開いて"./configure"の行を"./configure --prefix=/opt/hoge/piyo"とかしておけばインストール先を変更できます。インストール先を変えた場合はbinにパスを通しておきましょうね。
使い方
- ファイル送信側でサーバー(tsunamid)を起動し
- 受信側でクライアント(tsunami)を起動
- クライアントからサーバーに"get"コマンドを送りつけて所望のファイルをダウンロード
というのが基本的な流れ。
以下詳細。
- 送信側
送信したいファイルの存在するディレクトリに移動してサーバーを起動。
この時、送信したいファイルを引数で渡す。
$ cd hoge/piyo/ $ tsunamid foo bar
- 受信側
クライントを起動後、サーバーに接続して"get"でファイルを取得する。
$ tsunami tsunami> connect huga tsunami> get * tsunami> quit
この場合はサーバー側で指定した"foo"と"bar"が落ちてくる。
ちなみにこれらのコマンドは"tsunami"の引数として与えることができ、
$ tsunami connect huga get "*" quit
とすれば、処理が全て終わった段階で自動的にクライアントが終了する。
- 送信側
Ctrl+Cとかでサーバーを落とせば後始末完了。
問題
ファイル1つの転送が終わるごとに謎の間が発生していて、そのせいでscpのほうが結果的に速いという事態になっている。なんでや。