TCP/IP networking
Weekly outline
-
In this course you will learn and understand how computer networks are built and run. You will be able to:
- test and clarify your understanding of the networking concepts by connecting computers to form LANs, autonomous routing domains and interconnections;
- test the performance of TCP versus UDP and of traffic control settings;
- develop and test various communicating programs using sockets;
- be familiar with IPv6 as well as IPv4 and the interworking between them;
- understand congestion control, TCP and QUIC;
- run Mininet in your computer and deploy real networks in an emulated environment.
This is a master level course for master and PhD students.
Lectures
Lectures are on Thursdays 12:15-14:00 in room CM2. Recordings are posted on youtube as soon as possible after the lecture.Speakup
We use speakup for polls in class. During the lecture, you can go to web.speakup.info in a web browser. Or you can download the speakup app for your smartphone.
The room key is written on the board in class, the room name is tcpip.
Lecture Notes- "Computer Networking : Principles, Protocols and Practice" by O. Bonaventure, 1st or 2nd edition: pdf, epub, mobi
- "Rate adaptation, Congestion Control and Fairness: A Tutorial" by JY Le Boudec: pdf
Labs
There is a lab every week, on Fridays 11:15-13:00 in rooms INF1 and 13:15-15:00 in room INM202.
The labs are designed to be done on your own machine but require an Intel processor, because of a dependency on the virtual machine software. If you only have a Mac with Apple processor, you will not be able to do the labs on your Mac, but we will lend you a small headless Linux machine (minix), which you can keep and bring home for the entire semester.
The labs do not require physical presence at EPFL. You can do them at any time. You can use the lab sessions for support; you can also use the questions and answer forum on moodle to ask questions about the lab (and about the lecture).
Every lab lasts for 2 weeks, but for the last one.For each lab, you are graded by doing lab quizzes on Moodle. Lab quizzes have to be completed at the latest on the Wednesday that follows the last lab session for the current lab.In most labs, there is a more advanced section called
research exercise
, which is for bonus. Do it only if (1) you feel comfortable with all the rest of the lab and the lecture, (2) you have enough time and (3) you like the topic.Online Lecture Quizzes
There is one online lecture quiz every week on lecture. The goal is to train your understanding of the lecture. It is also a training for the labs and for the final exam. The quizzes are mandatory, you are considered to have completed the lecture quiz when you achieve a grade of 70% or more. The lecture quiz grade only counts to determine if you passed the quiz or not, once you pass we don't use the lecture quiz grade. You must be up to date with your lecture quizzes in order to do lab quizzes.
Exam
There is one written exam in the exam session. It is closed book. We will provide you with a printed copy of the "exam booklet" (see below), which contains formulas and material that are too tedious to be learnt by heart. We recommend that you train with the old exams (see last week of the course). Such conditions are subject to change if the sanitary situation imposes it.
Grading
The course grade is the average between the lab grades and the final exam. More exactly:
- Theory grade T = final exam
-
Lab grade = average of 7 labs (last lab counts as one half)
Research exercise bonus = average of all lab bonuses (max bonus is 0.5 in scale 1-6)
L = min (6, Lab grade + Research exercise bonus)
- Final grade = ½ ( T+L) rounded to next quarter integer.
All grades except final grade are non-rounded.
-
Virtual machine image:
Labs require the use of a virtual machine. In order to make things easier for students, we prepared a preconfigured virtual machine image. It can be downloaded from here:
Virtual machine (link 1, only from inside EPFL WiFi or with VPN)
Virtual machine (link 2, only from inside EPFL WiFi or with VPN)
-
Thursday Sept 22, 12:15-14:00, CM 2
Intro, Archi
Friday Sept 23, 11:15-13:00 INF 1 and INF019 (Apple processor),13:15-15:00 INM 202 and INF019 (Apple processor)
Lab 0
-
Quiz 1
-
Lab 0
-
Lab0 - Part 1: IPv4, Packet inspection & Ping Quiz
-
Lab0 - Part 2: Traceroute, Netstat & MAC addresses Quiz
-
Lab0 - Part 3: Names in the Internet, IPv4 & IPv6 Quiz
-
Lab0 - Bonus: Wireshark VS Tshark Quiz
-
Thursday Sept 29, 12:15-14:00, CM 2
Archi, end
IP1
Friday Sept 30, 11:15-13:00 INF 1, 13:15-15:00 INM 202
Lab 0, continued
-
Quiz 2
-
Tuesday Oct 4, 17:00- 18:30
Online session organized by RIPE NCC for Computer Science students. RIPE NCC is the organization that supports the technical and administrative coordination of the infrastructure of the Internet for Europe, the Middle East and parts of Central Asia. Three leading experts will give their thoughts on who controls the Internet, equity and ethics of the Internet and how to participate in running the Internet. The event is free of charge.
More info and registration:
https://ripe85.ripe.net/programme/parallel-events/student-event/Thursday Oct 6, 12:15-14:00, CM 2
IP1 (end)
Friday Oct 7, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 1
-
Quiz 3
-
Lab1 - Part1: Iperf Quiz
-
Lab1 - Part 2: Mininet Environnement Quiz
-
Lab1 - Part 3 (1st part) : Basic connectivity within LAN Quiz
-
Lab1 - Part 3 (2nd part) : Basic connectivity within LAN Quiz
-
Lab1 - Part 4: Man-in-the-middle attack Quiz
-
Lab1 - Part 5: Bonus Quiz
-
Thursday Oct 13, 12:15-14:00, CM2
MAC Layer
Friday Oct 14, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 1, continued
-
Quiz 4
-
Thursday Oct 20, 12:15-14:00, CM2
MAC layer (end)
Transport Layer
Friday Oct 21, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 2
-
Quiz 5
-
Lab 2
-
Lab2 - Part 1.1: Layer 2 Vs 3 - Using a switch as a networking device Quiz
-
Lab2 - Part 1.2: Layer 2 Vs 3 - Configure a switch to handle loop Quiz
-
Lab2 - Part 1.3: Layer 2 Vs 3 - Using a router as a networking device Quiz
-
Lab2 - Part 2: Connecting virtual environment to the real world using NAT Quiz
-
Lab2 - Bonus - Part 1: Point-to-point wired connection of two physical machines Quiz
-
Lab2 - Bonus - Part 2 for Linux: Sharing Internet access Quiz
-
Lab2 - Bonus - Part 2 for Windows/Mac: Sharing Internet access Quiz
-
Thursday Oct 27, 12:15-14:00, CM2
Transport Layer (end)
IP multicastFriday Oct 28, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 2, continued-
Quiz 6
-
Thursday Nov 3, 12:15-14:00, CM2
multicast (end)
OSPFFriday Nov 4, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 3
-
Quiz 7
-
Lab 3 Folder
-
Lab3 - Part 1.1 - [Not graded] Quiz
-
Lab3 - Part 1.2 Quiz
-
Lab3 - Part 2 Quiz
-
Lab3 - Part 3 Quiz
-
Lab3 - Part 4 Quiz
-
Lab3 - Part 5 Quiz
-
Lab3 - Bonus - Part 6 Quiz
-
Lab3 - Link to the scoring system URL
-
Thursday Nov 10, 12:15-14:00, CM 2
OSPF (end)
Congestion Control 1Friday Nov 11, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 3, continued
-
Quiz 8
-
Thu Nov 17, 12:15-14:00, CM 2
Congestion Control 1
Congestion Control 2
Fri Nov 18, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 4
-
Quiz 9
-
Lab 4
-
Lab4 - Part1: Network Setup Quiz
-
Lab4 - Part 2: OSPF Basics Quiz
-
Lab4 - Part 3.1: OSPF Playground Quiz
-
Lab4 - Part 3.2: OSPF Playground - Broken Link Quiz
-
Lab4 - Part 4: Bonus Quiz
-
Thu Nov 24, 12:15-14:00, CM 2
Congestion control (end)
Fri Nov 25, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 4, continued
-
Quiz 10
-
Thursday Dec 1, 12:15-14:00, CM 2
BGP
Friday Dec 2, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 5
-
Quiz 11
-
Lab 5
-
Lab5 - Part 1: TCP vs UDP flows - Basics Quiz
-
Lab5 - Part 2: TCP vs UDP flows - Competing flows Quiz
-
Lab5 - Part 3: Congestion Control Quiz
-
Lab5 - Part 4: TCP - Fairness between TCP connections and delay Quiz
-
Lab5 - Part 5: TCP - Fairness of TCP connections traversing multiple bottlenecks Quiz
-
Lab5 - Bonus: ECN in TCP CUBIC and in DCTCP Quiz
-
Thursday Dec 8, 12:15-14:00, CM 2
BGP (end)
Appli
Friday Dec 9, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 5, continued
-
Quiz 12
-
Thursday Dec 15, 12:15-14:00, CM 2
Appli (end)
IP2
Friday Dec 16, 11:15-13:00 INF 1,13:15-15:00 INM 202
Lab 6
-
Quiz 13
-
Lab 6
-
lab6 Folder
-
Lab6 - Part 1: Standard BGP mode of operations. Quiz
-
Lab6 - Part 2: Policy routing Quiz
-
Lab6 - Bonus - Part 1: Running BGP only on edge routers. Quiz
-
Lab6 - Bonus - Part 2: Broken Link. Quiz
-
Thursday Dec 22, 12:15-14:00, CM 2
IP2 (end)
No lab on Friday Dec 23
Get prepared for the exam
- Do again the quizzes of the course, in the lecture notes and in moodle.
- Take the exams of the past three years (see below). The exams of the past three years lasted for 3 hours each.
-
Quiz 14
-
Final Exam
Thursday January 19 2023, 15:15 to 18:15
-
Exam solution File