CS 471G - Networking and Distributed Operating Systems
Credits: 3
Course Description
Broad overview of networking concepts, with emphasis on data communications. Layered protocols. Analog and digital channel characteristics. Framing, error detection, error control, ARQ protocols. Network-layer functionality. End-to-end transport. Client-server architecture and programming.
Prereqs: CS-315 and engineering standing.
Needed Skills
Ability to design, code and debug nontrivial programs in C or C++. Some knowledge of computer hardware organization.
Learning Outcomes
At the conclusion of the course, the successful student will be able to:
1. Explain how information is encoded for transmission over digital channels. Explain the concepts of channel capacity ("bandwidth") and latency.
2. State and recognize the framing problem. Describe, apply and implement solution techniques.
3. State the fundamental paradigm of error detection, and evaluate error detection mechanisms for effectiveness under given conditions. Describe, apply, and implement parity-, checksum-, and CRC-based error detection.
4. Identify three different approaches to implementing a local area network, their advantages, disadvantages, and limiting parameters.
5. Explain the basics of operation of important Internet protocols including IP, TCP, mail, and web protocols.
6. Design, code, and test simple client and server programs that communicate via a network.
Measures
These specific outcomes will be evaluated on the basis of student work (homeworks, programming assignments, 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 outcomes performed at the end of the semester.
CAC Categories
Topic
|
Core
|
Advanced
|
Math
Fundamentals
|
0
|
0
|
Data
Structures
|
0
|
0
|
Algorithms
& Software Design
|
43
|
0
|
Computer
Organization and Architecture
|
0
|
1
|
Concepts
of Programming Languages
|
0
|
0
|
Social
and ethical issues
|
1
|
0
|
Total
|
44
|
1
|
Mathematical Fundamentals: none
Data Structures: none
Algorithms & Software Design (43): Core (43): Entropy and channel models (1), Layering and abstraction (1) Multiplexing (1), Encoding data (1), Framing (2), Fragmentation and Reassembly (1), Error control coding (3), sliding window/ARQ protocols (3), Flow and congestion control (2), Medium access control problem (1), MAC algorithms and protocols (4), Wireless networks (2), network service paradigms (2), routing paradigms (3), bridging algorithms (2), Internet addressing and forwarding (2), Internet Protocol (1), Client-server programming with sockets API (3), TCP overview (2), Application protocols (4), Nework security (2)
Computer Organization and Architecture (1): Advanced (1): Network interface functionality
Concepts of Programming Languages: none
Social and Ethical Issues (1): Discussion of professional and academic integrity
Oral Communication (Presentations)
none
Written Communications
6-8 homeworks and projects
Coverage
Theoretical Content: 25%
Modeling systems, channels, and information; performance analysis; graph models
Problem analysis: 35%
Coding; Medium access control; Routing; Bridging; Reliable transfer; Scaling distributed systems
Solution design: 40%
Link- and network-layer algorithms and protocols; protocol design
Student Evaluation and Feedback
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 only; actual weights used may 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 the limiting factors in information transmission
38. Understand how errors are detected in data communications
39. Make more effective use of the Internet
40. Understand how Internet services work
Possible Textbook
Computer Networks
Larry Peterson and Bruce Davis
Morgan-Kaufmann