TDTS06 Computer Networks
Lab assignments
Introduction
The purpose of the lab series in TDTS06 is to learn how a reliable data transfer protocol is designed and implemented in an Internet-like environment, showing the important algorithms and mechanisms needed for such a protocol. You learn it by doing it.
Before you start doing the labs, however, you must set up the lab environment: see Getting started. Then, read up on the lab framework x-kernel in detail, especially the message library, and also some C programming (pointers and memory management). See the section on x-kernel documentation below.
The laboration assignments
-
Lab 1: Flow control and handling corrupt packets (instructions in pdf)
Lab 2: Sequence numbers and NAK-free protocol (instructions in pdf)
Lab 3: Retransmission and handling lost packets (instructions in pdf)
Lab 4: Fragmentation and MTU discovery (instructions in pdf)
- The finishing script: see separate page for instructions. You must run this script in order to finish the lab series.
x-kernel documentation
What you need to do the labs (required).
Peterson, L. L., Davie, B. S., & Bavier, A. C. (1996), x-kernel Tutorial. Available as 42-pages-A4-in-pdf or 21-pages-2-up-pdf or html. Teaches you how to write x-kernel protocols. It includes examples from several existing protocols, including a detailed analysis of an example protocol, A Simple Protocol (ASP). Also, see the x-kernel Tutorial Errata.
Everett, D. (2003), The ASP Protocol Explained. Available in html and pdf. A detailed walk-through of the test protocol ASP in x-kernel. This is actually the protocol that you have at the start of the lab series; we have only renamed it RDT.
- (1997), x-kernel Programmer's Manual (Version 3.3). Network Systems Research Group, University of Arizona. Available as 105-pages-A4-pdf or 53-pages-2-up-pdf or html. A comprehensive, although somewhat cryptic at first, reference manual. It is intended for users that are already familiar with the x-kernel. Includes the programming interface and how to run and debug an x-kernel. You will also need the table of contents, which is missing from the pdf copy (though it still is lacking page numbers)
Unix and C-programming
Links to sources about Unix commands and the C language.
- C Tutorials on the web - as provided by a Google search
- Aware: Software Debugging and Testing - links to FAQs, etc., which help you to debug and test programs (select Unix and search for the subject)
- C - en översikt (i pdf) - an overview of C (in Swedish), written by Tommy Olsson, IDA
- The One Page Linux Manual (pdf) - a summary of useful Linux commands
- Programming in C - links to ANSI C, provided by Lysator
- Unix/Linux Command Cheat Sheet - provided by FOSSwire, available in several languages
Page responsible: Andrei Gurtov
Last updated: 2011-08-23