1.6 参照モデル(pp.56-63)
階層化プロトコルの設計の課題の一つは、各層の機能とそれらの間の相互作用を定義すること
本書では、TCP / IP 参照モデルと OSI 参照モデルの2つが支配的なモデルに加えて中間的なモデルを扱う
1.6.1 OSI 参照モデル(pp.56-57)
図 1-32:OSI 参照モデル
OSI (Open Systems Interconnection:開放型システム間相互接続) 参照モデル、略して OSI モデル(OSI Model)
通信システムは開放システムのひとつ
ISO でプロトコルの標準化として提案された
なぜ7つの層か
1.異なる抽象化が必要なので層を作ろう
2.層の機能は明確に定義して実現しよう
3.各層の機能は国際的な標準化にふさわしいものにしよう
4.インタフェースをまたぐ情報の流れが最小限になるように層の境界を選ぼう(層を分けよう)
5.異なる機能を一緒にせずに分けた層は、アーキテクチャが重たすぎないくらいの数にしよう
OSI モデルは3つの中心的概念の区別を明確にしたが、TCP / IP モデルは当初そうではなかった
サービス
インタフェース
プロトコル
各層が上位層に行うことをサービス(service) という
1.6.2 TCP / IP 参照モデル(pp.57-60)
TCP / IP 参照モデル(TCP / IP reference model) は ARPANET とインターネットで用いられている
2つの主要な設計目標
ARPANET に衛生や無線ネットワークなど新しいネットワークを付け加える時に問題が生じたため、複数のネットワークを継ぎ目なく接続することが求められた
冷戦下ではソ連の攻撃でホストやルーターなどの機器が破壊されるリスクがあったため、送信元と送信先の間にあるサブネットのハードウェアが失われてもネットワークが機能することが求められた
リンク層(link layer)
以上の要求から、コネクションレス層に基づくパケット交換ネットワークが選択された
パケット交換ネットワークを支えるために、モデルの最下層がすべきことが記述されている層
参考書の中には「ネットワーク・インタフェース層」という呼称もある
インターネット層(internet layer)
ここでいう「インターネット」は「相互接続されたネットワークの集合体」
IP パケットを行き先に配達するのが仕事の層であり、ルーティング(経路の決定)と輻輳(過負荷)の管理が主な問題で、前者はおおよそ解決しているが、後者は上位層の助けを借りて対処している
送信パケットの順序の復元は上位層に任せている
次の2つを定めている
IP(Internet Protocol:インターネット・プロトコル) =パケット・フォーマットとプロトコル
ICMP(Internet Control Message Protocol:インターネット制御メッセージ・プロトコル) =付随プロトコル
トランスポート層(transport layer)
2種類のエンド・ツー・エンド・プロトコルを実装する
TCP(Transmission Control Protocol:伝送制御プロトコル)
コネクション指向の高信頼プロトコル
送信元ではバイトストリームをメッセージに分割してインターネット層に渡し、宛先で出力ストリームに組み立て直される(順序制御)
速い送信者が受信者をメッセージで圧倒しないようにフロー制御を行う
UDP(User Datagram Protocol:ユーザー・データグラム・プロトコル)
順序制御やフロー制御をしない低信頼コネクションレス・プロトコル
速い伝達が正確な伝達よりも重要なアプリケーションに用いられる
アプリケーション層(application layer)
TCP / IP モデルに OSI モデルでいうセッション層やプレゼンテーション層はなく、それらのうち必要な機能をアプリケーション層が吸収している
トランスポート層より高位のプロトコルをすべて含んでいる
仮想端末(TELNET)、ファイル転送(FTP)、電子メール(SMTP)、ドメイン名システム(DNS)、Webページ取得(HTTP)、リアルタイムメディア配送(RTP)など
1.6.3 OSI モデルとプロトコルの批評(pp.60-62)
OSI モデルとそのプロトコル、TCP / IP モデルとそのプロトコルについて、それぞれいくつかの批評を見る
OSI モデルが支配的にならなかった理由には、4つの問題点があった
(問題点1)時期が悪かった
「図 1-35 2頭の象の啓示」は David Clark が示した標準化の理論
あるテーマについての研究活動と巨額の投資活動は2つの山が並ぶように活発になり、その間のくぼみが標準を開発するベストタイミングであり、早すぎても遅すぎてもいけない
OSI プロトコルの登場時点で競争相手の TCP / IP プロトコルは研究機関や大学に普及していて多くのベンダーが慎重に提供を開始し、投資の波は来ていなかったものの学術市場規模は大きかった
その一方で、OSI のプロトコル・スタックのサポートに手を出す所は現れなかった
(問題点2)設計が悪かった
7つの層の選択は政治によるものが大きく技術的な合理性を欠いていた
規格は複雑で理解不能だった
いくつかの機能が各層で繰り返し現れていて非効率的だった
(問題点3)実装が悪かった
当初の実装は複雑で扱いにくく、その後の製品が改良されても品質の悪い印象が残った
一方、TCP / IP は非常に良い実装をバークレー版 UNIX の一部として無料提供され、それが利用者の拡大とコミュニティの拡大、そして改良が繰り返される上向きのサイクルを作った
(問題点4)駆け引きが悪かった
当初、TCP / IP が UNIX の一部と思われていた一方で、OSI は欧州や米国の官公団体による創造物と思われていた
それは実際には誤りだったが、親しみにくいイメージをもたらした
1.6.4 TCP / IP 参照モデルとプロトコルの批評(p.62)
問題点1:TCP / IP モデルは、サービス、インタフェース、プロトコルの概念を区別していない
問題点2:TCP / IP 以外のプロトコル・スタックを説明するのに役に立たない(例えば Bluetooth)
問題点3:リンク層は階層プロトコルでいう「層」とは言えず、インターネット層とデータ・リンク層の間のインタフェースと言うべきものである
問題点4:物理層とデータ・リンク層の区別をしていない(物理媒体の伝送特性の問題とフレーム送信の問題が区別されていない)
問題点5:IP と TCP 以外の多くの初期プロトコルは場当たり的で置き換え困難な実装になっている(ex: TELNET)
1.6.5 本書で用いるモデル(p.63)
本書で用いる「図 1-36 本書で用いる混成モデル」は、OSI の長所であるモデルと、TCP / IP の長所であるプロトコル(protocol) のいいとこ取り
1物理層=異なる媒体をまたいでビット伝送する
2データ・リンク層=異なるマシン間で有限長のメッセージを定められたレベルの信頼性で送信する
3ネットワーク層=ネットワーク同士の結合やパケット送信とその経路を決定する
4トランスポート層=ネットワーク層の配達保証を強化する信頼性の向上と、アプリケーション層の要求に合致した配達概念の抽象化を実現する
5アプリケーション層:ネットワークを利用するプログラム、および支援プログラム
事実上重要な TCP/IP とその関連プロトコル、802.11、SONET、Bluetooth にも焦点を当てる