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.
Software-Defined
NetworkingCornell Certificate Program
Overview and Courses
In today’s networking environment, where networks are ubiquitous and many boxes provide various types of network functionality, software-defined networking (SDN) frees network architecture from constraints and expands opportunities for customization. With SDN, network administrators can separate the control plane from the data plane, opening doors to new innovation across industries.
In this certificate program, you will develop practical skills in SDN. By learning foundational concepts, you will be able to build your first SDN in a hands-on programming environment. You will also get practical experience optimizing the flow of data using SDN. Finally, you will explore how you can use SDN to monitor a network and utilize middle boxes to scale a network up and out. With a deeper control of SDN, you can improve your network's packet throughput, uptime, and overall efficiency, making crucial strides for your team. By the end of this program, you will be able to verify network properties with SDN and expand opportunities for your work as well as your career.
In order to be successful in this program, you should have basic Python programming knowledge (CS1) as well as the ability to graph data structures, make API calls, and access libraries.
You should also understand how networked applications work such as packet switching, basic network, and transport layers. This knowledge is required to have context to appreciate the concepts and modules in the certificate program. It will be beneficial for you to have experience doing socket programming using OS APIs or configuring network routers/switches, etc.
The courses in this certificate program are required to be completed in the order that they appear.
Course list
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.
To deliver on service-level agreements, networking professionals know they must continuously manage and optimize their networks. An SDN-enabled network can be managed through software, making network optimization more efficient, flexible, and granular. In this course, you will use SDN to optimize the flow of data through a network. You will identify how network paths affect performance and use SDN to implement optimal traffic engineering. Finally, you will examine operational considerations for SDN-based traffic engineering. The knowledge and skills you gain will help you leverage SDN to ensure network traffic flows as efficiently as possible from one network node to another.
You are required to have completed the following course or have equivalent experience before taking this course:
- Building Your First Software-Defined Network
To make critical decisions for their teams and clients, networking professionals need real-time data to understand how their network is functioning. Using SDN, you can capture real-time data and integrate it into a network's control plane to enable network automation and efficient scaling. In this course, you will gain the skills you need to understand a network's status. You will use SDN to get visibility into a network and detect changes in network conditions. In addition, you will implement network telemetry with SDN. Finally, you will explore how to integrate monitoring data into the control loop. With these skills, you can better understand how to assess the status of a network and apply these teachings to your projects.
You are required to have completed the following courses or have equivalent experience before taking this course:
- Building Your First Software-Defined Network
- Optimizing the Flow of Data Through Your Network Using SDN
Scaling an SDN-enabled network often requires the integration of new physical boxes such as load balancers, content caches, firewalls, and intrusion detection systems into the network. In this course, you will explore how to customize routing to integrate network functions. With SDN, you can program your network to offload some network functionality to these boxes, giving you the ability to orchestrate the flow of packets through a pipeline of middle boxes. You will discover how to scale up network functions by offloading to hardware and scale out applications using SDN and network functions.
You are required to have completed the following courses or have equivalent experience before taking this course:
- Building Your First Software-Defined Network
- Optimizing the Flow of Data Through Your Network Using SDN
- Getting Visibility Into Network Conditions Using SDN
Network monitoring is historically focused since it enables networking professionals to view and analyze what has happened in a network. Conversely, network verification is future focused since it enables network professionals to predict what could happen in a network based on a specification. In this course, you will specify SDNs in terms of high-level intents. You will then practice verifying SDNs using static and dynamic techniques. By the end of this course, you will have the skills you need to better understand how networks are verified, adding to your toolkit for informed application of software-defined networking.
You are required to have completed the following courses or have equivalent experience before taking this course:
- Building Your First Software-Defined Network
- Optimizing the Flow of Data Through Your Network Using SDN
- Getting Visibility Into Network Conditions Using SDN
- Enhancing Your SDN With Special Boxes
How It Works
- View slide #1
- View slide #2
- View slide #3
- View slide #4
- View slide #5
- View slide #6
- View slide #7
- View slide #8
- View slide #9
Faculty 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.
Key Course Takeaways
- Differentiate between traditional distributed networks and centralized SDN approaches to network architecture
- Identify how network paths affect performance
- Implement optimal traffic engineering with SDN
- Detect changes in network conditions and implement data-monitoring and collection techniques
- Customize routing to integrate network functions
- Verify SDNs using static and dynamic techniques
Download a Brochure
Not ready to enroll but want to learn more? Download the certificate brochure to review program details.What You'll Earn
- Software-Defined Networking Certificate from Cornell Bowers College of Computing and Information Science
- 80 Professional Development Hours (8 CEUs)
Watch the Video
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
“eCornell gave me the confidence I needed to take a seat at the table and say: I’m ready.”
Request Information Now by completing the form below.
Software-Defined Networking
Select Payment Method | Cost |
---|---|
$3,750 | |