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

17,208

Solution 1

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

Solution 2

I think what you are asking is how data can I get end to end on the wire. In that case you are close. Throughput*RTT [units: B/S * S] is how much the wire holds. Ignoring PMTU, packet overhead, hardware encoding, etc. then Throughput*RTT/PacketSize would give you the estimate. But hold on, I used RTT. My receive window is really about how much can fit on the wire in one direction so divide that in half.

If your implementation doesn't support window scaling then min that with 2^16. If it does then you min it with 2^30.

Solution 3

A packets will be dropped if the maximum sending rate exceeds link capacity

(max window size*size of 1 segment) / RTT = link capacity
(max window size * 1500*8) / 200*10^-3 = 10 * 10^-6
you can solve this for max window size.

We divide by the RTT because after this time an ACK will be received so the sender can send more segments without the need to increase the window size.

Share:
17,208
Admin
Author by

Admin

Updated on June 24, 2022

Comments

  • Admin
    Admin almost 2 years

    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.