/CSCI4430-ESTR4120

Computer Networks, CSE@CUHK, taught by Hong Xu

Primary LanguageCMIT LicenseMIT

CSCI4430/ESTR4120, Computer Networks (Spring 2023)

Administrivia

Schedule

  • Lectures:
    • Mon 12:30pm – 2:15pm, Basic Med Sci Building G18
    • Tue 4:30pm – 5:15pm, MMW LT1
    • ESTR4120: Tue 5:30pm - 6:15pm, MMW LT1
  • Tutorials:
    • Thu 8:30am – 9:15am, MMW LT2
    • Thu 12:30pm – 1:15pm, Basic Med Sci Building G18

Team

Member Role Office Hours
Xu, Hong (Henry) Prof Mon 3-5 pm, SHB 914. By appointments only.
Song, Qingyu Head TA Wed 9:30-11:30 am, SHB 117.
Zhang, Jingze TA Tue 2:30-4:30 pm, SHB 117.
Ding, Wenlong TA Wed 1:30 - 3:30 pm, SHB 117.

Piazza

The Piazza page for this course is here. All communication about this course is done over Piazza. This includes questions, discussions, announcements, as well as private messages. The self-signup code is "4430 rocks!".

Course outline

CSCI 4430 takes a top-down approach to explore how networks operate and how network applications work. We study how popular distributed systems such as video streaming, content distribution networks (CDNs), and cloud computing systems work in the application layer. We explore how these applications transfer data between their components and end users over the Internet using transport layer protocols such as TCP and UDP. We go deeper to understand what keeps the transport layer running; specifically, we look at how packets are routed and how routers work. Finally, we dive one more layer down to understand how the link layer transfer packets using Ethernet. In addition to cutting through the layers and covering the basics, we learn about the state-of-the-art topics in networking such as datacenter networks, software-defined networking (SDN), and (time permits) programmable networks.

From a practical point of view, we learn what sockets are and how to use them. And we write code. We write code to implement various protocols, to build client-server applications, video streaming applications, and transport protocols.

Textbook (optional)

The course materials are based upon the following classic textbook of Kurose and Ross. In addition, many materials are also borrowed heavily from Mosharaf Chowdhury's computer networks course with his permission. Credit is given whenever possible to Mosharaf and a lot of other folks, especially for the ESTR lecture notes.

  • Computer Networking: A Top-Down Approach, 7th. (or earlier editions), by Jim Kurose and Keith Ross, 2016. ISBN 978-0133594140.

You may also want to check out this online book:

Grading

Assessment item CSCI Weight ESTR Weight
Assignments 55% 55%
Tutorial Quizzes* 5% 0%
Final Exam 40% 40%
Project 0% 5%

*: To encourage tutorial participation, quiz will be conducted at the tutorials randomly. We will randomly pick 5 tutorials and perform a quiz at the end of the tutorial. Each quiz is worth one mark.

ESTR students

ESTR 4120 follows the same format as CSCI 4430, but with an additional project to be presented in the second half of the semester. The exams and quizzes will be the same as CSCI 4430.

Projects details will be announced in a later time can be found on this page.

Schedules

Lectures

Week Date Topic(s) ESTR
Topic
Optional Readings
from Textbook
1 Jan 9-10 Intro and Overview Internet 1.1, 1.3, 1.4
2 Jan 16-17 Layering;
Sockets and HTTP
HTTP, HTTPS, P2P 1.5, 2.2, 2.4
3 Jan 30-31 CDN, DNS CDN, Anycast 2.2, 2.4
4 Feb 6-7 Video, cloud & datacenters,
Transport layer
ABR I, ABR II 2.6, 3.1, 3.2, 3.3, 3.4
5 Feb 13-14 Transport layer RDMA 3.1, 3.2, 3.3, 3.4
6 Feb 20-21 TCP basics,
Congestion control
RPC 3.5, 3.6
7 Feb 27-28 Congestion control, More on CC DCTCP 3.5, 3.6
8 Mar 13-14 More on CC,
Network layer and IP
NAT, Tunneling 3.7; 4.1, 4.3.1, 4.3.2, 4.3.5
9 Mar 20-21 Network layer: IP routers NFV 4.2
10 Mar 27-28 Routing fundamentals,
Intra-domain routing
Security 5.1, 5.2, 5.3
11 Apr 3, 11 Inter-domain routing,
SDN
Project presentations 4.3.3, 5.4
12 Apr 17, 18 Link layer,
Final exam
Project presentations 6.1, 6.3, 6.4
Course review

Tutorials and Assignments

Week Date Topic Assignment Due
1 Jan 12 No tutorial
2 Jan 19 Socket programming Assignment 1 11:59:59 p.m., Mon, Feb. 13th
3 Feb 2 Performance metrics
4 Feb 9 HTTP
5 Feb 16 Select programming Assignment 2 11:59:59 p.m., Fri, Mar. 17th
6 Feb 23 HTTP Streaming and TCP
7 Mar 2 HTTP Proxy and TCP
8 Mar 16 TCP Congestion Control
9 Mar 23 UDP Socket programming Assignment 3 11:59:59 p.m., Fir, Apr. 21st
10 Mar 30 WTP Introduction
11 Apr 6 No tutorial
12 Apr 13 IP and Network
13 Apr 20 Routing

Course policies

  • Homework and project:
    • No late submission.
    • Grace tokens: You have 2 grace tokens, each can be used to give you a 24-hr extension on one assignment. You can apply at most 1 grace token on each assignment at your own discretion. This gives you some flexibility to cope with your own schedule.
    • According to the University’s regulation, every assignment must be accompanied by a signed declaration of originality; submissions without it will receive zero mark.
    • The declaration form is available here.
  • Lecture and tutorial:
    • Be on time. Set your mobile device to vibration/silient mode.
    • Feel free to ask questions and raise comments during the lecture, but we can only entertain short questions and discussions in-class.
    • Longer and deeper discussion and questions can happen in tutorials.
    • Follow University's regulations on COVID, including use of masks, hand sanitization, seating with social distance, etc.