通信の機能階層という考え方
ネットワークを識別できるようになったところで、なぜTCP/IPの情報がハードウェアの通信の仕組みが異なってもやり取りできるのか、その仕組みについて説明しよう。
TCP/IPの情報が、異なるネットワークを経由して目的のコンピュータと通信する仕組みを理解するには、プロトコルとTCP/IPを使った通信の階層を理解しなければならない。
プロトコルというのは、どのようなタイミングで、どのような情報を伝達し、その情報によってどのような動作をするということを取り決めた通信の約束事である。そしてTCP/IPの通信は、大きく4つの機能階層に分けられ、それぞれの機能階層にプロトコルがある。
TCP/IPの機能階層は上からアプリケーション層、トランスポート層、インターネット層、ネットワークインターフェイス層となっている。一般にTCP/IPと表記されるのは、この機能階層の中心であるトランスポート層とインターネット層でTCPとIPを使うからである。TCP/IPの上位はアプリケーション層で、Webアクセスに使われるHTTP(HyperText Transfer Protocol)、電子メールのやり取りに使われるPOP(Post Office Protocol)、SMTP(Simple Mail Transfer Protocol)と呼ばれるプロトコルが該当する。TCP/IPの下位はネットワークインターフェイス層で、前述したEthernetなどがこれにあたる。
機能階層間では、プロトコルごとに規定されている制御情報を格納するヘッダと、相手に届けるデータを連結したPDU(Protocol Data Unit)と呼ばれる単位でデータがやり取りされる(図2)。一般的には、TCPのPDUは「セグメント」、IPのPDUは「パケット」、ネットワークインターフェイス(Ethernetなど)のPDUは「フレーム」と呼ばれている。
実際にWebにアクセスした場合を例にして、具体的なプロトコル間のやり取りを図3で説明しよう。
ブラウザに表示したいホームページのアドレスを入力すると、そのホームページのアドレスをWebサーバに送信するために、HTTPの規約に従ったPDUが作られTCPを制御するプログラムに渡される。TCP制御プログラムは、受け取ったPDUをデータとして扱い、TCPの規約に従った制御情報をヘッダとして加えたセグメントを作りIP制御プログラムに渡す。IP制御プログラムも受け取ったセグメントをデータとして扱い、IPの規約に従った制御情報をヘッダとして加えたパケットを作り、Ethernet制御プログラムに渡す。
最後に、IPパケットを受け取ったEthernet制御プログラムはEthernetの規約に従ったヘッダ情報にトレーラを加えたフレームを作成する。トレーラとは、相手のコンピュータが受信したときに、情報が伝送途中に壊れていないか確認するためのチェックコードのことだ。そして、このフレームを構成するビットパターンに応じた電気信号を、相手のコンピュータに伝送するのである。
さて、受信側のコンピュータは、フレームを受信するとEthernet制御プログラムでトレーラのチェックコードを使って伝送途中でデータが壊れていないかチェックする。正常であればヘッダ情報に応じた処理を行ない、IP制御プログラムにIPパケットを渡す。IP制御プログラムは渡されたIPパケットの中のIPヘッダの処理を行ない、セグメントをTCP制御プログラムに渡す。同様にして、TCP制御プログラムもTCPヘッダ情報の処理を行ない、HTTP サーバプログラムにデータを渡す。最後に、HTTPサーバプログラムは、HTTP規約に従った情報を判断し処理を行なう。
TCP/IPの階層モデルでは、以上のような手順でプロトコル間の情報を受け渡している。
(次ページ、「複数のネットワークを経由する仕組み」に続く)
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第3回
ネットワーク
特別なIPアドレスって知っていますか? -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