Nate Foster is an Associate Professor of Computer Science at Cornell University. The primary goal of his research is to develop languages and tools that make it easy for programmers to build secure and reliable systems. Professor Foster’s current work focuses on the design and implementation of domain-specific programming languages for software-defined networks. In the past, he has worked on bidirectional languages (also known as “lenses”), database query languages, data provenance, type systems, mechanized proof, and formal semantics. Professor Foster received a Ph.D. in Computer Science from the University of Pennsylvania, an MPhil in History and Philosophy of Science from Cambridge University, and a B.A. in Computer Science from Williams College. His awards include a Sloan Research Fellowship, an NSF CAREER Award, a Most Influential POPL Paper Award, a Tien ’72 Teaching Award, a Cornell Engineering Research Excellence Award, two Google Research Awards, a Yahoo! Academic Career Enhancement Award, and the Morris and Dorothy Rubinoff Award.
Building Your First Software‑ Defined NetworkCornell Course
Course Overview
Traditional networks offer limited capabilities to observe current conditions and control forwarding paths. Software-defined networking (SDN) is a fresh approach that provides direct control over network-wide behavior. By implementing standard functionality using both approaches — e.g., shortest-path forwarding — the differences between traditional networks and SDN will become clear.
In this course, you will delve into the fundamental concepts of SDN, opening the doors to a world of programmable networking. Traditional networks have been constrained by fixed protocols, making them rigid and challenging to adapt. SDN changes this paradigm by allowing you to program both the control plane and the data plane. You will begin by exploring the historical context of network design and explore ideas that paved the way for SDN, including systems like Ethane, which introduced programmable network-wide security policies.
Moving forward, you'll explore essential SDN components like the P4 Programming Language and the Network Information Base (NIB), enabling you to implement and manage network-wide algorithms and protocols effectively. Through this course, you will gain valuable foundational knowledge and skills to build on throughout your career, equipping yourself with the terminology and knowledge needed to navigate the world of SDN.
Key Course Takeaways
- Differentiate between traditional and SDN networks
- Implement a simple SDN controller
- Implement essential SDN architecture components
How It Works
Course Authors
Mina Tahmasbi Arashloo is a postdoctoral researcher working with Professors Nate Foster and Rachit Agarwa in the computer science department at Cornell University. Dr. Arashloo received her Ph.D. in computer science from Princeton University, where she was honored to have Professor Jennifer Rexford as her advisor. Prior to Princeton, she earned her B.Sc. degree in Computer Engineering from the Department of Computer Engineering at Sharif University of Technology, Iran. Dr. Arashloo’s research is primarily focused on networked systems, with an emphasis on software-defined networking (SDN) and programmable data planes. She has recently been focusing on how to exploit programmability to create networks that are verifiably robust across the stack, from the protocols themselves down to the switch and network interface card (NIC) hardware that processes packets.
Who Should Enroll
- Network administrators and architects
- Network engineers and operators
- Aspiring SDN engineers
- Enterprise network system installers
- System administrators and integrators
- Solutions designers
- DevOps teams
- NFV technologists
100% Online
cornell's Top Minds
career