前の記事では、ネットワーク通信を7つの階層に分けて整理する OSI参照モデルについて学びました。
OSI参照モデルによって、 「L2ではMACアドレス」 「L3ではIPアドレス」 「L4ではTCP・UDP」 というように、ネットワーク技術を役割ごとに整理できます。
しかし、実際のインターネット通信を学習すると、 OSI参照モデルと並んで必ず登場するのが TCP/IP(TCP/IPモデル)です。
名前だけを見ると 「TCPとIPという2つのプロトコルだけの話?」 と思うかもしれませんが、TCP/IPはもっと広い意味で使われます。
この記事では、TCP/IPとは何なのか、 OSI参照モデルとの関係から実際のWeb通信まで、 初学者でも通信全体をイメージできるように整理します。
TCP/IPモデルの4階層を暗記するだけではなく、 「Webサイトを見るとき、HTTP・TCP・IP・Ethernetが それぞれ何をしているのか」 を説明できる状態を目指します。
TCP/IPとは?
TCP/IPとは、 インターネットをはじめとする現在のネットワーク通信で広く利用されている プロトコル群と、その通信体系 を表す言葉です。
TCP/IPという名前は、 代表的なプロトコルである TCP(Transmission Control Protocol)と IP(Internet Protocol) に由来します。
ただし、TCP/IPで使われるプロトコルはTCPとIPだけではありません。
Web通信のHTTPやHTTPS、名前解決で使うDNS、 通信制御を行うTCP・UDP、宛先へデータを届けるIPなど、 複数のプロトコルが協力してネットワーク通信を実現しています。
TCP/IPとは、TCPやIPを中心として、 インターネット通信を実現するために使われる さまざまなプロトコルを体系的に整理した考え方です。
そもそもプロトコルとは?
TCP/IPを理解するうえで重要なのが プロトコル(Protocol)という言葉です。
プロトコルとは、 コンピューター同士が通信するための決まり・ルール です。
人同士の会話でも、一方が日本語、もう一方がまったく理解できない言語だけを使っていれば、 スムーズに情報をやり取りできません。
ネットワーク通信でも同じように、 通信する機器同士が共通のルールを利用する必要があります。
TCP/IPモデルは4つの階層で通信を整理する
TCP/IPモデルでは、 ネットワーク通信に必要な機能を 4つの階層に分けて考えます。
| TCP/IPモデル | 主な役割 | 代表例 |
|---|---|---|
| アプリケーション層 | ユーザーが利用するネットワークサービス | HTTP、HTTPS、DNS、SSHなど |
| トランスポート層 | 端末・アプリケーション間の通信制御 | TCP、UDP |
| インターネット層 | 宛先ネットワークへデータを届ける | IP、ICMPなど |
| ネットワークインターフェース層 | 実際のネットワーク上でデータを転送する | Ethernetなど |
TCP/IPモデル4階層の役割を詳しく見てみよう
アプリケーション層:ユーザーに近い通信を担当する
アプリケーション層は、 TCP/IPモデルの中で最もユーザーに近い層です。
Webサイトを見る、メールを送る、サーバーへSSH接続する、 ドメイン名からIPアドレスを調べるなど、 アプリケーションが利用するネットワーク機能 を扱います。
ブラウザとWebサーバーの間では、 HTTPやHTTPSなどのプロトコルが利用されます。
トランスポート層:アプリケーション間の通信を制御する
トランスポート層では、 通信する端末・アプリケーション間の データ転送を制御します。
代表的なプロトコルが TCPとUDPです。
信頼性を重視
データが正しく相手へ届いたかを確認しながら通信します。 Web、SSHなど多くの通信で利用されます。
シンプル・高速
TCPほど細かな到達確認を行わず、 オーバーヘッドを抑えた通信を行います。
ポート番号もトランスポート層で重要
IPアドレスだけでは、 通信先のコンピューターまでは特定できても、 そのコンピューター上の どのサービスへ通信したいのか までは特定できません。
そこでTCPやUDPでは ポート番号を利用して、 通信先のサービスを識別します。
インターネット層:データを宛先まで届ける
インターネット層では、 異なるネットワークを越えてデータを目的地まで届ける 役割を扱います。
ここで中心となるプロトコルが IP(Internet Protocol)です。
IPアドレスによって通信相手を識別し、 ルーターなどが宛先ネットワークへ パケットを転送していきます。
TCPは主に「通信をどう制御するか」、 IPは「データをどの宛先へ届けるか」を担当します。 名前はセットになっていますが、役割は異なります。
ネットワークインターフェース層:実際のネットワーク上で転送する
TCP/IPモデルの最下層が ネットワークインターフェース層です。
Ethernetなどを利用して、 実際のネットワーク上でデータを転送します。
Ethernetでは、 IPアドレスだけではなく MACアドレス という識別情報も重要になります。
MACアドレスについては、 次々回ではなくこの記事の次のレッスンで詳しく学習します。
OSI参照モデルとTCP/IPモデルの違い
前の記事で学習したOSI参照モデルは7階層でしたが、 TCP/IPモデルでは4階層にまとめられています。
インターフェース層
| OSI参照モデル | TCP/IPモデル |
|---|---|
| L5~L7 | アプリケーション層 |
| L4 トランスポート層 | トランスポート層 |
| L3 ネットワーク層 | インターネット層 |
| L1~L2 | ネットワークインターフェース層 |
いいえ。ネットワーク学習では両方登場します。 OSI参照モデルは通信機能を細かく整理するときに便利で、 TCP/IPモデルは実際のインターネット通信を理解するときに重要です。
Webサイトを見るときTCP/IPの各層は何をしている?
ここまでの内容を、 Webサイトへアクセスする場合でまとめてみましょう。
ブラウザがWebサーバーへ Webページを要求する。
Webサーバーとの通信を制御し、 ポート番号などを使う。
宛先IPアドレスを使って Webサーバーまでデータを届ける。
LANなどの実際のネットワーク上で データを転送する。
重要なのは、 どれか一つのプロトコルだけで通信しているわけではない ということです。
HTTP・TCP・IP・Ethernetなどが、 それぞれ異なる役割を担当しながら協力することで 通信が成立します。
送信するときは各層の情報が順番に付加される
アプリケーションが作成したデータは、 TCP/IPモデルの各階層を下へ進みながら、 通信に必要な情報が付加されます。
このように、 各階層で必要な情報を付加していく処理を カプセル化と呼びます。
受信側では逆に、 下位層から上位層へ情報を確認・取り外しながら アプリケーションへデータを渡していきます。
TCPヘッダー、IPヘッダー、Ethernetヘッダーの詳細まで 今すぐ暗記する必要はありません。 各層が自分の役割に必要な情報を付加する、 という考え方を理解しておきましょう。
ここで実際に確認しよう:TCP/IP通信を組み立ててみよう
Webサイトへアクセスするとき、 TCP/IPモデルのどの層で何が使われるのか確認してみましょう。
下の階層をクリックすると、 その階層の役割と代表的な情報が表示されます。
TCP/IP通信スタック
HTTP / HTTPS
WebブラウザとWebサーバーがWebページなどのデータをやり取りするために利用します。 ユーザーに最も近い通信処理です。
確認問題:TCP/IPの基本を理解できたか確認しよう
最後に3問の確認問題へ挑戦してみましょう。
IPの主な役割として最も適切なものはどれですか?
IPはインターネット層の中心的なプロトコルで、 IPアドレスを利用してパケットを宛先へ届ける役割を持ちます。
TCP/IPモデルでTCPが属する層はどれですか?
TCPとUDPはトランスポート層の代表的なプロトコルです。 通信制御やポート番号などを扱います。
WebサイトへHTTPSでアクセスする通信を、 上位層から順番に並べたものはどれですか?
アプリケーション層のHTTPS、 トランスポート層のTCP、 インターネット層のIP、 ネットワークインターフェース層のEthernet という順に整理できます。
3問に挑戦してみましょう。
TCP/IPを理解したら、実際のLAN内通信へ進もう
TCP/IPモデルによって、 Web通信ではHTTP・TCP・IP・Ethernetなどが 階層ごとに役割を分担していることが分かりました。
ここからは、それぞれの階層をさらに詳しく学んでいきます。
まず注目するのが、 TCP/IPモデルの最下層にあたる ネットワークインターフェース層です。
LAN内でEthernet通信を行うとき、 非常に重要になる情報が MACアドレスです。
まとめ
今回は、TCP/IPとTCP/IPモデルの基本について解説しました。
TCP/IPとは、 現在のインターネット通信で広く利用されるプロトコル体系
TCP/IPモデルでは通信を 4つの階層に分けて整理する
アプリケーション層ではHTTPやDNS、 トランスポート層ではTCP・UDPなどを扱う
インターネット層では IPアドレスを使ってデータを宛先へ届ける
実際の通信ではHTTP・TCP・IP・Ethernetなど、 複数のプロトコルが協力して通信を実現する
次は「MACアドレスとは?L2通信の基本を学ぶ」を学びましょう
TCP/IPモデルで通信全体の構造を理解したら、 次はLAN内で実際にデータを届けるときに使われる MACアドレスについて学びます。 IPアドレスとの違いや、スイッチがどのようにMACアドレスを利用するのかを理解すると、 LAN内通信の仕組みがより具体的に見えてきます。
次のレッスンへ進む →
