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:

Some Programming Textbooks:

The following books are useful for system and network programming.

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 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:
  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 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)