Re: bizarre network timing problem
From: Rick Jones
Date: Thu Oct 18 2007 - 13:22:35 EST
Felix von Leitner wrote:
the packet trace was a bit too cooked perhaps, but there were indications
that at times the TCP window was going to zero - perhaps something with
window updates or persist timers?
Does TCP use different window sizes on loopback? Why is this not
happening on ethernet?
I don't think it uses different window sizes on loopback, but with the
autotuning it can be difficult to say a priori what the window size will be.
What one can say with confidence is that the MTU and thus the MSS will be
different between loopback and ethernet.
How could I test this theory?
Can you take another trace that isn't so "cooked?" One that just sticks with
TCP-level and below stuff?
If SMB is a one-request-at-a-time protocol (I can never remember), you could
simulate it with a netperf TCP_RR test by passing suitable values to the
test-specific -r option:
netperf -H <remote> -t TCP_RR -- -r <req>,<rsp>
If that shows similar behaviour then you can ass-u-me it isn't your application.
One caveat though is that TCP_CORK mode in netperf is very primitive and may
not match what you are doing, however, that may be a good thing.
http://www.netperf.org/svn/netperf2/tags/netperf-2.4.4/ or
ftp://ftp.netperf.org/netperf/
to get the current netperf bits. It is also possible to get multiple
transactions in flight at one time if you configure netperf with --enable-burst,
which will then enable a test-specific -b option. With the latest netperf you
cna also switch the output of a TCP_RR test to bits or bytes per second a la the
_STREAM tests.
rick jones
My initial idea was that it has something todo with the different MTU on
loopback. My initial block size was 16k, but the problem stayed when I
changed it to 64k.
Felix
-
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/