はじめに
本記事では必要最小限の情報で「TCP/IP 4階層モデル」「プロトコル」という言葉が理解できるようにわかりやすく解説したいと思います。
これらの用語って、何百回耳にしていますが、中々しっくりこないのではないでしょうか。 ネットワークの通信って目に見えないからいくら説明を聞いてもリアリティがなくなんともピンとこないんですね。
かといって専門書を読んでしまうと説明が詳細すぎて多くの人は途中で挫折してしまうのではないかと思います。
「いくつかの情報の伝え方」が積み重なって構成されている、ということです。
通常皆さんがコミュニケーションする場合でも、
無意識に以下のような要素を組み合わせているはずです。
敬語表現か | 基本形、丁寧語、尊敬語 |
どの国の言葉か | 英語、日本語、中国語、フランス語 |
媒体は何か | 直接、メール、電話 |
ネットワークの世界でも似たようなことが言えます。以降少しづつ解説します。
プロトコル
まずはプロトコルという用語について、
ネットでググると、大体以下のような説明になっています。
コンピュータでデータをやりとりするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格を意味します。
自分は手順や規約、と言われてもなんだかピンとこなかったのですが、 プロトコルというのは具体的には「TCP」「http」「https」「SMTP」「POP」といった各通信方式をひっくるめて表す言葉です。
はじめに述べたとおり、情報の伝え方はいくつかの階層の方式が積み重なってできていますが、
どの階層か、に関係なく情報通信に関わる方式をひっくるめてプロトコルと表しています
TCP/IP 4階層モデル
TCP/IP 4階層モデルとは以下の4階層のことです。情報通信は以下の4階層の各プロトコルを組み合わせてやりとりをします。
4層 | アプリケーション層 | アプリケーション間のやり取り |
3層 | トランスポート層 | プログラム間の通信、通信の制御 |
2層 | インターネット層 | インターネットでの通信 |
1層 | ネットワークインターフェイス層 | 同一ネットワーク上での通信、ハードウェア仕様など |
以降、これらの解説です。
1層 ネットワークインターフェイス層
物理的に接続して隣接する機器にデータを届けるためのプロトコルがまとめられています。
例としては有線LANに用いられるイーサネットがあります。
2層 インターネット層
データの転送経路を選択して、より遠い宛先にデータを届けるためのプロトコルです。
具体例としてはIP(Internet Protocol)があります。IPアドレスのIPですね。
IPはデータを目的のコンピュータに届けるためのプロトコルです。
3層 トランスポート層
トランスポート層はちょっとイメージがわきにくいかもしれません。
データ通信の際、途中で電波がみだれたり、0、1で表されるデータが変わってしまうといったエラーがつきものです。
トランスポート層ではエラー検出や通信を制御するためのプロトコルがまとめられています。 つまりデータが正確に届くためのプロトコルがまとめられています。
例としてはTCP(Transmission Control Protocol)があります。
TCPはエラー検出時に再送をするなど、データを確実に届けるためのプロトコルです
Webページを見たりメールの送受信をする際は、データは正確でなければならないので、このTCPプロトコルが用いられます。
一方で、動画のライブ配信など正確でなくてもよいので早く送りたい、といった場合はUDPというプロトコルが用いられます。
UDPはTCPと比べると細かい制御はしないので早くデータをおくることが出来ます。
4層 アプリケーション層
アプリケーション間で通信するためのプロトコルです。通信するアプリケーションによって使うプロトコルは異なります。以下具体例です。
HTTP(Hyper Text Transfer Protocol):Webページの情報をやりとりするプロトコルです。
SMTP(Simple Mail Transfer Protocol):メールを送信するためのプロトコルです。
POP(Post Office Protocol):メールを受信するためのプロトコルです。
FTP(File Transfer Protocol):ファイルを転送するためのプロトコルです。
HTTPであればブラウザ、メールの送受信であればメーラー、FTPであれば様々なフリーソフトがあり、 基本的には各アプリケーションごとに利用するプロトコルは決まっています。
頭文字だけみるとわかりにくいですが、アプリケーション層のプロトコルはほとんどが、
~TP(Transfer Protocol)が末尾についているのがわかりますね。
各階層のヘッダ情報
冒頭で述べた通り、データの送受信をする際は、これまでの各階層の情報が組み合わさることになりますが、各階層のデータにはヘッダ情報が付与されます。
例えばブラウザでWebページを閲覧すると、WebサーバーからのレスポンスとしてHTMLをはじめとする様々なデータが送られてきますが、そこにHTTPヘッダーという付加情報が追加されています。
参考までに、以下の画像赤枠が、閲覧先のWebサーバーで付与されたヘッダー情報です
(ChromeのDevツール > ネットワーク > ヘッダー)
データ送信の際は各階層ごとにヘッダー情報が付与され、届いたデータは受信側で削除されてゆきます。
以上、「TCP/IP 4階層モデル」「プロトコル」についての解説でした。
本記事では必要最小限の内容に留めましたが、ヘッダ情報がどんなものか、どのように見ることが出来るかなど、詳しく調べてゆくと理解も深まりさまざまな発見があると思います。