CSS 432: Network Design
Fall 2004

MW 115-320pm

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@u.washington.edu>, room UW1-331, phone 352-3459, office hours: MW 325-455pm

Course Description:

This course examines methods for designing and managing LANs and WANs theoretically and practically. The topics covered include the OSI architecture, data link networks, packet switching, routing, TCP/UDP, flow control, congestion control, network security, and application protocols such as SMTP, FTP, and HTTP. The course is largely oriented to network programming and experiments. You are given three programming assignments, each followed by performance evaluation: basic TCP communication, the sliding window algorithm, and TCP tools (ttcp, tcpdump, and netstat). The final project is to implement a pair of ftp client and server programs.

Prerequisites:

The formal prerequisites include CSS301 and CSS422.
(I suggest informally that CSS343 and CSS430 could facilitate your achievement of programming assignments.)

Work Load and Grading:

Course Work Percentage Achievements Approximately Corresponding Numeric Grade
Assignment 1 9% 90s 3.5 - 4.0
Assignment 2 13% 80s 2.5 - 3.4
Assignment 3 13% 70s 1.5 - 2.4
Final Project 25% 60s 0.7 - 1.4
Midterm Exam 20%
Final Exam 20%

Textbooks:

    Computer Networks, Third Edition, Larry Peterson and Bruce Davie, Morgan Kaufmann, 2003.

References:

Some Programming Textbooks:

The following books are useful for system and network programming.

Policies:

All programs are to be done independently. Any collaboration of work will result in severe penalty. You may discuss the problem statement and any clarification with each other, but any actual work to be turned in, must be done without collaboration.

Any homework is due at the beginning of class on the due date. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies, in which case you may turn in yor homework late with a written proof. No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam.

To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) in Bothell Library Annex Building, Room 106, (email: rlundborg@bothell.washington.edu, TDD: 425-352-5303, and FAX: 425-352-5444). If you have a documented disability on file with the DSS office, please have your DSS counselor contact me and we can discuss accommodations.

Course Goals:

The overall goal of CSS 432, "Network Design" includes: To strengthen your understanding of fundamental concepts, you are strongly recommended to solve the problems that are given on the final page of each lecture slide. You need to work in the Linux laboratory, (UW1-320) for testing and evaluating the performance of your assignment programs. Your report must include a large amount of discussions and considerations about results you obtained. Therefore, as with most technical courses, besides ability and motivation, it takes time to learn and master the subject. Expect to spend an additional 10 to 15 hours a week outside of class time on the average.

Assignments:

The following four programming assignments are given:
  1. Program 1: exercises basic TCP communication and evaluates its performance over 100Mbps and 1Gbps networks.
  2. Program 2: implements the sliding window algorithm and evaluates its performance improvement over 100Mbps and 1Gbps networks.
  3. Program 3: implements a ttcp program and observes several TCP aspects such as Nagle's algorithm, additive increment, and slow start, using ttcp, tcpdump, netstat, and strace.
  4. Final project: builds ftp client and server programs.
Please read assignment.html to understand the environment you use for assignments and the submission/grading procedures.

Topics covered and tentative 432 spring schedule:

Note that this is an approximate ordering of topics. Chapters will take about the allotted time and not all sections in all chapters are covered.

Week Date (TTh) Topics Chapters Reading Assignment
0 Sep 28 Foundation 1.1 - 1.3 pp4-29  
1 Oct 4   1.4 - 1.6 pp30-51 Program 1 assigned
  Oct 6 Point-to-Point Networks 2.1 - 2.3 pp64-87  
2 Oct 11   2.4 - 2.5 pp88-110  
  Oct 13 Shared Access Networks 2.6, 2.7, and 2.9 pp111-130, pp137-147  
3 Oct 18 Switching and Forwarding 3.1 - 3.3 pp164-197 Program 1 due
Program 2 assigned
  Oct 20   3.4 pp210-221  
4 Oct 25 End-to-End Protocols 5.1 - 5.2.3 pp374-388  
  Oct 27   5.2.4 - 5.2.9 pp389-404  
5 Nov 1 Congestion Control 6.1-6.4 pp450-491 Program 2 due
Program 3 assigned
  Nov 3 Midterm exam in class 1 - 3, 5, and 6 pp4-130, 137-197, 210-223, 374-404, and 450-491  
6 Nov 8 Applications 9.1 - 9.2.1 pp632-649  
  Nov 10   9.2.2 pp650-656  
7 Nov 15 Internetworking 4.1 pp234-270 Program 3 due
Final project assigned
  Nov 17 Routing 4.2.1 - 4.2.2 pp271-281  
8 Nov 22   4.2.3 - 4.2.5 pp282-298  
  Nov 24 Global Internet 4.3.1 - 4.3.2 pp299-308  
9 Nov 29   4.3.3 - 4.3.4 pp308-318  
  Dec 1 Network Security 8.1 - 8.2 pp578-603  
10 Dec 6   8.3 - 8.4 pp604-622  
  Dec 8 Review & wrap-up      
11 Dec 13 Final exam in class 4, 8, and 9 pp234-330 and 578-656  
  Dec 15       Final Project due (1:15pm)