CS 456/656: Computer Networks (Fall 2024)


Instructors Mina Tahmasbi Arashloo Bo Sun
mina.arashloo@uwaterloo.ca bo.sun@uwaterloo.ca
Lectures Mondays & Wednesdays Mondays & Wednesdays
4:00PM - 5:20PM 11:30AM - 12:50PM
Office Hours Tuesdays, 9:30AM - 10:30AM Thursdays, 4:30PM - 5:30PM
Teaching Elham Akbari Azirani eakbaria@uwaterloo.ca
Assistants Kimiya Mohammadtaheri k4mohamm@uwaterloo.ca
Kylee Schram kfschram@uwaterloo.ca
Amir Hossein Seyhani Parashkoh ahseyhan@uwaterloo.ca
Muhammad Sulaiman m4sulaim@uwaterloo.ca
Michael Wrana mmwrana@uwaterloo.ca

Overview

Modern computer networks are complex distributed systems, with thousands of heterogeneous software and hardware components working together to deliver traffic from sources to destinations. They serve applications that demand much more than basic network connectivity, asking for certain levels of performance and reliability from the network.

In this course, we will discuss the fundamental concepts behind modern computer networks, using the Internet ecosystem and its protocols as our guiding example.

Schedule

Following is a tentative schedule of lectures. Details are subject to change depending on how our in-class conversations go.

Readings are added to the schedule as we make progress throughout the term. They are optional and from the following resources:
Topic Dates Lectures Slides Readings (Optional) Project and Assignments
Introduction Wed - Sep 4 - What is a computer network?
- Logistics
[lec01] Textbook: Ch1
Other:
Internet history
Mon - Sep 09 - What is a computer network? (cont.)
- Network performance metrics
- What is the Internet?
[lec02]
The Application
Layer
Wed - Sep 11 - The layered structure of networks
- Application layer overview
[lec03] Textbook: Ch2
Other:
Polaris
Vroom
Mon - Sep 16 - Web applications [lec03]
Wed - Sep 18 - Web applications (cont.)
- Interfacing with the transport layer
[lec04] Wed, Sep 18:
Assignment 1 released
Mon - Sep 23 - Video streaming
- Peer-to-peer file distribution
[lec04] Tue, Sep 24:
Project proposals due (CS 656)
The Transport
Layer
Wed - Sep 25 - Transport layer overview
- Multiplexing and demultiplexing
- User Datagram Protocol (UDP)
[lec05] Textbook: Ch3
Other:
DCTCP
BBR
QUIC
Mon - Sep 30 - Reliable data transport
[lec06]
Wed - Oct 2 - Transmission Control Protocol (TCP)
[lec07] Wed, Oct 2:
Assignment 1 due
Mon - Oct 7 - Transmission Control Protocol (TCP) - Continued
[lec07] Fri, Oct 4:
Assignment 2 released
Wed - Oct 9 - Principles of congestion control
- TCP congestion control
- Evolution of transport-layer functionality
[lec08]
Reading Week
The Network
Layer
Mon - Oct 21 - Network layer overview
- Routing protocols
[lec09]
Wed - Oct 23 - Midterm exam Q & A -
Midterm Exam: Thu Oct 24, 7:00PM to 8:50PM, location TBD
The Network
Layer - Continued
Mon - Oct 28 - Routing protocols (cont.) [lec10] Textbook: Ch4, Ch5
Other:--
Wed - Oct 30 - Internet Protocol (IP) [lec11] Tue, Oct 29:
Project progress report due (CS 656)
Mon - Nov 4 - Open Shortest Path First (OSPF)
- Border Gateway Protocol (BGP)
[lec12] Fri, Nov 1:
Assignment 2 due
Wed - Nov 6 - Border Gateway Protocol (BGP) - continued [lec12]
Middleboxes and SDN Mon - Nov 11
- End-to-end argument
- Middleboxes
- Software-Defined Networking (SDN)
[lec13] Fri, Nov 8:
Assignment 3 released
The Data Link
Layer
Wed - Nov 13 - Link layer overview
- Local Area Networks (LANs)
- Ethernet
[lec14] Textbook: Ch6 (excluding 6.2, 6.5, and 6.6)
Other:--
Mon - Nov 18 -Virtual LANs [lec15]
Wed - Nov 20 - Multiple Access Channel (MAC) [lec16]
Naming and Addressing Mon - Nov 25
- DNS
- DHCP
[lec17]
Router/Switch Architecture Wed - Nov 27
- Router/switch architecture
- Buffering
- Scheduling
[lec18] Textbook: Ch4, section 4.2
AND this lecture note
Other:--
Fri, Nov 29:
Assignment 3 due
Wrap-up &
Review
Mon - Dec 2 TBD -- Tue, Dec 3:
Project final report due (CS 656). No extensions possible (per school policy)

