Building Smart Networks to Prevent Multimedia Traffic Explosion
Abstract: In this article, we explore different ways to control network congestion in real time communication networks and see why ‘Sender side bandwidth estimation’ policy is the best bait. Our Senior Developer in Videoconferencing solutions team, Ammar Nasikwala ,recently implemented this solution in his project to proactively prevent network congestion from happening, thus ensuring a seamless user experience for the end users.
While multimedia applications are gaining popularity amongst internet users, many aren’t aware of the technologies behind them. Technologies like WebRTC (Web Real-Time Communication) are opening up new opportunities in live streaming or broadcasting space, by enriching user experiences in making real-time voice, video and data calls over web browsers without the need for downloads or plugins. Today WebRTC is supported by all major web browsers and mobile platforms, enabling billions of users to communicate with each other seamlessly. While this is good for business, factors like low bandwidth, broadcast storms, a large number of connections, outdated hardware, etc. cause network traffic explosion and puts tremendous strain on any network that it is not prepared to handle it. Let us explore how we can control network congestion by overcoming existing challenges.
Network congestion is like a traffic jam, it not only causes delays in data transmission but also results in performance degradation, and poor quality of service (QoS) leading to the disappointing user experience. As a real-time communication network deals with transmission of heavy resource audio, video files, in real time, it is difficult to predict how much data is too much data or what will cause traffic explosion.
How to control network congestion?
The first and foremost step is to monitor the network to gain insights about where possible network congestion may be occurring and then design solutions to control the congestion. There are two mechanisms to control network congestion:
- Open loop congestion control – Prevent network congestion from happening – a proactive approach before congestion occurs
- Closed loop congestion control – Remove network congestion after it has occurred – a reactive approach to congestion control
The main aim of congestion control is to keep the network traffic below a threshold so that it does not affect the quality of service (QoS) or degrades performance. Through this blog, let us look at few open loop congestion control mechanisms and explore why ‘Sender side bandwidth estimation policy’ is the best solution to control network congestion:
Acknowledgment Policy –
The data packet acknowledgment policy imposed by the receiver may also affect congestion. The receiver need not acknowledge every packet it receives as acknowledgments also add to the traffic load on the network. A receiver may send an acknowledgment only if a packet needs to be sent or when the timer expires or just after ‘N’ packets are transmitted.
Receiver side bandwidth estimation logic-
Traditional bandwidth estimation algorithms are mostly based on packet loss, wherein the sender slowly starts increasing the video bitrate until it detects packets being lost. The receiver uses a parameter called Receiver Estimated Maximum Bitrate (REMB) to notify the sender to limit the amount of bitrate at which the sender can transmit data packets, without causing network congestion.
Sender side Bandwidth estimation policy–
In a network setup, the network congestion varies as per the individual capacity of the sender, the receiver, and the network. Most often than not, we assume that only the receiver can dictate the sender’s data transmission capacity. However, in practice, the network capacity has a significant role to play in causing congestion. If the network cannot deliver the data as fast as the sender creates it, it must tell the sender to slow down. For this reason, the WebRTC library has recently included a bandwidth estimation logic (BWE) at the sender side. The algorithm tries to detect congestion before it is bad enough to make routers discard packets and analyzes the delay between packets to predict congestion.
Advantages of sender side bandwidth estimation policy is that:
1. Placing the entire decision logic at a single place (the sender) makes it possible to test traffic control algorithms easily because you don’t have to depend on two entities (sender and receiver). The lesser the variables, the simpler the system.
2. The sender is aware of the type of traffic it is sending and can use different algorithms to send different types of data. For example, A sender can use different algorithms for sending resource heavy video files, audio files, sharing screens or plain text.