ぬうぱんの備忘録

技術系のメモとかいろいろ

作った曲一覧はこちら

tsunami-udpの紹介

この記事は

tsunami-udpというファイル転送プロトコルの紹介記事です。
インストール手順から、簡単な使い方までを説明します。

検証した計算機環境

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にパスを通しておきましょうね。

このtsunami-udpをファイル送信側と受信側の両方でインストールしておけば準備完了です。

使い方

  1. ファイル送信側でサーバー(tsunamid)を起動し
  2. 受信側でクライアント(tsunami)を起動
  3. クライアントからサーバーに"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のほうが結果的に速いという事態になっている。なんでや。