Saturday, October 19, 2019

[TCP] Question about delayed acknowledgement and its impact on the size of payload

Hi, so I have an exam in networking coming up but I have huge problems understanding delayed acknowledgements in TCP.

So lets say I want to transfer 15000 bytes (in 10 1500 byte-segments) between two processes on two hosts (A and B). I'll denote these processes as Pa and Pb.

Delayed acknowledgements (two full sized segments) are used with a maximum delay of 100ms. If a delayed ACK is to be sent at a time instant when a new segment arrives, the delayed ACK is sent first. TCP on the receiving host has a receiver window size limit of 6000 bytes. The initial congestion window size is 4500 bytes.

The question is: How much time does it take to transmit the data from A to B NOT including the connection establishment and tear down, until the last ACK is received by A? You can ignore the transmission times of the segments, but you should consider the impact of congestion and flow control.

The graph in the answer sheet is the following: https://imgur.com/Dmt2OPq

The red acknowledgements denote delayed acknowledgements.

Okay so to my question, why does delayed acknowledgement mean we cannot utilize the RWND to its fullest? As you can see, only 3 segments are sent at most even though both CWND and RWND allow for 4. How do I foresee what the maximum limit of segments I can transfer at once?

Edit: I figured it out myself! The unacknowledged segment counts as one segment currently being sent and therefore I cannot send more until I've received an acknowledgement for that segment. Sorry for the dumb question.



No comments:

Post a Comment