-
Notifications
You must be signed in to change notification settings - Fork 19
Home
Welcome to CSCI 6907.11 Special Topics: Advanced Network Systems Programming!
This course will investigate two emerging network technologies, Software Defined Networking (SDN) and Network Function Virtualization (NFV), that are causing significant changes in how networks are built and managed. The course will be hands-on and project-intensive: a substantial portion of the class meetings will be dedicated to group work developing new applications to run within the network. Students will learn how to write software that inspects network traffic, controls how packets are routed, and manipulates packet data. Lectures will cover topics such as network protocols, traffic management algorithms, virtualization platforms, and achieving scalability on multi-core servers.
Timothy Wood
Computer Science Department
George Washington University
In class we covered what networks are composed of and how we use abstraction layers to make networking more manageable. We reverse-engineered the HTTP protocol by studying packets in tcpdump
, and we used telnet
as a web browser.
Slides and Reference Material:
Homework:
- Be sure that [email protected] has your github username and has added you as a member of the gwAdvNet2015 organization.
- Read the GW CloudLab Style Guide, and plan to follow it for all code you write.
-
Read about how to Solve Issues! Then claim and solve at least two issue in the adv-net-samples Issue Tracker. You may do this individually or in a team of up to three people. If solving in a group, be sure to tag all students who helped with the @ sign in a comment on the issue.
- Initial Pull Request must be submitted by Monday 1/19 at 11:59PM
- PR must be resolved by Thursday 1/22 at 11:59PM
Check your github account for a new repository with a name like USERNAME-hw
. This is where you will commit the files for your non-team based homework. The first assignment has been posted and is due Sunday 1/25!
We learned the basics of the Global Environment for Network Innovations (GENI), a platform for experimenting with networks and servers. Guest lecture by Grace Liu.
Slides and Reference Material:
We discussed the IP, TCP, and UDP protocols to understand how abstraction layers can help support a diverse range of network applications. We learned to use ltrace
and strace
to observe what a program is doing, and dug deeper into how a packet traverses the operating system's network stack.
Slides and Reference Material:
Homework
- Individually, or in groups of up to 3 students, solve issues in this repository's Issue Tracker.
- Each group must finish at least one non-bug issue. If an issue is tagged as a bug and it refers to a piece of code you wrote previously, then you should fix it.
- Teams with 2 or 3 people should try to solve at least two different issues. Each team must solve at least one non-bug issue.
- Claim an issue by posting a comment listing all team members.
- You must submit a preliminary Pull Request by Sunday 2/8 with your solution. It is OK if you haven't finished solving a hard issue by then, but you should at least create a PR that shows the code you have written thus far.
If you wish to use any of the content on this site for your own course, please contact Tim Wood.
This course is supported in part by NSF grant CNS-1422362.