[e2e] Dealing with Spurious Retransmits in TCP

Injong Rhee rhee at eos.ncsu.edu
Mon Mar 10 08:40:56 PST 2003


I agree with Reiner. The main problem lies in unnecessary coupling of
recovery and congestion control in TCP. I view CC is an independent from
recovery. Whether it can transmit spurious retransmission or simply do
no-op, it should left to the application or other layer decision.
Therefore, CC must tell the current rate (or window size) that the data
(including retransmission) must be sent at and the recovery layer
decides on whether it should retransmit, forward-error correction or
other data packets. 

Injong Rhee
Computer Science Dept
North Carolina State Univ.
rhee at csc.ncsu.edu
http://www.csc.ncsu.edu/faculty/rhee

-----Original Message-----
From: end2end-interest-admin at postel.org
[mailto:end2end-interest-admin at postel.org] On Behalf Of Reiner Ludwig
Sent: Monday, March 10, 2003 4:53 AM
To: tsvwg at ietf.org
Cc: end2end-interest at postel.org
Subject: [e2e] Dealing with Spurious Retransmits in TCP

[I have cc:ed end2end-interest at postel.org, but please reply only to 
tsvwg at ietf.org to avoid double postings.]

What about the following rule for those TCPs that are enhanced to detect

spurious retransmits?

     Those TCPs MUST reduce their cwnd by MSS (alternatively by the
amount
     of spuriously retransmitted data) when a spurious retransmit has
been
     detected.

The logic would be to say that since the TCP sender has used more than
its 
fair share of bandwidth in the past (due to the spurious retransmit), it

has to pay back for that once the spurious retransmit has been detected.

With that rule, the policies for adapting RTO and DUPTHRESH would become

less crucial.

Moreover, a TCP sender for interactive applications (assuming that this 
implies that response time is more important than throughput) may then
have 
the freedom to use a non-standard retransmission timer (more optimistic;

not to say more aggressive), and Early Retransmit without concerns.

Taking this a step further, one could argue that as long as the TCP
sender 
uses no more than its fair share of bandwidth, it is free to send what
it 
wants. For example, everytime an acceptable ACK arrives, and the TCP
sender 
does not have new data available, it may retransmit from the queue of 
unacked data.
RTP/UDP-based streams are also allowed to add redundancy in the form of
FEC 
and retransmissions when the source rate is lower than the available 
bandwidth, or to trade some of their throughput and responsiveness for
an 
increased reliability.
So, couldn't TCP also trade unused throughput for an increased 
responsiveness by adding redundancy in the form of sending potentially 
spurious retransmits?

///Reiner 





More information about the end2end-interest mailing list