During the Spring semester of my junior year, I decided to do a research project with Professor Jen Rexford, who is not only a networking God but also probably the best advisor one can over hope to work with. We worked together on a Software-Defined Networking project called SRON: A Software-Defined Overlay Network. I had never done research in networking before, as usually I work on projects that involve working with physical hardware devices. Nonetheless, I learned a bunch from all of the obstacles I faced in building SRON, from basic network programming to how to deal with distributed computing problems like timing events across a distributed system. And, not to brag, but I thought of some “neat” solutions to these problems that you can read about in my paper.
So what is SRON? In short:
SRON is software written in the network programming language Pyretic that allows internet service providers to create an overlay network over their physical network to help them better respond to routing outages, congestion, and more. In particular, internet service providers (ISPs) can often monitor the routers within their networks well, but once network traffic leaves their domain and is handed off to a second ISP, the original ISP cannot easily monitor routing performance. SRON allows a single ISP to monitor the latencies of various paths throughout the Internet, even those paths that might cross through many ISP domains, and to dynamically alter routing rules based on those latencies.