TELE402 - Internetworking

S2 2012




TELE402 covers much of what a student should be aware of with regard to network theory, network programming and protocol development that are useful in industry and applied research.

Students taking the paper should come away with a grounding in practical matters to do with designing and implementing network programs, and the theory to back it up.

A background of intermediate-level C is quite beneficial to this paper, as is some UNIX command-line experience. The first two weeks are spent on C (re)familiarisation.


There are four parts to the paper: lectures, labs, tutorials and an assignment. Lectures will cover practical matters to do with network programming, the labs will practice a useful selection of topics that have been covered in the lectures. Labs are informal in nature and are simply meant to provide some contact time to help you if you get stuck, otherwise they are meant to be self-guided. Tutorials will go over the readings from the text-book for that week, which make up the examinable content. It is worth emphasizing that the lectures cover the internal assessment, while the tutorials and the Comer text make up the examinable material, which makes the Comer text particularly important.

There are three programming assessments in 2012, corresponding to three milestones in the lab work, and a network-related project


There are two text-books we use for this paper. Only one is required though, to reduce the cost to the student.

Cover of Internetworking with TCP/IP Internetworking with TCP/IP, Vol 1, 5th Ed.
Douglas E Comer
ISBN: 0-13-187671-6
Publisher: Prentice Hall
(required, previous versions will suffice)

Cover of Unix Network Programming UNIX Network Programming, Vol 1, 3rd Ed.
W. Richard Stevens, et al.
ISBN: 0-13-141155-1
Publisher: Addison-Wesley Professional
(only recommended if you want to get serious about programming, version 2 or 3)

For people uncertain about C, we encourage you to look at getting a book about C also, such as any Java to C book.


You may have heard from previous students that this course is difficult if you don’t know C; while we do require you to program in C, the first couple of labs will have plenty of help and the first couple of tutorial slots will also be used for C programming help as well.

In addition, there is plenty of skeleton code and pseudocode as well as detailed notes, so there is less code you need to write yourself compared to previous years. This change was made in 2008 and was well-received.

Naturally, in order to make best use of your contact teaching time, you need to read the notes first, it would also be useful to read any skeleton code and pseudocode as well.

Every year we find that students who struggle are students who don’t make it easy for themselves and others to read their own code. To help remedy this we shall be insisting on a particular coding style, largely focusing on: correct alignment, concise functions and descriptive function and variable names. We shall see how we can lean on our development environment to make this easy for us, and some time is devoted to learning to use our tools.

Laboratory Access

Computer Science is now located in the Owheo Building on Union St East (down from the Commerce Building) and our lab is Lab “E” on the Ground floor.

The lab is outfitted with modern iMacs and for some labs where we shall be using a custom network environment, we shall be using virtual machines using VirtualBox.

Communication of Class Matters

We shall be using the TELE402 mailing list to communicate class matters and facilitate feedback and discussion. This is also a suitable forum for asking questions about the lab and tutorial material.



You can find our offices in the Systems Group lab (part of Computer Science) on the first and second floor, west wing of Owheo.

Course convenor: Dr. Zhiyi Huang

Lecturer: Dr Haibo Zhang

Teaching Assistant: Kai-Cheung Leung

Class Representative: Lianyong Zhang

Publication of electronic addresses does not imply consent to receive unsolicited commercial electronic messages.