Learning Platforms

LEARN: Course annoncements, slides, quizzes, and assignments will be posted on LEARN.

Piazza: We will use Piazza for course-related discussions. Piazza is catered to getting you help from classmates, the TAs, and the instructor. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. When asking questions, please adhere to the course Q&A policy.

Assessment

The final grade for the course will be based on the following components:

CS 456 CS 656
Quizzes 10% 10%
Programming Assignments 30% 10%
Midterm 25% 25%
Final 35% 35%
Research Project - 20%


Quizzes (10%): The goal of quizzes is to help you assess your understanding of the course material, and to help us as your instructors to pinpoint subjects that need extra discussion in the class. Here are the logistics: Programming Assignments - CS 456 (30%): There are three programming assignments, each counting as 10% of your final grade. Here are the logistics: Programming Assignments - CS 656 (10%): There are three programming assignments. Choose two of the three to complete. Each will count as 5% of your grade. For the logistics, please see the above text for "Programming Assignments - CS 456".

Midterm (25%) and Final (35%) Logistics: Research Project - CS 656 (20%): Students taking CS 656 are expected to work individually on original research projects related to computer networks. There are three deliverables for the project: Generative AI: Generative artificial intelligence (GenAI) trained using large language models (LLM) or other methods to produce text, images, music, or code, like Chat GPT, DALL-E, or GitHub CoPilot, may be used in this course with proper documentation, citation, and acknowledgement. Permitted uses of and expectations for using GenAI will discussed in class and outlined on assignment instructions.

Recommendations for how to cite generative AI in student work at the University of Waterloo may be found through the Library at this link. Please be aware that generative AI is known to falsify references to other work and may fabricate facts and inaccurately express ideas. GenAI generates content based on the input of other human authors and may therefore contain inaccuracies or reflect biases.

In addition, you should be aware that the legal/copyright status of generative AI inputs and outputs is unclear. Exercise caution when using large portions of content from AI sources, especially images. More information is available from the Copyright Advisory Committee at this link .

You are accountable for the content and accuracy of all work you submit in this class, including any supported by generative AI.

Other Important Policies

Q&A: We strongly encourage you to ask questions about anything in the course – lecture material, quizzes, assignments, projects, etc – and we'd love to have discussions about computer networks! That said, this is a large class. To ensure the teaching team can effectively answer questions, we have put the following policies in place: Attendance: Attendance is not mandatory but we strongly encourage you to attend the lectures. While the slides will be available online, they are mostly intended as teaching aids for the lectures as opposed to detailed lecture notes. As such, they do not necessarily include all the details of the topics discussed in this course.

Frequently Asked Questions

This section will be updated with frequently asked questions throughout the course.

Territorial Acknowledgement

The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation takes place across our campuses through research, learning, teaching, and community building, and is centralized within the Office of Indigenous Relations.

Faculty of Math's Statement on Mental Health and Diversity

Mental Health Support: The Faculty of Math encourages students to seek out mental health support if needed.

On-campus Resources: Off-campus Resources: Diversity: It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students’ learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular:

Note for Students with Disabilities

AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.

University and Faculty of Math Policy on Academic Integrity

Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check the Office of Academic Integrity for more information.]

Grievance: A student who believes that a decision affecting some aspect of their university life has been unfair or unreasonable may have grounds for initiating a grievance. Please read Policy 70, Section 4. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.

Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for their actions. [Check the Office of Academic Integrity.] A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Avoiding Academic Offenses: Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Office of Academic Integrity's site on Academic Misconduct and the Faculty of Mathematics' site on Academic Integrity.

Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes they have a ground for an appeal should refer to Policy 72 - Student Appeals.

Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments in this course. Turnitin® is used to verify that all materials and sources in assignments are documented. Students' submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin in this course. It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit alternate assignment.