Communication Networks 2019

© Google

Contact

Professor: Laurent Vanbever ()

Research group: Networked Systems

Assistants:

  •   Head

Slack: comm-net19.slack.com

Location & time

Lecture: Monday 10 am–12 pm in ETF C 1

Exercise sessions: Thursday 10 am–12 pm in IFW A 36

News

Apr 16 The assignment for the seventh exercise session is now online.
Apr 13 Materials for the ninth lecture are now online.
Apr 12 The solution for the sixth exercise is now online.
Apr 12 There will be an additional Routing Project Q&A session on 15.04.2019 3pm-5pm in ETZ G71.2.
Apr 10 The assignment for the sixth exercise session is now online.
Apr 7 Materials for the eight lecture are now online.
Mar 29 Materials for the seventh lecture are now online.
Mar 29 There will be an additional Routing Project Q&A session on 01.04.2019 3pm-5pm in ETZ G71.2.
Mar 29 The solution for the fifth exercise is now online.
Mar 27 The assignment for the fifth exercise session is now online.
Mar 25 The solution for the fourth exercise is now online.
Mar 25 All materials for the routing project are now online. Have fun!
Mar 24 Materials for the sixth lecture are now online.
Mar 22 Currently registered groups for the routing project (use your nethz login).
Mar 20 The assignment for the fourth exercise session and the solution for the third exercise are now online.
Mar 18 Please use this form to register your group for the routing project.
Mar 17 Materials for the fifth lecture are now online.
Mar 13 The assignment for the third exercise session and the solution for the second exercise are now online.
Mar 10 Materials for the fourth lecture are now online.
Mar 6 The assignment for the second exercise session and the solution for the first exercise are now online.
Mar 2 Materials for the third lecture are now online.
Feb 27 The assignment for the first exercise session is now online.
Feb 24 Materials for the second lecture are now online.
Feb 17 Materials for the first lecture are now online. Looking forward to see you tomorrow!
Feb 15 Tentative lecture schedule is online!
Feb 15 Join the CommNet 2019 Slack workspace!
Jan 22 Website for 2019 goes live!
Stay tuned for more content

Timeline (tentative)

Learn how the Internet works and how to operate it

It is hard to think of a technology that has more changed the way we live than the Internet. From the very way we communicate, access and exchange information, shop, pay, move, entertain, maintain friendship. At the same time, the Internet is inexorably growing, at an always faster pace: from 3 billion of connected hosts in 2015 to an estimated 4 billion in 2019.

At the end of this course, you will be able to:

  1. understand how the Internet works: from your laptop to Google's datacenter at the other end of planet;
  2. build and operate an Internet-like network infrastructure;
  3. identify the right set of metrics to evaluate the performance or the adequacy of a network and propose ways to improve it (if any).

The course is an introductory one, meaning no prior networking background is needed. The course will include some programming assignments (in Python) for which the material covered in Technische Informatik 1 (227-0013-00L) and Technische Informatik 2 (227-0014-00L) will be useful.

Grading and organization

The class will be graded 80% based on the final exam and 20% based on continuous performance assessments. The continuous performance assessments will consist in two graded group projects. Each project counts for 10% of the final grade. If a student does not do/submit a project, he/she will receive a grade of 1.0 for the corresponding project. Students repeating the course can decide at the beginning of the semester if they want to keep the previous grades of their continuous performance assessments (more details). The final exam is a written open book exam. You will not be tested on material we didn't cover during the lesson. All written material (books, notes, lab exercises etc.) is allowed; all electronic devices are prohibited, except for (non-connected) calculators. The exam will be in English.

We will use the textbook Computer Networking: A Top-Down Approach (6th Edition) by Kurose and Ross as a reference and as a source of examples. Older versions of the book are fine too but sections number won't necessarily match.

Exercises and projects

In addition to the lectures, there will be a set of exercises (every Thursday) along with two projects to be done in groups of maximum 3 students (the composition of which will be decided by the students themselves at the beginning of the first project).

  1. Internet Routing (middle of the semester): You'll build and operate your own network! We'll then interconnect networks together and form a mini-Internet. We'll test out your Internet during a large class-wide Internet Hackathon. Registered groups (use your nethz login).
  2. Reliable Communication (end of the semester): You'll implement a simple transport protocol that can ensure reliable transmission.

Each project will be available online and will be introduced in class along with instructions on the report and on the specific grading scheme.

