エンドツーエンド原理
出典: フリー百科事典『ウィキペディア(Wikipedia)』
エンドツーエンド原理(End-to-End Principle)とは、インターネットで広く使われている Transmission Control Protocol (TCP) の主要な設計原理である。通信プロトコルの操作は可能な限り通信システムの終端で行い、また制御対象のリソースになるべく近いところで行うべきであるというもの。
目次 |
[編集] 概要
1981年、Jerome H. Saltzer、David P. Reed、デービッド・ダナ・クラークらの論文 End-to-end arguments in system design で初めてその概念が提唱された。彼らは、信頼性が求められるシステムでは、中間システムでの処理に加えて、正しい動作のためにエンドツーエンドでの処理を要求される傾向があるとした。最下層の通信システムの機能の多くは上位層クライアントのために実装されているものの、クライアントがその機能を必要としないこともあり、クライアントが同等機能をエンドツーエンド的に再実装するような冗長な状況が存在すると指摘した。
この考え方をつきつめると、ほとんど機能を持たないダムネットワークと賢い端末というモデルが出てくる。これは、それまでの賢いネットワークとダム端末というパラダイムとは全く逆である。
例えば、TCP/IPプロトコルスタックでは、IPがダムであり、状態のないプロトコルでパケットを単純にネットワーク上でやりとりしている。一方、TCPは賢いトランスポート層プロトコルであり、誤り検出、再送、輻輳制御、フロー制御などをエンドツーエンドで行う。TCPは下位プロトコルにほとんど依存していないため、各種ネットワークプロトコル上で動作可能である。
もう1つの典型的な例としてファイル転送がある。信頼性のあるファイル転送プロトコルやファイル転送プログラムではチェックサム機能を持ち、転送が完了した時だけチェックサムを検証する。ディスク障害やソフトウェア障害を考慮すると、エンドツーエンドのチェックサムが必要となる。ファイル転送でのキーとなるリソースはファイルシステムである。エンドツーエンド原理に従えば、ファイル転送でファイルシステムにアクセスするソフトウェアが転送の進み具合を制御し、最小の遅延で再転送を開始させることになる。
エンドツーエンド原理では、下位層でのプロトコル機能の実装はそれが性能最適化に寄与する場合だけ正当化される。TCPでの再送機能は信頼性のための機能だが未だに正当化されている。このようなTCPの信頼性を高める努力はピーク性能に達した段階でやめるべきである。
エンドツーエンド原理は、高度なデータの正確性と遅延許容性のあるアプリケーション(ファイル転送など)では非常にうまく機能することが証明されている。しかし、電話などのようにデータの正確性よりもリアルタイム性が要求されるアプリケーションではその限りではない。エンドツーエンド原理は大規模なマルチキャストおよびブロードキャストネットワークにも適切とは言えない(例えば、損失の大きい無線通信など)。というのも、再送によるオーバヘッドがそのようなアプリケーションにおいては影響が大きいからである。
[編集] エンドツーエンド接続性
エンドツーエンド接続性(End-to-End Connectivity)は、インターネットの特徴であり、ネットワーク上の全ノードが(途中のネットワークで変換を加えることなく)他の任意のノードにパケットを送信できることを意味する。これはTCP/IPの特性である。
しかし、ネットワークを構成する要素や技術(例えばネットワークアドレス変換)は、エンドツーエンド接続性を保持していない。この特性がない場合、新たなプロトコルを使用するにはそれをサポートする新たな機器などが必要となる。このことは、TCPのコネクションを使わないでインターネットを利用する新たなアプリケーションの展開を妨げている。例えば、IPsecの普及、IPv6への移行、Peer to Peerアプリケーションの普及、ネットワークゲームの普及などが挙げられる。
エンドツーエンド接続性は時として以下のような実用的理由で意図的に放棄されることがある:
- IPv4 アドレス空間は限りある資源であり、必要と思われるよりIPアドレスが少なくなることは明らかである。
- セキュリティのために一種のアドレス変換を行ってルーティング範囲を制限すること。これはつまり、ネットワークアドレス変換(NAT)を隔てた位置にあるコンピュータは信頼されていない領域から直接アクセスできない。
この傾向により、インターネットユーザーは2種類に分かれつつある。一方は実際にインターネット接続が可能な人々で、もう一方は外向きのTCP接続でしかインターネットを利用できない人々である。
[編集] 参考文献
- Jerome H. Saltzer, David P. Reed, and David D. Clark. End-to-end arguments in system design. ACM Transactions on Computer Systems 2, 4 (November 1984) pages 277-288. 以前の版は Second International Conference on Distributed Computing Systems (April, 1981) pages 509-512 にある。
[編集] 外部リンク
- http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf
- http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.txt
- http://web.mit.edu/Saltzer/www/publications/endtoend/ANe2ecomment.html
- End-to-End Ethernet Connectivity Fault Management in Metro and Access Networks Technology White Paper
- End to End