This preview shows page 1. Sign up to view the full content.
Unformatted text preview: The scale factor can be different in each direction.
If the end doing the active open sends a nonzero scale factor, but doesn't receive a
window scale option from the other end, it sets its send and receive shift count to 0. This
lets newer systems interoperate with older systems that don't understand the new option.
The Host Requirements RFC requires TCP to accept an option in any segment. (The only previously
defined option, the maximum segment size, only appeared in SYN segments.) It further requires TCP to
ignore any option it doesn't understand. This is made easy since all the new options have a length field
(Figure 18.20). Assume we are using the window scale option, with a shift count of S for sending and a
shift count of R for receiving. Then every 16-bit advertised window that we receive from
the other end is left shifted by R bits to obtain the real advertised window size. Every
time we send a window advertisement to the other end, we take our real 32-bit window
size and right shift it S bits, placing the resulting 16-bit value in the TCP header.
The shift count is automatically chosen by TCP, based on the size of the receive buffer.
The size of this buffer is set by the system, but the capability is normally provided for the
application to change it. (We discussed this buffer in Section 20.4.)
If we initiate a connection using our sock program from the 4.4BSD host
vangogh.cs.berkeley.edu, we can see its TCP calculate the window scale factor.
The following interactive output shows two consecutive runs of the program, first file:///D|/Documents%20and%20Settings/bigini/Docu.../homenet2run/tcpip/tcp-ip-illustrated/tcp_fut.htm (10 of 20) [12/09/2001 14.47.34] Chapter 24. TCP Futures and Performance specifying a receive buffer of 128000 bytes, and then a receive buffer of 220000 bytes:
vangogh % sock -v -R128000 bsdi.tuc.noao.edu echo
SO_RCVBUF = 128000
connected on 22.214.171.124.4107 to 126.96.36.199.7
TCP_MAXSEG = 512
we type this line
and it's echoe...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12