How are the availableOutgoingBitrate and availableIncomingBitrate calculated?

610 views
Skip to first unread message

Michal Śledź

unread,
Dec 17, 2022, 9:24:07 AM12/17/22
to discuss-webrtc
Hi,
I am wondering how I can get the information about available bandwidth so that I can display this value to the user.

I found two metrics - availableOutgoingBitrate and availableIncomingBitrate.

Looking at the GCC RFC draft, the final bandwidth is min(a_hat, as_hat) so I assume that:
* availableOutgoingBitrate is the minimum between our outgoing bitrate and server incoming bitrate
* availableIncomingBitarte is the minimum between our incoming bitrate and server outgoing bitrate

In the RFC there is also:

Since the system depends on over-using the channel to verify the current available bandwidth estimate, we must make sure that our estimate does not diverge from the rate at which the sender is actually sending. 

Thus, there is a limit:  A_hat(i) < 1.5 * R_hat(i)

So the estimation shouldn't be greater than 1.5 times what we are actually sending. E.g. if we are sending 1000kbps, the estimation shouldn't be greater than 1500kbps.

However, looking at the webrtc-internals, the available outgoing bitrate is shown as ~4.6Mbps while I am sending ~600kbps which means that I probably missed something.

bitrate.png

V I

unread,
Dec 17, 2022, 10:13:58 AM12/17/22
to discuss...@googlegroups.com
There's also bit rate probing - if the outgoing bit rate is low it'll send a series of dummy packets from time to time and see if the latency is going up. The default probing rate is 5 mbps (https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/congestion_controller/goog_cc/probe_controller.cc;l=38?q=kDefaultMaxPro&sq=&ss=chromium%2Fchromium%2Fsrc), but can be set to up to 100 mbps

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/f96e7644-d0a2-49d4-85c9-f02b28e945c2n%40googlegroups.com.

Michal Śledź

unread,
Dec 17, 2022, 10:29:53 AM12/17/22
to discuss-webrtc
That's pretty interesting, thanks!

I assume, I should be able to notice when the probing is launched via bytes_sent_in_bits/s, right?

And what about the availableIncomingBitrate? It's missing in the stats. Do you know if there are plans to implement it? Looking at the GCC, it might be hard to get such an information 

Reply all
Reply to author
Forward
0 new messages