通信プロトコルの標準化とは?OSI基本参照モデルとTCP/IPを基礎から理解しよう
はじめに
PCやスマートフォンは、メーカーやOSが違っていてもネットワークを通して通信できます。
なぜでしょうか?
それは、
通信するときの共通ルールが決められているから
です。
この通信ルールを**プロトコル(Protocol)**と呼びます。
この記事では、
プロトコルとは
↓
なぜ標準化するのか
↓
OSI基本参照モデル
↓
TCP/IP
↓
TCP/IP通信の流れ
という順番で学んでいきます。
1. プロトコルとは
**プロトコル(Protocol)**とは、
コンピュータ同士が通信するために定められた規約や手順
です。
人間同士でも、会話をするためには共通の言語やルールが必要です。
コンピュータも同じです。
例えばネットワークでは、
HTTP
→ Web通信
TCP
→ 信頼性のあるデータ転送
IP
→ ネットワークを越えてデータを届ける
Ethernet
→ LANでデータを転送する
など、目的ごとにさまざまなプロトコルが利用されています。
2. なぜプロトコルを標準化するのか
もしメーカーごとに通信方法が違っていたら、
メーカーAのPC
↓
メーカーAの機器
○
メーカーAのPC
↓
メーカーBの機器
×
となってしまう可能性があります。
そこで、
みんなが共通して利用できる通信規格を決める
という標準化が行われます。
標準化
↓
共通の通信ルール
↓
異なるメーカー・機器でも通信できる
この仕組みがあることで、世界中のさまざまなコンピュータをネットワークで接続できます。
3. OSI基本参照モデル
ネットワーク通信には、
アプリケーション
データ転送
経路選択
LAN内の転送
物理的な信号
など、多くの役割があります。
これらを整理するために作られた代表的な考え方が、
OSI基本参照モデル(OSI Reference Model)
です。
OSI基本参照モデルでは、ネットワーク通信の機能を7つの階層に分けます。
| 層 | 名称 | 主な役割 |
|---|---|---|
| 第7層 | アプリケーション層 | アプリケーションの通信 |
| 第6層 | プレゼンテーション層 | データ表現 |
| 第5層 | セッション層 | 通信セッションの管理 |
| 第4層 | トランスポート層 | アプリケーション間のデータ転送 |
| 第3層 | ネットワーク層 | ネットワーク間の通信 |
| 第2層 | データリンク層 | 同一ネットワークなどでの転送 |
| 第1層 | 物理層 | 信号やケーブルなど |
4. OSI基本参照モデルを簡単に見る
第1層:物理層
ケーブル
光信号
電気信号
電波
など、データを物理的に伝送する部分を扱います。
第2層:データリンク層
Ethernet
MACアドレス
L2スイッチ
などと関係する層です。
第3層:ネットワーク層
IP
IPアドレス
ルーティング
ルーター
などと関係します。
第4層:トランスポート層
TCP
UDP
ポート番号
などと関係します。
第5〜7層
アプリケーション同士の通信や、データ表現、セッション管理などを扱います。
例えば、
HTTP
DNS
SMTP
などのアプリケーション向けプロトコルは、OSIではアプリケーション層に位置付けて考えます。
5. なぜ階層に分けるのか
ネットワーク通信を階層に分けることで、
それぞれの技術が何を担当しているのか
を整理できます。
例えば、
Webページを見る
↓
HTTP
確実にデータを届ける
↓
TCP
別のネットワークまで届ける
↓
IP
LAN内で転送する
↓
Ethernet
と役割を分けて考えられます。
そのため、
HTTPで問題?
TCPで問題?
IPで問題?
Ethernetで問題?
というように、ネットワーク障害を考えるときにも役立ちます。
6. TCP/IPとは
現在のインターネットで広く利用されているのが、
TCP/IP
です。
TCP/IPという名前ですが、
TCPとIPだけではなく、インターネット通信で利用されるさまざまなプロトコル群
を指します。
代表的なものには、
HTTP
DNS
TCP
UDP
IP
Ethernet
などがあります。
これらを役割ごとに階層化して利用します。
7. TCP/IPの4階層
TCP/IPは、一般的に次の4階層で説明できます。
| TCP/IP | 主な役割 | 代表例 |
|---|---|---|
| アプリケーション層 | アプリケーションの通信 | HTTP・DNS・SMTP |
| トランスポート層 | アプリケーション間の通信 | TCP・UDP |
| インターネット層 | ネットワーク間の通信 | IP |
| ネットワークインタフェース層 | 実際のネットワーク上での転送 | Ethernetなど |
OSI基本参照モデルと大まかに対応させると、
OSI TCP/IP
アプリケーション ┐
プレゼンテーション ├─→ アプリケーション
セッション ┘
トランスポート ──→ トランスポート
ネットワーク ──→ インターネット
データリンク ┐
物理 ┴─→ ネットワークインタフェース
となります。
OSIは7階層、TCP/IPは一般的に4階層として整理されます。
8. OSIとTCP/IPの違い
ここは重要です。
OSI基本参照モデル
ネットワーク通信の役割を7階層に整理した参照モデル
TCP/IP
現在のインターネットで広く利用されているプロトコル群
です。
つまり、
OSI
→ 通信を理解するための地図
TCP/IP
→ 実際のインターネット通信で使われる仕組み
くらいのイメージを持っておくと分かりやすいです。
9. TCP/IPではどうやって通信するのか
では実際に、
PCからWebサイトを見る
場合を考えてみましょう。
例えばブラウザからWebサーバーへデータを送るとします。
通信では、いきなり、
PC
────────────→ Webサーバー
と一つの仕組みだけでデータを送っているわけではありません。
複数の階層がそれぞれ役割を担当します。
10. ① アプリケーション層
まず、ブラウザなどのアプリケーションがWebサーバーと通信します。
Web通信では、
HTTP
などが利用されます。
ブラウザ
「このWebページが欲しい」
↓
HTTP
というイメージです。
アプリケーション層では、
アプリケーションがどのような情報をやり取りするのか
を扱います。
11. ② トランスポート層
アプリケーション層から渡されたデータは、トランスポート層へ渡されます。
ここでは、
TCP
などが利用されます。
TCPでは、
通信相手との接続
データが届いたかの確認
データの順序管理
再送制御
などを行い、信頼性のある通信を実現します。
また、
ポート番号
を使って、
どのアプリケーションへデータを渡すのか
を識別します。
12. ③ インターネット層
次にデータはインターネット層へ渡されます。
ここで重要なのが、
IP(Internet Protocol)
です。
IPでは、
IPアドレス
を利用して通信相手を識別します。
送信元IPアドレス
宛先IPアドレス
などの情報を使い、
異なるネットワークを越えて目的のコンピュータまでデータを届ける
ために利用されます。
途中ではルーターがデータを転送します。
PC
↓
ルーター
↓
ルーター
↓
Webサーバー
というように、複数のネットワークを経由することがあります。
13. ④ ネットワークインタフェース層
最後に、
Ethernet
などを利用して、実際のネットワーク上へデータを送ります。
LANでは、
MACアドレス
などを利用して、同一リンク上の次の転送先へデータを届けます。
そして最終的には、
電気信号
光信号
電波
などとしてネットワーク上を伝送されます。
14. 送信側の通信をまとめる
ここまでをまとめると、
ブラウザ
│
│ Webページが欲しい
▼
HTTP
│
│ アプリケーションの通信
▼
TCP
│
│ ポート番号・信頼性のある転送
▼
IP
│
│ IPアドレス・ネットワーク間の配送
▼
Ethernet
│
│ LAN上での転送
▼
電気信号・光信号・電波
となります。
一つの通信を、
複数のプロトコルが役割分担して実現している
ことがポイントです。
15. 受信側では逆に処理する
Webサーバー側では、受信したデータを逆方向に処理します。
電気信号など
↓
Ethernet
↓
IP
↓
TCP
↓
HTTP
↓
Webサーバー
となります。
それぞれの階層が、
自分が担当する情報を確認して、上の階層へ渡す
という流れです。
16. TCP/IP通信全体のイメージ
最終的には、
【PC】
HTTP
↓
TCP
↓
IP
↓
Ethernet
↓
================
ネットワーク
================
↓
Ethernet
↓
IP
↓
TCP
↓
HTTP
【Webサーバー】
という流れになります。
ここで重要なのは、
HTTP
→ アプリケーション
TCP
→ アプリケーション間の転送
IP
→ ネットワーク間の配送
Ethernet
→ LANなどでの転送
という役割分担です。
17. IEEE
ネットワークの標準化では、
IEEE(Institute of Electrical and Electronics Engineers)
という組織もよく登場します。
特にネットワークでは、
IEEE 802.3
→ Ethernet
IEEE 802.11
→ 無線LAN
を覚えておけばOKです。
今後の、
データリンク層
無線LAN
の記事でも登場します。
18. まとめ
プロトコルとは、
コンピュータ同士が通信するための規約や手順
です。
異なるメーカーや機器同士でも通信できるように、通信規格の標準化が行われています。
ネットワーク通信を理解する代表的なモデルが、
OSI基本参照モデル
です。
7 アプリケーション
6 プレゼンテーション
5 セッション
4 トランスポート
3 ネットワーク
2 データリンク
1 物理
という7階層で通信機能を整理します。
一方、現在のインターネットではTCP/IPが広く利用されています。
Web通信を簡単に見ると、
HTTP
↓
TCP
↓
IP
↓
Ethernet
↓
ネットワーク
というように、複数のプロトコルが役割分担して通信します。
この記事で覚えること
- プロトコルは通信するための規約・手順
- 標準化によって異なる機器同士でも通信しやすくなる
- OSI基本参照モデルは通信機能を7階層に整理する
- TCP/IPはインターネットで広く利用されるプロトコル群
- TCP/IPは一般的に4階層で整理される
- HTTPはアプリケーション層
- TCP・UDPはトランスポート層
- IPはインターネット層
- Ethernetはネットワークインタフェース層
- TCPではポート番号を利用する
- IPではIPアドレスを利用する
- LANではMACアドレスが利用される
- IEEE 802.3はEthernet
- IEEE 802.11は無線LAN
- 一つの通信を複数のプロトコルが役割分担して実現している
🍯 はちみつメモ
ネットワーク通信は一人で全部やるのではなく「HTTPさんはアプリ担当、TCPさんは配送品質担当、IPさんは住所を見て遠くまで届ける担当、Ethernetさんは近所まで運ぶ担当」という分業制。OSIとTCP/IPは、この役割分担を整理して理解すると一気につながる。