FTPとは?ネットワーク初心者向けに分かりやすく3分で解説

IT-Skills

FTP(File Transfer Protocol)とは、コンピュータ間でファイルを転送する際に利用されるプロトコルです。TCP/IPにおけるアプリケーション層のプロトコルとして位置づけられます。

FTPというと単に「ファイル転送ソフトウェア」を指す場合もありますが、このページではネットワークの観点からFTPがどのようなプロトコルで、どのような仕組みで動いているか?を解説していきます。

このページで学べる内容
  • FTPとは?(File Transfer Protocol)
    • FTPクライアント
    • FTPサーバ
  • FTPにおける2つのTCPコネクション
    • コントロールコネクション
    • データコネクション
  • パッシブモード/アクティブモードの違い

ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。

スポンサーリンク

FTPとは?(File Transfer Protocol)

FTP(File Transfer Protocol)とはその名の通りコンピュータ間でファイル転送を行う際に必要となるプロトコルです。歴史は古いプロトコルですが、今でもよく利用されているプロトコルの一つです。ざっくりいうとFTPを利用することで以下の処理を行うことができます。

FTPでできること
  • サーバへのデータアップロード
  • サーバ上のデータ修正
  • サーバからのデータダウンロード

まずここでは「FTPはファイル転送を行う仕組み」であると理解できればOKです。

以降ではFTPがどのような仕組みでファイル転送を実現しているかを解説していきます。

プロトコルとは?

プロトコルとはコンピュータとコンピュータがネットワークを通じて通信する際に決められた約束事・決まりのこと。

「メールを送るときは〇〇の形式で送ってね!」「ファイルを送るときは、〇〇のタイミングで送ってね!」というような約束事を決めたものがプロトコルです。日常会話に当てはめて考えると分かりやすく、普段私たちがお互い話をすることができているのも「プロトコル(何語で話すか?)が決まっているから」と説明できます。

上記の説明だけではイマイチよく分からないという方は合わせて以下の記事をご覧ください。

FTPはクライアントサーバモデルで動作する

FTPでファイル転送を行うコンピュータは以下の2つに分類されます。

FTPクライアント/FTPサーバ
  • ファイル転送を依頼する側:「FTPクライアント」
  • ファイル転送の依頼を受ける側:「FTPサーバ」

FTPはクライアントサーバモデルで相互通信を行うことでファイル転送を実現します。FTPクライアントには通常、FTP用のソフトウェア(FFFTPやFileZillaなど)がインストールされており、そのソフトウェアを利用することでFTPサーバ側への通信を開始する仕組みです。

もちろん、FTPソフトが入っていなくてもコマンドラインでFTPを実行することが可能です。

FTP通信の仕組み:2つのTCPコネクション

FTPクライアントとFTPサーバ間には2つのTCPコネクションが存在します。1つが、コントロールコネクション。もう1つが、データコネクションです。

FTP:コントロールコネクション

コントロールコネクションは、その名の通り制御用のコネクションです。ログインするためのユーザ/パスワードの確認。転送するファイル名や、どのようにファイルを転送するか?といった用途で利用されます。

FTP:データコネクション

対してデータコネクションはデータ転送用に用いられます。

コントロールコネクションを用いてFTPサーバ側から出される要求(ファイルダウンロード要求(RETR)やアップロード要求(STOR)、サーバ上にあるファイル一覧の取得要求(LIST))が出されると、FTPサーバ側ではその要求に応える形で都度「データ転送」の処理を開始します。

この時に利用されるコネクションがデータコネクションです。データコネクションはファイル転送などの1つの処理が終わるたびに切断されます。

一方で、制御用のコントロールコネクションは常に接続された状態で保持されます。

コントロールコネクションが切断されるのは、ユーザがFTPサーバからログアウトしたタイミングになります。

ポート番号

FTPでは2つのコネクションを必要とするため、2つの異なるポート番号を利用します。コントロールコネクションはポート番号:21を、データコネクションは20が割り当てられています。

FTP:アクティブモードとパッシブモード

ここまでで、FTPの通信の仕組みが何となく理解できたのではないでしょうか。最後に、FTP関連の基本知識であるアクティブモード/パッシブモードの違いについて解説します。

アクティブモード・・・データコネクションをFTPサーバ側から開始する

パッシブモード・・・データコネクションをFTPクライアント側から開始する

FTPサーバからファイルをダウンロードする流れを以下図で示します。

FTPクライアントから、コントロールコネクションを利用してファイルダウンロード要求が行われ、FTPサーバ側はファイル転送の処理をデータコネクションを用いて開始します。

この図で示した通り、通常データコネクションはFTPサーバ側からFTPクライアントへ向けてコネクションの確立を行います。これがアクティブモードです。

ですが、アクティブモードには欠点があり、例えばFTPサーバが外部のネットワーク上などに存在する場合においてはファイアウォール等に遮られコネクションが開始できない場合があります。

このとき、データコネクションもFTPクライアント側から出して上記の障害を回避することができます。この方法をパッシブモードと呼びます。

データコネクションも、FTPクライアント側から開始することでファイアウォール等の障壁をクリアすることが可能です。このとき、利用するポート番号はFTPサーバによって任意となります。

このページのまとめ
  • FTP(File Transfer Protocol)とはその名の通りコンピュータ間でファイル転送を行う際に必要となるプロトコルである。
  • FTPはクライアントサーバモデルで動作し、ファイル転送を依頼する側を「FTPクライアント」、ファイル転送の依頼を受ける側を「FTPサーバ」と呼ぶ。
  • FTPは制御用のコントロールコネクション、データ転送用のデータコネクションの2つのコネクションを利用する。
  • データコネクションの開始方法によってアクティブモード/パッシブモードの2つの通信方法が存在する。

ネットワークエンジニアを目指したい方は

ICMPだけでなく、ネットワークの基礎を1から学びたい方はこちらの書籍を購入してがっつり学びましょう!

さくっと手軽に読める内容ではないのですが、ネットワークエンジニア全員が必ず読破している本と言っても過言ではありません。是非この機会にチャレンジしてみてみましょう。

blank
インターネットのプロトコルTCP/IP入門書の決定版!

ITを1から学びなおしたい方は

システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。

正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。

システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。

無料で読めるようにしてあります。累計12万人に参考にしていただきました!

タイトルとURLをコピーしました