• Dropped packets can cause cascading data loss
    • In worst case, can cause a catastrophic feedback loop
  • So it’s important to manage network congestion
  • In networks of autonomous systems, congestion must be inferred from packet loss
  • TCP “Reno”:
    1. Exponential ramp up from lowest possible transmission rate
    2. When packets start getting dropped, cut transmission in half
    3. Increase speed linearly until packets start getting dropped again
    4. Cut transmission rate in half and repeat 3-4 until transmission is done
  • Reno leads to equal share of bandwidth
    • But the linear phrase can be extremely slow on high-speed connections
  • There are many others
    • Newer algorithms: Vegas, BBR
  • Each system decides how to handle congestion
    • Can change congestion control algorithm via a Linux kernel setting
  • This means there is no guarantee that your neighbors are behaving nicely
    • But in practice it is usually in your interest do so
  • Can also merge packets to reduce congestion