Congestion control estimation grows without bound
Hi,
I'm trying to experiment with Pion's GCC estimator in Galene.
I'm sending a stream limited to 786kbit/s over an uncongested link. Even though the stream is application-limited, not congestion-limited, the congestion controller's estimate of available bandwidth keeps growing apparently without bound: It reached 4Mbit/s, and it's still growing.
That's a standard mistake in congestion control: the congestion controller must not increase its estimate unless the application is filling the available bandwidth. Without that, the estimate will grow to completely unreasonable values.
For now, I'm giving up on my attempts to switch Galene to Pion's congestion controller; while Galene's homebrew REMB congestion controller is very primitive, it does not have this kind of issues.
If I'm not mistaken the increasing bandwidth estimates are suppose to be caused by the implementation sending bandwidth probing data intermixed with the actual 786kbit payload. If you look closely you should be able to find this probing data as either padding packets or "useless" retransmissions, e.g. on the RTX track, of already received payload packets.
Unfortunately, it's a known issue with the current implementation – I will make a reproduction in bwe-test repo: https://github.com/pion/bwe-test/issues/54