Interactive end-of-chapter exercises


TCP retransmissions (reliable data transmission with ACK loss)

Consider the figure below in which a TCP sender and receiver communicate over a connection in which the segments can be lost. The TCP sender wants to send a total of 10 segments to the receiver and sends an initial window of 5 segments at t = 1, 2, 3, 4, and 5, respectively. Suppose the initial value of the sequence number is 144 and every segment sent to the receiver each contains 185 bytes. The delay between the sender and receiver is 7 time units, and so the first segment arrives at the receiver at t = 8, and an ACK for this segment arrives at t = 15. As shown in the figure, 1 of the 5 segments is lost between the sender and the receiver, but one of the ACKs is lost. Assume there are no timeouts and any out of order segments received are thrown out.



Question List


1. What is the sequence number of the segment sent at t=1?

2. What is the sequence number of the segment sent at t=2?

3. What is the sequence number of the segment sent at t=3?

4. What is the sequence number of the segment sent at t=4?

5. What is the sequence number of the segment sent at t=5?

6. What is the value of the ACK sent at t=8? (If segment lost, write 'x')

7. What is the value of the ACK sent at t=9? (If segment lost, write 'x')

8. What is the value of the ACK sent at t=10? (If segment lost, write 'x')

9. What is the value of the ACK sent at t=11? (If segment lost, write 'x')

10. What is the value of the ACK sent at t=12? (If segment lost, write 'x')

11. What is the sequence number of the segment sent at t = 15? (If ACK never arrives, write 'x')

12. What is the sequence number of the segment sent at t = 16? (If ACK never arrives, write 'x')

13. What is the sequence number of the segment sent at t = 17? (If ACK never arrives, write 'x')

14. What is the sequence number of the segment sent at t = 18? (If ACK never arrives, write 'x')

15. What is the sequence number of the segment sent at t = 19? (If ACK never arrives, write 'x')




Solution


1. The sequence number of the first segment is the starting sequence number, which is 144.

2. The sequence number of the second segment is = 144 + 185 = 329.

3. The sequence number of the third segment is = 329 + 185 = 514.

4. The sequence number of the fourth segment is = 514 + 185 = 699.

5. The sequence number of the fifth segment is = 699 + 185 = 884.

6. The ACK value is the sequence number of the next expected segment, which is 329.

7. The ACK value is the sequence number of the next expected segment, which is 514.

8. The ACK value is the sequence number of the next expected segment, which is 699.

9. Since the segment was lost, the ACK is never sent, so the answer is x.

10. The ACK value is the sequence number of the next expected segment, which is 699.

11. The sequence number of this segment is calculated the same way as the first five segments. The sequence number is 1069.

12. The sequence number of this segment is calculated the same way as the first five segments. The sequence number is 1254.

13. Since there was nothing to send (as we're waiting for ACKs), the answer is x.

14. Since there was nothing to send (as we're waiting for ACKs), the answer is x.

15. The sequence number of this segment is calculated the same way as the first five segments. The sequence number is 1439.



That's incorrect

That's correct

The answer was: 144

Question 1 of 15

The answer was: 329

Question 2 of 15

The answer was: 514

Question 3 of 15

The answer was: 699

Question 4 of 15

The answer was: 884

Question 5 of 15

The answer was: 329

Question 6 of 15

The answer was: 514

Question 7 of 15

The answer was: 699

Question 8 of 15

The answer was: x

Question 9 of 15

The answer was: 699

Question 10 of 15

The answer was: 1069

Question 11 of 15

The answer was: 1254

Question 12 of 15

The answer was: x

Question 13 of 15

The answer was: x

Question 14 of 15

The answer was: 1439

Question 15 of 15

Try Another Problem

We’d appreciate your leave us feedback on this networking tutor.

We gratefully acknowledge the programming and problem design work of John Broderick (UMass '21), which has really helped to substantially improve this site. The networking tutor was designed and implemented by Hashim Zia and Shayan Ahmad from New York University Abu Dhabi.

Copyright © 2010-2025 J.F. Kurose, K.W. Ross
Comments welcome and appreciated: kurose@cs.umass.edu