1

If I have a scenario with two hosts. Host A and Host B. Let's say that Host A initiates a TCP connection to host B. Let's say a connection has been established after a 3-way handshake. What happens if the very first segment which Host A sends to Host B (after the handshake) is lost/dropped. We can see in the first image that the second segment is lost so duplicate acks of first segment are constantly sent to host A because acks are cumulative. I don't understand what would happen if the first data segment, sent after the handshake, is dropped. What ack # would get sent back to host A within the timeout interval in this case for every subsequent segment host B recieves.

My assumption here is that this involves the initial 3-way handshake. We have an ack # = x + 1 shown in the second diagram when the 3-way handshake is completed. Therefore I assume an ack # of x + 1 keeps getting sent until retransmission occurs in the fast retransmit diagram(first image). Is my understanding correct?

https://imgur.com/a/Km34Apo

https://imgur.com/a/SG7fjRN

3
  • How is the first data segment different from later ones? A duplicate ACK (for the SYNed seq#+1) prompts the partner to resend.
    – Zac67
    Commented Apr 22 at 8:22
  • 1
    The sequence numbers used for ACK are already established during the successful TCP handshake. This means there is nothing special for the first segment compared to others. Commented Apr 22 at 9:50
  • ok I understand now. Thanks both of you. Commented Apr 22 at 10:13

1 Answer 1

0

The first data segment is nothing different from any later ones.

Once the sequence number is SYNed, any ACK (for the value from SYN + 1) prompts the far end to resent the first segment.

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