Bandwidth Estimation is the mechanism used in WebRTC (and other VoIP systems) to decide how much bandwidth is available for a given session.
Protocols running over IP networks have no guarantees regarding the available bandwidth at their disposal. Furthermore, the amount of bandwidth available can change dynamically throughout a session.
To that end, bandwidth estimation is used to decide how much bandwidth is available and make sure no more (and no less) is used by WebRTC. This ensures the best possible media quality for the session.
Bandwidth estimation is based on heuristics that model the network behavior and tries to anticipate it. The algorithms used vary between different network types (bandwidth estimation for WiFi networks won’t necessarily work for LTE or wireline).
Two techniques for bandwidth estimation used by WebRTC are: