Talk:TCP congestion avoidance algorithm

From Wikipedia, the free encyclopedia

Contents

[edit] Disputed

At least the following errors need to be fixed:

  • Congestion Avoidance starts after cwnd exceeds ssthresh, not after packet loss
  • Triple dupacks are only used for Fast Retransmit.
  • Fast Retransmit should be distinguished from Fast Recovery.
  • ssthresh is not mentioned
  • In Reno cwnd is not halved. ssthresh is often set to cwnd/2, but RFC 2581 recommends setting it to FlightSize/2.

Herr Baum 20:31, 9 March 2007 (UTC)


full algorithm in tcp tahoe


graphs showing the characteristic 'shapes' of window size over time, for congestion avoidance and TCP slow-start. These are helpful for grokking what goes on.


When it says Reno: halve congestion window on triple-ACK I think it should be Reno: congestion window set to half FlightSize on triple-ACK where FlightSize is the amount of outstanding data in the network.

This is based on what it says RFC 2581 --200.122.102.147 02:19, 30 November 2005 (UTC)(German Kruszewski)

[edit] TCP Tahoe and Reno

SlowStart

  • SlowStart exists to avoid congestion at startup, not to avoid wasting time. Otherwise you would start at a higher value (not 2MSS) to get things going.
  • You dont enter Congestion Avoidance after a packet loss, but after reaching a SlowStart Threshold.
  • Packet Loss is also detected by Timeout

Actually, packet loss is detected only by timeout. Triple duplicate ACKs (i.e. 4 ACKs with the same sequence number) are only used for Fast Retransmit. Herr Baum 19:40, 9 March 2007 (UTC)

[edit] XCP

XCP sounds good, but has some bad behavior, especially in dynamically changing network scenarios. The "mathematical" results in the XCP dissertation considering the scenarios in which XCP can be used are not worth to be read (I have to write this so hard). If five parameters can vary in a large range, it is absolutely nonsense to fix four of them in a middle range to show that XCP works over a wide range for the fith one. In most realistic scenarios at least two of the parameters are far away from their "middle value". —The preceding unsigned comment was added by 217.247.68.155 (talk) 03:34, 9 December 2006 (UTC).

[edit] triple-ack

What is triple-ack ? triple-ack currently redirects to TCP congestion avoidance algorithm, which doesn't even mention the word. Is the explanation of what it is supposed to be in this article, or should triple-ack redirect to some other article?

The article does mention "the missing packet that was signaled by 3 duplicate ACKs". Is that the same as a "triple-ack"? The explanation is too brief to make any sense. I thought the reciever only sent an ACK for a received (non-missing) packet. Why would a missing packet generate even 1 ACK, much less 3 ACKs ?

--68.0.120.35 00:57, 16 February 2007 (UTC)


See RFC 2581, section 3.2 (Fast Retransmit/Fast Recovery). Strictly speaking triple ACKs is wrong and triple duplicate ACKs is correct. The receiver will send an ACK for every packet he receives out of order. However, the acknowledgement-number field of the TCP-header will always contain the next expected sequence-number. So if the sender keeps sending packets with unexpected sequence-numbers he will get a duplicate ACK for each one. Herr Baum 20:00, 9 March 2007 (UTC)