[ARGUS] BSD argus/Linux ra problems?
Michael Sanderson
sanders at cs.ubc.ca
Wed Nov 24 03:08:42 EST 2004
Carter Bullard wrote:
> Hey Michael,
> Well that will cause a problem if a ra* client gets less than 128
> bytes, as we do a single read for 128 bytes and if we don't get it we
> exit. There were a lot of reasons for this, but most were/are
> historical. I can modify it to get into a loop to read until we
> get 128 bytes, but it will not be pretty.
>
> I'm gonna be somewhat depressed by this, as it will introduce
> some delay in getting started when we've got multiple endpoints
> to manage. Any way we can get BSD to change its IP stack? ;o)
I think that the delay will be pretty minor. In most cases, you will
still do a single read and you're off. In the weirdo cases like mine,
the delay between the first and second packets is about 5 milliseconds
according to tcpdump.
> On the serious side, I wonder if I can force the starting window
> size on the client side to ensure that I have 128 bytes to start
> with?
The theory is that if you set the maximum send and receive buffer sizes
before doing the connect that you can alter the window size.
(http://www.ncsa.uiuc.edu/People/vwelch/net_perf/tcp_windows.html#bufsize
has some sample code for clients and servers.) I just tried this and it
was not effective in my case - ie. same problems with a 46 byte window
size - presumably since it only sets maximum buffer sizes not current
the window size. (Either that or the Linux kernel is just busted, which
wouldn't surprise me all that.)
Michael Sanderson
More information about the argus
mailing list