てきとうなメモ

本の感想とか技術メモとか

end-to-end

end-to-endはあまり明確な意味を知らなかったので,リンク先の論文を読んでみた.

The principle, called the end-to-end argument,
suggests that functions placed at low levels of a system may be redundant or of little
value when compared with the cost of providing them at that low level.

http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf

と書いてあるので

すべてのホストがサーバなしで同格に接続するend-to-endシステムで、最近の言葉でいえばpeer-to-peerである。

指定されたページがみつかりませんでした - goo ブログ

これもおかしいような.

論文によると,end-to-endとは機能を低レベルなネットワークの機能として実装するよりも末端同士の高レベルなアプリケーションに実装させた方が良い,という考え方.片方のendがクライアントでもう片方がサーバであればClient-Serverシステムになるので,「すべてのホストがサーバなしで同格に接続する」とは限らない.

なぜ,ネットワークに実装するよりもアプリケーションに実装した方がいいかというと,アプリケーション層の方がより多くの情報が得られるので柔軟に実装できるから.例えばファイル転送プログラムのチェックサムによるエラー検出を考えると,ネットワーク上に実装するとネットワーク上のエラーは検出するできるのだが,末端で動くファイルシステムやファイル転送プログラムによるファイルのエラーを検出することはできない.

ちなみに全てをend-to-endにすべきだとまでは書かれてなく,問題によってはネットワーク上に実装するメリットも提示していた.