02.01.2013 Views

Internet Protocol - Research by Kirils Solovjovs

Internet Protocol - Research by Kirils Solovjovs

Internet Protocol - Research by Kirils Solovjovs

SHOW MORE
SHOW LESS

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)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!