CSS 432: Network Design
Spring 2013
TTh 545-745pm, UW2-240
Francis Wang


Instructor:

Francis Wang Email: fcw3@uw.edu; Office: UW1-349
Office hours: TuTh 2:00-5:00pm, & by appointment

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 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.

Prerequisites:

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.

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. 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.

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.

Course Learning Outcomes:

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)

 Relationship of Course to Student Outcomes:

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.

(e)   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.

     

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.

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.

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 (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
Ex 10,29
Ex 16
Ex 30

 

2

Apr 9

Point-to-Point Networks

2.1 - 2.3

pp71-90

 

 

 

Apr 11

 

2.4-2.5

pp91-118

Ex 2,5
Ex 16
Ex 18
Ex 24

 

3

Apr 16

 

2.4-2.5

pp119-152

 


Program 2 assigned

 

Apr 18

Shared Access Networks

2.6 - 2.7

pp119-152

Ex 42
Ex 46
Ex 53
Ex 54

  

4

Apr 23

Switching and Bridging

3.1,

pp169-202,

Ex 1
Ex 4
Ex 13

 

 

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
Ex 9(a)
Ex 20
Ex 22,39

 

 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
Ex 25
Ex 27
Ex 34

 

 

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
Ex 44
Ex 45

9

May 23

 

 

 

 

 

 

May 28

Subnetting & CIDR

3.2.5

pp220-228

Ex. 55 (Subnetting)
Ex. 68 (CIDR)
Ex. 72 (CIDR)
Ex. 74 (CIDR)

 

10

Jun 4

Network Security

8

pp633-689

 

 

Jun 6

 

 

 

 

 

Finals

Jun 11