FTPの仕組みを図解で説明
ファイル転送の方式「アクティブ」と「パッシブ」

会社で「FTPで転送して」と聞くことがあると思います。

「FTP」知っていますか?そのシステムの構成や技術について説明できますか?

ファイルを転送するものくらいの理解の人も多いとお思います。

FTPについて知らない人やわからない人、説明できない人でも分かるようにFTPを説明していきます。

FTPとは?

FTP(File Transfer Protocol)は、ファイル転送を行うための通信プロトコルです。

ファイル転送に特化しているもので、大容量のファイルの転送などに適しています。

また、特化しているプロトコルのため、動作が早いのも特徴です。

主に離れた場所の拠点に大容量のファイルを転送したり、Webサーバにコンテンツをアップロードする時や出張先から社内のサーバに格納する時に使用します。
離れた場所でなくてもFTPは使用可能です。

FTP通信の例は下図のようになります。
それぞれのファイルサーバにFTPのサービスを構築していれば、それぞれのクライアントにインストールされたFTPアプリから接続することができます。

ただし、FTP通信は暗号化されていないため、機密情報を送るのには適していません

使用する場合は、クライアントソフトやサーバを常に最新状態にしておくことをお勧めします。

また、SSLを使用して暗号化通信を行う「FTPS」などの暗号化FTP通信機能も存在しています。

どうしても暗号化通信が必要な場合は、「FTPS」を使用することを検討してください。

FTPの仕組み

FTPはFTPサーバとFTPクライアントを接続していますが、その接続の技術として大きな特徴が2つあります。

①2種類のコネクション

②2種類のモード

接続するコネクションの仕組み、通信方法のモードについて下記で説明します。

2種類のコネクション〜制御用コネクションと転送用コネクション〜

FTPは「制御用コネクション」「転送用コネクション」を行っています。

HTTPなどでは処理を実行する時、1つずつ処理を完了してから次の処理が実行されます。

しかしFTPは、この2つコネクションを行っていることで、処理を行いながら別の処理を実行することができます。

例えば、転送用コネクションでファイルを転送中でも、制御用コネクションを使用して中断をすることができます。

2種類のモード〜アクティブとパッシブ〜

FTPの接続を行う際に「アクティブ」か「パッシブ」のモードを選択します。

FTPサーバ側で、アクティブで通信するかパッシブで通信するか決まっているので、それに合わせてクライアント設定を行います。

「アクティブ」モードは①〜③の流れで通信を行います。

①クライアントがサーバにデータ転送に利用するIPアドレスとポートを通知
②クライアントは通知したポートで待機
サーバからクライアントに通知されたIPとポートで接続

「パッシブ」モードは①〜④の流れで通信を行います。

①クライアントがサーバにデータ転送に利用するIPアドレスとポートを要求
②サーバがIPアドレスとポートを通知
③サーバが通知したIPアドレスとポートで待機
クライアントは通知されたIPアドレスとポートへ接続

2つのモードを簡単に接続すると、

アクティブは、サーバからクライアントに制御用コネクションを行うモード

パッシブは、クライアントからサーバに制御用コネクションを行うモード

になります。

これらのモードのどちらを使用するかは、FTPサーバの設定で決まります。

それぞれの環境に合わせて、FTPクライアントの設定を行なってください。

まとめ

仕組みで少し難しい話になりましたが、FTPについて基本的にはファイルを転送する方法というのが分かっていれいいとは思います。

ですが、サーバの構築などを行なった際にFTPの設定を行うことがありますが、ここの構成がわかっていないと何が必要なのか分からず困ってしまうこともあります。

また、基本情報処理試験で当たり前の技術として問題が出てくるため、覚えておいた方がいいと思います。

FTPサーバを構築するのは簡単で、低スペックのパソコンで構築することができます。
そのため、一度自分のパソコンで設定を行なってみることをお勧めします。

ちなみに自宅では、FTPサーバを構築しており帰省をした際にファイルを転送するのに使用したり、友人に渡したいファイルがある際にFTPを使用しています。

実装してみると結構便利なので、是非やってみてください。