FTPの動作
FTPはファイル転送のプロトコルである。TCP/IPで動作するファイル転送プロトコルは複数あり、前述のHTTPもその1つである。しかし、他のプロトコルよりも信頼性が高く確実な転送を行なう仕組みが備わっているため、FTPはインターネットの事実上の標準ファイル転送プロトコルとなっている。
FTPは、1組のクライアントとサーバの間で、2種類のTCPコネクションを使用する(図2)。1つはファイル転送の制御用コマンドを送受信する「制御コネクション」で、もう1つは実際にファイル(データ)を転送する「データコネクション」である。後者のデータコネクションは、転送するファイルごとに確立される。たとえば5個のファイルをサーバから一括して取得する場合、制御コネクションは1回だけ確立され、データコネクションは5回開設される。
実際の手順は、まずFTPサーバが21番のポートを開設して、クライアントからの接続を待つ。クライアントは接続要求により制御コネクションを確立し、ユーザーIDとパスワードによる認証を経てサーバにログインする。それから、クライアントからファイル転送を指示すると、必要な回数ぶんのデータコネクションがその都度開設され、そのうえでデータ転送が行なわれる。
データコネクションの開設方法も2種類ある。クライアントがデータポートを受動的に開設し、そのポート番号をサーバにPORTコマンドで連絡し、サーバから能動的に開設する「アクティブモード」が1つ。そしてもう1つは、クライアントがPASVコマンドでサーバ側にデータポートの開設を要求し、クライアントからサーバに開設する「パッシブモード」である。
FTPのプロトコル
FTPでは制御コネクションを通して、クライアントからサーバへはコマンドを送信し、サーバからクライアントへは応答を返す。コマンドと応答の対話的なやり取りにより、ファイル転送を始めとするさまざまなファイル処理を行なう。
コマンドにはログイン時に用いるUSER(ユーザーIDの識別)やPASS(パスワードの識別)のほか、転送するファイルの指定時に使うCWD(ディレクトリの移動)やTYPE(データタイプの指定)、ファイルの処理方法を指示するRETR(ファイルの取得)やSTOR(ファイルの書き込み)、DELE(ファイルの削除)などがある。また、ABORでファイル転送を中断することもできる。
応答は応答コード(3桁の整数)と、それに対応するメッセージで構成される。応答コードはHTTPのステータスコードと同様に、399までが正常・400以上がエラーを意味する。正常は、100番台が「処理の事前応答」、200番台が「処理の完了応答」、300番台が「処理の中間応答」に分類される。300番台の応答が戻ってきたら、クライアントは追加のコマンドを送信しなければならない。エラーは、400番台が「一時的なエラー」、500番台が「恒久的なエラー」の2つに分類される。
(次ページ、「メールの送信と転送を担当SMTP」に続く)
この連載の記事
-
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第3回
ネットワーク
特別なIPアドレスって知っていますか? -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