CSS
432: Network Design
Spring 2013
TTh 545-745pm, UW2-240
Francis Wang
Francis
Wang Email: fcw3@uw.edu; Office: UW1-349
Office hours: TuTh 2:00-5:00pm, & by appointment
Josh
Larios JLarios@uwb.edu,
room UW1-360
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 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 the final project that implements an ftp client
program.
This syllabus and many of the course materials are closely modeled after the course format used by Prof. Fukuda.
The
formal prerequisites include CSS301 and CSS422.
Students who have not yet taken CSS 430 (Operating Systems) 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.
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% |
Computer Networks, 5th Edition, Larry L.
Peterson and Bruce S. Davie, Morgan Kaufmann, 2011.
The
following books are useful for system and network programming.
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 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 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.
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 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.
Upon successful completion of the course,
students shall be able to:
CO-1.
Understand network layering (based on the OSI 7 layer) and measure
the
network performance with bandwidth and latency. (a)
CO-2.
Understand and simulate the behavior of the physical and data link
layers including: encoding, framing, error detection,
multiple access
networks, and wireless network.(c) (j)
CO-3.
Understand and simulate internetworking in the data link and
network layers: switching, bridging, IP, ARP, DHCP,
ICMP, intra-domain
routing (such as RIP, OSPF, subnetting,
and CIDR), and inter-domain
routing (BGP).(c) (j)
CO-4.
Write network programs with UDP and TCP sockets (thus in the
transport layer) to implement end-to-end communication.(b),
(e), (k)
CO-5.
Understand and analyze the TCP communication and congestion control. (b) (k)
CO-6.
Write network programs in the application layer such as an FTP client.(b) (k)
This course supports the achievement of the CE
student outcome:
(a) An ability to apply knowledge of mathematics,
science, and engineering.
(b) An ability to function on multidisciplinary
teams.
(c) An ability to identify, formulate,
and solve engineering problems.
(j) A knowledge of contemporary issues.
(k) An ability to use the techniques,
skills, and modern engineering tools for engineering practice.
The
following five programming exercises will be assigned:
Please
read assignment.html for information
about the environment you should use for testing your code and the
submission/grading procedures.
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.
We will use group blogs for recording these discussions (and solutions). You should summarize your discussions in an entry that you post before class. 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.
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 (TTh) |
Topics
|
Chapters
|
Reading
|
Textbook Exercises (Class
Discussions) |
Assignment
|
1 |
Apr 2 |
Foundation |
1.1
- 1.3 |
pp1-23 |
|
Program 1 assigned
|
|
Apr 4 |
|
1.4
- 1.5 |
pp36-60 |
Ex
3 |
|
2 |
Apr 9 |
Point-to-Point Networks |
2.1
- 2.3 |
pp71-90 |
|
|
|
Apr 11 |
|
2.4-2.5 |
pp91-118 |
Ex
2,5 |
|
3 |
Apr 16 |
|
2.4-2.5 |
pp119-152 |
|
|
|
Apr 18 |
Shared Access Networks |
2.6
- 2.7 |
pp119-152 |
Ex
42 |
|
4 |
Apr 23 |
Switching and Bridging |
3.1,
|
pp169-202,
|
Ex
1 |
|
|
Apr 25 |
End-to-End Protocols |
5.1 |
pp391-406 |
|
|
5 |
Apr 30 |
|
5.2.1-5.2.3 |
|
|
Program 3
assigned |
May 2 |
|
5.2.4
- 5.2.10 |
pp407-430 |
Ex
5,14 |
|
|
6 |
May 7 |
Congestion Control |
6.1
- 6.2 |
pp479-498 |
|
|
May 9 |
Midterm
exam in
class |
1,
2, 3.1, 5.1-5.2 |
pp1-202,
391-431 |
|
Final project assigned |
|
7 |
May 14 |
|
6.3 |
pp499-529 |
Ex
2,6 |
|
|
May 16 |
Congestion
Avoidance |
6.4 |
|
|
|
8 |
May 22 |
Applications |
9.1,
9.3.1 |
pp697-726,
pp744-755 |
|
|
|
May 21 |
Basic Internetworking |
3.2.1-3.2.4 |
pp203-220 |
Ex
36 |
|
9 |
May 23 |
|
|
|
|
|
|
May 28 |
Subnetting & CIDR |
3.2.5 |
pp220-228 |
Ex.
55 (Subnetting) |
|
10 |
Jun 4 |
Network Security |
8 |
pp633-689 |
|
|
|
Jun 6 |
|
|
|
|
|
Finals |
Jun 11 |
|
|
|
|
|