CSS 432: Network Design - Assignments
Language
Use C/C++ for all programming assignments.
Operating System
The operating system used for all assignments is Linux.
You will use many Linux system calls to establish and control socket communication.
Linux Laboratory
All your programs must run in the UWB Linux Laboratory.
The remote machine host names are named csslab1.uwb.edu - csslab12.uwb.edu. You have access to these machines
using your UWNet ID.
Information on access the Linux Labs can be found here: Linux Lab
Socket Ports
As your own socket port, use the last five digits of your student
ID. Do not use the ports other than your own port. If your last five
digits do not fit in the range between 5001 and 65535, use the
formula below:
Your port = ( the last 5 digits of your student ID) + 5001 % 65535
Please avoid trivial port numbers such as 8080, 10000, 11111, 12345,
20000, etc..
Programming Environment
Programming can be done with a text editor such as vi, pico, emacs and
with the g++ compiler. However, needless to say, you may use any IDE
(integrated Develogment environment).
Assignments
-
Program 1: exercises socket
communication and evaluates its performance over 1Gbps network. You
will use: socket, connect, write, writev, bind, listen, accept,
signal, fcntl, read, close, and gettimeofday.
-
Program 2: implements the sliding window
algorithm and evaluates its performance improvement over 1Gbps
network.
-
Program 3: analyzes several TCP aspects
such as state transition, Nagle's algorithm, additive increment, and
slow start, using tcpdump, ttcp, netstat, and strace.
-
Program 4: analyzes the hostent data
structure that is related to DNS. You will use: getpeername,
gethostbyaddr, ntohs, inet_addr, and inet_ntoa.
-
Final project: builds an ftp client
program based on RFC959.
Submissions
- All programming assignments must be submitted to Canvas.
-
Assignments are due as noted in Canvas. A severe penalty will be given to
programs which are late; past a certain point no credit will be given. If there are
extenuating circumstances please let me know as soon as possible.