----- Original Message -----
From: "Ian C. Sison" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, July 24, 2001 3:22 PM
Subject: TCP Tweaking for maximum throughput WAS>> Re: [plug] Report:
Optimizing Samba
> This is an interesting discussion. In particular, i'm wondering why these
> settings aren't made the default. Would it be that these settings would
> only work for High Speed LAN access?
actually there are two primary reasons why they did that.
1. bandwidth management
2. saving memory
> Typically, just how big does a
> window have to be depending on your local bandwidth?
that's an excellent question and the answer is bandwidth-delay product.
window size = bandwidth x RTT
where:
bandwidth (bps) must be converted it into bytes per second and
Return Time Trip (ms) must be converted it into seconds
> The basic question would be caveats, and why not just move on over the
> max-settings?
as i said above the two primary reasons
1. bandwidth management
example you have an E1 (2m bps) submarine cable link going to the states
with an average RTT of 200 ms... in order to fully saturate this link for
only *one connection* you need a tcp window size of:
tcp window size = (2 mbps / 8 bits per byte) x (200 ms / 1000 ms per second)
tcp window size = 52,428 bytes
so if you have one linux client (64k tcp window size) downloading or
uploading to the remote host that is also using linux (with 64k window size
too). it will going to saturate your E1 link.
compare to w9x 8k tcp window size as client, the maximum throughtput that
w9x box can get during download is:
8192 bytes = bandwidth x (200 ms / 1000 ms per second)
bandwidth = (8192 bytes) / (200 ms /1000 ms per second)
bandwidth = (40960 bytes per second) x (8 bits per byte)
bandwidth = 327680 bits per second
bandwidth = 327 kbps
thus you need 2mbps / 327 kbps = 6.4 windows 98 client to saturate the E1
link... meaning to say, for an E1 link and the client has 8k tcp window
size, you giving them a maximum througput of 327 kbps for each of them
compare to one linux box that has a 64k tcp window size that is hogging the
whole E1 link .. therefore, setting a tcp window size lower than the exact
value to saturate that link, you are implementing a kind of bandwidth
management. :->
2. saving memory
as an example for number 1 for E1 link and you have a host that has 64k
tcp window size, we already know that it can hog the whole link... the same
host requesting again for a connection and another connnection and another
connection and so on and so forth, every connection will have a bandwidth of
E1 divided by N connection *each*. therefore, it will not going to fully use
the 64k tcp window size that is allocated in memory thus wasting of memory
space.
fooler.
_
Philippine Linux Users Group. Web site and archives at http://plug.linux.org.ph
To leave: send "unsubscribe" in the body to [EMAIL PROTECTED]
To subscribe to the Linux Newbies' List: send "subscribe" in the body to
[EMAIL PROTECTED]