FTP
ファイルを転送するためのアプリケーション層プロトコル。命令と応答をやり取りする制御用コネクションと、ファイルの中身などを運ぶデータ転送用コネクションにTCPの接続を分けて使う。
イマシルちゃんの解説
FTPは、ネットワーク越しにファイルを送ったり受け取ったりするためのプロトコルだよ。
特徴は、TCPの接続を命令とデータで分けることなんだ。
まず制御用コネクションで「このファイルを送って」と頼み、相手からの返事を受け取るよ。
ファイルの中身は、別に用意したデータ転送用コネクションで運ぶの。
命令のやり取りと転送を分けているので、ファイルを運んでいる途中でも中止を頼めるんだ。
離れたコンピュータにあるファイルを、共通の手順で取り出したり保存したりできるんだよ。
この解説はわかりやすかったですか?
より深い解説
定義
FTP(File Transfer Protocol)は、RFC 959で定められたファイル転送のプロトコルである。TCPを使い、役割の違う2本のコネクションを使い分ける。
| コネクション | 役割 | サーバ側のポート番号 |
|---|---|---|
| 制御用コネクション | コマンドと応答のやり取り | 21 |
| データ転送用コネクション | ファイルの中身や、ファイル一覧の転送 | アクティブモードでは20、パッシブモードではサーバが指定した番号 |
制御用コネクションは接続している間ずっと維持し、データ転送用コネクションは転送のたびに張る。
主なコマンド
| コマンド | 内容 |
|---|---|
| USER / PASS | 利用者名とパスワードを送る |
| ACCT | 課金などのためのアカウント情報を送る |
| RETR | ファイルをダウンロードする |
| STOR | ファイルをアップロードする |
| LIST | ファイルの一覧を得る |
| TYPE | データの形式を指定する(A=テキスト、I=バイナリ) |
| MODE | 転送モードを指定する(ストリーム、ブロック、圧縮) |
| PORT | クライアントが待ち受けるIPアドレスとポート番号を伝え、サーバから接続させる(アクティブモード) |
| PASV | サーバ側のデータ転送用のポートを要求し、クライアントから接続する(パッシブモード) |
| QUIT | 接続を終える |
IPv6にも対応した拡張版として、PORTに当たるEPRTと、PASVに当たるEPSV(RFC 2428)がある。
アクティブモードとパッシブモード
データ転送用コネクションを、サーバとクライアントのどちらから張るかで2つのモードがある。
| モード | コマンド | 誰が接続するか |
|---|---|---|
| アクティブモード | PORT | サーバからクライアントへ |
| パッシブモード | PASV | クライアントからサーバへ |
クライアントがNATやファイアウォールの内側にいる場合、外のサーバから内側へ接続するアクティブモードは遮断されやすい。そのため、現在はパッシブモードが広く使われている。
セキュリティ
FTPは、パスワードもファイルの中身も暗号化せずに送る。安全に使うには次の方法がある。
実際の試験ではここに出る!全12問
ネットワークスペシャリスト
- 午前Ⅱ