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 2025
Location: Engineering Annex 205
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
One of the following:
- “Computer Networks” by Tanenbaum, Feamster, and Wetherall (6th Edition)
- “Computer Networking – A Top Down Approach” by Kurose and Ross (6th edition or later)
Grading
- Attendance & Quizzes: 5%
- Homework: 20%
- Programming assignments: 30%
- Midterm Exam: 20%
- Final Exam: 25%
Schedule
| Week | Date | Topic | Materials |
|---|---|---|---|
| 1 | Jan 13 | Introduction and Logistics | |
| Jan 15 | Types of Networks | ||
| Jan 17 | Protocols and Reference Models, Encapsulation | ||
| 2 | Jan 20 | No class – Martin Luther King Day | |
| Jan 22 | Socket programming basics | ||
| Jan 24 | Network layer basics |
|
|
| 3 | Jan 27 | Routing algorithms | |
| Jan 29 | Traffic Management & QoS | ||
| Jan 31 | QoS and QoE |
|
|
| 4 | Feb 3 | Internet Protocol (IP), addressing |
|
| Feb 5 | IPv4/v6 Headers, Tunneling, Fragmentation | ||
| Feb 7 | Internet Control Protocols, OSPF | ||
| 5 | Feb 10 | BGP, Network Layer wrap | |
| Feb 12 | Standardization, social issues; starting physical layer | ||
| Feb 14 | Foundations of data communication |
|
|
| 6 | Feb 17 | PA1 introduction |
|
| Feb 19 | Digital modulation, multiplexing, switching | ||
| Feb 21 | Telephone and cellular networks |
|
|
| 7 | Feb 24 | Starting data link layer, framing, error control | |
| Feb 26 | HW2 review | ||
| Feb 28 | Error control |
|
|
| 8 | Mar 3 | Elementary data link layer protocol | |
| Mar 5 | Improving efficiency: piggybacking, full-duplex, sliding window |
|
|
| Mar 7 | Starting MAC sublayer, multiple access protocols | ||
| 9 | Mar 10 | HW3 review; Midterm review | |
| Mar 12 | Midterm Review Q&A in instructor’s office | ||
| Mar 14 | Midterm Exam (in class) |
|
|
| 10 | Mar 17 | No class – Spring Break | |
| Mar 19 | No class – Spring Break | ||
| Mar 21 | No class – Spring Break | ||
| 11 | Mar 24 | Ethernet and 802.3 |
|
| Mar 26 | Wireless LAN and 802.11 | ||
| Mar 28 | Data link layer switching, QoS |
|
|
| 12 | Mar 31 | Transport Layer Basics, UDP, TCP | |
| Apr 2 | Congestion Control Basics and TCP Congestion Control | ||
| Apr 4 | Transport Layer Performance Issues |
|
|
| 13 | Apr 7 | Starting Application Layer, Domain Name System | |
| Apr 9 | |||
| Apr 11 | The World Wide Web |
|
|
| 14 | Apr 14 | Content Delivery, P2P Network |
|
| Apr 16 | Streaming Audio/Video, H.323 and SIP | ||
| Apr 18 | HTTP | ||
| 15 | Apr 21 | NGINX and event-driven programming | |
| Apr 23 | Data Center Networks | ||
| Apr 25 | Remote Procedure Call |
|
|
| 16 | Apr 28 | (Prep Days) Host Networking and Overheads; Final Exam Review I | |
| Apr 30 | (Prep Days) Final Exam Review II |
|
|
| May 2 | No class – reading day | ||
| 17 | May 5 |
Final Exam
Time/location TBD |