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