エンドツーエンド原理
エンドツーエンド原理(End-to-End Principle)は、コンピュータネットワークの古典的設計原理であり、1981年に Jerome H. Saltzer、David P. Reed、デービッド・ダナ・クラークらの論文 End-to-end arguments in system design で初めてその概念が提唱された。通信プロトコルの操作は可能な限り通信システムの終端で行い、また制御対象のリソースになるべく近いところで行うべきであるというもの。
エンドツーエンド接続性(End-to-End Connectivity)は、インターネットの特徴であり、ネットワーク上の全ノードが(途中のネットワークで変換を加えることなく)他の任意のノードにパケットを送信できることを意味する。これはTCP/IPの特性である。
しかし、ネットワークを構成する要素や技術(例えばネットワークアドレス変換)は、エンドツーエンド接続性を保持していない。この特性がない場合、新たなプロトコルを使用するにはそれをサポートする新たな機器などが必要となる。このことは、TCPのコネクションを使わないでインターネットを利用する新たなアプリケーションの展開を妨げている。例えば、IPsecの普及、IPv6への移行、Peer to Peerアプリケーションの普及、ネットワークゲームの普及などが挙げられる。
エンドツーエンド接続性は時として以下のような実用的理由で意図的に放棄されることがある:
IPv4 アドレス空間は限りある資源であり、必要と思われるよりIPアドレスが少なくなることは明らかである。
セキュリティのために一種のアドレス変換を行ってルーティング範囲を制限すること。これはつまり、ネットワークアドレス変換(NAT)を隔てた位置にあるコンピュータは信頼されていない領域から直接アクセスできない。
この傾向により、インターネットユーザーは2種類に分かれつつある。一方は実際にインターネット接続が可能な人々で、もう一方は外向きのTCP接続でしかインターネットを利用できない人々である。