WCC issues and new version preview #7380
Labels
feature
New feature or request
priority-5-low
#5 Priority - Something that should happen eventually
📁 Repo: protocol
This PR/Issue modifies /protocol code
Decription
This issue descripts the typical issues of the current WCC. And compared with WCC_V2 (the newer one with delaybase-controller)
On a wired link with limited capacity, and little nosie
On a wired link with limited capacity, current WCC has latency bouncing during startup, which cause period latency increase of hundreds of ms, and it takes a long time to get out. Even if the link itself has little noise.
Experiment setting:
a 1920x1080 window (low dpi monitor), and a simulated link of 20 mbps(simulated by tc-tbf). The link latency is about 45ms. a website with high moving contetion is browsed (https://webglsamples.org/aquarium/aquarium.html)
WCC:
(target_bitrate: the detected bandwith, unit: 100kbps)
(short term latency: the real time latency, this is the latency you should pay attention for, unit: ms)
(long term latency: a much more smoothed value of short term latency, only for reference, unit: ms)
you can see the first spike increases the latency by 280ms, and in the first 30s the latency is keep bouncing around (caused by congestion).
WCC_V2:
the first spike increase the lantency by 80ms, then the delay based-controller detected the congestion, and dcreased the birate . After that most of the time the lantency stays very close to the link lantency. (very little latency increase by congestion)
On a noisy wifi
On a wifi channel with high noise, the latency increasing problem becomes even worse:
Experiment setting:
a 1600x1000 window (high dpi monitor ), connected by a 2.4ghz home wifi access point working at 54mbps. There isn't any simulated bandwith limitation or delay or jitter involved. So this is fully a real-life setting.
( Although it's displayed as 54mbps, the wifi channels capacity flucuates over time. And there are frequently channel outage, which leads to bursty arrivals. In other words, this channels is much more complex.)
WCC:
you can see the current WCC algorithm is totally confused (by the complex channel), and it keeps congesting the channel for very long durations. The peak latency increase reaches 250ms for many times.
WCC_V2:
the WCC_V2 chooses a lower bitrate (but not too much), the latency is significantly reduced. Most of the time, the latency stays pretty close to the channel latency. The peak latency increase is at most 60ms (vs 250ms above), and the duration is shorter.
Other Bugs of WCC
For the current WCC, it appears to have a bug for high-resolution. It got stucks on a low bitrate and never able to detect a higher birate.
For example, if the link channel starts at 16mbps, then for high-resoltion window WCC stucks forever at lower than 16mbps. It never increase again, even if the link capcatity increase to 32mbps (or 100mbps, whatever). It gives up detecting higher bandwith completetly.
The text was updated successfully, but these errors were encountered: