Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Nov 1997 04:22:46 -0800
From:      David Greenman <dg@root.com>
To:        Emmanuel.Duros@sophia.inria.fr
Cc:        questions@FreeBSD.ORG
Subject:   Re: rfc1323, cannot make it work! 
Message-ID:  <199711121222.EAA06752@implode.root.com>
In-Reply-To: Your message of "Wed, 12 Nov 1997 11:33:27 %2B0100." <199711121033.LAA11000@chouette.inria.fr> 

next in thread | previous in thread | raw e-mail | index | archive | help
>I have two FreeBSD stations (A & B) interconnected by a 3.4MBps broadcast
>satellite link. The RTT is about 330 ms. From A to B it takes 300ms and
>from B to A 30 ms.
>
>A runs FreeBSD 2.2.2-RELEASE and B runs 2.2.1-RELEASE.
>
>The maximum data rate I can get when I download a big file is 50 Kbyte/s.
>This is the maximum data rate I can reach with a 330ms RTT and a default
>tcp windows size of 16kbytes -> In one seconde the server can send 
>16*(1/0.330) = 50 Kbyte/s. Every Ack beeing generated by the client every
>330 ms.
>
>According to rfc1323, increasing the size of the send and receive tcp
>buffers we can normally obtain a much better data rate.
>
>On both hosts A & B, I set net.inet.tcp.rfc1323 to 1 and
>net.inet.tcp.{recv|send}space with values ranging from 16384 to
>65536. With a 65Kbyte window we should theoritically get close to 
>200Kbyte/s
>
>Using ftp and the netperf tool, I could not see any improvement
>as far as the data rate is concerned.
>
>Furthermore, whatever the value of rfc1323 (0 or 1) and even if I set 
>the size of tcp buffer to 4096, I still get a 50 Kbyte data rate?!?!?
>
>I still have not understood why and I would appreciate any hint 
>on this!!!

   Try setting the send/recvspace very early in the startup sequence - before
any network device initialization occurs. I seem to recall that the actual
window size that is used is associated with the clone (host) route that is
generated on the first TCP connect, and ends up sticking around after that.
This is also the same reason why using setsockopt(SO_SNDBUF) in an application
to change the amount of buffering doesn't work (this is clearly a bug, but
noone has had any interest in fixing it).
   As for rfc1323, which should allow for windows greater than 64K. I don't
know if that works or not; I've never heard one way or the other.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711121222.EAA06752>