Skip to main content

CSC 401 — Data and Computer Communications Networks

Schedule of Lectures — Spring 2022

Lecture slides, assignments, and solutions available from the course Moodle space

Date Lecture # Topic Assignment Due
Jan 10 1 Overview, goals, logistics
Jan 12 2 Introduction: Internet, network edge, packet vs circuit switching,
network core

Chapter 1.1-1.3
Jan 17 No class (MLK Holiday)
Jan 19 3 Intro (cont’d): delay, loss, throughput, protocol layers, attacks,

Chapter 1.4-1.7
HW 1
Jan 24 4 Application Layer (AL): principles, HTTP

Chapter 2.1, 2.2
Jan 26 5 AL (cont’d): HTTP (cont’d), email (SMTP)

Chapter 2.3
Jan 31 6 AL (cont’d): directory service (DNS), peer-to-peer (P2P) applications

Chapter 2.4-2.5
HW 2, Project 1 HW 1
Feb 2 7 AL (cont’d): content distribution networks (CDN), socket programming
Chapter 2.6-2.7
Feb 7 8 Discussion of Project 1

Transport Layer (TL): overview, multiplexing/demultiplexing
Chapter 3.1-3.2
Feb 9 9 TL (cont’d): UDP, reliable data transfer (stop-and-wait)

Chapter 3.3-3.4.1
Feb 14 10 TL (cont’d): reliable data transfer (go-back-N, selective repeat), TCP

Chapter 3.4.2-3.5.2
HW 3 HW 2
Feb 16 11 TL (cont’d): TCP functionality

Chapter 3.5.3-3.5.6
Feb 21 12 TL (cont’d): Principles of congestion control, TCP congenstion control
Chapter 3.6-3.7.1
Feb 23 13 TL (cont’d): TCP congestion control, evolution of transport layer
Chapter 3.7.2-3.8
HW 3
Feb 28 14 Network Layer-Data Plane (NL-DP): overview, router architecture

Chapter 4.1,4.2
Project 2 Project 1
Mar 2 15 Discussion of Project 2

NL-DP (cont’d): Internet Protocol

Chapter 4.3.1
Mar 7 16 NL-DP (cont’d): Internet Protocol (addressing, DHCP, NAT)

Chapter 4.3.2-4.3.3
Mar 9 In-class midterm exam
Mar 14 No class (Spring break)
Mar 16 No class (Spring break)
Mar 21 17 NL-DP (cont’d): IPv6, Generalized Forwarding and SDN, Middleboxes

Chapter 4.3.4-4.5
HW 4
Mar 23 18 Discussion of midterm exam
Mar 28 19 Network Layer-Control Plane (NL-CP): link state and distance vector
routing algorithms

Chapter 5.1, 5.2
Mar 30 20 NL-CP (cont’d): OSPF, BGP

Chapter 5.3, 5.4
Project 3 Project 2
Apr 4 21 Discussion of Project 3

NL-CP (cont’d): SDN control plane, ICMP, SNMP

Chapter 5.5-5.7
Apr 6 22 Data Link Layer (DLL): services, error detection/correction, multiple
access protocols

Chapter 6.1-6.3
HW 5 HW 4
Apr 11 23 DLL (cont’d): multiple access protocols, LANs

Chapter 6.3-6.4
Apr 13 24 DLL (cont’d): link virtualization, data center networking,

Chapter 6.5-6.7
Apr 18 25 Network Security (NS): introduction, principles of cryptography,
message integrity

Chapter 8.1-8.3
Apr 20 26 NS (cont’d): authentication, securing email, securing TCP connections

Chapter 8.4-8.6
HW 5
Apr 25 27 NS (cont’d): IPSec and VPNs, operational security

Chapter 8.7, 8.8
Project 3
May 2
Final exam



Students who wish to take this course must have completed a course on Probability and Statistics for Engineers (ST 370 or equivalent) and a course on Operating Systems (CSC 246 or equivalent).

Students must also have good working knowledge of a high-level programming language such as C, C++, or JAVA. The programming projects can be challenging, hence good programming experience is required.


This course deals with the principles and issues underlying the provision of wide area connectivity through the interconnection of autonomous networks. Emphasis will be placed on Internet architecture and protocols as they are today and as they are likely to evolve in the future. Case studies of particular protocols will demonstrate how fundamental principles are applied in practice. They will also provide the opportunity to practice a critical skill: sifting through details for the key idea. The functional requirements of internetworking will be motivated by selected examples of networked client/server applications. The projects are designed to give you first hand experience in building networked applications and/or in analyzing and evaluating the performance of protocols and applications.

