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

Detlef Bosau detlef.bosau at web.de
Tue May 27 01:59:07 PDT 2014


Am 27.05.2014 01:46, schrieb Louis Mamakos:
> Just to be clear, of the 4 or 5 different TCP stacks I’ve crawled around in
> and/or co-authored in one case, the contents of the send window are retransmitted,
> not the packet. 

I just postponed my suicide plans and know, you write that :-( *sniff*

What I thought would be true until about 4 weeks ago was:

1. There is basically some routine "send_much" which, when called, sends
any data provided by the application from snd.nxt up to
(snd.next+snd.wnd-1).

2. send_much() is called when on either one of the following three events:
    a) When the sending application provides data (iow: when a write()
call occurs),
    b) When a socket receives a packet from its peer (and hence may have
updated snd.una)
    c) When a retransmission time out occurs. (Or in case of Tahoe: On a
3DA. Reno behaves a bit differently here.)



>  I’ve not seen a particular TCP implementation that keeps 
> previously transmitted segments around for retransmission.  (I can see how
> some low memory, constrained implementations might make a choice to keep
> previously transmitted packets around, however, and this lets them re-use
> the same fragmentation ID in the IP header, too.

Louis, for years I got nuts about Karn's algorithm and how this is
implemented correctly, and actually, this was the question that
initiated the whole discussion ;-)


What I just wanted to do before reading your post was to investigate,
how a retransmission scheme using a retransmission queue deals with
varying window sizes which may result from slow start or congestion
avoidance. What happens, when the first packet in a retransmission queue
is beyond the allowed window?
> Every TCP stack I’ve seen just regenerates segments, and the retransmit 
> queue is really the TCP send window. 

And so behaves the TCP in the NS-2, IIRC.

However, this would support my conjecture, we did basically GBN in TCP.


-- 
------------------------------------------------------------------
Detlef Bosau
Galileistraße 30   
70565 Stuttgart                            Tel.:   +49 711 5208031
                                           mobile: +49 172 6819937
                                           skype:     detlef.bosau
                                           ICQ:          566129673
detlef.bosau at web.de                     http://www.detlef-bosau.de




More information about the Internet-history mailing list