Nicolas Williams wrote:

I was talking about the TCP window scaling option, which is not dynamic.
Window scale is negotiated in the initial handshake and that's the
window scale that you're stuck with for the rest of the TCP connection's
lifetime.


The way people do it is to negotiate the max allowed by the
system (every system has a max, right).  For example, if your
machine's max allowable buffer size is 1MB, negotiate a window
scale value of 4 up front.  Then use the window size value to
dynamically adjust the receive window size.  Using the previous
example, if TCP wants to advertise an initial receive window of
32K, it can set the receive window to 2048.  Then after window
adjustment, the actual receive window size will be 32K.  Later
on when TCP detects that it should increase the receive window
size to accommodate the sender and wants to increase the receive
window to the max, it sets the window value to 64K.  Then after
window adjustment, the receive window will be 1MB.  Note the
the usual issue with using window scale option, namely the unit
of window adjustment is not 1 byte, is still there.

So even though the window scale option is fixed, the receive
window is as dynamic as a system allows, with the draw back of
window adjustment unit issue.



--

                                                K. Poon.
                                                [email protected]

_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to