Term
| What is the difference between flow control and congestion control? |
|
Definition
| Flow control is used to guard against a TCP peer that is being overwhelmed. Congestion control deals with a network that is being overwhelmed. |
|
|
Term
| What is the primary method of combatting packet loss and how might this affect congestion? |
|
Definition
| Retransmission is used to combat packet loss, which is likely to make congestion worse. |
|
|
Term
| Which congestion detection methods allow TCP to learn about congestion before it has become so bad that packets are being dropped. |
|
Definition
a. measuring delay. b. ECN. |
|
|
Term
| How is a sender's usable window calculated? |
|
Definition
| The sender's actual window (W), is the minimum of the receiver's advertised window (awnd) and the congestion window (cwnd). The congestion window is an estimate of the network's available capacity. |
|
|
Term
| What is the BDP and optimal window size? |
|
Definition
| The bandwidth delay product (AKA optimal window size) is the product of the RTT and the capacity of the smallest link on a particular path. The strategy is to keep the network busy by keeping at least as much data as the BDP in the network. Substantially exceeding the BDP can lead to unwanted delays and is undesirable. |
|
|
Term
| describe how self-clocking is achieved when TCP is operating at a steady state. |
|
Definition
| The arrival of an ACK, called the ACK clock, triggers the system to take the action of sending another packet. The idea is for the connection to keep the max amount of data in the network, as a packet leaves at the receiver, another enters at the sender. |
|
|
Term
| name the main 2 algorithms of TCP. |
|
Definition
| The 2 main algorithms of TCP are slow start and congestion avoidance. These algorithms do not operate at the same time, but TCP may switch back and forth between the two. |
|
|
Term
| What is the slow start algorithm and when is it used? |
|
Definition
| Slow start is used when a new connection is established or RTO occurs. The purpose of slow start is to find a value for ssthresh (Slow Start Threshold) and help tcp find a value for the congestion window (cwnd) before probing for more available bandwidth using congestion avoidance. |
|
|
Term
|
Definition
This threshold is a limit on cwnd, which will decide what algorithm is in operation i.e. ss or ca. If cwnd>ssthresh, ca is used. If cwnd<ssthresh, ss is used. |
|
|
Term
|
Definition
| The initial window was initially one SMSS, although a later RFC allowed it to be larger. |
|
|
Term
|
Definition
| The sender's MSS is equal to the smaller of the receiver's MSS or the PMTU. |
|
|
Term
| when will a sending tcp switch from slow start to congestion avoidance, when cwnd < awnd? |
|
Definition
| Under these conditions, the sender will eventually overwhelm the network and cwnd will be reduced by 50%. TCP will then switch to congestion avoidance. |
|
|
Term
| How is cwnd increased during slow start? |
|
Definition
| The sender increments cwnd by one segment for each ACK received, which provides exponential growth. If delayed ACKs are used, the sender may increment the cwnd by one segment for every 2 ACKs received. |
|
|
Term
| What is the congestion avoidance algorithm used for? |
|
Definition
| Once ssthresh is established for a new connection, CA is used as a non-aggressive method to find additional capacity. It will update the cwnd by 1 segment for every window transferred, which is pretty much linear. |
|
|
Term
| Describe how a new TCP connection progresses throught the various algorithms. |
|
Definition
a. slow start begins b. congestion occurs, ssthresh is set to half of last cwnd, but not below 2xSMSS. cwnd is halved. c. tcp switches to CA (unless ssthresh is larger than cwnd due to cwnd being <2xSMSS) and cwnd creeps up over time from ssthresh. i. if cwnd<ssthresh after a congestion event, ss will be used until this is no longer the case. ii. If an RTO occurs in CA, ssthresh is recalculated, TCP switches to SS, cwnd=IW. iii. If dup ack occurs in CA, ssthresh is recalculated, cwnd is set to new ssthresh (fast recovery) without switching to SS. d. ssthresh will update after the initial slow start and every congestion event. |
|
|
Term
| What is the aim of fast recovery? |
|
Definition
| Fast recovery is a response to a duplicate ACKs. Dup ACKs indicate that as little as a single segment may be missing, fast recovery is a method of keeping cwnd artificially high so TCP can recover from the missing segment(s), before cwnd is reduced to half of its prevous value. Essentially it enables TCP to fire segments into the network while it performs fast retransmit. |
|
|
Term
| Describe Congestion Window Validation (CWV). |
|
Definition
| CWV will gradually reduce the size of cwnd on connections that haven't sent any segments for a while, while ssthresh will remain unchanged. The desired outcome is for TCP to not transmit too much traffic when it starts sending again, as network conditions may have changed. |
|
|