Describe TCP global synchronization and the problems it causes and possible fixes for it.
As shown above TCP global synchronization is when multiple TCP flows experience congestion at the same time, thus they all drop to their slow start threshold at the same time, and start linearly increasing again.
The immediate drop at the same time (due to uncontrolled congestion probably caused by output tail drop) rules in all of these flows syncronizing their TCP algorithms.
This leads to periods of ALL the TCP flows dropping down to their slow start threshold at one time, then slowly rising again. This time of slowly rising for ALL TCP flows means that there is bandwidth that is not
being realized by TCP.
How can we fix this?
1. Get more bandwidth
2. Enable a fair queueing mechanism
3. Enable weighted RED or Random early detection to selectively drop TCP flows at different times and to avoid TCP global sync