slides24 Flashcards
silly window syndrome
if the window is too small, Better not to send an update of 1, but wait until there is more space
Clarke’s algorithm to avoid SWS is in the server
never send an update for a window of 1; only advertise a new window when either (a) there is enough space for a full segment, or (b) the buffer is half empty
how does TCP spot congestion
Thus TCP treats missing or duplicate ACKs as a sign of congestion
(there’s another wae, ECN Explicit Congestion Notification)
congestion window
So, if we have an estimate of the capacity of the network (the congestion window), we will be sending many segments at once, but not too many
We estimate the network congestion by watching the number of ACKs coming back
Every time a timely ACK is received, the congestion window is increased by one segment
Slow Start & Congestion Avoidance
It is actually a near-exponential increase in the congestion window over time
anyway, the amount of packets to be sent is still capped by the advertised window as well
If we reach ssthresh without a problem, we change to the congestion avoidance phase
Now we increase the congestion window cwnd by one segment for each round trip time (RTT)
This is now a linear increase over time
Eventually the network’s limit will be reached and a congested router somewhere will start dropping segments
The sender will see this when either (a) it gets some duplicate ACKs, or (b) there is a timeout waiting for ACKs
what does Slow Start do When congestion is detected
threshold ssthresh is set to half the current transmit size
if it was a timeout, the congestion window cwnd is set back to one segment, and go back into slow start
what is Jacobson’s Fast Retransmit strategy
the idea that the receipt of several duplicated ACKs is indicative of a lost segment
Fast Recovery
do not go into slow start but do congestion avoidance
OTHER TCP STRAT Tahoe
If three duplicate ACKs are received (i.e. four ACKs acknowledging the same packet, which are not piggybacked on data and do not change the receiver’s advertised window), Tahoe performs a fast retransmit, sets the slow start threshold to half of the current congestion window, reduces the congestion window to 1 MSS, and resets to slow start state
OTHER TCP STRAT Reno
If three duplicate ACKs are received, Reno will perform a fast retransmit and skip the slow start phase by instead halving the congestion window (instead of setting it to 1 MSS like Tahoe), setting the slow start threshold equal to the new congestion window, and enter a phase called fast recovery
OTHER TCP STRAT Vegas
Until the mid-1990s, all of TCP’s set timeouts and measured round-trip delays were based upon only the last transmitted packet in the transmit buffer
OTHER TCP STRAT New Reno
improves retransmission during the fast-recovery phase of TCP Reno. During fast recovery, for every duplicate ACK that is returned to TCP New Reno, a new unsent packet from the end of the congestion window is sent, to keep the transmit window full. For every ACK that makes partial progress in the sequence space, the sender assumes that the ACK points to a new hole, and the next packet beyond the ACKed sequence number is sent.
OTHER TCP STRAT Hybla
TCP Hybla[15] aims to eliminate penalization of TCP connections that incorporate a high-latency terrestrial or satellite radio link, due to their longer round-trip times. It stems from an analytical evaluation of the congestion window dynamics, which suggests the necessary modifications to remove the performance dependence on RTT.
OTHER TCP STRAT BIC
Binary Increase Congestion control is an implementation of TCP with an optimized congestion control algorithm for high speed networks with high latency (called LFN, long fat networks, in RFC 1072[16]). BIC is used by default in Linux kernels 2.6.8 through 2.6.18.
OTHER TCP STRAT CUBIC
CUBIC is a less aggressive and more systematic derivative of BIC, in which the window is a cubic function of time since the last congestion event, with the inflection point set to the window prior to the event. CUBIC is used by default in Linux kernels between versions 2.6.19 and 3.2.
ECN Explicit Congestion Notification
To signal congestion without actually dropping packets (which is the way tcp uses to spot congestion)
Conventionally, TCP/IP networks signal congestion by dropping packets. When ECN is successfully negotiated, an ECN-aware router may set a mark in the IP header instead of dropping a packet in order to signal impending congestion. The receiver of the packet echoes the congestion indication to the sender, which reduces its transmission rate as if it detected a dropped packet.