Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Congestion control estimation grows without bound #299

Open
jech opened this issue Jan 13, 2025 · 2 comments
Open

Congestion control estimation grows without bound #299

jech opened this issue Jan 13, 2025 · 2 comments

Comments

@jech
Copy link
Member

jech commented Jan 13, 2025

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.

@jech jech changed the title Congestion control estimation grows beyond what's reasonable Congestion control estimation grows without bound Jan 13, 2025
@nils-ohlmeier
Copy link

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.

@aalekseevx
Copy link
Member

Unfortunately, it's a known issue with the current implementation – I will make a reproduction in bwe-test repo: pion/bwe-test#54

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants