CS 571 - Computer Networks

 

Credits: 3

 

Course Description

 

Principles of computer networks using current Internet technologies and protocols as examples. Routing algorithms and protocols; end-to-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.

 

Prereqs: CS 471G or consent of instructor.

 

Needed Skills

 

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.

 

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.

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.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

1

0

Data Structures

0

0

Algorithms & Software Design

33

8

Computer Organization and Architecture

0

3

Concepts of Programming Languages

0

0

Social and ethical issues

1

0

Total

35

11

 

Mathematical Fundamentals (1): Core (1): Elementary queueing models

 

Algorithms and Software Design (41):

Core (33): Channels (2), Addressing (1), Internet Protocol (2), ARP (1), Forwarding lookup algorithms (2), Fragmentation and Reassembly (1), UDP (1), TCP (3), TCP congestion avoidance and control (4), Domain name system (2), Web (HTTP) (2), Mail (SMTP) (1), Intra-domain and inter-domain routing (5), Medium access control (CSMA/CD, etc.) (3), Wireless Networks (2), Bridging (1);

Advanced (8): Enhanced/Differentiated services (3), Middleboxes (2), Multicast routing (3)

 

Computer Organization and Architecture (3): Advanced (3): Router design (2), Network security (1)

 

Social and Ethical Issues (1): Discussion of professional and academic integrity

 

Oral Communication (presentations)

 

none

 

Written Communication

 

6-8 homeworks and projects

 

Coverage

 

Theoretical Content: 30%

· Digital channels

· TCP/IP protocols (IP, TCP, ARP, HTTP, SMTP, DNS)

· MAC protocols (CSMA/CD, Token rings, IEEE 802.11)

· Queueing models

 

Problem Analysis: 30%

· Study intra-domain and inter-domain routing algorithms

· Analyze the TCP congestion control algorithms

· Study bridging design, router forwarding lookup algorithms

 

Solution Design: 40%

· Design and implement protocols from a specification.

 

Student Evaluation and Feedback

 

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.

 

Grading

 

Grade is determined by performance on homeworks (30%), programming assignments (30%), and exams (40%). (Weights are examples and will vary with instructor.)

 

Final grades will be assigned according to the following scale:

 

A=90-100%, B=80-89%, C=70-79%, D=60-69%, E=0-59%

 

For graduate students, grade D will automatically be replaced by E.

 

Also, any grade normalization will be done against peer students, i.e. undergraduates will only be normalized with undergraduates, and graduates with graduates.

 

NOTE: 100% lecture

 

Course Evaluation Questions

 

The course has helped me:

37. Understand how information is forwarded through the Internet.

38. Understand why congestion arises and how it is dealt with.

39. Understand why routing is a challenge in large networks, and how the Internet meets that challenge.

40. Design and implement communication software using client/server model.

41. Implement a protocol from a given specification.

42. Understand the relevance of computer networks to CS.

 

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,
Addison-Wesley

 

Computer Networks
A. Tanenbaum,
Prentice Hall