TDTS06 Computer Networks
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.
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