
Falsehoods programmers believe about networks - peter_d_sherman
http://blog.erratasec.com/2012/06/falsehoods-programmers-believe-about.html
======
nly
The worst one I see on a regular basis is the belief that because TCP is
"reliable" that the other end going away will be detected promptly.

For all intents and purposes you have to assume that calling send() or recv()
on a TCP socket will block indefinitely. Apply your own timeouts and, if
applicable, a heartbeating and acknowledgement/recovery mechanism.

Another one I see is that people forget that the TCP network stack has
(dynamic) buffering, with all the latency and loss issues that can incur.

