[e2e] TCP retransmissions at end of data stream

Valentin Ossman valentin at tehutinetworks.com
Mon Jun 16 10:14:29 PDT 2003


Dan,
Whenever an ACK is not received on the data and the transit time-outs,
slow start should be started. This means:
1. send the first un-acked packet again and wait for ack.
2. send the second and third packets again and wait for ack and so on.
You should not set a time-out timer per packet, but one per connection
that will timeout on the oldest in-acked packet.

Best Regards,
Valentin Ossman



-----Original Message-----
From: end2end-interest-admin at postel.org
[mailto:end2end-interest-admin at postel.org] On Behalf Of Nahur Fonseca
Sent: Sunday, June 15, 2003 4:26 AM
To: Agthorr
Cc: end2end-interest at postel.org
Subject: Re: [e2e] TCP retransmissions at end of data stream


Dear Dan,

If I uderstand it correctly, 
after a time-out, TCP (Vegas, Reno, NewReno) 
enters Slow-Start again.

So in the example you metion the receiver will
ACK the first packet sent after the time-out.
Then the sender will open its window by one and
send two packets and so on.

Am I missing something here?

-nahur



On Sat, 14 Jun 2003, Agthorr wrote:

> Hello,
> 
> I'm a graduate student at the University of Oregon.  I'm working on a
> packet-level simulator (derived from ns-1.4) for a peer-to-peer
> application.  I've encountered a glitch in my NewReno TCP
> implementation that causes performance problems.  I can think of some
> ways to fix it, but I'm wondering if there is a standardized way to
> handle this case.  My advisor, Daniel Zappala, suggested this mailing
> list might be a good place to ask.
> 
> The problem occurs when there is packet loss at the end of the data
> stream.  For example, if the server only has 8 more packets of data to
> send, and they are all lost.  Since there is no more data to send, the
> receiver will not generate any duplicate ACKs, and the sender
> eventually times out.  The sender retransmits the first lost packet,
> and the receiver ACKs it.  What happens next?
> 
> Right now, in my implementation, the sender times out again and
> retransmits the second lost packet, with exponential backoff.
> Needless to say, this makes transmitting those last few packets
> extremely slow.  What should my implementation be doing?  Is this
> documented anywhere?
> 
> -- Dan Stutzbach
> 
> 





More information about the end2end-interest mailing list