TCP/IPモデルでは、ネットワーク通信は異なるレイヤーに分割されており、一番上、つまりアプリケーション層から始めます。これは、Web ブラウザやメールクライアントなどのユーザーアプリケーションにネットワークサービスを提供する役割を担っているため、ユーザーが最も直接的に関わるレイヤーです。
アプリケーション層の役割
アプリケーション層は、デバイス上のソフトウェアとネットワーク自体の間のインターフェースとして機能します。メールを送信したり、ウェブサイトを閲覧したり、ファイルを転送したりするとき、プロセスを開始するのはアプリケーション層です。その主な仕事は、ユーザーデータを準備し、受信データをユーザーフレンドリーな形式で提示することです。
アプリケーション層プロトコルとは
通信を管理するために、アプリケーション層は特定のプロトコルを使用します。では、アプリケーション層プロトコルとは何でしょうか?それは、アプリケーションがネットワーク上でどのようにデータを交換するかを定義する一連のルールです。異なるタスクには異なるプロトコルが使用されます。例えば、ウェブ閲覧には HTTP または HTTPS が、ファイル転送には FTP が、メール送信には通常 SMTP(簡易メール転送プロトコル)が使用されます。各プロトコルは、送信者と受信者の両方がメッセージの形式と意味を理解することを保証します。
アプリケーション層プロトコルの例
実際に動作しているアプリケーション層プロトコルの例として、メールを考えてみましょう。
- メールクライアントでメッセージを作成します。
- 「送信」を押すと、メールクライアント(アプリケーション)がデータをアプリケーション層に渡します。
- アプリケーション層は SMTP プロトコルを使用して、メールを正しくフォーマットします。
データカプセル化とアプリケーション層ヘッダー
データが次のレイヤー(トランスポート層)に送信される前に、準備が必要です。このプロセスをカプセル化と呼びます。アプリケーション層は、生のデータにアプリケーション層ヘッダーを追加します。このヘッダーには、受信アプリケーションがデータを理解するために必要とするプロトコル固有の情報が含まれています。
ヘッダーとデータが組み合わさって、次のレイヤーのペイロードになります。データがネットワークスタックを下に移動するにつれて、各レイヤーが独自のヘッダーを追加します。ネットワーク上で送信されるデータを一般的に「パケット」と呼びますが、異なるレイヤーではデータユニットに特定の名前があります。トランスポート層では「セグメント」、リンク層では「フレーム」です。
メールの例では、SMTP 形式のデータは特定のポート(SMTP の場合はポート 25)を経由してトランスポート層に渡され、そこでネットワークを横断する旅のためにさらにカプセル化されます。