Internet Protocol - Research by Kirils Solovjovs
Internet Protocol - Research by Kirils Solovjovs
Internet Protocol - Research by Kirils Solovjovs
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
End-to-end principle 102<br />
End-to-end principle<br />
The end-to-end principle is a classic design principle of computer networking, [1] first explicitly articulated in a<br />
[2] [3]<br />
1981 conference paper <strong>by</strong> Saltzer, Reed, and Clark.<br />
The end-to-end principle states that application-specific functions ought to reside in the end hosts of a network rather<br />
than in intermediary nodes – provided they can be implemented "completely and correctly" in the end hosts. Going<br />
back to Baran's work on obtaining reliability from unreliable parts in the early 1960s, the basic intuition behind the<br />
original principle is that the payoffs from adding functions to the network quickly diminish, especially in those cases<br />
where the end hosts will have to re-implement functions for reasons of "completeness and correctness" anyway<br />
(regardless of the efforts of the network). [4] Moreover, there is an unfair performance penalty paid <strong>by</strong> all network<br />
clients when application functions of just a few clients are pushed into the intermediate nodes of a network.<br />
The canonical example for the end-to-end principle is that of arbitrarily reliable file transfer between two<br />
communication end points in a distributed network of nontrivial size [5] . The only way two end points can obtain<br />
perfect reliability for this file transfer is <strong>by</strong> positive acknowledgment of end-to-end checksums over the final file in<br />
the destination storage locations on the destination machine. In such a system, lesser checksum and acknowledgment<br />
(ACK/NACK) protocols are justified only as a performance optimization, useful to the vast majority of clients, but<br />
are incapable of anticipating the reliability requirement of the transfer application itself (because said requirements<br />
may be arbitrarily high).<br />
As an example of the end-to-end principle in practice, to reach Six Sigma reliability, file servers made <strong>by</strong> NetApp<br />
were forced to implement end-to-end checksums (making the disk drive checksums redundant) because the<br />
checksums used <strong>by</strong> certain disk makers were insufficient to meet a guarantee of Six Sigma reliability.<br />
In debates about network neutrality a common interpretation of the end-to-end principle is that it implies a neutral or<br />
"dumb" network.<br />
Basic content of the principle<br />
The fundamental notion behind the end-to-end principle is that for two processes communicating with each other via<br />
some communication means, the reliability obtained from that means cannot be expected to be perfectly aligned with<br />
the reliability requirements of the processes. In particular, meeting or exceeding very high reliability requirements of<br />
communicating processes separated <strong>by</strong> networks of nontrivial size is more costly than obtaining the required degree<br />
of reliability <strong>by</strong> positive end-to-end acknowledgements and retransmissions (referred to as PAR or ARQ). [6] Put<br />
differently, it is far easier and more tractable to obtain reliability beyond a certain margin <strong>by</strong> mechanisms in the end<br />
hosts of a network rather than in the intermediary nodes, [7] especially when the latter are beyond the control of and<br />
accountability to the former. [8] An end-to-end PAR protocol with infinite retries can obtain arbitrarily high reliability<br />
from any network with a higher than zero probability of successfully transmitting data from one end to another. [9]<br />
The end-to-end principle does not trivially extend to functions beyond end-to-end error control and correction. E.g.,<br />
no straightforward end-to-end arguments can be made for communication parameters such as latency and<br />
throughput. Based on a personal communication with Saltzer (lead author of the original end-to-end paper [5] )<br />
Blumenthal and Clark in a 2001 paper note: [10]<br />
[F]rom the beginning, the end-to-end arguments revolved around requirements that could be implemented<br />
correctly at the end-points; if implementation inside the network is the only way to accomplish the<br />
requirement, then an end-to-end argument isn't appropriate in the first place. (p. 80)