Computer Networks

CMSC 417: Spring 2024

banner
Time: Tu-Th, 2:00pm - 3:15pm
Location: CSI 2117



Instructor: Nirupam Roy
Email: niruroy@umd.edu
Office: IRB 5240

General Information


Office Hours:


Description:
The goal of this course is to introduce students to the core concepts of wired and wireless networking. The primary focus will be on the layered architecture and the protocol stacks. At the end of the semester, students will well understand several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, wireless and sensor networking, WiFi, cellular and satellite networks, and security.
<Here> is the list of topics covered in this course. If time permits, some advanced networking concepts will be discussed.

Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.

Grading:
(1) Final exam (20%) - One closed book/computer exam at the end of the semester covering the entire syllabus.
(2) Midterm exams (30%) - Two closed book/computer in-class exams covering selected topics from the syllabus.
(3) Programming assignments(25%) - Five programming assignments.
(4) Project (20%) - One semester-long project in a group of four students.
(5) Class participation (5%) - Participation in discussions, and asking meaningful questions.
[Note: Bonus points will be capped per section (final exam, midterm exams, assignments, and final project).]

Textbook:

(1) Computer Networks: A Systems Approach
by Larry Peterson and Bruce Davie
Morgan Kaufmann, 5th Edition, 2011. ISBN 978-0123850591

Recommended books for reference:

(1) Computer Networking: A Top-Down Approach Featuring the Internet
by Jim Kurose and Keith Ross.
Pearson, 7th edition, 2016. ISBN: 978-0133594140

(2) TCP/IP Sockets in C: A Practical Guide for Programmers
by Michael J. Donahoo, Kenneth L. Calvert
Morgan Kaufmann, 2nd edition, 2009. ISBN 978-0123745408

Course Schedule

(This schedule may change due to unforeseen events and students' evolving interests)

Date

Topics of discussions

Study materials


25-Jan-2024

Lecture: Course logistics, Foundations of networks
(Textbook chapter 1)


30-Jan-2024

Lecture: Foundations of networks (cont.)
(Textbook chapter 1)


01-Feb-2024

Lecture: Distance vector routing
(Textbook chapter 3.3.1 and 3.3.2)


06-Feb-2024

Lecture: Distance vector routing (cont.) and Link state routing
(Textbook chapter 3.3.2 and 3.3.3)


08-Feb-2024

Lecture: LS routing (cont.) and Basic internetworking (IP)
(Textbook chapter 3.3 and 3.2)


09-Feb-2024
(Friday)

Assignment_0 is released.
Due: February 23rd, 11:59:59 pm
Setup instructions are <here>.


09-Feb-2024
(Friday)

Socket Programming Workshop.
Location: CSI 1115 (In-person. Slides and recordings will be available afterward.)
Time: 11am


13-Feb-2024

Lecture: IP basics, IPv4 addresses, Subnets, CIDR, DHCP
(Textbook chapter 3.2)


15-Feb-2024

Lecture: Subnets, CIDR, DHCP
(Textbook chapter 3.2)


20-Feb-2024

Lecture: Subnet, CIDR, DHCP, NAT protocol
(Textbook chapter 3.2)


22-Feb-2024

Midterm-1 exam.
Syllabus: midTerm1_Spring2024_Syllabus.pdf (TL;DR: The topics covered in class so far.)
Past exam questions: 417-exams.zip.
This is an in-class exam. Please bring your university ID card.


23-Feb-2024
(Friday)

Assignment_1 is released.
Due: March 7th, 11:59:59 pm


27-Feb-2024

Lecture: CIDR, DHCP, NAT protocol
(Textbook chapter 3.2)


29-Feb-2024

Lecture: NAT, ARP, ICMP, Virtual networks and tunnels
(Textbook chapter 3.2)


05-Mar-2024

Lecture: Transport layer protocols
(Textbook chapter 5)


07-Mar-2024
(Thursday)

Assignment_2 is released.
Due: March 25th, 11:59:59 pm


07-Mar-2024

Lecture: TCP, Stop-and-wait protocol
(Textbook chapter 5)


12-Mar-2024

Lecture: TCP flow control: Sliding window protocol
(Textbook chapter 5)


14-Mar-2024

Lecture: TCP flow-control and congestion-control
(Textbook chapter 5 & 6)


19-March-2024
to 21-March-2024

Spring break


26-Mar-2024

Lecture: TCP congestion control
(Textbook chapter 6)


27-Mar-2024
(Wednesday)

Assignment_3 is released.
Due: April 10th, 11:59:59 pm


28-Mar-2024

Lecture: TCP details, Link layer
(Textbook chapter 6 & 2)


02-Apr-2024

Lecture: Congestion control -part 3, router-assisted congestion control, Link layer
(Textbook chapter 6 & 2)


04-Apr-2024

Lecture: TCP vulnerabilities and Link Layer
(A research paper & Textbook chapter 2)


09-Apr-2024

Lecture: Ethernet and Hubs/Switches
(Textbook chapter 2)


10-April-2024
(Wednesday)

Assignment_4 is released.
Due: April 25th, 11:59:59 pm


11-Apr-2024

Lecture: Chord protocol and Midterm-2 review
(The research paper)


16-Apr-2024

Midterm-2 exam.
Syllabus: midTerm2_Spring2024_Syllabus.pdf (TL;DR: The topics covered in class so far.)
Past exam questions: 417-exams.zip.
This is an in-class exam. Please bring your university ID card.


18-Apr-2024

Lecture: Ethernet, WiFi
(Textbook chapter 2)


23-Apr-2024

Lecture : Wifi, Cellular networks and mobility in Wireless networks
(Textbook chapter 2)


25-Apr-2024

Lecture : WiFi, Mobility in Wireless, Advanced networking: BGP protocol
(Textbook chapters 2 and 4)


25-April-2024
(Thursday)

Final project is released.
Due: May 16th, Morning 09:00:00 am (no redo or late submission allowed)
In-person project interviews and evaluations: May 16th and 17th (time slots will be released)


30-Apr-2024

Lecture : BGP
(Textbook chapter 4)


02-May-2024

Lecture : BGP protocols, BGP attacks


07-May-2024

Lecture : Application layer protocols - I


09-May-2024

Lecture : Application layer protocols - II


15-May-2024 (WEDNESDAY)

Final exam

Location: CSI 2117
Time: 10:30am-12:30pm
Syllabus: finalExam_syllabus_Spring2024.pdf (TL;DR: All topics covered in class.)
Past exam questions: 417-exams.zip.
This is an in-class exam. Please bring your university ID card.