The end-to-end (E2E) principle is a design principle in computer networking that requires application-specific features (such as reliability and security) to be implemented in the communicating end nodes of the network, instead of in the network itself. Intermediary nodes (such as gateways and routers) that exist to establish the network may still implement these features to improve efficiency but do not guarantee end-to-end functionality.

The essence of what would later be called the end-to-end principle was contained in the work of Donald Davies on packet-switched networks in the 1960s. Louis Pouzin pioneered the use of the end-to-end strategy in the CYCLADES network in the 1970s.

History

In the 1960s, Paul Baran and Donald Davies, in their pre-ARPANET elaborations of networking, made comments about reliability. Baran introduced the concept of virtual circuits in 1962. His report in 1964 states: "Reliability and raw error rates are secondary. The network must be built with the expectation of heavy damage anyway. Powerful error removal methods exist." He captured the essence of the end-to-end principle in his 1967 paper, which stated that users of the network will provide themselves with error control: "It is thought that all users of the network will provide themselves with some kind of error control and that without difficulty this could be made to show up a missing packet. Because of this, loss of packets, if it is sufficiently rare, can be tolerated."

The ARPANET was the first large-scale general-purpose packet switching networkimplementing several of the concepts previously articulated by Baran and Davies. The design, led by Bob Kahn, was based on reliable virtual circuits. The BBN "IMP Guys" developed the routing algorithm, flow control, software design, and network control.

Building on these ideas, Louis Pouzin, with Hubert Zimmermann and others, developed the CYCLADES network. This was the first wide-area network to implement datagrams and make the hosts responsible for the reliable delivery of data, rather than this being a centralized service of the network itself.

Applications

ARPANET

The ARPANET demonstrated several important aspects of the end-to-end principle.

;Packet switching pushes some logical functions toward the communication endpoints

:If the basic premise of a distributed network is packet switching, then functions such as reordering and duplicate detection inevitably have to be implemented at the logical endpoints of such a network. Consequently, the ARPANET featured two distinct levels of functionality:

:# a lower level concerned with transporting data packets between neighboring network nodes (called Interface Message Processors or IMPs), and

:# a higher level concerned with various end-to-end aspects of the data transmission.