スポンサーサイト  このエントリーを含むはてなブックマーク はてなブックマーク - スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FTP のパッシブモード  このエントリーを含むはてなブックマーク はてなブックマーク - FTP のパッシブモード

FTP のパッシブモードについての解説です。

FTP クライアントを使っていてインターネット上の FTP サーバーからファイルをダウンロードできないとき、パッシブモードにするとうまく行くことがあります。このパッシブモードの意味を知らない人が案外多いようです。FTP クライアントのヘルプ等にも「うまく接続できない場合はパッシブモードにしてみて下さい」程度のことしか書かれておらず、その意味についてはほとんど触れられていません。パッシブモードとはいったい何なのでしょうか。

まずは基本的な FTP の仕組みを知ることが重要です。FTP は2つの接続、コントロール接続とデータ接続とを使います。コントロール接続はコマンドとその応答とをやり取りするための接続、データ接続は実際にファイルをダウンロードするための接続と考えてもらえれば大体合っています。コマンドラインの FTP コマンドを使用するとき、最初に FTP ftp.sample.com などとして接続するのはコントロール接続です。

なぜ2つの接続を使用するのか。分かりやすいケースとしては、大きなファイルのダウンロードを途中で中止する場合があります。もしコマンドもファイルも同じ接続を使っていると、ダウンロードを途中で止めるには接続を切るほかありません。

さてこの2つの接続、FTP の仕様では、コントロール接続は必ずクライアントからサーバーへと繋ぐのに対し、データ接続はデフォルトでサーバーからクライアントへと繋ぐことになっています。正式名称かどうか不明ですが、一般にこれを「通常モード」と呼びます。

カンの良い方ならもうこれで気づかれたかもしれません。つまり、サーバーからクライアントへと接続することが出来ない環境では、通常モードのデータ接続を作れない=ファイルを送れない、ということになるのです。インターネットへの接続にルータやファイアウォールを使用している環境では、インターネット側からルータ(またはファイアウォール)の内側へと接続することをセキュリティを理由にたいてい禁止しており、その場合通常モードでのダウンロードが出来ないわけです。

一方パッシブモードでは、データ接続もクライアントからサーバーへと接続します。クライアントからサーバーへのコントロール接続ができる環境なら、クライアントからサーバーへのデータ接続もできるのが普通です(「必ず」とは言えませんが)。パッシブモードにするとダウンロードがうまく行く場合があるのはこのためなのです。

FTP は非常に古くからあるプロトコルですが、とてもよく考えられています。大きなファイルのダウンロード中にそれを中止できる機能などは、同じく古くからあるメール取得用のプロトコル POP3 などには無い特徴です。またコントロール接続・データ接続という2種類の接続と、通常モード・パッシブモードという2種類のモードとを使った応用として、クライアントからのコマンドによって2台の別々のサーバー間でファイルをやり取りさせるようなことも出来るように考えられています。

通常モードで繋がるならパッシブモードでもたいてい繋がります。それに通常モードを使うことのメリットは、上に書いたような別々のサーバー間でファイルをやり取りさせたい場合くらいです。ということは、普通にファイルをダウンロードするだけなら常にパッシブモードにしていても特に問題ないということになります。少なくとも Windows XP の FTP コマンドは自動的にパッシブモードを使用するようです。


上の解説にウソはないつもりですが、簡単にするためにかなり端折ったり、意図的に簡単な用語を使ったりしています。@IT に良い解説がありました。
>>器用な二刀流、FTPでファイル転送!
「二刀流」っていうのはうまい表現ですね。

FTP は RFC でも規定されています。RFC 959 日本語訳

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://srgia.blog46.fc2.com/tb.php/161-f963ef9b

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。