CSS 432: Network Design - Assignments


Language

We use C/C++ for all programming assignments.

Operating Systems

The operating system used for all assignments is Linux (UW1-320).

By the first lecture of this course, your Linux account will be set up to use. You should also be able to enter UW1-320 Linux Laboratory with your student ID card. The following contact points are available if you have any problems on your Linux account:

Here is a procedure to log on one of the Linux machines and upload your files:
  1. To log on any of LAB320 machines, use ssh and establish a connection to one of uw1-320-00.bothell.washington.edu ~ uw1-320-31.bothell.washington.edu.
    Note that uw1-320-00 ~ uw1-320-15 are connected to a 100Mbps network, while uw1-320-16 ~ uw1-320-31 connected to a 1Gbps switch.
  2. To transfer files to the LAB320 file server
    1. Use sftp and establish a connection to metis.bothell.washington.edu, or
    2. Use scp at a LAB machine, so that files are copied from the outside to the LAB320 machine. The following example copies a file "file.java" from goodall to a LAB machine.
          scp mfukuda@goodall.u.washington.edu:file.java .
      

Socket Ports

As your own socket port, you should use the last five digits of your student ID. Do not use other ports than your own port.

Assignments

  1. Program 1: exercises basic TCP communication and evaluates its performance over 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's algorithm, additive increment, and slow start, using tcpdump, ttcp, netstat, and strace.
  4. Program 4: analyzes the hostent data structure that is related to DNS.
  5. Final project: builds an ftp client program.

Submissions

Grading

Your report will be graded based on the grading criteria shown in each assignment sheet.