Tom Salmon
Tom Salmon headshot
Software Engineer
1st Class BEng (Hons) Software Engineering
University of Wales, Aberystwyth
1999-2004
Open Source Software:
Tom Salmon BEng (Hons)
[PGP Key]
Dissertation: Faulty Network Router

A dissertation submitted in partial fulfilment of the requirements for the degree of Bachelor of Engineering in Software Engineering in the University of Wales, Aberystwyth.
Supervised by Dave Price

Project Abstract

The Internet is being used by an ever increasing number of multimedia applications, such as video conferencing and voice over IP. These applications are expected to deliver a good quality service, with a minimal delay.

However, the Internet is a large collection of networks, that do not always function perfectly. Applications and systems should attempt to operate as well as possible, even in less than ideal conditions.

To test how well these applications can work, under poor network conditions, there needs to be a mechanism for generating network faults, in a controllable manner.

There are many ways in which a large wide area network can malfunction and operate incorrectly. Only two aspects of improper operation are within the scope of this project:

  • Packet Drop, discarding of IP packets
  • Packet Reordering, IP packets arriving in a different order to that which they were sent

These operations are performed on a GNU/Linux based router. Using one router (one hop), these faults which normally occur when dozens of routers are traversed, can be reproduced in a controlled manner.

How the router should behave incorrectly, is specified by an arbitrary number of rules, supplied by the user. Packet size and transport layer protocol can be specified as parameters to these rules that govern the faulty behaviours.

Development of this project has been completed to schedule, and undergone testing. It satisfies the original specification and requirements. However, there is scope for future extensions, which will be released in the forthcoming months.

(Source code provided here is freely available under the terms of the GNU General Public License)