Re: TCP window size

Bruce Barnett (barnett@birch.crd.ge.com)
Thu, 15 Jul 1999 16:15:08 -0400 (EDT)

> Hi, I'm doing tests of performance and the plataform that I use is
> Solaris 7. The Solaris TCP's driver support window size > 64 kbytes,
> I set the netperf to buffer size > 64 kbytes but the command snoop show
> always window size >= 64 kbytes. Why?

I used the Sun TCP Special in a 2.5.1 system, with tcpdump, but I can guess
what you are seeing. You specified a large window, but snoop doesn't show it.

Summary - that's right. But it still works. Let me explain.

If you are using the RFC1323 extensions (which seems likely, as without
it, you cannot get a window > 64K), then snoop/tcpdump will not show
show you the large windows on each packet.

The Window Scale option is negotiated at the beginning of the session.
If the other side doesn't understand, it will not use the option.

Perhaps a system could use the Window Scale option in each packet, but
the older version I saw only used it once in the beginning.

Instead, it shows you the window scaling factor during the session
start, (i.e. the packet with the S bit) which specifies how many bits
to the left you have top shift the window parameter to get the real
window.

In tcpdump, you will see a WS 3

Then in the packet, if you get a window of 2000, you multiple it by 8, to get
16000.

If you see a window of 32000, with a Window Scale factor of 3, your REAL
window would be 256000.

At least - that is how I remember it.