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
- “Computer Networking – A Top Down Approach” by Kurose and Ross (6th edition or later)
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 |
|
|
| 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 |
|
|
| 3 | Jan 26 | Email, SMTP, IMAP, DNS | |
| Jan 28 | Video streaming and content distribution networks |
|
|
| 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 |
|
|
| 5 | Feb 9 | No class |
|
| 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) |
|
|
| 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 |
|
|
| 8 | Mar 2 | Connection-oriented transport (TCP) |
|
| Mar 4 | Principles of congestion control I |
|
|
| Mar 6 | Principles of congestion control II | ||
| 9 | Mar 9 | TCP congestion control I |
|
| Mar 11 | TCP congestion control II | ||
| Mar 13 | Evolution of transport-layer functionality |
|
|
| 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 |
|
|
| Apr 3 | Generalized Forwarding | ||
| 13 | Apr 6 | Internet architecture | |
| Apr 8 | Routing protocols |
|
|
| Apr 10 | OSPF and BGP |
|
|
| 14 | Apr 13 | No class | |
| Apr 15 | No class |
|
|
| Apr 17 | No class |
|
|
| 15 | Apr 20 | LANs |
|
| Apr 22 | Link virtualization: MPLS | ||
| Apr 24 | Data center networking |
|
|
| 16 | Apr 27 | (Prep Days) a day in the life of a web request |
|
| Apr 29 | (Prep Days) Final Exam Review | ||
| May 1 | No class – reading day | ||
| 17 | May 6 |
Final Exam
10:30 AM - 12:30 PM |