A mini-rant, from the application developer's perspective.
It's certainly worth considering low-level transport issues
when working on these protocols, however:
* As an apps guy, I have _no control_ over the stack underneath
me.
Unix boxes tend to implement TCP very well. WINSOCKs come
in all flavors, some better than others. We've even used
a package on the Mac that required a patch to select() to
report reset connections.
* Is HTTP tied to TCP?
I tend to think that many of the "problems" that HTTP-NG
addresses are actually with TCP, not HTTP itself. We've
done work for firms that (horrors!) don't run a TCP network,
but they still see that value of HTTP as a backbone IS protocol.
So, when I see references to "advertising different window sizes",
or "doing a half-duplex shutdown()", I think that it's nice to know
that we can optimize implementations for the commonly used (and
correctly implemented!) transports, but it's much more important
that the HTTP protocol solve problems *at its level of abstraction*,
without making unusual demands upon the transport.
Not usually such a luddite,
-Dave