As a leading researcher who pioneered software-defined networking, Princeton University's Jennifer Rexford has played a key role in advancing the state of data networking. Her revolutionary work, including setting the stage for SDN and improving the efficiency of the BGP routing protocol, was recognized by the Association for Computing Machinery's Council on Women in Computing, which named her its 2016-17 Athena Lecturer.
Rexford, professor of engineering and chair of computer science at Princeton, continues to work on improving networks with an unrelenting focus on making them programmable. As she sees it, network programmability can remedy a lot of the security and performance problems that plague networks today. She presented a keynote at this week's ACM SIGCOMM 2017 that covered her research into network programmability, new network protocols, and how modern networks can benefit when researchers work across disciplines.
Network Computing caught up with Rexford before her keynote to talk about the challenges with today's networks, how far the industry has come with network programmability, and how networking pros can bolster their careers.
Network Computing: What are the big challenges in networking today?
Rexford: Take security as one example. The bad guys have a huge, programmable infrastructure at their disposal, all these machines they've compromised, and the good guys running the networks have a brittle, hard-to-change network that has to defend itself against those kinds of attacks. There's an example of where greater programmability inside the network can allow people running networks to have their networks detects attacks more effectively and shut them down more quickly.
A cloud network has to run at high levels of load -- lots of tenants running applications that need quick responses from the network. Again, if the network is programmable, it can detect congestion when it happens and react quickly to make sure the tenants and the data center get really good performance. So whether it's performance, reliability, security, or whatever the property we want these networks to have, having the inside of the network be more programmable so it can detect conditions and react in service of the network operator's goals is a critical component to solving a lot of the problems modern networks have.
NWC: How far do you think we are from programmable networks?
JR: Certainly software-defined networking has been talked about for a decade in the industry and there were some pretty exciting early adopters like Microsoft and Google, but it's been a slow haul getting the next wave of adopters on board. I’m particularlyexcited about newer technology that allows the actual switch hardware to be programmable. Companies like Netronome, Barefoot Networks, and others are making it possible to program the network interface card or the underlying switch itself so a lot of the measurement and adaption can take place directly in the switches rather than relying on some separate controller that has to be in the critical path of collecting and analyzing data.
NWC: You're still involved in the P4 consortium, right? [P4 is a language for programming the data plane in network devices]
JR: Yes. If we're going to have these programmable devices, you really can't have people writing low-level microcode, low-level ways of specifying what the hardware does. You need much higher levels of abstraction to allow people to express what they want the network to do. We really want to lower the barriers to letting more people have control of what the network does
That's one of the reasons I collaborate a lot with people in programming languages at Princeton and elsewhere. They have a lot of expertise on how to make it easier for human beings to express their higher level goals and compile that down to the lower level hardware capabilities. We're getting a better handle on what those hardware capabilities need to be and there are a number of companies building that hardware, but there's still a long way to go in terms of making it easy for people to use this type of hardware.
NWC: Cloud providers seem better equipped than the enterprise to use that technology.
JR: The enterprise may just be the beneficiaries of it. If they're running things in the cloud and they want to run a really demanding application and understand when they don’t get the performance they expect why it is, and better yet, if they get the performance they expect, that the cloud provider was able to adapt.
NWC: What's ahead for networking?
JR: Beyond the programmability, a second big challenge for networking that is in many settings, networking is just one of many components, especially in the cloud…I think, particularly in academics, we tend to have a very siloed view: Networking people are different from storage people, who are different from compute people. That's true in the industry as well.
But if you want the system to run effectively, you want the entire IT infrastructure to be adaptive and to work as one. That's true not only in the cloud, but with the internet of things, you have devices connected to the physical world and to the network. You can't think of the network in isolation from those devices, particularly if those devices are insecure as they often are, or need real-time responses from other parts of the system because they're actually effecting change in the physical world in a real time way. So there's a much greater challenge now for the networking industry and networking researchers to view the entire system as one system rather than the network and host as separate.
NWC: Any advice for networking pros?
JR: We traditionally have networking experts who don't know how to write programs. They don't write software; they configure the network through command-line interfaces or web-based interfaces. So they often don't know how to write software. And we have people who write software, but have very little knowledge about networking. That's a big education problem. Networking is becoming much more about software than ever before, and we have very few people who are experts at both.
Nick Feamster [a computer science professor at Princeton] has a starter course on SDN, and one of the more popular groups for that class has been networking professionals who want more to get some experience with software. Not just that they want experience with SDN specifically, but they recognize that to be productive in their careers, they'll need some computer-science background, which a large number of them actually don't have because the field didn't really require it before; now it does.
If you take it one step further, networking professionals often didn't need to understand storage, compute or the higher level applications running across the network. Because of the greater integration of compute, storage and networking, and the tighter requirements on security and performance a lot of modern applications have, it's become more and more important for networking professionals to have that broader base of knowledge about the things running next to them.
(Image credit: David Kelly Crow, Princeton University)