全5090文字
PR

PIとDTPから成り立つ

 FTPが2本のTCPコネクションを使うことを理解するには、FTPを構成する2つの機能を知る必要がある。FTPはプロトコルインタープリター(PI)とデータ転送プロセス(DTP)と呼ばれる2種類の機能で構成される。

 PIはFTPの制御を担う機能である。FTPクライアントとFTPサーバーの間でファイル転送を要求したり応答したりする(図2)。

図2●PIとDTPの2つの機能で構成される
図2●PIとDTPの2つの機能で構成される
FTPはプロトコルインタープリター(PI)とデータ転送プロセス(DTP)と呼ばれる2種類の機能で構成される。それぞれの機能がTCPコネクションを張るため、FTPでは2本のTCPコネクションが必要になる。
[画像のクリックで拡大表示]

 PIとDTPはいずれもクライアントとサーバーの両方に実装されている。クライアント側のPIは、FTPクライアントソフトに入力されたコマンドを要求としてサーバー側のPIに送信。受信したサーバー側のPIはそれに対する応答(レスポンス)を返す。

 一方のDTPはOSのファイルシステムにアクセスして、特定のファイルやフォルダーを参照したり、作成・削除・変更したりする機能を備えている。つまりファイルの操作や転送はPIが指示し、実際のファイル操作や転送はDTPが行うことになる。

 FTPではクライアントとサーバーのPI同士とDTP同士がそれぞれTCPコネクションを張る。このため2本のTCPコネクションが必要なのだ。PIとDTPのコネクションを張るために使われるサーバーのポートが、それぞれTCP 21番とTCP 20番なのである。

 PIとDTPは異なるTCPコネクションを張るため、ファイル転送の途中であっても、コマンドやレスポンスをやりとりできる。

コマンドは多種多様

 前述のようにクライアントのPIはサーバーのPIへコマンドを送信する。コマンドは「認証」「切断・中断」「ファイル転送」「データコネクション」「ディレクトリーリスト」に大別できる(図3)。

図3●FTPクライアントが送信するコマンドの例
図3●FTPクライアントが送信するコマンドの例
FTPクライアントのPIが送信するコマンド(FTPコマンド)は「認証」「切断・中断」「ファイル転送」「データコネクション」「ディレクトリーリスト」に大別できる。
[画像のクリックで拡大表示]