[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