CSS 432: Network Design
Spring 2010
TTh 545-750pm at UW2-205

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@u.washington.edu>, room UW1-331, phone 352-3459, office hours: TTh 430-530pm

Lab Administrator:

Josh Larios <JLarios@uwb.edu>, room UW1-360

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 DNS, SMTP, FTP, and HTTP. The course is largely oriented to network programming and experiments. You are given five programming assignments, some followed by performance evaluation: sockets (socket, connect, write, writev, bind, listen, accept, signal, fcntl, and read ), the sliding window algorithm, TCP tools (ttcp, tcpdump, and netstat), and DNS access (gethostbyname and hostent). In addition, you will work on the final project that implements an ftp client program.

Prerequisites:

The formal prerequisites include CSS301 and CSS422.

Work Load and Grading:

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

Textbooks:

    Computer Networks, 4th Edition, Larry Peterson and Bruce Davie, Morgan Kaufmann, 2007.

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 (including programs, results, and written reports) to be turned in, must be done without collaboration.

Any homework (except program 2) is due at the beginning of class on the due date. Only Program 2 may be submitted at the end of class. 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 Disability Support Services (DSS) in UW1-175 , (email: dss@uwb.edu, TDD: 425-352-5307, and FAX: 425-352-3581). 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. Note that you are supposed to present your solution to one of these exercises in the class. 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 five programming assignments and one in-class problem-solving assignment are given:
  1. Program 1: exercises socket 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: analyzes several TCP aspects such as state transition, Nagle'salgorithm, additive increment, and slow start, using tcpdump, ttcp, netstat, and strace.
  4. Program 4: analyzes the hostent data structure that maintains DNS information.
  5. Final project: builds ftp client program.
Please read assignment.html to understand the environment you use for programming assignments and the submission/grading procedures.

Class Discussions:

Each chapter has its own lecture slides in a ppt file that includes suggested textbook questions on its last page. The class is divided into groups of 2 or 3 students, each solving a different question for 15 minutes and presenting their solution in the class for 5 minutes. We are planning to have nine class discussions through the quarter. Your active participation in each problem-solving discussion counts 1% of your entire grade, which ends up with 9% in total.

A discussion group will be dynamically formed in the class. For instance, students sitting closer or on the same desk can form a group. I will give each group a piece of discussion summary sheet. You should summarize your discussions, write down the names of all group members, and turn it in to me. Each group should elect a group representative who will give a short presentation in the class. A representative will be rewarded with 0.1 extra credits for his/her presentation.

Topics covered and tentative 432 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.

No lecture but lab work scheduled on April 27th due to the professor's involvement in the ICMU2010 conference as a local arrangement co-chair.

Week Date (TTh) Topics Chapters Reading Textbook Exercises (Class Discussions) Assignment
1 Mar 30 Foundation 1.1 - 1.3 pp4-30   Program 1 assigned
  Apr 1   1.4 - 1.6 pp30-51 Ex 5
Ex 12,31
Ex 18
Ex 32
 
2 Apr 6 Point-to-Point Networks 2.1.2 - 2.3 pp71-91    
  Apr 8   2.4 - 2.5 pp92-115 Ex 2,5
Ex 16
Ex 18
Ex 24
 
3 Apr 13 Shared Access Networks 2.6, 2.7, and 2.1.1 pp116-133, pp66-70 Ex 43
Ex 47
Ex 57
Ex 59
Program 1 due
Program 2 assigned
  Apr 15 Switching and Forwarding 3.1 - 3.3 pp168-199    
4 Apr 20   3.4 pp208-219 Ex 1
Ex 4
Ex 13
Ex 32,39
 
  Apr 22 End-to-End Protocols 5.1 - 5.2.3, 5.2.4 - 5.2.9 pp380-394, pp394-411 Ex 4,5
Ex 9
Ex 20
Ex 22,39
 
5 Apr 27 Lab work at UW1-320
(no lecture)
  Slide your program-2's report under UW1-331's office door.
Start working on program 3 at UW1-320 Linux Lab.
  Only Program 2 due at 750pm
Program 3 assigned
  Apr 29 545 - 645pm: Ubiquitous Networking by Dr. Watanabe (Shizuoka Univ.)
650 - 750pm: Congestion Control
6.1 - 6.2 pp456-p474    
6 May 4 545 - 645pm: Wireless Research by Dr. Bahl (Microsoft Research)
650 - 750pm: Congestion Control Cont'd
6.3 - 6.4 p474-pp499 Ex 2,6
Ex 25
Ex 27
Ex 34
 
  May 6 Midterm exam in class 1, 2, 3, and 5 pp4-133, 147-199, 208-231, and 380-411    
7 May 11 Applications 9.1.1 and 9.1.3 pp640-650 and 657-666   Program 3 due postponed to May 18
Program 4 assigned
  May 13   9.1.2 pp650-656    
8 May 18 Internetworking 4.1.1 - 4.1.4 pp232-254   Program 3 due
  May 20   4.1.5 - 4.1.8 pp254-266 Ex 4
Ex 13
Ex 14
Q 1,2
 
9 May 25 Routing 4.2.1 - 4.2.5 pp266-297 Ex 15
Ex 18
Ex 28
Ex 30
Program 4 due
Final project assigned
  May 27 Global Internet 4.3.1 - 4.3.2 pp297-306    
10 June 1   4.3.3 - 4.3.4 pp306-318 Ex 21
Ex 45
Ex 47
Ex 52
 
  June 3 Network Security 8.1 - 8.4.3 and 8.5 pp586-622 and 626-630    
11 June 8 Final exam in class 4, 6, 8, and 9 pp232-318, 456-499, 586-622, 626-630, 640-650, and 657-666    
  June 10         Final Project due (3:30pm)