コンテンツにスキップ

FTP

ぶっちゃけ業務ではあまり使わないが、各試験でたびたび出題されるのでまとめ。 (sftpは使うけどね)

通信の仕組み

FTP(ファイル転送プロトコル)は主にアクティブモードとパッシブモードの2つのモードで動作します。

  • アクティブモード: アクティブモードでは、クライアントがデータ通信用のランダムなポートを開き、その情報をサーバーに通知します。サーバーはそのポートに、自身のポート20から接続します。
  • パッシブモード: パッシブモードでは、サーバーがランダムなポートを開き、その情報をクライアントに通知します。クライアントはそのポートに接続してデータ転送を行います。

ポートについて: - FTPは、コマンド制御用にポート21を、アクティブモードでのデータ転送用にポート20を使用します。 - パッシブモードでは、データ転送用のポートはサーバーによって動的に割り当てられます。

sequenceDiagram
  participant C as クライアント
  participant S as FTPサーバー

  Note over C,S: アクティブモード
  C->>S: ポート21に接続(制御チャネル)
  S->>C: 確認応答
  C->>S: ランダムなポート(例:P1)でPORTコマンド
  S->>C: 確認応答
  S->>C: ポート20からP1に接続(データチャネル)

  Note over C,S: パッシブモード
  C->>S: ポート21に接続(制御チャネル)
  S->>C: 確認応答
  C->>S: PASVコマンド
  S->>C: ランダムなポート(例:P2)で応答
  C->>S: P2に接続(データチャネル)