pipelining procedure for fast retransmit

Re: pipelining procedure for fast retransmit

par Katerina Argyraki,
Nombre de réponses : 0

Hi Leo,

Fast retransmit is a technique used by TCP, which is neither fully go-back-N nor fully selective repeat.

TCP has features from each family:

  • It has selective ACKs (and this is why fast retransmit makes sense, as you point out).
  • But it retransmits only a single segment (whenever it retransmits). 

In the particular example you mention, the sender does not assume that segments 400 to 600 were received. It assumes that *maybe* they were received, and that's why it quickly retransmits 300. But it confirms that they were received once it gets ACK 700.

Now, what happens when both 300 and 500 are lost? In the particular example, Alice's window is 400, which means that she sends only 4 segments at a time (400 unacknowledged bytes). As a result, if two segments are lost, Alice will not get 3 duplicate ACKs, and she will not do a fast retransmit. She will simply timeout waiting for an ACK that acknowledges that Bob received seg 300.