TcpWindowSize vs Socket Buffer Size on Windows

network-programming, tcp

Solution

The TcpWindowSize Registry setting controls the maximum advertised window of the interface as described in the MSDN link. Being a Registry setting, you change it in the Registry.

SO_RCVBUF controls the size of the socket receive buffer. This is the maximum advertised TCP window of the connection, and it is evidently subject to overriding by (1).

SO_SNDBUF controls the size of the socket send buffer. It doesn't have anything directly to do with windowing.

Problem

What is difference between TcpWindowSize and Socket Buffer Sizes ? I assume TcpWindowSize can be changed only using Registry Settings and Socket Buffer Sizes can be changed using SO_SNDBUF and SO_RCVBUF socket parameters?

Original source

Related problems