Why does RWIN need to be a multiple of MSS ?
DefaultRcvWindow, (TcpWindowsize in win2k) or simply RWIN is a buffer that's negotiated between the client and server. Since all TCP/IP traffic is transmitted in packets, if the RWIN value is not a multiple of MSS fragmented packets might be sent whenever the buffer fills up. Some of the newer TCP/IP implementations will try to avoid fragmentation of packets, by simply disregarding the remainder of RWIN which is smaller than a segment, then checking every time and adding other partial segments. Either way, you are going to avoid a couple of CPU cycles by sticking to the standards and recommendations of the Internet Society, and making RWIN a multiple of MSS.
|