Computer networks are difficult to configure due to the plethora of network requirements, configuration options, and cross-layer interactions. Researchers have developed numerous tools to help network operators verify and synthesize network configurations. However, many tools require network engineers to enumerate detailed network requirements, which is also a difficult task.
The goal of this project is to explore whether a readily available but previously untapped source of information—namely, a detailed history of a network’s configurations—can be used to automatically infer network requirements and identify configuration errors. Towards this end, students will:
Review existing literature on inferring network requirements, detecting configuration errors, and using source code histories to localize software bugs;
Experiment with various analysis algorithms to determine what information can be inferred from network configuration histories;
Develop a software prototype that infers network requirements and/or localizes configuration errors using configuration histories;
Evaluate the accuracy/effectiveness of the approach based on feedback from network engineers.
Students must know Python (covered in COSC 101) and basic data structures (covered in COSC 102). Students must also be familiar with more sophisticated data structures and algorithms (covered in COSC 202) and/or computer systems (covered in COSC 208). Students are not expected to have any background in computer networks or software analysis.
In their application, students should discuss:
Why this specific project interests them
How research in computer science aligns with their long term goals
The COSC courses they have/will complete by the summer
Any prior research or internship experience in computer science
Number of Student Researchers
Applications open on 01/03/2022 and close on 02/04/2022