This class will introduce students to advanced, research-level topics in the area of communication networks, both theoretically and practically. Coverage will vary from semester to semester. Repetition for credit is possible, upon consent of the instructor. During the Fall Semester of 2018, the class will concentrate on network programmability and network data plane programming.
The website is under construction. Stay tuned for more details about the lecture!
|Nov 2||Use this link to register for the group project (nethz login).|
|Oct 31||Project proposals are now online.|
|Oct 31||Materials for the seventh lecture are online.|
|Oct 24||Materials for the sixth lecture are online.|
|Oct 17||Materials for the fifth exercise session are online.|
|Oct 10||Materials for the fourth lecture are online.|
|Oct 3||Materials for the third lecture are online.|
|Sept 26||Materials for the second lecture are online.|
|Sept 19||Materials for the first lecture are online.|
|Sept 19||Please bring your laptop to the exercise session and install the VM that we provide.
Detailed instructions are here (use your nethz credentials to sign in).
If you don't have a laptop, please contact us during the exercise session.
|Sept 18||Website with tentative schedule for 2018 goes live|
Professor: Laurent Vanbever ()
Research group: Networked Systems
The goal of this lecture is to introduce students to the latest advances in the area of computer networks, both theoretically and practically. The course will be divided in two main blocks. The first block (~7 weeks) will interleave classical lectures with practical exercises and paper readings. The second block (~6 weeks) will consist of a practical project involving real network hardware and which will be performed in small groups (~3 students). During the second block, lecture slots will be replaced by feedback sessions where students will be able to ask questions and get feedback about their project. The last week of the semester will be dedicated to student presentations and demonstrations.
During the Fall Semester 2018, the class will focus on programmable network data planes and will involve developing network applications on top of the the latest generation of programmable network hardware: Barefoot Network’s Tofino switch ASICs. By leveraging data-plane programmability, these applications can build deep traffic insights to, for instance, detect traffic anomalies (e.g. using Machine Learning), flexibly adapt forwarding behaviors (to improve performance), speed-up distributed applications (e.g. Map Reduce), or track network-wide health. More importantly, all this can now be done at line-rate, at forwarding speeds that can reach Terabits per second.
Traditionally, computer networks have been composed of "closed" network devices (routers, switches, middleboxes) whose features, forwarding behaviors and configuration interfaces are exclusively defined on a per-vendor basis. Innovating in such networks is a slow-paced process (if at all possible): it often takes years for new features to make it to mainstream network equipments. Worse yet, managing the network is hard and prone to failures as operators have to painstakingly coordinate the behavior of heterogeneous network devices so that they, collectively, compute a compatible forwarding state. Actually, it has been shown that the majority of the network downtimes are caused by humans, not equipment failures.
Network programmability and Software-Defined Networking (SDN) have recently emerged as a way to fundamentally change the way we build, innovate, and operate computer networks, both at the software and at the hardware level. Specifically, programmable networks now allow: (i) to adapt how traffic flows in the entire network through standardized software interfaces; and (ii) to reprogram the hardware pipeline of the network devices, i.e. the ASICs used to forward data packets.
This year, the course will focus on reprogrammable network hardware/ASICs. It will involve hands-on experience on the world's fastest programmable switch to date (i.e. Barefoot Tofino switch ASIC).
Among others, we'll cover the following topics:
The course will be divided in two blocks of 7 weeks. The first block will consist in traditional lectures introducing the concepts along with practical exercises to get acquainted with programmable data planes. The second block will consist of a (mandatory) project to be done in groups of few students (~3 students). The project will involve developing a fully working network application and run it on top of real programmable network hardware. Students will be free to propose their own application or pick one from a list. At the end of the course, each group will present its application in front of the class.
The final grade will be based on the project (50%) and a final oral exam (50%).