ホーム第6章: ネットワーク
第6章 1節

通信プロトコルとレイヤー構造

コンピュータが1台だけでは、ただの計算機に過ぎません。しかし、それらがネットワークで結ばれると、世界中の情報へアクセスし、遠くの人と対話できる強力なツールへと進化します。メーカーや国籍が全く異なる何億台ものコンピュータが、なぜ混乱することなくデータをやり取りできるのでしょうか。そこには「共通のルール(プロトコル)」と「階層設計」という高度な仕組みがあります。

1. 通信プロトコル(Protocol)とは?

人間同士がコミュニケーションを取るとき、お互いが「日本語」という共通の言語(ルール)を共有していなければ、会話は成り立ちません。

コンピュータ同士の通信も全く同じです。メーカーやOSが違っていても、データの送り方、データの形式、エラーが起きたときの対処法などについて、あらかじめ世界共通の約束事を決めておく必要があります。この通信における共通の約束事(規約)のことを通信プロトコル(Protocol)と呼びます。

インターネットでは、HTTPやTCP、IPなど、用途に合わせた多数のプロトコルが組み合わされて動いています。

2. ネットワークの階層設計:TCP/IP 4層モデル

ネットワークを通じてデータを送るという処理は、物理的な光回線やWi-Fiの制御から、ウェブページの文字の表示方法まで、信じられないほど多岐にわたる処理が必要です。これを1つのプログラムで処理しようとすると、プログラムが巨大で複雑になりすぎ、修正も困難になります。

そこで、現代のネットワーク(インターネット)は、役割ごとに4つの階層に分けて処理を行うTCP/IP 4層モデルを採用しています。

4. アプリケーション層 (HTTP, DNS) 3. トランスポート層 (TCP, UDP) 2. インターネット層 (IP) 1. リンク層 (Ethernet, Wi-Fi) 階層設計のメリット ・各階層は独立している ・例えば有線(LAN)から Wi-Fiに変更しても、 上の層(HTTP)のアプリ コードは修正不要!
図 6-1:TCP/IP 4層モデルの構成とレイヤー化のメリット

各レイヤーの主な役割

  1. アプリケーション層: ブラウザやメールソフトといった、個々のアプリケーションごとのやり取りのルールを定義します。(例:HTTP, DNS, SMTP)
  2. トランスポート層: 通信するプログラム同士(ポート)を繋ぎ、データが途中で消えたり壊れたりしていないかチェックする、通信の「信頼性」を保証します。(例:TCP, UDP)
  3. インターネット層: データの最終目的地(IPアドレス)を指定し、世界中のネットワークの中からどのルートを通ってデータを届けるか(ルーティング)を制御します。(例:IP)
  4. リンク層(ネットワークインターフェース層): LANケーブルや電波(Wi-Fi)など、物理的な回線を通じて、隣り合う機器へデータを0と1の電気・光信号で実際に送り出す役割を持ちます。(例:イーサネット, Wi-Fi)

3. データの包み込み:カプセル化(Encapsulation)

送信側のPCからデータが送り出されるとき、データは最上部のアプリケーション層から順に、下の階層へと下りていきます。

このとき、各レイヤーを通るたびに、その階層のプロトコルが必要とする制御用の付箋(送信元・宛先情報やチェック用数値など)がデータの頭にくっつけられます。このヘッダと呼ばれる付箋を付け加えていくプロセスのことをカプセル化(Encapsulation)と呼びます。

データ本体 (HTTP) TCPヘッダ データ本体 (HTTP) IPヘッダ TCPヘッダ データ本体 (HTTP)
図 6-2:送信時のカプセル化(上のレイヤーのデータをヘッダで包み込む)イメージ

受信側のPCにデータが届くと、今度は逆に下から上へと階層を上がっていきます。 それぞれの階層のOSプログラムが、自分向けの付箋(ヘッダ)を読み取り、処理を行ってから付箋を剥ぎ取り、上の階層へと引き渡します。これを非カプセル化(またはカプセル化の解除)と呼びます。

このカプセル化の仕組みにより、各階層は「自分が必要とする付箋」だけに関心を持てばよくなり、他の階層が何をしているかを気にする必要がありません。

次のセクションでは、インターネットの要となる「IP(インターネット層)」に焦点を当て、データパケットが世界中のネットワークを旅して目的地に届く「IPアドレスとルーティング」の仕組みについて学びます。

整理のポイント:OSI参照モデルとTCP/IPモデルの階層対比

ネットワークの階層モデルである「OSI参照モデル(7階層)」と「TCP/IPモデル(4階層)」の対応関係と、各層の代表的なプロトコルを整理しておきましょう。

  • 階層の対応関係
    • アプリケーション層(TCP/IP第4層) ≒ OSI参照モデルのアプリケーション層 / プレゼンテーション層 / セッション層(第7〜5層)
      プロトコル例:HTTP, DNS, SMTP, FTP
    • トランスポート層(TCP/IP第3層) ≒ OSI参照モデルのトランスポート層(第4層)
      プロトコル例:TCP, UDP
    • インターネット層(TCP/IP第2層) ≒ OSI参照モデルのネットワーク層(第3層)
      プロトコル例:IP, ICMP
    • リンク層(TCP/IP第1層) ≒ OSI参照モデルのデータリンク層 / 物理層(第2〜1層)
      プロトコル例:Ethernet, Wi-Fi
  • カプセル化
    • 送信側で上層のデータに下層の制御情報(ヘッダ)を付加していく処理。受信側では逆に下層からヘッダを取り除く非カプセル化(カプセル化解除)を行います。