The end-to-end principle is a design framework for distributed systems. It counsels that the network should be kept as simple as possible and the intelligence required in a network be kept at the ends of the network - the entry points to it, in other words, as far as possible[1]. On a computer network, that would mean "application-specific" complexity would be in the communicating end nodes of the network, rather than in intermediary gateways and routers, that comprise establish the network.

In the case of the internet, the basic layer of the network is a TCP/IP protocol that sends packets of very basic data across the network.

Consequences of this design philosophy:

  • You can innovate on the network without bothering the network "owner". This avoids "strategic" behaviour by the network owner (such as interfering to stifle the innovation).
  1. Lawrence Lessig, Code 2.0,126.