Introduction to Internetworking
CS 353, Fall 2024
Course Description
CS 353 takes a top-down approach to explore how networks operate and how network applications are written. We study how popular distributed systems such as video streaming, content distribution networks (CDNs), and cloud computing systems work in the applica-tion 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 and software-defined networking (SDN).
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, HTTP proxies, and video distribution applications, and reliable transport.
Catalog Description
Global Internet: design principles, layering, protocol design/analysis. Networked applications, Internet structure/architecture, Proto-cols for transport/congestion control, network layer/routing, link layer/MAC.
Learning Objectives
In this course, we will understand the fundamentals of networking and the architecture of the Internet. We will examine in detail each layer of the Internet’s networking stack, taking a top down approach. The course will include lectures, three assignments, a mid-term and a final.
For the assignments, students are expected to be proficient in C and C++ as well as Python.
Prerequisite(s) CSCI 201
Co-Requisite (s) None
Concurrent Enrollment None
Readings and Lecture Schedule
Lectures cover material from the following textbook:
Computer Networking: A Top-Down Approach, by Jim Kurose and Keith Ross, 8th Edition, Pearson.
You can rent a copy from Pearson, or rent a hard copy or pur-chase a Kindle version from Amazon, or rent a hard copy from Vital-Source. The ISBNs are: Print rental: 9780136681557, Pearson+ access: 9780135928615.
Lectures
Table 1 describes the approximate schedule for covering this material. A Slack Day in the schedule indicates a day set aside to catch up on the lecture schedule. If we’re caught up on all the material before then, we will have no lecture on that day.
Week of
|
Tuesday
|
Thursday
|
Aug 26
|
Introduction
|
Overview
|
Sep 2
|
Protocol Layering
|
HTTP and the Web
|
Sep 9
|
DNS and CDNs
|
Video and Cloud
|
Sep 16
|
Transport Layer
|
TCP Basics
|
Sep 23
|
Slack Day
|
Quiz 1
|
Sep 30
|
TCP Basics
|
Congestion Control
|
Oct 7
|
More Congestion Control
|
Fall Recess
|
Oct 14
|
Network Layer and IP
|
IP Routers
|
Oct 21
|
Routing Fundamentals
|
Routing Protocols
|
Oct 28
|
Inter-Domain Routing
|
Quiz 2
|
Nov 4
|
BGP
|
SDN
|
Nov 11
|
Link-layer
|
Switched LANs
|
Nov 18
|
Wireless Networking
|
Datacenter Networks
|
Nov 25
|
Slack Day
|
Thanksgiving
|
Dec 2
|
Slack Day
|
Quiz 3
|
Table 1: Lecture Schedule
Discussion Section
During the discussion sections, we will cover supplementary material helpful for understanding the lectures as well as material helpful for completing the assignments. Table 2 describes the approximate schedule for the discussion sections.
Week of
|
Friday
|
Lead
|
Aug 26
|
1: Socket Programming
|
Song
|
Sep 2
|
2: Performance Metrics
|
Song
|
Sep 9
|
3: Recap and DNS
|
Namyar
|
Sep 16
|
4: HTTP Request/Response
|
Song
|
Sep 23
|
5: Assignment 2 Overview
|
Song
|
Sep 30
|
6: TCP Practice Questions
|
Namyar
|
Oct 7
|
Fall Recess
|
|
Oct 14
|
7: Congestion, IP
|
Song
|
Oct 21
|
No Discussion
|
|
Oct 28
|
8: Assignment 3 review
|
Song
|
Nov 4
|
9: Routing/BGP
|
Namyar
|
Nov 11
|
11: Link Layer
|
Song
|
Nov 18
|
12: Wireless/Datacenters
|
Namyar
|
Nov 25
|
Thanksgiving
|
|
Dec 2
|
No Discussion
|
|
Table 2: Discussion Section Schedule
Assignment 1
|
10%
|
Assignment 2
|
18%
|
Assignment 3
|
18%
|
Quiz 1
|
18%
|
Quiz 2
|
18%
|
Quiz 3
|
18%
|
Table 3: Grading Breakdown
Course Elements and Grading
The class will include four assignments and three quizzes, listed below. Table 3 shows the grade breakdown for assignments and quizzes.
Assignments You will complete three programming assignments that will expose you to programming network applications, video and content distribution, and reliable transport.
In-class quizzes These will each cover about one third of the class contents. Students will take these quizzes in-class using Grade-scope. There is no final examination for the class.
Assignments
About half the grade for the class is reserved for four programming assignments that complement the conceptual material presented in the lectures and help students more deeply understand networking (Table 4).
Assignment 1 is to be completed individually, the remaining as-signments will be done in groups of 2 or 3 students. Table 4 describes the deadlines for the assignments (midnight of the specified date). We will release all four assignments in the first week of class.
For Assignment 1, you will be given a link from Github Classroom to acquire a private Github repository for yourself. This contains instructions for the assignment and starter code. Please follow the instructions carefully.
For Assignments 2 and 3, you will first form. a team of 2/3 stu-dents from the class. Around the third week of class, we will post a Github Classroom link to acquire a repository for your group. This contains instructions for the assignments and starter code.
Choose your group members carefully. You should discuss topics such as prior experience, course background, goals for this course, workload and schedule for this semester, and preferred assignment management and work style. Make sure you can find several blocks of time during the week to meet to discuss or carry out the assign-ment.
|
Assignment
|
Due Date
|
1
|
Sockets, Mininet, & Performance
|
Sep 13
|
2a
|
Video Streaming via CDN
|
Oct 15
|
2b
|
Video Stream via CDN
|
Oct 29
|
3a
|
Reliable Transport
|
Nov 15
|
3b
|
Reliable Transport
|
Dec 6
|
Table 4: Assignment Deadlines
Quizzes
All three quizzes will be for 60 minutes each. Table 1 lists the dates of the quizzes. On each day, we will promptly start the quiz at 12pm.
Quizzes will include multiple-choice questions as well as short-answer questions. These questions will test your basic understanding of the material and require you to apply what you have learned to hypothetical situations. Each quiz will cover about a third of the material.
For all quizzes, you will answer questions online using Grade-scope. You may use a laptop, tablet or smartphone to answer these questions.
Letter grades
Final letter grades will be determined using a modified curve. I will assign grades of C and D or below to individuals who do not per-form. satisfactorily in the class.
We will not assign incompletes unless it is for a documented medi-cal reason (in accordance with USC policy).