Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Dec 2001 14:33:29 -0800
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        Julian Elischer <julian@elischer.org>, Mike Silbersack <silby@silby.com>, Josef Karthauser <joe@tao.org.uk>, Tomas Svensson <tsn@gbdev.net>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD performing worse than Linux?
Message-ID:  <3C30E7B9.96EFA40F@mindspring.com>
References:  <Pine.BSF.4.21.0112311139180.9721-100000@InterJet.elischer.org> <200112311941.fBVJfvc25822@apollo.backplane.com> <3C30C5F9.BCC1BAE8@mindspring.com> <200112312017.fBVKHTs26004@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon wrote:
>     Terry, I don't think you quite understand the problem.  From the server's
>     point of view NOTHING IS WRONG.  Any non-USB-ethernet client would have
>     no problem whatsoever with the large number of small packets that the
>     server is sending, nor can the server just arbitrarily decide that 8
>     packets is too much, because doing so screws up bandwidth over long-haul
>     links.  The server can not arbitrarily limit its window size because
>     the problem only occurs with small packets.  So how is the server
>     supposed to figure out the difference between between normal packet
>     loss and packet loss due to the client having a USB adapter and not
>     being able to handle lots of tiny packets?

Uh, Matt, the window size is a negotiated value between the server
and the client.

What the server wants is irrelevant, if the client wants a smaller
window, since the value is MIN(server_wants,client_wants).

So if the problem is that the FreeBSD USB<->ethernet connected client
can't handle that many outstanding packets, then the place to fix it
is _obviously_ the FreeBSD USB<->ethernet driver.

Julian did similar work already in the InterJet in order to control
the advertised window size on the client, and therefore do what the
AltQ code is supposed to do, but without congesting the intermediate
router.


>     New-Reno might be able to help but it would have to be hacked up a bit
>     to send a double ack to the server to force the server to reduce its
>     congestion window.  New-Reno is a mess and I am not volunteering to
>     hack it up more.

The Rate-Halving algorithm is used with FACK in order to halve the
window size in the presence of failures (like the one being seen
here).

Again, the place that this should happen is on the client, not the
server.

I don't understand why you think this is a server problem, when it
is not the server hardware where the failure is occuring?

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C30E7B9.96EFA40F>