End-To-End Arguments in System Design

Notes by Thorsten von Eicken, Jan 29 1998

Idea

The correctness of an operation needs to be checked end-to-end. Correctness checks for intermediate results do not help checking overall correctness, however, they may improve performance by avoiding a  complete end-to-end retry.

Nice anecdotes

Nice MIT gateway byte-swapping bug anecdote.

Problems with the meaning of ACKs.

Duplicate message suppression.

Questions

Is TCP's notion of a reliable byte stream useful beyond perhaps improving performance? Examples where TCP's reliability is counter-productive?

Is a FIFO delivery guarantee provided by the network useful?

Authentication argument?