A decade ago, computer networks were often built out of proprietary hardware and software components—controlled by vendors and therefore closed for innovation. As John Markoff noted in a New York Times article, computer programmers worried about the negative impact on further progress in networking and started to push for increased programmability, open standards, and open-source software platforms. In a similar spirit, around the same time, Nate Foster and fellow researchers began to design a network programming language to address prevailing constraints in the emerging field of software-defined networking (SDN). A decade later, their work is being celebrated as among the most influential in the field.
At this year’s International Conference on Functional Programming (ICFP 2021), the article that announced the network programming language—called Frenetic—at the 2011 meeting was feted as its “Most Influential Paper.” The lead author of the paper, Nate Foster, is Associate Professor in the Department of Computer Science in the Ann S. Bowers College of Computing and Information Science. In addition to a team of researchers at Princeton, authors also include CS undergraduate alumnus, Alec Story ’13, now a Google Senior Software Engineer, and CS Ph.D. alumnus, David Walker ’01, now a Professor of Computer Science at Princeton University.
The awards committee noted that “Frenetic: A Network Programming Language” was “the first conference paper in a highly influential line of work creating a bridge between programming languages and networking.” In their research, the authors of “Frenetic” accomplished several things: they analyzed deficiencies in the state of the art in languages for programming networks; addressed these limitations in a new language design, and described its implementation and performance on a suite of microbenchmarks.
As the authors explain, “modern networks provide a variety of interrelated services including routing, traffic monitoring, load balancing, and access control. Unfortunately, the languages used to program today’s networks lack modern features—they are usually defined at the low level of abstraction supplied by the underlying hardware and they fail to provide even rudimentary support for modular programming. As a result, network programs tend to be complicated, error-prone, and difficult to maintain.” The Frenetic network programming language is their reply to these issues.
Frenetic is “a high-level language for programming distributed collections of network switches.” In this way, Frenetic “provides a declarative query language for classifying and aggregating network traffic as well as a functional reactive combinator library for describing high-level packet-forwarding policies. Unlike prior work in this domain, these constructs are—by design—fully compositional, which facilitates modular reasoning and enables code reuse.” Among other outcomes, Frenetic “provides an exciting opportunity to enforce security, reliability, and performance guarantees using language-based techniques.”
As the award’s committee assessed the impact of the paper, it emphasized how “this paper inspired a mountain of follow-on work by these authors and others. The practical value of improving network programming, and this paper’s influence on subsequent advances in the state of the art, make it a deserving winner of the award.”
In the decade since “Frenetic,” Foster and his fellow researchers at Cornell, Princeton, and elsewhere have developed an entire “family” of high-level languages for programming distributed collections of network switches, including Pyretic and NetKAT.
For more on Nate Foster’s research, see also: