Computer networks are complex and difficult to manage. Moreover, most network management tasks—e.g., expanding the network, adding support for new services, modifying security policies, fixing performance problems, etc.—require significant human input. Consequently, network changes are prone to human error.
The difficulty of managing and modifying computer networks has led the research community to pursue the vision of “self-driving networks”—i.e., computer networks that can automatically manage and modify themselves with little human input. The goal of this project is to explore whether some network management tasks can be automated using machine learning—i.e., whether decisions can be made based on previous changes made by human network operators. Toward this end, students will:
- Review existing literature on self-driving networks and applications of machine learning to network management;
- Experiment with various network data sources and machine learning algorithms to determine what information can be learned about how a network is/should be managed;
- Develop a prototype machine-learning-based network management tool that automates a common and/or error-pone network management task.
As part of these tasks, students will learn how network routers work, read research papers on network measurement and machine learning, write code to extract and analyze network management data, and learn how to apply existing machine learning algorithms.