Hello, While going through the following piece of code in linux/include/net/tcp.h in linux kernel 2.4.2: In function : tcp_initial_window(...) on line 1520 if (mss > (1<<*rcv_wscale)) { int init_cwnd = 4; if (mss > 1460*3) init_cwnd = 2; else if (mss > 1460) init_cwnd = 3; if (*rcv_wnd > init_cwnd*mss) *rcv_wnd = init_cwnd*mss; } It seems to me that if the mss is 1460 , then unless the rcv_scale is 11, the rcv_wnd will always be 4*mss . I think this is the reason that I am always observing 5840 ( 4*1460 ) in <SYN> packets orignating from machine. Even when I try to increase SO_RCVBUF using setsockopt, initial window doesnot change. Is there any specific reason for keeping initial window value fixed ? Manish - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org