When Fast Retransmit is implemented, if I received packet 1, then I will send an ACK that says I need packet 2, and then if I received packet 3, I will send a duplicate ACK that says that I need packet 2 (and not packet 4). But will packet 2 on the sender side also have a Retransmission Timer assigned to it, that is, will there be a timer that is waiting for an ACK for packet 2 to arrive, and if it did not arrive it will retransmit it? I think that the answer is Yes, because what if the duplicate ACK got lost! is this correct or am I missing something? asked 30 Jul '15, 06:10 John_857 |
One Answer:
I'm not entirely sure I understand your question, however: The ACK you send merely confirms you have received Data to xxx Bytes. The sender then sends the next sequence to you and you then ACK that Number of Bytes. If Packet(s) go missing you will ACK what you have and ask for the missing ones, if there is no SACK running, you will stop at the missing Packet and wait for it. If you have SACK (which you should) then the new packets will continue to be received and you will simply keep asking for the missing packets until they arrive. The RTO will also be set on the retransmissions, if a Server does not receive an ACK inside of the RTO, then it should retransmit up to the Maximum No. of Retransmissions you have set before giving up and [RST]ing your connection. usually the Duplicate Acks will arrive before the RTO kicks in and a (Fast)Retransmission will occur in an established connection. answered 31 Jul '15, 02:02 DarrenWright |