http://en.wikipedia.org/wiki/End-to-end_principle "application-specific functions ought to reside in the end hosts of a network rather than in intermediary nodes – provided they can be implemented "completely and correctly" in the end hosts." "The canonical example for the end-to-end principle is that of arbitrarily reliable file transfer between two communication end points in a distributed network of nontrivial size[Ref 2]. The only way two end points can obtain perfect reliability for this file transfer is by positive acknowledgment of end-to-end checksums over the final file in the destination storage locations on the destination machine. In such a system, lesser checksum and acknowledgment (ACK/NACK) protocols are justified only as a performance optimization, useful to the vast majority of clients, but are incapable of anticipating the reliability requirement of the transfer application itself (because said requirements may be arbitrarily high)."