Dept. of CS, Columbia University Fall 2014
Monday 4:10-6:00PM, Class Room: SEELEY W. MU 627
Instructors
Li Erran Li, office: Computer
Science Building 457, office hour: Monday after class (SEELEY W. MU 627)
Teaching Assistants
Shangjin Zhang, sz2425@columbia.edu
Jill Jermyn, jj2600@columbia.edu
Course
Piazza page for all discussions
Course Description: Software defined networking (SDN) and network function virtualization (NFV) has been rapidly changing the networking industry and academic research in networking. Many incumbent companies such as Cisco, IBM, Broadcom, Intel have SDN products. Several startups such as Nicira, Contrail have been bought. SDN solutions have been deployed in Google WAN and enterprises. It is poised to change the carrier networks. SDN has also become a hot topic in networking research. HotSDN workshop co-located with ACM SIGCOMM is the best attended workshop. In this course, you will learn the fundamentals and get hands-on experience of SDN technology and the perspective from different players. The course will cover the following list of topics.
- API between Control Plane and Data Plane
- OpenFlow
- Broadcom and Intel Chipsets
- Controller Design
- ONOS, ONIX, POX, Floodlight and OpenDayLight
- Frenetic and Maple
- SDN Abstraction
- Protocol Independent Forwarding
- Composition and Trace Tree
- Verification
- Network Update
- SDN Application
- Traffic Engineering: Google B4, Microsoft SWAN, SDX
- Wireless Networks: SoftCell, SoftRAN, OpenRadio, OpenRF
- Virtualization
- FlowVisor
- Open vSwitch
- Network Function Virtualization (NFV)
- SDN Endhosts, Middleboxes, Debugging, fault tolerance and Security
- SDN Control of Endhosts and Middleboxes
- SDN Debugging, fault tolerance and Security
The course will be research and project oriented. Students will read a number of recent research papers on seminal topics in the area. A course project will be required. There will be two programming assignments and a midterm. Students will be evaluated by midterm, programming assignments and final project.
Grading:
You are required to work on a research project in a team and present your work
at the end of the semester. Grading will be done as follows:
50% -- Project reports, presentation/demo
20% -- Two programming assignments (10% each)
30% -- Midterm
Prerequisites: knowledge of computer networking and advanced programming (Java or C++) is required. knowledge of a functional programming language (Ocaml, Haskell, Scala) is a plus, but optional. If you are not sure, please feel free to contact me.
Online Resources: