There are some holes in my comprehension when it comes to figuring out values related to the TCP mechanics.

Let's say :

MSS = 1 (the maximum segment size, max. size by TCP segment for the receiver)

Link flow (throughput) = 2Mb/s

RTT = 100 msec

Knowing that, you have:

2Mb/s = cwnd / RTT

The congestion window is then 200ko.

I also know that the sender is limited to min(cwnd, rwnd).

How do I find the rwnd?

How do I find the threshold?

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can post and accept your own answer.
    – Ron Maupin
    Dec 21, 2020 at 18:24

1 Answer 1


There are different flow and rate control mechanics, and to an extent they work separately from each other.

The Receivers window has to do with how much room in the buffer the device has to dedicate to that connection. As it takes the data from the buffer and sends it off to the waiting program, it will clear space on the buffer and constantly update the sender on its available buffer. So I don't think it is possible to find using the RTT or cwnd.

By threshold I assume you mean SSthresh. Over a sufficiently long period of time it should pretty closely match the speed of the bottleneck of the connection. IE. it should be 2Mbps in your example.

In traditional Slow Start it doubles every time the sender receives an ACK for one of it's segments, until it passes the bottleneck speed and slows down. So you can kind of plot where it should be by how many RTTs (and therefor how many ACKs should return), as long as you assume the initial value.

I would recommend reading TCP_IP Protocol Suite 4th ed. – B. Forouzan for a more complete explanation of this.

Note that a lot of this is out the window with the widely used implementation of TCP called Cubic TCP. It changes how Slow Start and Congestion Avoidance works significantly. https://en.wikipedia.org/wiki/CUBIC_TCP https://datatracker.ietf.org/doc/html/draft-rhee-tcp-cubic-00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.