-----------------
How the algorithm and formula are implemented seem trivial, the most important of the passage's idea is the definition of 'conservation of packets'.
-----------------
Congestion Avoidance and Control written by Van Jacobson.
Since 1986, two network hops between suffer a 32Kbps~40Kbps network congestion collapse. Van and his collegues invested and found that tcp misbehaved and could be tuned better upon the 4.3BSD TCP protocol
Some algorithms have been added since:
- rtt variance estimation
- exponential retransmit timer backoff
- slow-start
- more aggressive receiver ack policy
- dynamic window sizing on congestion
- Karn's clamped retransmit backoff
- fast retransmit
These improvements seems good dealing with the congested internet.
The first five algorithms introduced here. They abey from the observation: The flow on a TCP connection should obey 'conservation of packets' principle. If this rule obeyed, the congestion cured.
So what is 'conservation of packets'? New packets will not be put into wire until another packet leaves wire. [total number of packets of a connection is a const]
Simple.
----------------------
The RTT is updated everytime ack packet arrives with the formula: R = alpha*R + (1-alpha)*R`. Every ack packet arrives we can get a new R` value. Normally choose alpha = 0.9.
The Estimated Time to suppose a packet has been lost is based on RTT calculated above. Some may choose T=beta*R, where beta=2. This choice is not good for high delay paths. Using an exponential time backoff(modificatiion) algorithm might achieve better prediction.
--------------------
So when we face the condition that some ack packet does not arrive as expected in time T, this packet is considered lost, though it may arrive later and has 1% chance to be transmission damaged. And we suppose the network in between is facing a network congestion.
In this case, the congestion avoidance algorithm must take effect.