Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the maximum window size in segments of a TCP connection?

Consider a single TCP (Reno) connection that uses a 10 Mbps link. Assume this link does not buffer data and that the receiver's receive buffer is much larger than the congestion window. Let each TCP segment be of size 1500 bytes and the two-way propagation delay of the connection between sender and receiver be 200 msec. Also, assume that the TCP connection is always in congestion avoidance phase (ignore slow start).

What is the maximum window size in segments that this TCP connection can achieve?

So we know the throughput of the connection and the delay, I think we can should be able to manipulate the following formula so that we are able to find the Window Size.

Throughput = Window Size / RTT

Throughput * RTT = Window Size

10 Mbps * 200 msec = Window Size

I am not sure if this is correct. I am having a hard time finding anything else that relates in finding Window Size other than this formula.

like image 543
Kitizhi Avatar asked Mar 06 '11 02:03

Kitizhi


People also ask

What is the maximum window size in segments?

The default TCP mss is 536 bytes. It's value can be optionally set as a TCP option, but cannot be changed once the connection is established. The Internet de facto standard mtu is 576 bytes, but ISPs often suggest using 1500 bytes. Maximum window size is 65,535 bytes.

What is the maximum congestion window size in segments that this TCP connection achieve?

On a TCP connection, current congestion window size is Congestion Window = 4 KB. The window size advertised by the receiver is Advertise Window =6 KB. The last byte sent by the sender is Last Byte Sent = 10240 and the last byte acknowledged by the receiver is LastByteAcked = 8192.

What is TCP zero window size?

TCP Zero Window: When a TCP receiver's buffer begins to fill, it can reduce its receive window. If it fills, it can reduce the window to zero, which tells the TCP sender to stop sending.

What is the default TCP window size for Linux?

The default value is 87380 bytes. (On Linux 2.4, this will be lowered to 43689 in low-memory systems.) If larger receive buffer sizes are desired, this value should be increased (to affect all sockets). To employ large TCP windows, the net.


1 Answers

The Maximum windows size in terms of segments can be up to 2^30/ MSS, where MSS is the maximum segment size. The 2^30 = (2^16*2^14) comes through this as Michael mentioned you in his answer. If your network bandwidth and delay product exceeds than the TCP receiver window size than the window scaling option is enabled for the TCP connection and most OS support this features. The scaling supports up to 14-bit multiplicative shift for the window size. You can read following for the better explanation:

http://en.wikipedia.org/wiki/TCP_window_scale_option

http://www.ietf.org/rfc/rfc1323.txt

like image 112
user976754 Avatar answered Sep 28 '22 22:09

user976754