TCP/IPにおける実装

TCP/IPがOSI7層構造モデルに準じているかというば、実はそうでもありません。

OSI7層構造モデルは7層にも分かれていますので、誤解を恐れずに単純に考えれば、1バイトのデータを送るのに7回のサブルーチン・コールが起こってしまい、パフォーマンス(処理能力)が低下します。OSI7層構造モデルはいわば理論ですので、TCP/IPでは、これを実装するにあたって単純化しています(というか、実はOSI7層構造モデルが提唱される前に、すでにTCP/IPがあったりする?)。

  1. TCP/IPにおけるプロトコル・スタック

    TCP/IPでは、以下のような階層構造を取ります。

    TCP/IPにおけるプロトコル・スタック
    名称実装例処理概要
    アプリケーション層 ftp(File Transfer Protocol−−ファイル転送), telnet(仮想端末), www(World Wide Web) 業務に依存した処理
    トランスポート層 TCP, UDP 宛先/送信元アプリケーションの特定、誤り制御、シーケンス制御(到着順序保証)
    インターネット層 IP, ARP, ICMP 宛先のコンピュータまで電文を到達させる
    データリンク層 PPP, LANボードの各種デバイスドライバ 物理媒体/装置へのインターフェース
    物理層 イーサネット 伝送路の物理的な仕様

  2. 実際の例を以下に示します。

  3. 各層における電文の構成

    これら各層は、実際には以下のようなデータ(電文)のやりとりを行っています。

  4. 層間の電文受け渡しにおける処理

    各層は、各上下のプロトコル層に電文を渡す際、以下のような処理を行います。

    電文を渡す方向処理概要
    上位層→下位層 電文の先頭に、その層特有のヘッダを生成して付加する。
    下位層→上位層 相手側の同じ層が付加したヘッダを削除する。

    各層は、自分が担当する処理を行う際は、基本的にはその層特有のヘッダ部分しか参照しません。