The assignments center on the core layers (transport and network layer) of the network stack. Students will implement their own transport and network layer protocols, and an IP overlay network that will be used in the class project. Through these programming assignments, students will gain huge insights on how computer network systems actually work.

  1. Packet Sniffing
  2. Reverse Engineering Sockets: a Puzzle
  3. Building A Mini Web Server
  4. Simple Reliable Transport (SRT)
  5. Data Transfer Protocol for Simple Reliable Transport
  6. Simple Overlay Network (SON)
  7. Simple Network Protocol (SNP)

Lab Access

You can work in Sudikoff Lab 003 on your assignments and project. To obtain access to Sudikoff after hours, you will need to have your Dartmouth ID card activated for the appropriate access. To do this, stop by the front desk 101 Sudikoff on a weekday between 8:30am-12:00pm, or 1:00-4:00pm, and bring your Dartmouth ID card -- and let them know you are taking CS60, and require access to Lab 003. You will have to fill out and sign a form stating that you understand the various policies about access to the labs in Sudikoff.

Please note that the exterior doors of Sudikoff are automatically locked after 6:00pm weekdays, and also every weekend and holiday. In addition, the laboratory doors are locked at all times. You will need your access card to pass through locked doors.

Keep in mind that it may take 24 hours for access to be activated, so please plan ahead!

You will also require a computer account on the CS Linux machines. Email me your preferred (new) account name.

Submitting Assignments

We are using Subversion Version Control (SVN) for the submission of programming assignments. SVN is a tool for source code management. To submit your assignment, first create a directory for each new lab (e.g. lab1, lab2, lab3, lab3, lab5, and lab6). We will make a copy of your SVN directory after the deadline for submission.

Please make sure that each lab directory (e.g., lab2) contains a simple text file (called README) briefly describing the source code in the directory and anything “unusual” about how your solution should be located, executed, and considered. Essentially, your README gives us a quick overview of the content on the directory and how to run your programs. You also need to include a Makefile in your submission directory.

Your svn repository root is at For example: Note, repo in your_repo_name is short for repository. But replace xia with your repsoitory account username. You should have received this from Wayne or the TA. When you click on the svn URL above you will be asked to enter a username and password: enter your full DND (also blitz name) as your username and Blitz password as your password; DO NOT use your CS account name and password to login to the svn server - it will not work.

Policy for Late Assignments

Unless prior arrangements have been made, or in case of medical or family emergencies, or specific disabilities, all assignments are subject to the following policy regarding late submissions:

Programming assignments must be submitted according to the schedule; if late, the following grade penalties are assessed:

  • Late < 24 hours: 8% will be deducted from the final score;
  • Late ≥ 24 hours and < 48 hours: 15% will be deducted from the final score;
  • Late 48 or more hours: speak to the lecturer.

Please talk to me if you are running behind. The most important thing for you is to finish the assignments and not worry about being late.

In that spirit: Two free passes for 48-hour extension with no penalty. You really do not want to use these because they mean you are behind and need to catch up. But they are there if you need then - pressure value of sorts.