CS971: Computer Networks 2

 

Credits: 3-0-0-9

 

Instructor: Dr. Amitangshu Pal

Major, Measurable Learning Objectives

Having successfully completed this course, the student will be able to:

  • Learn how the Internet works
  • Learn the network layer technologies and protocols and their functions
  • Learn transport layer protocols and their functions
  • Learn application layer protocols and their functions
  • Design a network application from scratch

Prerequisites and Co-requisites

ESC 101, CS 210, CS9XX (Computer Networks 1)

Texts and Special Teaching Aids

Lecture notes, lecture videos, and relevant reference texts will be provided to students by the instructor. Self-study would be an important component of this course.

Syllabus

The students will be exposed to the following topics:

  • Network layer: Internet Protocol, IPv6, ARP, DHCP, ICMP, Routing algorithms: Distance vector, Link state, Metrics, Inter-domain routing. Subnetting, Classless addressing, Network Address Translation. [6 hours]
  • Transport layer: UDP, TCP. Connection establishemnt and termination, sliding window revisited, flow and congestion control, timers, retransmission, TCP extensions, etc. [6 hours] 
  • Design issues in protocols at different layers. [3 hours]
  • Network Programming: Socket Programming. [3 hours]
  • Application Layer. Examples: DNS, SMTP, IMAP, HTTP, etc. [2 hours]

The course will consist of 3 hours of lectures per week, and homework.

Grading

Semester grades will be based on the following weights.

  • Quizzes                                           10% each (two proctored)
  • Programming assignment     30% (one at-home)
  • Final exam                                     50% (one proctored)

 

Semester grades will be determined after all work is completed and graded. Point ranges for letter grades will be based on several factors, including absolute and relative performance. Letter grades will not be based on a fixed, predetermined curve or point range.