You should submit your work on an assignment (by email, according to the assignment instructions) before its due time. All assignments are due by 11:59pm on their selected days. If you submit your work late, we will give you credit for it according to this scale:

  • 80% for work submitted up to 1 day late;
  • 70% for work submitted up to 2 days late;
  • 60% for work submitted up to 3 days late;
  • 50% for work submitted up to 7 days late;
  • 0% for work submitted more than 7 days late.

Important If you don't have a laptop, please the professor at the beginning of the course.

Part 1
Overview and Conceptual Foundations
Week 1
Feb 18 Lecture 1 Introduction (Part 1)
  1. What is a network made of?
  2. How is it shared?
  3. How is it organized?
  4. Brief historical overview
Materials
Homework
  • Take a look at what the Internet looks like!
  • Check out SWITCH (ETH's provider) connectivity and traffic
  • Use the traceroute command (tracert on Windows) to observe some Internet paths taken from your your personal computer to some Internet destination. What do you observe?
Book
  • Sections 1.1 (The Internet), 1.2 (The Network Edge) and 1.3 (The Network Core)
Optional read Optional watch
Exercises start in week 2
Week 2
Feb 25 Lecture 2 Introduction (Part 2) and Routing Foundations (Part 1)
  1. How does network communication happen?
  2. How do we characterize a network?
  3. How do we route traffic?
Materials
Book
  • Sections 1.5 (Protocol Layers), 1.4 (Delay, Loss and Throughput)
Optional read Homework
  • Take a look at an actual Internet forwarding table by connecting yourself to Sunrise's looking glass (telnet routeserver.sunrise.ch) and issue the show ip cef command. While you are at it, take a look at the routing table of this router (show ip bgp). What is in common with respect to the forwarding table?
Feb 28 Exercise 1
Week 3
Mar 4 Lecture 3 Routing and Reliable Transport Foundations
Materials
Homework Book
  • Sections 4.5.1 (LS Routing Algorithm) and 4.5.2 (DV Routing Algorithm)
  • Section 3.4.2 to 3.4.4 (included)
Optional read
Part 2
Today's Internet
Week 4
Mar 11 Lecture 4 Ethernet & Switching
Materials
Book
  • Sections 5.1 (Introduction to the Link Layer), 5.3 (Multiple Access Links) and 5.4 (Switched LANs)
Optional read
Mar 14 Exercise 3
Week 5
Mar 18 Lecture 5 Internet Protocol (IP) & Forwarding
Materials
Book
  • Sections 4.1 (Introduction to the the Network Layer), 4.3 (What's Inside a Router), 4.5 (The Internet Protocol)
Optional watch
Mar 21 Exercise 4
Week 6
Mar 28 Exercise 5
Mar 25 Internet Routing project starts
Week 7
Apr 1 Routing Project Q&A session

Q&A session 3pm-5pm in ETZ G71.2

Apr 4 Internet Routing Hackathon

Hackathon starts at 6pm in ETZ E 6 (no exercise session)

Week 8
Apr 8 Lecture 8 UDP and TCP
Materials
Book
  • Section 3.5 (Connection-Oriented Transport: TCP)
Apr 11 Exercise 6
Week 9
Apr 15 Lecture 9 TCP Congestion Control & DNS
Materials
Book
  • Section 2.5 (DNS. The Internet's Directory Service)
  • Section 3.6 (Principles of Congestion Control) and 3.7 (TCP Congestion Control)
Optional read Homework
  • Perform a few DNS lookups for your favourite domains using dig (on a UNIX system) or nslookup (on a Windows system). Look for different records (e.g., A for IPv4 addresses, AAAA for IPv6 ones, NS for delegated DNS servers)
Apr 18 Exercise 7
Apr 19 Internet Routing project ends

Deadline: Apr 19 at 11.59pm.

Week 10
Apr 22 no class Easter Monday
Apr 25 no exercise Easter Holiday
Week 11
Apr 29 Lecture 10 Applications: HTTP
May 2 Exercise 8
Week 12
May 6 Lecture 11 Applications: Video Streaming and E-mail
May 9 Exercise 9
May 6 Reliable Transport project starts
Week 13
May 13 Lecture 12 IPv6
May 16 Exercise 10
Week 14
May 20 Lecture 13 Programmable Networks
May 23 Exercise 11
Week 15
May 27 Lecture 14 Course Recap, Feedback and Exam Briefing
May 30 no exercise Ascension Day
May 31 Reliable Transport project ends

Deadline: May 31 at 11.59pm.

Exam

The final exam is a written open book exam. You will not be tested on material we didn't cover during the lesson. All written material (books, notes, lab exercises etc.) is allowed; all electronic devices are prohibited, except for (non-connected) calculators. The exam will be in English.

Previous exams

We provide the previous exams (without solutions):