Stop Poor Media & Network Quality - Implement Self-driving Networks

By Varun Singh on August 3, 2018

Apart from getting bits of information across the network, service providers also need to make sure that those bits arrive swiftly. Having the best performance possible depends largely on the application, and in real-time communications, this typically means maintaining a call that is not painful for the end user.

A big pain point for telecommunications service providers comes from operating and maintaining (O&M) their networks. In the past 5 years, with the emergence of the cloud, networking vendors are emphasizing the transition from hardware-centric network equipment to software. There is a ton of marketing material online regarding software-defined networks from all major network equipment manufacturers. Software is indeed eating the world, and this means that network equipment is running on general purpose hardware and, consequently, the complete toolchain for measurement, interference, and control is in software.

An ongoing conversation in the telecommunications industry is how to resolve the O&M issue and save telecommunications providers money, personnel, and time. A bold, but intriguing solution to this problem is the implementation of self-driving networks.

Self-driving networks automate functions in the network that were previously done manually. Self-driving networks use historical trends and anomalies to adapt the network by routing issues. By making the network predictive and adaptive, we can remove the human work required to maintain these complex networks. While this will save time and money for providers, more importantly, it has the potential to improve the experience for the end user.

What Does a “Self-driving Network” Mean?

Self-driving networks are frequently compared to self-driving cars. While self-driving cars are designed to eliminate the manual labor of driving a car, self-driving networks are designed to eliminate the manual labor of sustaining a network. Even further, self-driving networks are meant to reduce configuration costs and respond quickly to changing circumstances.

The goal of a self-driving network is to automate networks and make them predictive and adaptive to their environment. This is meant to reduce or completely remove the manual labor required to maintain the network, thereby saving providers time, personnel, and money.

Given a workload, the network should be able to allocate appropriate resources in an efficient way, so that jobs are processed quickly and accurately. Self-driving networks operate under four key functions:

  1. Detect
  2. Infer
  3. Learn
  4. Control

Specifically, self-driving networks should be autonomous. They should be able to detect, diagnose and infer potential problems or areas for optimization. Once they are able to do this, they should learn what to look for using machine learning algorithms, and control the network by either routing around issues or providing the optimal configurations that are uniquely applicable to the multiple endpoints involved in that particular conversation, thus providing the best possible experience to end users.

How do we Build Self-driving Networks?

At, we believe the future of self-driving networks belongs to the combination of congestion control, artificial intelligence, and circumstance adaptation.

Congestion Control

Congestion control is a series of techniques used by networks to prevent collapse. This includes priority schemes and typically adjusting the sending rate based on bandwidth estimation. Bandwidth estimation is done based on receiver reporting the round-trip time, packet loss, and other pertinent metrics. Read more about congestion control in our earlier posts: multimedia rate control schemes, error resilience schemes, and fractal, our proposal for congestion control. Apart from congestion control in multimedia, the network implements a fair queueing scheme in routers and network switches.

Adapting to Circumstance

Networks should be able to adapt audio and video transmission quality to circumstance. For example, if an end user has a poor network connection, the application should be able to identify the problem and adapt to bring the end user the best possible experience - even if that means refusing to complete the call.

Learning through Artificial Intelligence

Networks should be able to learn from historical evidence what works and what does not work. By creating networks that are able to predictively identify and fix potential problems or areas for optimization, we can remove the human component of network maintenance entirely. This means providing guidance to the application on the best configuration to provide optimal quality, which route to use over the network (i.e., by chosing the most performant interface based on the sender’s and receiver’s IP address), or which (TURN/media) servers to use.

Are Self-driving Networks the Future?

Companies like Juniper Networks have already begun looking to the future of building products to enable self-driving networks. Though it is a new idea, the fate of networks exists in self-driving networks through machine learning. It has already begun, and we will continue to see its growth and, hopefully, takeover for an easier-to-use and maintain network.

At, we are focused on the end user. Self-driving networks are the next step in the right direction to achieve that goal!

Interested in learning more about how uses artificial intelligence to help diagnose your real-time call quality issues? Check out our new AI-powered product, Optimize.

Tags: Real-time Communications, WebRTC Verticals, Networking