あるコンピュータからネットワークを介して遠く離れた別のコンピュータにファイルを転送することは、基本的なネットワーク アプリケーション、つまりファイル転送です。
ファイル転送プロトコル (FTP) は、インターネット上で最も広く使用されているファイル転送プロトコルです。
- FTP は対話型アクセスを提供し、顧客がファイルのタイプと形式を指定したり(ASCII コードを使用するかどうかを指定したり)、ファイルにアクセス権を付与したりできます(ファイルにアクセスするユーザーは認証され、有効なパスワードを入力する必要があるなど)。
- FTP は各コンピュータ システムの詳細を保護するため、異種ネットワーク内のコンピュータ間でファイルを転送するのに適しています。
- ユーザー権限管理により、ユーザーはリモート FTP サーバー上のファイルを管理できるようになります。
- 匿名FTP(ユーザーIDは匿名)によるパブリックファイル共有機能を提供します 。
FTP サーバー プロセスは、新しいリクエストの受信を担当するメイン プロセスと、個々のリクエストの処理を担当するいくつかのスレーブ プロセスの 2 つの部分で構成されます。
次の 2 つの並列 TCP 接続が FTP クライアントとサーバーの間に確立されます。
- 1 つは制御接続で、セッション全体を通じて開いたままになり、 FTP 関連の制御コマンドを送信するために使用されます。
- もう 1 つは、ファイル転送に使用されるデータ接続で、ファイルが転送されるたびに確立され、転送が完了すると閉じられます。
デフォルトでは、FTP は制御接続に TCP ポート 21 を使用し、データ接続に TCP ポート 20 を使用します。
ただし、データ接続の確立に TCP ポート 20 を使用するかどうかは送信モードに関係しており、アクティブモードは TCP ポート 20 を使用し、パッシブ モードはサーバーとクライアントのネゴシエーションによって決定されます。
クライアントはデフォルトでポート 20 を使用してサーバーとのデータ接続を確立します (×) ←クライアント ポートのポート番号はクライアント プロセス自体によって提供されます。