Subject: dynamic rwin adjustments

From: "Eric A. Hall" <[email-masked]>
Date: Tue, 23 Feb 1999 12:55:08 -0800

Anybody doing anything with dynamic default rwin sizes? Like, if the
incoming connection request is from a local node whose RTT is already
known, set window for X? or, probably better, if connection request is
from a remote system with no defined route, assume high-latency RTT
equal to previous remote connections and set rwin to X?

-- 
Eric A. Hall                                            [email-masked]
+1-650-685-0557                                    http://www.ehsco.com

---

From: Jamshid Mahdavi <[email-masked]>
Date: 24 Feb 1999 14:17:41 -0800

"Eric A. Hall" <[email-masked]> writes:

> Well that's the problem I think. Defining MAX as 64k is definitely
> overkill for 10 mb/s link with 2ms response time, but its underkill (?)
> when the link is a multi-hop 100 mb/s connection with something like
> 10ms latency from multiple bridges/routers between the client and server
> systems (not uncommon on large complex LANs).

The question is (not that I'm saying you're wrong, mind you) why do
you think it is overkill?  In principle, you aren't using any
resources on the receiver by choosing 64k, and the sender is still
doing congestion control and properly utilizing the network path.  Or
so the theory goes :-)

--J

---

From: "Eric A. Hall" <[email-masked]>
Date: Wed, 24 Feb 1999 14:27:32 -0800

> you think it is overkill?

Because it is overkill; whether or not it hurts anything, I don't know.
I wouldn't be surprised if at least some systems set aside resources
according to the window. Doesn't WinSock do this,?

There are absolutely problems when it is underestimated.

In either case, it's just wrong to use a "guessed" value: no matter how
you guess, you will be wrong a good bit of the time. Optimize for local
LAN usage and you're probably going to get hurt when you go out on the
WAN or when you connect to a server thats on the other side of the
campus. Conversely, optimizing for either of those would probably be
inadequate for the other scenarios. Therefore, it seems like doing
calculations on a per-link basis would be a good idea.

Also, before Vernon gets worked up, let me say right off that I'm not
proposing anything. I'm just wondering how much gain there would be had
from doing it. It would seem that there would be a substantial gain in
overall throughput (measured over weeks anyway). Would the lost setup
time take away from that?

Just some random thoughts.

---

From: "Eric A. Hall" <[email-masked]>
Date: Wed, 24 Feb 1999 08:44:00 -0800

> See our autotuning paper at:
> http://www.psc.edu/networking/papers/auto_abstract.html

I've read it.

> We argue in the paper (without real proof) that you can just maxing
> out the receiver window is just as effective as tuning would be, and
> much simpler.

Making any sort of reasonable guess at all depends on knowing the
bandwidth, latency and MTU for that link. All of this info is either
already known, or is at least detectable, so maybe it should be used.

I'm just wondering if any vendors are building this into their stacks.
Or is it not worthwhile? The defaults are of course wrong at least some
of the time, but is figuring out the correct window just too much work
for too little gain?