目次
ITに関する勉強の中で「FTP」は多く登場します。しかし「FTPという単語は知っているけど、意味をいまいち理解していない」や「そもそもどんなときに使うのか分からない」という方も多いのではないでしょうか。
この記事ではIT初心者の方に向けて、FTPとはどんなものか、どのような仕組みなのか、分かりやすく説明します。
FTPとは?
FTPとはどんなものか、FTPの概要とFTPでできることの2つに分けて紹介します。
まずはじめにFTPとは
FTPとは「File Transfer Protocol」の略称です。日本語では「ファイル送信プロトコル」と訳せます。
プロトコルとは、コンピュータ同士で通信をする際の手順や規格を指します。データの形式やエラー処理方法など、通信時の約束のことです。つまりFTPとは、コンピュータ間でファイルを送信する際の手順や規格を取り決めた、約束事を指します。
FTPが利用される例として、Webサイトの公開が挙げられます。Webサイトを公開する際、テキストや画像などのファイルをサーバーに転送、つまりアップロードしなければなりません。その際のプロトコルを、FTPと呼びます。
FTPでできること
FTPでできることは、大きく分けると以下の4つです。
- ファイルのアップロード
- ファイルのダウンロード
- ファイルのバックアップ
- ファイルの編集
FTPではファイルのアップロードのみならず、ダウンロードも可能です。Webサイトをダウンロードしておけばバックアップもとれるうえ、ほかのパソコンとのファイル共有もできます。
さらに、1度アップロードしたファイルの編集も可能です。クライアントのデータとサーバーのデータをFTPソフトで同期することで、編集を行えます。わざわざ編集後のデータをアップロードする必要がないので、速くて便利です。
FTP通信の仕組み
FTPを用いた通信の仕組みを、初心者に向けて分かりやすく解説します。
FTPサーバーとFTPクライアントを相互で通信
FTPを用いて通信するために、FTPサーバーとFTPクライアントで相互間の通信を行います。サーバーとクライアント間でコネクションを形成して、ファイルの転送が行われる仕組みです。
FTPサーバーとFTPクライアントには、以下の違いがあります。
- ファイル転送を依頼:FTPクライアント
- ファイル転送の依頼を受ける:FTPサーバー
ユーザーはまずはFTPクライアントを経由して、FTPサーバーに指示を出します。FTPサーバーはインターネット上でWebサーバーと連携しているため、FTPサーバー上の操作がWebサーバーにも反映されるのです。
「PI」と「DTP」の2種類のプログラム
FTPでは、2種類のプログラムが使用されています。
- PI:命令をプロトコルに合わせて変換
- DTP:データを転送するプロセス
PIは「Protocol Interpreter」の略称で、クライアントからの命令をプロトコルに合わせて変換するプログラムです、「DTP」とは「Data Transfer Process」の略称で、データを転送するプロセスを指します。
この2つのプログラムはクライアントとサーバー、どちらにおいても稼働しています。2つのプログラムが揃うことで、FTPは正常に機能します。
FTPにおける2つのコネクション
FTPには、以下の2種類のコネクションが存在します。
- コントロールコネクション:制御用のコネクション
- データコネクション:転送用のコネクション
コネクションとは、「通信するもの同士が、仮想的に接続状態を確立すること」を意味する単語です。クライアントとサーバーの通信時に、コネクションを確立します。
コントロールコネクションは制御用のコネクションです。ログイン情報などを制御します。
データコネクションは、データの転送用のコネクションです。FTPサーバーから要求が出されると、データの転送処理に利用されます。
データ送受信時の2種類のモード
FTPのデータ送受信時には、以下に挙げる2つのモードがあります。
- バイナリーモード:改行コードの変換なし
- アスキーモード:改行コードの変換あり
バイナリーモードでは、改行コードの変換を行わずそのまま転送します。画像や音楽ファイルを転送する際に利用できます。
アスキーモードでは、改行コードを自動で変換して転送します。アスキーモードでは意図せぬ改行コードの変換が行われることがあるため、ファイルが破損することがあります。そのため、改行コードの変換が必要なファイルは、バイナリーモードで転送することがおすすめです。
FTPとセキュリティの課題
FTPはセキュリティ面に関して課題があるため、注意が必要です。ここではFTPの脆弱性について解説します。
FTPはセキュリティ面での脆弱性も
FTPを使用するに当たって、大きなデメリットがあります。それは、セキュリティ面の脆弱性です。
FTPは、クライアントとサーバー間の通信経路が暗号化されません。そのため第三者が介入する余地があり、パスワードや情報などが漏れてしまうリスクがあるのです。
こういったリスクに対する対策として、以下で説明するSCP・SFTP・FTPSといったテクノロジーが挙げられます。
SCP
SCPとは「Secure Copy Protocol」の略です。これはSSHと呼ばれる暗号技術を用いたプロトコルを指します。
SCPの特徴は、ファイル転送のスピードが高速であることです。ただし転送の中断や再開はできないため、注意が必要です。
SFTP
SFTPとは「SSH File Transfer Protocol」の略です。これはSCPと同じく、SSHを用いたプロトコルを指します。
SFTPでは転送の中断や再開ができます。データ転送を中断することはよくあるため、SCPよりもSFTPの方が便利です。しかし、通信速度が遅めなことが難点として挙げられます。
FTPS
FTPSとは「File Transfer Protocol over SSL/TLS」の略です。これはSSLやTLSと呼ばれる暗号技術を用いたプロトコルを指します。
公開鍵暗号と共通鍵暗号という、暗号化技術を組み合わせて暗号化された通信路を確保します。FTPの利便性を損なわず脆弱性を改良したものが、SFTPです。
FTPとは?(まとめ)
FTPは「ファイル送信プロトコル」を意味します。コンピュータ間でファイルを送信する際の、手順や規格を取り決めたものです。
FTPでできることは、ファイルのアップロード・ダウンロード・バックアップ・編集の4つです。これらはFTPサーバーとFTPクライアントを相互で通信することで行われます。
FTPはITエンジニアにとって、基礎となる知識です。特にWebサイトの作成やネットワーク構築において必要となるため、ぜひ覚えておいてください。