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