Hide menu

TDTS06 Computer Networks

Lab assignments


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.

Page responsible: Andrei Gurtov
Last updated: 2011-08-23