CSS 432: Network Design
Autumn 2012
TuTh 3:30-5:30pm, UW2-031
Joe McCarthy
Instructor:
Joe McCarthy
Email: joemcc@uw.edu;
Office: UW2-317; Phone: 425-352-5379 (please use email instead of voicemail)
Office hours: Tu-Fr 5:30-6:00pm & by appointment
Lab Administrator:
Josh Larios JLarios@uwb.edu, room
UW1-360
Course Description:
This course examines methods for designing and managing local area networks
(LANs) and wide-area networks (WANs), from both a theoretical and
practical perspective. 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 toward network programming and experiments.
You will be given five programming assignments,
some followed by performance evaluations:
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 a final project in which you will implement an ftp client
program.
This syllabus and many of the course materials are closely modeled
after the course format used by
Prof. Fukuda.
Prerequisites:
The formal prerequisites include
CSS301
(Technical Writing for Computing Professionals) and
CSS422
(Hardware and Computer Organization).
Students who have not yet taken
CSS 430 (Operating Systems)
- which is not a prerequisite - may find that some of the material in that course
(especially slides avialable via individual Topics links in the Syllabi)
is of relevance and use in augmenting the material in this course.
Work Load and Grading:
Course Work |
Percentage |
Program 1 |
9% |
Program 2 |
9% |
Program 3 |
9% |
Program 4 |
9% |
Final Project |
15% |
Class Discussion |
9% |
Midterm Exam |
20% |
Final Exam |
20% |
Textbooks:
Computer Networks, 5th Edition,
Larry L. Peterson and Bruce S. Davie,
Morgan Kaufmann, 2011.
References:
-
Computer Networks, 5th Edition,
Andrew S. Tanenbaum,
Prentice Hall, 2011
-
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, and
UWB Standards of Academic Integrity
will be strictly enforced
You may discuss the problem statement
and seek and provide clarifications among each other,
either face-to-face or via the online discussion forum,
but any submissions (including
programs, results, and written reports) to be turned in,
must reflect your own work.
Any homework is due at the beginning of class on the due date,
and no make-up exams will be given.
I may grant extensions in exceptionally extenuating circumstances,
but only if I am consulted - and agree - beforehand.
To request academic accommodations due to a disability, please contact
Disability
Resources for Students (DRS) in UW1-175,
(email: drs@uwb.edu, TDD:
425-352-5303, and FAX: 425-352-3581). If you have a documented
disability on file with the DRS office, please have your DRS 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 set of lecture slides. Note that you will be expected 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 the code you write for each assignment.
Your report must include a discussion of the 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 exercises will be assigned:
- 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 an ftp
client program.
Please read assignment.html for information
about the environment you should use for testing your code and the
submission/grading procedures.
Class Discussions:
Each chapter segment has its own lecture slides in a Powerpoint file that includes
suggested textbook questions on its last page (these are also shown on the schedule below).
Students will form groups of 2 or 3,
each discussing a different question for the last 10 minutes of class,
continuing to work on solutions outside of class, recording the the solution
and be prepared to present their solutions at the beginning in the following class.
We have nine class discussions scheduled throughout the quarter.
Your active participation in each problem-solving discussion counts for 1% of your entire grade,
so the collection of solutions forms 9% of the total.
For each exercise, I will semi-randomly select a group and a group member
to briefly present the discussion & solution to that problem.
My goal is to distribute opportunities for sharing your knowledge as evenly as possible.
Schedule:
Note that this is an approximate ordering of topics. Not all sections in all chapters are
covered. Changes to the schedule may be made during the course of the quarter; these will
be announced in class and electronically.
Week |
Date |
Topics |
Chapters |
Reading |
Textbook Exercises (Class Discussions) |
Assignment |
0 |
Sep 24 |
Overview &
Foundation
|
1.1 - 1.3 |
pp1-23 |
|
|
|
Sep 26 |
|
1.4 - 1.5 |
pp36-60 |
Ex 3
Ex 10, 29
Ex 16
Ex 30
|
Program 1 assigned |
1 |
Oct 2 |
Point-to-Point Networks
|
2.1 - 2.3 |
pp71-90 |
|
|
|
Oct 4 |
|
2.4 - 2.5 |
pp91-118 |
Ex 2, 5
Ex 16
Ex 18
Ex 24
|
|
2 |
Oct 9 |
Shared Access Networks |
2.6 - 2.7 |
pp119-152 |
|
Program 1 due
Program 2 assigned |
|
Oct 11 |
Guest: Gayle Laakmann McDowell |
|
|
Ex 42
Ex 46
Ex 53
Ex 54
|
|
3 |
Oct 16 |
Switching and Bridging
|
3.1, 3.4 |
pp169-202, 266-281 |
Ex 1
Ex 4
Ex 13
Ex 26, 32
|
|
|
Oct 18 |
End-to-End Protocols |
5.1 - 5.2.3 |
pp391-406 |
| |
4 |
Oct 23 |
|
5.2.4 - 5.2.10 |
pp407-430 |
Ex 5, 14
Ex 9(a)
Ex 20
Ex 22, 39
|
Program 2 due
Program 3 assigned |
|
Oct 25 |
Congestion Control
|
6.1 - 6.2 |
pp479-498 |
|
Program 2 due
|
5 |
Oct 30 |
|
6.3 - 6.4 |
pp499-529 |
Ex 2, 6
Ex 25
Ex 27
Ex 34
|
|
|
Nov 1 |
Domain Name System (DNS)
|
9.3.1 |
pp744-755 |
|
Program 4 assigned |
6 |
Nov 6 |
Midterm exam (in class)
| 1, 2, 3, and 5 |
pp1-281, 391-430, and 479-529 |
|
Program 3 due |
|
Nov 8 |
Basic Internetworking (IP)
|
3.2.1 - 3.2.4 3.2.6 - 3.2.9 |
pp203-219 pp228-239 |
Ex 36
Ex 44
Ex 45
|
|
7 |
Nov 13 |
Subnetting & CIDR
|
3.2.5 |
pp220-227 |
Ex 55 Ex 68 Ex 72 Ex 74
|
|
|
Nov 15 |
Applications
|
9.1 |
pp697-726 |
|
Program 4 due (Nov 16)
Final project assigned |
8 |
Nov 20 |
Midterm review |
|
|
|
|
|
Nov 22 |
Thanksgiving (no classes) |
|
|
|
|
9 |
Nov 27 |
Routing
|
3.3 |
pp240-266 |
Ex 46 Ex 52 Ex 62 Ex 64
|
|
|
Nov 29 |
Global Internet
|
4.1 |
pp307-337 |
|
|
10 |
Dec 4 |
Network Security
(part 1)
|
8 |
pp633-689 |
|
|
|
Dec 6 |
Network Security
(part 2)
Review |
|
|
|
|
11 |
Dec 11 |
Final exam |
3.2-3.3
4.1
6.1-6.4
8
9.1, 9.3.1 |
pp203-266
pp307-337
pp479-529
pp633-726
pp697-726, 744-755 |
|
Final Project due (3:30pm) |
|
Dec 13 |
|
|
|
|
Final Project due (3:30pm) |