†TCP/IPプロトコルアーキテクチャはケーキのスポンジの層(レイヤー)のように、4つの基本層に分かれている。各層はその下の層に依存している。コンピュータからデータが送られるとデータが層を移動する。このプロトコル4階層の形態をDARPAモデルという。各層は上の位置からデータを受け取ると、ヘッダと呼ばれる制御用のデータを加える。データの前に付けるのでヘッダ(header)と呼ばれる所以である。この作業プロセスをカプセル化と呼ぶ。イメージとしては、荷物にどんどんヘッダという小物を加えていき、全体をひとまとめにするようなものだ。ひとたび情報が届いたら、反対の作業が行われ、それぞれの層がヘッダを読み、残りの情報を上位の層に渡す前にヘッダを削除する。イメージの助けとして電話通信の2階層プロトコルを次に示します。電話通信は下にいくにつれてヘッダが付加はされない。音声データが電気信号に変換されるだけである。†コンピュータはMACアドレスとIPアドレスの対応表を照らし合わせてネットワーク上のコンピュータを探すためにARP(プロトコルの一種)を用いる。この対応表は正しいMACアドレスをローレベル(物理レベル)IPパケットに埋め込むことでリモートのコンピュータとコミュニケーションが取れるようになる。ARPソフトウェアがARPキャッシュにデータがないIPアドレスを持ったコンピュータへの接続依頼を受けると、ARPはLAN上の全てのホストに見つからないコンピュータを探すために相手のIPアドレスを尋ねるメッセージをブロードキャストする。該当するリモートのコンピュータがARPリクエストを受信したら、見つからなかったMACアドレスを含むパケットを送り返す。することによって、ARPキャッシュはIPアドレスが見つからなかったコンピュータのMACアドレスの両方を把握できる。ネットワークアナライザ(Sniffer)を使っているならば、ネットワーク上のARPトラフィックを見分けることができる。試しにLinux上のARPキャッシュを空にしてから、ネットワークトラフィックを観察してみると、ARPパケットがキャッシュを再構築するためにネット上を飛び交うのが観察できるはずだ。†インターネット層はネットワークの上位に位置する層である。情報をデータグラムと言われるパケットにカプセル化して、その上位にある層が使う基本的なパケット伝送サービスを提供する。Protocol)はコネクション不要のプロトコルである。IPのパケット構造を見るとわかるが、IPはデータグラムの再構築やルーティングなどを担当している。†プロセス間あるいはアプリケーションプログラム間の通信をサポートする層である。TCP/UDP/ICMPといったプロトコルが使われる。ちなみに、これらのプロトコルを各ホスト上で実行するプログラムあるいはモジュールのことをトランスポートプロバイダという。このトランスポート層において、ソケットはアプリケーションを作成する際のインタフェースとなる。ソケットは(OS側の)サービスアクセスポイント(ポート番号のこと)とプロセスを繋ぐアダプタの役目を果たす。[補講]UNIXのプロセスはファイルディスクリプタというものを通じて、すべての入出力を行う。ここではアダプタ=ファイルディスクリプタと思ってもらって構わない。†OSI7階層のセッション、プレゼンテーション、アプリケーションの層を担当する。ルーティング(4858d)。