Communication Networks Spring 2023

News

Aug 3 Slides and recording of the Q&A session are now online.
June 12 An additional exercise sheet is now online to prepare for the exam.
June 1 Materials for the last (!) lecture are now online.
May 31 Materials for the twelfth exercise session are now online.
May 30 The deadline for the Reliable Transport Project is now on June 4, 11.59 pm.
May 24 Materials for the eleventh exercise session are now online.
May 22 Materials for the thirteenth lecture are now online.
May 14 Materials for the twelfth lecture are now online.
May 11 Materials for the tenth exercise session are now online.
May 7 Materials for the eleventh lecture are now online.
May 4 Materials for the ninth exercise are now online.
May 4 Materials for the tenth lecture are now online.
April 26 Materials for the eighth exercise session are now online.
April 23 Materials for the ninth lecture are now online.
April 19 Materials for the seventh exercise session are now online.
April 17 Materials for the eighth lecture are now online.
April 5 Materials for the sixth exercise session are now online.
April 2 Materials for the seventh lecture are now online.
March 29 Materials for the fifth exercise session are now online.
March 25 Materials for the sixth lecture are now online.
March 23 Materials for the fourth exercise session are now online.
March 19 Materials for the fifth lecture are now online.
March 15 Materials for the third exercise session are now online.
March 13 Materials for the fourth lecture are now online.
March 8 Materials for the second exercise session are now online.
March 3 Materials for the third lecture are now online.
March 1 Materials for the first exercise session are now online.
Feb 25 Materials for the second lecture are now online.
Feb 19 Materials for the first lecture are now online.
Feb 17 Lecture starts next Monday. See you all in HG E1.2!
Feb 6 This year's lecture and project plan is now available.
Jan 11 Happy new year! More info on this year's course is coming soon! In the meantime, you can access the material from 2022 here.
Jan 11 Link to the course catalogue: Communication Networks (227-0120-00L).

Timeline

Contact

Instructor: Prof. Laurent Vanbever

Research group: Networked Systems Group

Contact:

Assistants:

Chat room: #comm-net-23 (Please read the Instructions)

Location & time

Lecture: Monday 10 am–12 pm in HG E 1.2

Exercise sessions: Thursday 10 am–12 pm in HG E 1.2

Remote participation: Recordings

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 easy programming assignments in Python.

Grading and organization

The class will be graded 70% based on the final exam and 30% based on continuous performance assessments. The continuous performance assessments will consist in two graded group projects. The first project counts for 20% and the second 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.
  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 (via your GitLab repository, 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 us at the beginning of the course.

Part 1
Overview and Conceptual Foundations
Week 1
Feb 20 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
Feb 23 no exercise Exercises start in week 2
Week 2
Feb 27 Lecture 2 Introduction (Part 2)
  1. How does network communication happen?
  2. How do we characterize a network?
  3. How do we guide IP packets from a source to a destination on the Internet?
Materials
Week 3
Mar 6 Lecture 3 Routing Foundations
Materials
Book
  • Sections 4.5.1 (LS Routing Algorithm) and 4.5.2 (DV Routing Algorithm)
Optional watch Optional read
Mar 9 Exercise 2
Part 2
Today's Internet
Week 4
Mar 13 Lecture 4 Ethernet & Switching
Materials
Book
  • Section 5.1 (Introduction to the Link Layer)
  • Section 5.3 (Multiple Access Links)
  • Section 5.4 (Switched LANs)
Optional read
Mar 16 Exercise 3
  • Assignment
  • Solutions
  • Week 5
    Mar 20 Lecture 5 Internet Protocol (IP) & Forwarding
    Materials
    Book
    • Section 4.1 (Introduction to the the Network Layer)
    • Section 4.3 (What's Inside a Router)
    • Section 4.5 (The Internet Protocol)
    Optional read Optional watch
    Mar 23 Exercise 4
    Week 7
    Apr 3 Lecture 7 Routing Policies
    Materials
    Apr 6 Exercise 6
    Apr 6 Connectivity Fäscht

    The Connectivity Fäscht will take place in HG E 3 and start at 6pm.

    Week 8
    Apr 10 no class Easter Monday
    Apr 13 no exercise Easter Holiday
    Week 10
    Apr 24 Lecture 9 Reliable Transport Foundations
    Materials
    Book Book
    • Section 3.4 (Principles of Reliable Data Transfer)
    Homework
    Apr 27 Exercise 8
    Apr 28 Internet Routing project ends
    Week 11
    May 1 no class Labor Day
    May 4 Lecture 10 Transport Layer: UDP and TCP
    Materials
    Book
    • Section 3.5 (Connection-Oriented Transport: TCP)
    May 4 shifted class Lecture during exercise slot
    May 4 Exercise 9
    Week 12
    May 8 Lecture 11 Congestion Control
    Materials
    Book
    • Section 3.6 (Principles of Congestion Control) and 3.7 (TCP Congestion Control)
    Optional read
    May 11 Exercise 10
    Week 13
    May 15 Lecture 12 Applications: DNS
    Materials
    Book
    • Section 2.5 (DNS. The Internet's Directory Service)
    Optional read
    • Take a quick look at the content of old HOSTS.txt files, the ancestor of the DNS
    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)
    May 15 Reliable Transport project starts
    May 18 no exercise Ascension Day
    Week 14
    May 22 Lecture 13 Applications: HTTP
    Materials
    Book
    • Section 2.2 (The Web and HTTP)
    May 25 Exercise 11
    Week 15
    May 29 no class Whit Monday
    Jun 1 Lecture 14 Recap and Exam Briefing
    Materials
    Jun 1 shifted class Lecture during exercise slot
    Jun 1 Exercise 12
  • Assignment
  • Solutions
  • Example file
  • Skeleton file
  • Code solution
  • Jun 4 Reliable Transport project ends
    Jun 12 Additional Exam Preparation
    Aug 3 Exam Q&A Session

    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 (with solutions):

    We provide the previous exams (without solutions):