はじめに
こんにちは。アメリカで独学でエンジニアを目指している者です。
現在ネットワークについて学んでいるのですが、その中でも本日はTCP/IPのアプリケーション層について見ていきたいと思います
アプリケーション層の役割
アプリケーション層は、具体的なアプリケーション同士がやり取りを行う際に使用されるプロトコルを定義する層です。
この層のプロトコルは、トランスポート層が提供するサービス(TCPやUDPによる信頼性やポート番号による宛先識別など)を利用し、メール送受信、ファイル転送、Web閲覧、名前解決など、さまざまな機能を実現します。
代表的なプロトコル
HTTP (Hypertext Transfer Protocol)
Webページを閲覧するためのプロトコルで、Webブラウザ(クライアント)とWebサーバ間の通信を規定します
主な特徴は以下の通りです
- テキストや画像、動画などのデータ転送
- ステートレス(基本的には通信の状態を保持しない仕組み)
- 現在はHTTP/2、HTTP/3など高速化・暗号化の観点での拡張も進んでいる
HTTPS (HTTP Secure)
HTTPに暗号化(SSL/TLS)を組み合わせたもので、機密性の高いデータを扱うサイトで主流です。
主な特徴は以下の通りです
- 通信内容の盗聴・改ざん防止
- 現在ではほとんどのWebサービスで利用
SMTP (Simple Mail Transfer Protocol)
電子メールを送信するためのプロトコルです
主な特徴は以下の通りです
- クライアント(メールソフト)からメールサーバへ送信、メールサーバ同士の受け渡しを担当
- 受信には別のプロトコル(POP3やIMAPなど)が用いられる
POP3 (Post Office Protocol version 3)
メールを受信するためのプロトコルで、メールサーバに保存されているメールをクライアントにダウンロードして管理します
主な特徴は以下の通りです
- メールサーバからメールを取得したあと、デフォルトではサーバ上のメールが削除される(設定により変更可能)
- シンプルな仕組みだが、複数端末でメールを同期するのが難しい
IMAP (Internet Message Access Protocol)
受信メールをサーバ上で管理し、複数の端末でメールを閲覧・操作できるようにするプロトコルです。
主な特徴は以下の通りです
- メールをサーバと常に同期できる
- Webメールなど、複数のクライアント環境で同じメールボックスを扱う場合に便利
FTP (File Transfer Protocol)
インターネット上でファイルを転送するための代表的なプロトコルです。
主な特徴は以下の通りです
- 大容量ファイルでもやりとりがしやすい
- セキュリティ面を強化するためにSFTP(SSH File Transfer Protocol)やFTPS(FTP over TLS)などの派生も利用されている
DNS (Domain Name System)
ドメイン名とIPアドレスを相互変換するためのシステム、およびそれを実現するプロトコルです。
主な特徴は以下の通りです
- “www.example.com”のようなホスト名から、“93.184.216.34”のようなIPアドレスを調べる(逆引きもあり)
- 分散型の仕組みで、世界規模のシステムとなっている
SSH
遠隔地にある機器のコンソール(コマンドライン)にアクセスするためのプロトコルです。
- SSH (Secure Shell) は暗号化を行うため、リモート端末との安全なやり取りが可能となる。
まとめ
- アプリケーション層 は、ユーザが直接利用するサービスやアプリケーション同士の通信ルールを定義する層であり、HTTP、SMTP、DNSなど多くのプロトコルが含まれます。
- 上位層であるアプリケーション層のプロトコルは、下位層であるトランスポート層(TCP/UDPなど)のサービスを利用することで、実際の通信を実現します。
次回以降はTCPをより掘り下げた記事を書いていきたいと思います。