- 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”:
- Exponential ramp up from lowest possible transmission rate
- When packets start getting dropped, cut transmission in half
- Increase speed linearly until packets start getting dropped again
- 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