At the conclusion of the course you should be able to:

  •  demonstrate understanding of the fundamental problems, tradeoffs, and design issues that arise in internetworking, as well as identify and critically evaluate internet technologies and solution approaches;
  •  understand the details of several particular protocols, as example implementations of fundamental principles, and digest descriptions of specific protocols, extracting the fundamental concepts;
  •  implement complex networked applications using the BSD sockets interface;
  •  identify and employ appropriate tools for evaluating protocol performance;
  •  apply basic concepts to new networking environments.

I encourage and expect you to participate actively in the learning process. In particular, I welcome your comments and questions as we cover material in class. One-way lectures quickly become boring, both for you and for me. By asking lots of questions your understanding of the material will be deepened significantly, and the course will be much more fun!


We will follow the top-down approach of the textbook.

Part I: Introduction. A brief history of computer networks and the Internet, edge vs. core, protocol layering, connectionless vs. connection-oriented service, packet switching vs. circuit switching, performance metrics.

Part II: Internet Protocol Layers. The main part of the course will cover the application, transport, network, and data link layers of the Internet protocol stack (layers 5 through 2, in ISO parlance), in this order:

  •  application layer (web and HTTP, ftp, mail, DNS, P2P file sharing) and socket programming;
  •  transport layer (UDP and TCP), congestion control;
  •  network layer (virtual circuits vs. datagrams, router operation and design, Internet Protocol), routing algorithms, routing protocols in the Internet, broadcast and multicast routing;
  •  data link layer (error detection and correction, multiple access protocols, addressing, technologies), Ethernet, PPP, hubs and switches, link virtualization.

Part III: Advanced Topics. Time permitting, we will address more advanced networking topics, including selected topics in:

  •  wireless and mobile networks;
  •  multimedia networking;
  •  network security.


Students are required to purchase the following textbook:

  •  J. F. Kurose and K. W. Ross, Computer Networking, 8th ed., Pearson. ISBN: 9780136681557.

I also suggest the following books as reference:

  •  W. R. Stevens, TCP/IP Illustrated, Vol. 1: The Protocols, Addison-Wesley
  •  W. R. Stevens, UNIX Network Programming, Prentice Hall
  •  D. E. Comer, Internetworking with TCP/IP, Vol. 1: Principles, Protocols, and Architectures, Prentice Hall


Students are required to complete all assignments and show all work in order to receive full credit. The final grade will be determined using the following weights:

  •  45% — Three programming projects (15% each)
  •  10% — Five homework assignments (2% each)
  •  20% — In-class midterm exam (closed book)
  •  25% — Final exam (comprehensive, closed book)


Attendance: Attendance is not mandatory but strongly encouraged. Students are responsible for making up any course material they miss.

Assignments: No hard copies of assignments or solutions will be handed out. New assignments and solutions will be announced in class and/or the course mailing list, and will be available on the course Moodle page.

Submission: Students must submit their assignments as PDF or Word files using the submit facility. The deadline for submission is midnight (Eastern time) on the day due. Any deadline extensions are up to the discretion of the instructor, and will be announced to the whole class. Extensions may be provided to individual students only in advance of the submission deadline and only under extenuating circumstances.

Late Submission: No late assignments will be accepted and no partial credit will be given for late assignments without a valid excuse.

Cheating: Homework and projects are individual assignments and students are required to submit their own solutions. All students are bound by the University’s academic integrity policies (refer to the relevant section below).

Teaching Assistant

Shailaja Mallick ( and Mithil Ghinaiya ( are the TAs for this course.

Shailaja will hold online office hours on Mondays and Wednesdays from 10:30-11:30am using Zoom:
Join Zoom Meeting
Meeting ID: 990 6667 1960
Passcode: 040723

Mithil will hold online office hours on Tuesdays and Thursdays from 4:40-5:40pm using Zoom:
Meeting ID: 987 5954 8223
Meeting Passcode: 208561

You may also contact Shailaja or Mithil by email or arrange to meet outside these hours at a mutually convenient time.

Feel free to contact the TAs for any questions about the course.

Office Hours

My office is in Room 2306 of the EB II building.

My office hours are 2:45-3:45pm on Mondays and Wednesdays.

Academic Integrity

Students are required to respect the NC State academic integrity policies.