CS371 Introduction to Computer Networking

Introduction to the principles and concepts of the Internet; data communications and digital channel characteristics; networking applications and protocols, client-server paradigm and network programming; reliable data transfer, end-to-end transport; addressing, forwarding and routing, datagram networks; media access control, data link control; selected topics from cloud computing, network security and network management. Concepts are combined with programming and other hands-on assignments to enhance the learning of these topics.

Instructor: Prof. Shixiong Qi

Term: Spring 2026

Location: Chemistry-Physics Bldg Rm.153 LEC

Time: MWF, 11:00-11:50 AM U.S. Eastern Time

Course Overview

After completing this course, the student will be able to:

  • Explain how information is encoded for transmission over digital channels, and to explain the concepts of channel capacity (“bandwidth”) and latency.
  • Explain how to implement reliable data transfer over an unreliable channel.
  • Explain how packets are delivered in datagram networks.
  • Explain the basics of operation of important Internet protocols including IP, TCP, DNS, SMTP and HTTP protocols.
  • Design, code, and test simple client and server programs that communicate via a network.

Prerequisites

  • Basic programming knowledge (preferably in C)
  • CS 270
  • CS 315
  • Consent of instructor

Textbooks

Grading

  • Attendance & Quizzes: 10%
  • Homework: 48%
  • Programming assignments: 10%
  • Exams: 32%

Schedule

Week Date Topic Materials
1 Jan 12 Introduction and Logistics; Internet and protocol
Jan 14 Network edge and core
  • HW1 out
Jan 16 Performance, protocol layers, service models
2 Jan 19 No class – Martin Luther King Day
Jan 22 Principles of network applications
Jan 23 Web and HTTP
  • HW1 due
3 Jan 26 Email, SMTP, IMAP, DNS
Jan 28 Video streaming and content distribution networks
  • PA1 out
  • HW2 out
Jan 30 Socket programming with UDP and TCP
4 Feb 2 Virtualization, Docker, Deploying a web service
Feb 4 Kernel network stack
Feb 6 Optimizing kernel network stack
  • HW2 due
5 Feb 9 No class
  • PA1 due
Feb 11 Exam I review
Feb 13 Exam I (in class)
6 Feb 16 Transport-layer services
Feb 18 Multiplexing and demultiplexing
Feb 20 Connectionless transport (UDP)
  • HW3 out
7 Feb 23 Principles of reliable data transfer I
Feb 25 Principles of reliable data transfer II
Feb 27 Principles of reliable data transfer III
  • PA2 out
8 Mar 2 Connection-oriented transport (TCP)
  • HW3 due
Mar 4 Principles of congestion control I
  • HW4 out
Mar 6 Principles of congestion control II
9 Mar 9 TCP congestion control I
  • PA2 due
Mar 11 TCP congestion control II
Mar 13 Evolution of transport-layer functionality
  • HW4 due
10 Mar 16 No class – Spring Break
Mar 18 No class – Spring Break
Mar 20 No class – Spring Break
11 Mar 23 Network layer - overview
Mar 25 What's inside a router
Mar 27 Exam II review
12 Mar 30 Exam II (in class)
Apr 1 IP: the Internet Protocol
  • HW5 out
Apr 3 Generalized Forwarding
13 Apr 6 Internet architecture
Apr 8 Routing protocols
  • HW5 due
Apr 10 OSPF and BGP
  • HW6 out
14 Apr 13 No class
Apr 15 No class
  • HW5 due
Apr 17 No class
  • HW6 due
15 Apr 20 LANs
  • HW7 out
Apr 22 Link virtualization: MPLS
Apr 24 Data center networking
  • HW6 due
16 Apr 27 (Prep Days) a day in the life of a web request
  • HW7 due
Apr 29 (Prep Days) Final Exam Review
May 1 No class – reading day
17 May 6 Final Exam

10:30 AM - 12:30 PM