FTP
読み:エフティーピー
外語:FTP: File Transfer Protocol

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

概要

通信
 当初のFTPは下位の転送プロトコルとしてTCPを前提としていたが、現在は各種プロトコルに対応し、様々なネットワーク・OS間で接続できる。
 FTPはクライアントサーバー型の接続であり、サーバーで起動されたFTPデーモンに対してクライアントが接続する。FTPセッションはクライアント制御プロセスからサーバー制御プロセスに対し制御用コネクションを設定することで開始され、その後、転送用のポート番号やデータフォーマット、ファイル名、保存ファイル名などの情報が交換される。

処理
 FTPには二つのモードがある。一つはアクティブモードであり、もう一つはパッシブモード(pasv)である。
 アクティブモードの場合、同期制御のための転送開始コマンドをやりとりした後、FTPサーバーのプロセスが各ファイル毎に新規のデータ転送用のコネクションを設定して転送を始め、転送完了のたびにコネクションを解放する。つまり、ファイル転送のためのコネクションは、制御用コネクションとは逆にFTPサーバーからFTPクライアントへと作られる。
 パッシブモードの場合は、クライアント側からデータ転送の接続を行なう。クライアントを保護するようなネットワークが多くなっていることから、現在ではパッシブモードが主流である。

特徴
 名前の似たプロトコルにTFTPがあるが、全く異なるプロトコルである。
 TFTPは簡単なプロトコルだが、FTPは現在TCP/IP上で使われている中で、最も複雑なプロトコルの一つではないかと考えられている。

制御機能
 FTPは単に指定されたファイルを転送するだけではなく、相手側電子計算機内の対象ディレクトリ移動やファイル一覧の取得などの機能が用意されている。
 単純な2ホスト間の通信だけでなく、ホストAからの制御コマンドでホストBからホストCへファイルを転送することも出来る。ただし、現在ではセキュリティの理由により、この機能は利用できない場合が多い。

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

仕様
 初期の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(クライアントが自動送信)パッシブモードにする

セキュリティ

認証
 FTPによるファイル転送では、一般には不正アクセスの防止のためにログイン名とパスワードによるユーザー認証を必要とする。
 不特定多数にファイルを配布するためには、匿名ログイン可能なAnonymous FTPが用いられる。
 なお、FTPでは、制御コマンドやパスワードは平文で送られる。
 このため現在は単なるFTPは使用が避けられるようになり、通信を暗号化したものが使われるようになっている。

種類
 FTP関連のプロトコルには、次がある。
 FTPSとSFTPは別のプロトコルである。

再検索