The End-to-End Principle


The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system.

Therefore, providing that questioned function as a feature of the communication system itself is not possible. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement.)

We call this line of reasoning. . .“the end-to-end argument.”

Link Reliability


TCP doesn’t work well when you have low reliability. So wireless link layers improve their reliability by retransmitting at the link layer.

When your laptop sends a packet to an access point, if the access point receives the packet it immediately it’ll sends a link layer acknowledgement.

If the laptop doesn’t receive a link layer acknowledgment, it retransmits. It does this several times.

Using these link- layer acknowledgements can boost a poor link, with only 80% reliability, to 99% or higher. This lets TCP work much better.

“Strong” End to End


The network’s job is to transmit datagrams as efficiently and flexibly as possible. Everything else should be done at the fringes. . . – [RFC 1958]

The reasoning for the strong principle is flexibility and simplicity.