CSE/EE 461

Introduction to Computer Communication Networks

Winter 2002

Time/Place: MWF 2:30 - 3:20, EE1 125

Instructor: Tom Anderson (tom@cs.washington.edu)

Office Hours: Sieg 316, MW 3:30 - 4:30

TAs: Janet Davis (jlnd@cs.washington.edu)

Sushant Jain (sushjain@cs.washington.edu)

Eric Lemar (elemar@cs.washington.edu)

TA office hours to be announced.

Course Web: http://www.cs.washington.edu/education/courses/461/02wi/

This page has links to everything you need for the course.

Course Description: The goal of this course is to teach the principles of network protocol design. We will cover the following topics: framing, error correction, packet switching, multi-access (Ethernet), addressing and forwarding (IP), distance vector and link state routing, queuing and scheduling, reliable transport, congestion control (TCP), quality of service, naming (DNS), and security.

Course prerequisites: This is a programming class. If you are not comfortable with programming, you should take this class some other quarter. The course project uses C with Linux development tools. I will also assume facility with probability concepts.

Enrollment: A signup sheet will be circulated for those who have not been able to enroll. We will overload a small number of students from this list, with names posted at my office by noon on Wednesday. No one will be added after Wednesday, regardless of future drops.

Grading: Final: 35%, midterm: 20%, fishnet programming assignments: 35%, problem sets: 10%. The midterm and final will be closed book, but you may bring a single 8"x11" sheet of paper containing notes.

Mailing List: Join the class mailing list right away by sending email to majordomo@cs.washington.edu with "subscribe cse461" as the contents. We will use this list for clarifications, last minute announcements, etc., and you should feel free to use it for class related discussion.

Textbook: Computer Networks: A Systems Approach, by Larry Peterson and Bruce Davie. Morgan Kaufmann, 2nd edition. This is required reading, and the only networking book you will need (regardless of what the bookstore might recommend). In addition, we also strongly recommend you buy and read, Maguire, Writing Solid Code.

Programming Projects: There is a substantial programming project comprised of four programming assignments. Over the quarter, we will build a collective class network called Fishnet; more details will be provided in section. You will work in pairs. The first assignment is shorter and worth 5% of your grade; the remaining three are worth 10% each, for a total of 35%.

Projects will be due at 5pm on the due date, but we will use flexible slip days for the project; your programming assignments can be handed in a cumulative amount of four calendar days late, in any combination.

Lab Access and Accounts: You should gain access to the CSE Labs right away. CSE majors should already have access and an account. Non-majors must fill out a request form. It is possible for you to develop your programs on non-Lab machines, as long as they compile on the Lab machines without any changes whatsoever (needed so that we can automatically compile your source). However, the node you develop will not be able to participate in the class-wide Fishnet unless your machine has a statically-assigned public IP address; cable modem users typically donít have this.

Written Assignments: There are two written problem sets, each worth 5% of your grade. The problem sets are to be done individually. They will be due at noon on the due date, and will not be accepted late.

Collaboration Policy: Unless we specifically state otherwise, we encourage you (your team in the case of programming assignments) to collaborate on homework provided (1) You spend at least 15 minutes on each and every problem alone, before discussing it with others, and (2) You write up each and every solution as your own program or in your own writing, using your own words, and understand the program or solution fully. Copying someone else's written homework or programs is cheating (see below), as is copying from another source (prior year's material, etc.).

Cheating Policy: Cheating is a very serious offense. If you are caught cheating, you can expect a failing grade and initiation of a cheating case in the University system. Basically, cheating is an insult to the instructor, to the department, and most importantly, to you. If you feel that you are having a problem with the material, or don't have time to finish an assignment, or have any number of other reasons to cheat, then talk with the instructor. Just don't cheat. To avoid creating situations where copying can arise, never publicly post your solutions. If in doubt about what might constitute cheating, send the instructor email describing the situation.






Course Outline and Approximate Dates

Jan 7: Introduction: design principles, pipes, protocols, and how the web works

Peterson, Chapter 1

Jan 9 - 11: Link layer: from signals to messages (framing, Ethernet, wireless)

Peterson, Chapter 2.1 - 2.4, 2.6, 2.8

Jan 22: Fishnet assignment 1 due, 5pm

Jan 14 - 28: Routing: from one link to many (link state, distance vector, Internet routing)

Peterson, Chapter 4.1 - 4.3

Jan 31: Problem set 1 due, noon

Feb 7: Fishnet assignment 2 due, 5pm

Jan 30 - Feb 15: Transport: from unreliable messages to applications (TCP, sockets)

Peterson, Chapter 5.2, 6.1 - 6.4

Feb 13: Midterm, in class

Feb 20 - 25: Scalable services: caching, replication, DNS, HTTP

Peterson, Chapter 9.1 - 9.2

Feb 26: Fishnet assignment 3 due, 5pm

Feb 27 - March 1: Multicast: from one-to-one to one-to-many

Peterson, Chapter 4.4

March 7: Problem set 2 due, noon

March 4 - 8: Quality of service: beyond best-effort (RSVP, DiffServ)

Peterson, Chapter 6.5

March 11 - 13: Security: encryption, firewalls, and hacking

Peterson, Chapter 8

March 14: Fishnet assignment 4 due, 5pm

March 15: Wrapup

March 19: Final, 2:30 - 4:30