Re: Powers-of-two - 7 for recv() length??

From: Stephen Hemminger
Date: Wed Mar 31 2004 - 13:53:58 EST


On Wed, 31 Mar 2004 13:02:03 -0500 (EST)
"Richard B. Johnson" <root@xxxxxxxxxxxxxxxxxx> wrote:

> On Wed, 31 Mar 2004, Stephen Hemminger wrote:
>
> > What is the socket send/receive buffering, and the underlying network.
> > You need to look at the data flow with something like tcpdump and tcptrace.
> > If you get flow controlled or lots of other reasons, TCP will validly
> > send a small number of bytes (like 1) which will get things out of alignment.
> >
>
> Hmmm. I get lots of truncated IP packets. See attached. I've tried
> to help by setting both RCV_BUF and SND_BUF to 1/2 megabytes. Nothing
> seems to work except sending only 1436 bytes at a time. That makes
> everything miserably slow. 1436 comes from (1500 - 64) 1500 being the
> ethernet packet length, 64 being the IP header length.
>

That is because you are running on the loopback interface that has an
MTU of 16K. And tcpdump is being smart and only reading part of the
data.



> Cheers,
> Dick Johnson
> Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
> Note 96.31% of all statistics are fiction.
>
>


--
Stephen Hemminger mailto:shemminger@xxxxxxxx
Open Source Development Lab http://developer.osdl.org/shemminger
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/