Fast Recovery and fast retransmission Protocol

Source: Internet
Author: User

Before introducing the modification, we realized that TCP immediately needs to generate an ACK (a duplicate ACK) when receiving an out-of-order packet segment ). The duplicate ACK should not be delayed. The purpose of this duplicate ACK is to let the other party know that it has received an out-of-order packet segment and tell the other party the serial number they want to receive. We do not know whether a duplicate ACK is caused by a lost packet segment or because only a few packets are reordered, so we are waiting for the arrival of a few duplicate ACK packets. If this is only the re-sorting of some packets, only 1 ~ may be generated before the re-sorting packets are processed and a new ACK is generated ~ Two Duplicate ACK. If a series of three or more duplicate ACK packets are received, it is very likely that a packet segment is lost. So we re-transmit the lost data packet segment without waiting for the timeout timer to overflow. This is the fast retransmission algorithm. The next step is not to run the slow start algorithm, but to avoid congestion. This is the quick recovery algorithm. In, we can see that no slow start is executed after three duplicate ACK packets are received. On the contrary, the sender retransmits three new data segments (segment 67, 69, and 7 1) before receiving the ACK of the retransmission ). In this case, the cause of no slow start is that the receipt of the duplicate ACK not only tells us that a group is lost. Because the receiver generates duplicate ACK only when it receives another packet segment, the packet segment has left the network and enters the receiver's cache. That is to say, there is still flow data between the receiving and receiving ends, and we don't want to perform a slow start to suddenly reduce the data flow. This algorithm is usually implemented as follows: 1) When 3rd duplicate ACK packets are received, set ssthresh to half of the current congestion window cwnd. Retransmission of the lost packet segment. Set cwnd to ssthresh plus a 3-fold packet segment size. 2) When receiving another duplicate ACK, cwnd increases the size of one packet segment and sends one group (if the new cwnd allows sending ). 3) when the next ACK arrives, set cwnd to ssthresh (the value set in step 1 ). This ACK should be used to confirm the re-transfer in step 1 within a round-trip time after retransmission. In addition, this ACK should also be used to confirm all intermediate packet segments between the lost group and the 1st duplicate ACK packets received. This step avoids congestion because we will halved the current rate when the group is lost.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.