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:

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
  • HW1 out (01/23)
3 Jan 27 Routing algorithms
Jan 29 Traffic Management & QoS
Jan 31 QoS and QoE
  • HW1 due (02/02)
4 Feb 3 Internet Protocol (IP), addressing
  • HW2 out (02/03)
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
  • HW2 due (02/15)
6 Feb 17 PA1 introduction
  • PA1 out (02/17)
Feb 19 Digital modulation, multiplexing, switching
Feb 21 Telephone and cellular networks
  • HW3 out (02/21)
7 Feb 24 Starting data link layer, framing, error control
Feb 26 HW2 review
Feb 28 Error control
  • PA1 due (03/01)
8 Mar 3 Elementary data link layer protocol
Mar 5 Improving efficiency: piggybacking, full-duplex, sliding window
  • HW3 due (03/05)
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)
  • HW4 out (03/14)
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
  • HW3 due (03/24)
Mar 26 Wireless LAN and 802.11
Mar 28 Data link layer switching, QoS
  • HW5 out (03/28)
  • PA2 out (03/28)
12 Mar 31 Transport Layer Basics, UDP, TCP
Apr 2 Congestion Control Basics and TCP Congestion Control
Apr 4 Transport Layer Performance Issues
  • HW4 due (04/04)
13 Apr 7 Starting Application Layer, Domain Name System
Apr 9 Email
Apr 11 The World Wide Web
  • HW5 due (04/11)
  • HW6 out (04/11)
14 Apr 14 Content Delivery, P2P Network
  • PA2 due (04/14)
  • PA3 out (04/14)
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
  • HW6 due (04/25)
16 Apr 28 (Prep Days) Host Networking and Overheads; Final Exam Review I
Apr 30 (Prep Days) Final Exam Review II
  • PA3 due (04/30)
May 2 No class – reading day
17 May 5 Final Exam

Time/location TBD