通信用語の基礎知識 戻る
アスカネットワークサービス

FTP

読み:エフティーピー
外語:FTP: File Transfer Protocol
品詞:名詞
1997/10/28 作成
2007/06/13 更新

ファイル転送プロトコル。コンピュータ間でファイルを転送するための方式の一つ。広く普及しており、UNIXシステムなど、多くのシステムで実装されている。

通信

当初のFTPは下位の転送プロトコルとしてTCPを前提としていたが、現在は各種プロトコルに対応し、様々なネットワーク・OS間で接続できる。

FTPはクライアント・サーバ型の接続であり、サーバで起動されたFTPデーモンに対してクライアントが接続する。FTPセッションはクライアント制御プロセスからサーバ制御プロセスに対し制御用コネクションを設定することで開始され、その後、転送用のポート番号やデータフォーマット、ファイル名、保存ファイル名などの情報が交換される。

処理

FTPには二つのモードがある。一つはアクティブモードであり、もう一つはパッシブモード(pasv)である。

アクティブモードの場合、同期制御のための転送開始コマンドをやりとりした後、FTPサーバのプロセスが各ファイル毎に新規のデータ転送用のコネクションを設定して転送を始め、転送完了のたびにコネクションを解放する。つまり、ファイル転送のためのコネクションは、制御用コネクションとは逆にFTPサーバからFTPクライアントへと作られる。

パッシブモードの場合は、クライアント側からデータ転送の接続を行なう。クライアントを保護するようなネットワークが多くなっていることから、現在ではパッシブモードが主流である。

名前の似たプロトコルにTFTPがあるが、全く異なるプロトコルである。

TFTPは簡単なプロトコルだが、FTPは現在TCP/IP上で使われている中で、最も複雑なプロトコルの一つではないかと考えられている。

制御機能

FTPは単に指定されたファイルを転送するだけではなく、相手側コンピュータ内の対象ディレクトリ移動やファイル一覧の取得などの機能が用意されている。

単純な2ホスト間の通信だけでなく、ホストAからの制御コマンドでホストBからホストCへファイルを転送することも出来る。ただし、現在ではセキュリティの理由により、この機能は利用できない場合が多い。

変換機能

転送されるデータがリモートまたはローカルのコンピュータ上で、印刷可能なテクスト形式なのか、あるいはバイナリファイルなのかを規定する方法が用意されており、必要に応じて改行コードなどの変換も可能。

また、環境に合わせたファイル名の変換機能なども用意できる。

セキュリティ

FTPによるファイル転送では、一般には不正アクセスの防止のためにログイン名とパスワードによるユーザ認証を必要とする。

不特定多数にファイルを配布するためには、匿名ログイン可能なAnonymous FTPが用いられる。

なお、制御コマンドやパスワードの暗号化、通信チャネルの暗号化については、基本的には対応していない。別のプロトコルを使用する必要がある。

仕様

初期のTCPを前提としたFTPはRFC 765外部リンクで規定されており、現在の仕様はRFC 959外部リンク(STD 9外部リンク)で規定される。

Anonymous FTPについてはRFC 1635外部リンク、パッシブモードはRFC 1579外部リンクでそれぞれ規定されている。

ポート番号は、制御用として21/tcp、データ転送用として20/tcpが一般に使われる。

主要なコマンド

制御コマンドユーザコマンド(例)機能
USER usernameuser ユーザ名 パスワードユーザ認証
PASS password(user併記/プロンプト入力)ユーザ認証
CWD directorycd ディレクトリ名ディレクトリ移動
PWDpwd現在位置表示
LISTdirファイル一覧表示
TYPE (A/I)ascii または binaryファイル形式指定
STOR filenameput ファイル名ファイル送信
RETR filenameget ファイル名ファイル受信
PORT addr,port(クライアントが自動送信)転送接続
PASV(クライアントが自動送信)パッシブモードにする