Personal understanding of TCP Congestion Control

Conventional concepts such as: slow start (exponential increase), congestion avoidance (linear increase), the slow start threshold (sstresh) do not say, you can look at other blog.

Talk about a few other nouns, feeling divided the book is not very clear, the prior statement under Ha, are my personal understanding, if not also comments that look.

 

Fast retransmit: 3 redundant i.e. ACK received immediately resend the data packet, instead of waiting for the timeout retransmit the packet.

chestnut:

1,2,3,4,5,6,7 sending end. . . Four of the loss, the receiver receives 1, 2, both sides are satisfied.

Is then received by the receiver 5, 4 was found not received, a transfer back ACK4.

He received six, and then send a ACK4 back.

7 received, and then send a ACK4 back.

In this case, the sender receives 3 consecutive ACK4, i.e. the ACK three redundant, this immediately when a retransmission packet # 4.

4, the receiver receives the packet, because the TCP ACK acknowledgment is cumulative, then send back a ACK8 (because both caches 5,6,7), data transmission continues.


 

Quick recovery: the newer version of TCP. Internal comprises two steps: a fast retransmission; 2 Back congestion avoidance state. That quick recovery is not a specific operation, but the two operations to squeeze together, played such a name.

 

Note that one difference: Quick recovery will only be called when received three times redundancy of ACK. If the timer expires, then no matter what version of TCP, will directly back to the slow start phase.

Note that the timer expires indication of packet loss and packet loss event three times the difference between ACK indication. The former explanation is not good network conditions, we must quickly reduce the transmission rate! The latter may be just a packet is lost (and network status has nothing to do)! This is the basis of the whole discussion of congestion control. .

Draw a map:

 

 Wherein whether performed after flash recovery process, the ACK found three times, the slow start threshold will become half of the current congestion window length, i.e. CWnd = sstresh / 2 ;

The difference is that, if a fast recovery procedure: After performing fast retransmission, the congestion window is set will sstresh + 3, i.e. before the congestion window length divided by 2 plus 3.

3 This is what it means:

Considering that three ACK packets, since they are received sender, indicating that three packets disappeared from the network. From the overall bandwidth of the network point of view, less three packets, then we can put the bandwidth of three packages also use them, do not waste it. (In fact, I feel a little egg)

My personal understanding is: TCP algorithm with a fast recovery of the bandwidth can be more efficient use of the network, you can see the above chart presents a sawtooth shape. The sender sends rate (transmit window length) grow slowly, remaining bandwidth to detect, if the packet loss, not as the same as the old version of TCP algorithms look back to liberation (re-start slow start) , but from one of our You will not believe the rate of network congestion continues to grow slowly .

 

Also: I use wireshark capture, they are twice redundant ACK on the fast retransmit. Feel a lot of books on the so-called standard in reality are not strictly enforced. .

Guess you like

Origin www.cnblogs.com/FdWzy/p/12459724.html