TCP/IP プロトコル

プロトコルとは、メッセージのフォーマットと手順に関する一連の規則であり、マシンやアプリケーション・プログラムは、それらの規則を使用して情報を交換することができます。 通信に関与する個々のマシンは、受信側ホストがメッセージを理解できるよう、これらの規則に従わなければなりません。 TCP/IP プロトコルは、階層 (またはレベル) として理解することができます。

この図は、TCP/IP プロトコルの階層を示します。1 番上から、アプリケーション層、トランスポート層、ネットワーク層、ネットワーク・インターフェース層、およびハードウェアの順に並んでいます。

図 1. TCP/IP プロトコル群
TCP/IP プロトコル群

TCP/IP では、情報が送信側から受信側に移動する方法が入念に定義されます。 最初に、アプリケーション・プログラムがメッセージやデータ・ストリームをいずれかのインターネット・トランスポート層プロトコル、つまり、ユーザー・データグラム・プロトコル (UDP) か伝送制御プロトコル (TCP) に渡します。 これらのプロトコルはアプリケーションからデータを受信し、そのデータをパケット と呼ばれる小さな単位に分割し、宛先アドレスを追加してから、次のプロトコル層、つまりインターネット・ネットワーク層に渡します。

インターネット・ネットワーク層は、パケットをインターネット・プロトコル (IP) データグラムに入れ、データグラム・ヘッダーとデータグラム・トレーラーを付け、データグラムの送信先 (直接宛先に送信するか、あるいは、ゲートウェイに送信するか) を決定してから、そのデータグラムをネットワーク・インターフェース層に渡します。

ネットワーク・インターフェース層は IP データグラムを受け取り、それらのデータグラムをフレーム として特定のネットワーク・ハードウェア (イーサネット・ネットワークやトークンリング・ネットワークなど) を介して送信します。

図 2. 送信側のアプリケーションから受信側のホストへの情報の移動
送信側のアプリケーションから受信側のホストへの情報の移動
この図では、送信側からホストへ TCP/IP プロトコル層を下る情報の流れを示します。

ホストが受信したフレームは、プロトコル層を逆に移動します。 各層は対応するヘッダー情報を除去し、データは最後にアプリケーション層に戻ります。

図 3. ホストからアプリケーションへの情報の移動
ホストからアプリケーションへの情報の移動
この図では、ホストから送信側へ TCP/IP プロトコル層を昇る情報の流れを示します。

フレームはネットワーク・インターフェース層 (この場合はイーサネット・アダプター) によって受信されます。 ネットワーク・インターフェース層は、イーサネット・ヘッダーを除去し、データグラムをネットワーク層へ送信します。 ネットワーク層では、インターネット・プロトコルが IP ヘッダーを除去し、パケットをトランスポート層へ送信します。 トランスポート層では、(この場合は) TCPTCP ヘッダーを除去し、アプリケーション層へデータを送信します。

ネットワーク上の複数のホストは、情報の送信と受信を同時に行います。図 4 は、通信時のホストをさらに正確に表しています。

図 4. ホストのデータ送信と受信
ホストのデータ送信と受信
この図では、TCP/IP 層の両方向のデータ・フローを示します。