CS 571 - Computer Networks

Bulletin Description

Principles of computer networks using current Internet technologies and protocols as examples. Routing algorithms and protocols; endto-end transport; flow control; congestion avoidance and control; mail, web, and file transfer protocols; designing and implementing applications using common network APIs. Advanced topics, included as time permits, include network security, multicast, and quality of service.


CS 471G or consent of instructor.

Expected Preparation

Background equivalent to successful completion of CS471G. Students should be able to:

  1. Understand channels and how information is transmitted over digital channels. Explain the concepts of channel capacity ("bandwidth") and latency.
  2.  Describe, apply and implement techniques for framing, error detection, and error recovery.
  3. Explain the difference between virtual circuit and datagram network services. Describe the steps taken by the network infrastructure in forwarding a packet from one host to another using IP.
  4. Design, code, and test simple programs that communicate using a network.

Student Learning Outcomes

Students will develop knowledge and skills in computer networking. At the conclusion of the course, students will be able to:

  1. Understand and explain in detail the operation of the important Internet protocols, including IP, ARP, TCP, HTTP, SMTP, and DNS.
  2. Explain the problem of congestion in networks, describe various strategies for dealing with it, and explain their strengths and weaknesses.
  3. Explain the difference between intradomain routing and interdomain routing, and describe the protocols commonly used for each.
  4. Evaluate and select a Medium Access Control protocol for a given set of application parameters. Explain the limits on scalability of MAC protocols, the difference between routing and bridging, and why the former scales but the latter doesn't.
  5. Construct a queueing model of a simple queueing system and specify the parameters of its performance.
  6. Implement a protocol from a given specification.


Direct Measures:

Students are evaluated on their work (homeworks, projects, and exams), which is marked to indicate errors and returned either corrected or with correct solutions. Problems that turn out to be especially difficult are discussed in class during lectures or during recitations.

Indirect Measures:

These six specific outcomes will be evaluated on the basis of student work (homeworks, projects, and exams) that contain problems specifically addressing these outcomes. They will also be evaluated on the basis of student self-assessment of their mastery of the six outcomes performed at the end of the semester.

Syllabus Information

Possible Textbooks:

Computer Networks: A Systems Approach
L. Peterson and B. Davie,
Morgan Kaufman

Computer Networking: A Top-Down Approach Featuring the Internet
J. Kurose and K. Ross,

Computer Networks
A. Tanenbaum,
Prentice Hall