[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] internet-history Digest, Vol 84, Issue 4

    > From: Detlef Bosau <detlef.bosau at web.de>

    > I should read texts much more carefully.

This is rather an ironic comment, given the next...

    >>   if the retransmission timeout expires on a segment in the
    >>   retransmission queue, send the segment at the front of the
    >>   retransmission queue again [and] reinitialize the retransmission
    >>   timer

    > Do I understand this correctly: When the packet is retransmitted, a
    > copy is _appended_ to the retransmission queue?

If you would examine RFC-793, you would see that by "retransmission queue" it
means 'un-acknowledged data queue'.

So your question makes no sense, on two grounds: first, the data being
re-transmitted is _already_ in that queue; second, it is at the _start_ of
that 'queue' (buffer, actually - although it's implementation-specific how
un-acknowledge data is held - Dave Clark did a TCP for use with User TELNET
awhich kept un-acknowledged data in a shift register :-), adding it at the end
would be an error.

Look, you need to understand how primitive our understanding, algorithms, etc
were when RFC-793 was written. There was no sophisticated algorithm associated
with re-transmission: when the (sole) re-transmission timer went off, the code
re-sent the oldest un-acknowledged data again. That's all. Full stop.

If you read RFC-793 (and the other ones I have mentioned), you will get a
good sense of our level of understanding, how primitive many of our
algorithms, etc were at that point.