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:
-
Computer Networks, 4th Edition,
Andrew S. Tanenbaum,
Prentice Hall, 2002
-
Internetworking with TCP/IP Principles, Protocols,
and Architectures, Volume 1, 4th Edition,
Douglas E. Comer,
Prentice Hall, 2000
-
TCP/IP Illustrated, Volume 1 The Protocols,
W. Richard Stevens,
Addison-Wesley, 1994
-
Managing IP Networks with Cisco Routers,
Scott M. Ballew,
O'Reilly, 1997
-
DNS and BIND, 4th Edition
Raul Albitz & Cricket Liu,
O'Reilly, 2001
-
HTTP: The Definitive Guide,
David Gourley & Brain Totty,
O'Reilly, 2002
-
SSH, The Secure Shell: The Definitive Guide,
Daniel J. Barret and Richard Silverman,
O'Reilly, 2001
Some Programming Textbooks:
The following books are useful for system and network programming.
-
Effective TCP/IP Programming -- 44 Tips to Improve Your
Network Programs,
Jon C. Snader
Addison-Wesley,
2000.
-
Advanced Programming in the UNIX Environment,
W. Richard Stevens,
Addison-Wesley,
1992.
-
Unix Network Programming, Volume 1, , 2nd Version
W. Richard Stevens,
Addison-Wesley,
1998.
-
Unix Network Programming, Volume 2, , 2nd Version
W. Richard Stevens,
Addison-Wesley,
1999.
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 learn theoretical and practical methods that are used to design
and manage LANs and WANs,
- To experimentally and mathematically understand the effectiveness
of the networking techniques through your programming assignments and
exercises.
- To build ftp as a network application based on an RFC protocol.
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:
- Program 1: exercises basic TCP
communication and evaluates its performance over 100Mbps and 1Gbps
networks.
- Program 2: implements the sliding window
algorithm and evaluates its performance improvement over 100Mbps and
1Gbps networks.
- 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.
- 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) |