From: David Miller <davem@davemloft.net>
To: lkml@rtr.ca
Cc: jheffner@psc.edu, torvalds@osdl.org,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: 2.6.17: networking bug??
Date: Tue, 13 Jun 2006 15:23:01 -0700 (PDT) [thread overview]
Message-ID: <20060613.152301.26928146.davem@davemloft.net> (raw)
In-Reply-To: <448F32E1.8080002@rtr.ca>
From: Mark Lord <lkml@rtr.ca>
Date: Tue, 13 Jun 2006 17:49:21 -0400
> I suppose the most important objection to our current behaviour
> is that this behaviour *changes* when something totally unrelated
> (to Joe User) happens: adding or removing a stick of RAM.
We are pretty much required to choose the TCP memory parameters
based upon how much physical memory is in the machine, and these
parameters in-turn are inextricably linked to what kind of window
scale we try to use for connections.
The behavior is unfortunate, but more unfortunate are the boxes that
create these problems in the first place. I believe their lifespan is
quite limited.
> We should perhaps just have a fixed upper memory setting, as we
> currently do in 2.6.16, so that the behaviour is predictable.
The change in 2.6.17 was exactly that we needed to increase this
upper limit to ~4MB.
> On a related note.. I wonder if we can choose better values for
> the window size, so that if the scale factor is ignored, we still
> end up with reasonably sized packets? So that the other box
> will not think our window is a mere "94" when the scale factor
> is lost?
We have an algorithm that tries to pick something based upon the
set of the values we might need to represent in the window field.
If the scale is too high, you lose accuracy, since the lower bits
get chopped off when the TCP header is being built and the computed
window size is shifted down.
So we try to pick the smallest scale necessary to represent the
largest window size we might end up needing to advertise.
A complication here is that we dynamically size both receive and send
buffers in response to our growing knowledge of the connection's
characteristics over time. So at the beginning we'll use a small
buffer size, and as the congestion window grows we'll increase our
buffer sizes to fill the pipe.
This adds even more considerations for window scale selection, as you
can imagine.
One final word about window sizes. If you have a connection whose
bandwidth-delay-product needs an N byte buffer to fill, you actually
have to have an "N * 2" sized buffer available in order for fast
retransmit to work.
next prev parent reply other threads:[~2006-06-13 22:22 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-13 14:08 Mark Lord
2006-06-13 14:26 ` Mark Lord
2006-06-13 15:00 ` Mark Lord
2006-06-13 15:28 ` Mark Lord
2006-06-13 16:58 ` Mark Lord
2006-06-13 17:22 ` Mark Lord
2006-06-13 17:39 ` John Heffner
2006-06-13 17:50 ` Linus Torvalds
2006-06-13 18:26 ` Mark Lord
2006-06-13 19:08 ` Mark Lord
2006-06-13 21:26 ` David Miller
2006-06-13 21:49 ` Mark Lord
2006-06-13 22:12 ` Rick Jones
2006-06-13 22:23 ` David Miller [this message]
2006-06-13 22:40 ` Rick Jones
2006-06-13 23:01 ` David Miller
2006-06-13 23:22 ` Matt Mackall
2006-06-19 7:07 ` Helge Hafting
2006-06-14 5:18 ` Andi Kleen
2006-06-14 8:09 ` Daniel Drake
2006-06-13 18:28 ` John Heffner
2006-06-13 20:45 ` Barry K. Nathan
2006-06-13 22:09 ` Chase Venters
2006-06-13 22:23 ` David Miller
2006-07-02 17:39 ` Jan Knutar
2006-06-19 6:57 ` Helge Hafting
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060613.152301.26928146.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=jheffner@psc.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@rtr.ca \
--cc=netdev@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome