The end-to-end principle is a network design method in which application-specific features are kept at communication end points.
The principle is in contrast to features existing on intermediate points between the client and end points, like gateways and routers. In this method, intermediate nodes pass data randomly. The lack of discrimination makes it possible to replace any intermediate node with any other one without failure of functions, since functions exist only in end points.
The end-to-end principle removes critical components from intermediary communications nodes in order to increase routing options, improve data delivery rates and make sure applications only fail if the end point fails. The principle was developed to address the need for reliable communications in inherently unstable environments and has long been employed in most networking models.
Net neutrality is conceptually based on the end-to-end principle. In the same way that data passes through any intermediate nodes with no differentiation in treatment, net neutrality requires that Internet service providers (ISP) refrain from discriminating between data on their network.