By Louis DiPietro
From richly designed operating systems to interactive mobile apps, computing has never been more user-focused and user-friendly.
But behind the curtain of everyday computing – where local and global networks connect our myriad devices and enable the sharing of information – computer scientists at Cornell University and elsewhere are endeavoring to improve the infrastructure of our increasingly interconnected, online lives.
Nate Foster, an assistant professor in Cornell’s Department of Computer Science, leads a team of developers and researchers representing Cornell, Princeton, University of Massachusetts Amherst and the Université Catholique de Louvain. They have designed a fundamental platform to support a new way of managing networks.
“For a long time, we had PCs in our homes, but they didn’t connect to anything,” Foster said. “We bought discs and installed them on our computers. Now, we have rich services – on our phones, and in our homes – and networks are an important piece of that.”
Important, Foster added, yet lagging with the pace of rapid innovations in other areas of computing. While customization has surged in the era of open source, the network devices and consoles that keep us connected have remained proprietary and rigid, defined by the manufacturers that designed them. For network administrators, programming networks is cumbersome and prone to human error, costing time and money, Foster said.
Enter software-defined networking (SDN), a relatively new, open-sourced approach to network connectivity that Foster and his fellow colleagues are helping to develop into what could become the industry standard. Rather than relying on traditional networking hardware, SDNs are driven by software and dedicated controllers capable of managing entire networks. Foster’s aim is the software piece, the part that enables customization.
“Instead of buying a fixed function box from company x, you can define your own functionality,” Foster said. “That’s where the software comes in.”
To help explain how SDNs improve on our current system of networks, Cornell Professor in Engineering Dexter Kozen – whose KAT [Kleene Algebra with Tests] system proved instrumental to Foster’s research – points to the stop-and-go of traffic.
Imagine, he said, there is a series of traffic lights and you, the driver, want to program each light to turn green at the same time. A controller hooked up to all the lights would give you that capability with the press of a button. SDNs essentially give network administrators the same kind of control to maintain networks and automate processes for things like updating applications or adding more robust security measures. This “global view”, Kozen said, opens up the possibility of better performance.
“Up until SDNs,” he said, keeping with the analogy, “you would need a guy on a ladder programming each traffic light.”
The Cornell-led team has developed an open-source, SDN controller platform, or a programming language suite, called Frenetic, to make networks more autonomous, modular and secure. A built SDN platform is currently being piloted in Gates Hall, and next up for the team is exploring how Frenetic could incorporate probabilistic reasoning, a mathematical approach to predicting network errors.
“That’s the next frontier,” Foster said, adding, “We are taking a mathematical approach to the software and making it practical.”
For everyday network users, operating on SDNs probably won’t be all that noticeable, Kozen said.
“The main benefit is making network admins’ jobs easier,” he said. “Especially nowadays, some networks are huge, like Google’s, and customers expect incredible performance and uptime. That’s the context where this will have the most impact.”
For Foster, SDNs and developing their languages pose an exciting challenge.
“You’re kind of rethinking the full computing stack in a domain that’s stuck in this kind of time capsule,” he said. “It’s a fun chance to work on timeless questions in unchartered territory, especially when big tech companies, governments and universities are moving toward SDNs. We’re doing work in this area where people notice. It’s solving real world problems.”
To learn more about the Frenetic Project, visit frenetic-lang.org.