[e2e] Why do we need TCP flow control (rwnd)?
michael.scharf at ikr.uni-stuttgart.de
Tue Jul 1 10:48:41 PDT 2008
On Tue, 01 Jul 2008 at 09:20:33, David P. Reed wrote:
> In the case of POP3, there is an application layer "flow control" in the
> handshakes. This *partly* would obviate the need for rwnd - if messages
> were all shorter than a threshold. My conclusion when I studied this is
> that TCP flow control and POP3 handshakes actually get in each others' way.
> If we implemented end-to-end flow control in such a way that apps could
> dynamically adjust rwnd directly, I'm sure many would. The current
> "conservative" approach is neither fish nor fowl.
Just to better understand this: If the app provided frequently a
"perfect" value for rwnd, the network stack would still have to
"allocate" a buffer of size rwnd for this connection, since it cannot
be sure when the app will exactly read the data, right? So, this ends
up more or less in a dynamic app-driven adjustment if the "receive
Providing such an API to apps should not be very complex (e. g.,
socket option), to some extent it may even exist today. I may be wrong
once again, but I think it would take quite a long time until app
developers would become aware of it...
More information about the end2end-interest