Authors: , xtraceroute logoIntelligent Traceroute
line
dcroute - an improved version of traceroute

Introduction

Traceroute is a well known program for determining the layer three IP route between two hosts on the Internet. It does this by using a property of IP packets known as TTL (Time To Live). This project analysed the sources of timing inaccuracies which exist in vanilla traceroute using the DAG packet capture card. Addressing these timing inadequacies we created a new tool called dcroute, which when used together with our modified TSC-Linux kernel can time stamp packets in the NIC driver with a TSC based clock to produce the most accurate round trip time measurement possible (and requiring no special hardware). The TSC (Time Stamp Counter) is a register included on board all Pentium based PCs which is incremented at every clock cycle. See the dcroute final report for a detailed explaination of how we used the TSC and modified the Linux kernel to obtain more accurate network packet timing.

This improved round trip time measurement then allowed us to implement the ACCSIG, PQ1 and PQ2 routines mentioned in the paper "Active Probing using Packet Quartets" (available from the articles page) to ultimately detect the presence of "invisible" layer two hops between two IP hops. By being able to detect layer two hops, bandwidth estimation techniques can be improved, as the algoritms to calculate bandwidth are often highly dependent on the number of hops between two nodes.

During this project we added other functionality to dcroute such as the detection of ICMP replies that are larger than 70 bytes, and the ability to write the round trip time measurements to a binary file for external analysis in a software package such as MATLAB, as an example of some of the features. To analyse the timing results we wrote various routines using shell scripts, C programs and MATLAB scripts which are also available on this page and may be useful for other such projects.

An additional part of our project was to update the Active Probing Web Site, which contains details about the DAG cards available in CUBINlab, software documentation for the active probing packages, and details of the modifications made to produce the 2.4.14-tsc kernel. We also created an Active Probing Software Troubleshooting Guide which includes details such as how to compile the TSC Enhanced Real Time Linux Kernel.

Many thanks go out to our supervisor for this project, Dr. Darryl Veitch, along with CUBINlab and Ericsson Australia (who partially supported this project).

Disclaimer

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

All pages consitituting "The Intelligent Traceroute Web Site", including their contents and styles, are the responsibility of the author and do not at all represent any views, policies or opinions held by The University of Melbourne. But we thank them for the web space :-)