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:
-
Computer Networks, 4th Edition,
Andrew S. Tanenbaum,
Prentice Hall, 2002
-
Internetworking with TCP/IP Principles, Protocols,
and Architectures, Volume 1, 5th Edition,
Douglas E. Comer,
Prentice Hall, 2006
-
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, , 3rd Version
W. Richard Stevens,
Addison-Wesley,
2003.
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 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. 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:
- Program 1: exercises socket
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: analyzes several TCP
aspects such as state transition, Nagle'salgorithm, additive
increment, and slow start, using tcpdump, ttcp, netstat, and strace.
- Program 4: analyzes the hostent
data structure that maintains DNS information.
- 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) |