The tests are carried out with tcptraceroute, an implementation of traceroute that uses TCP rather than the normal UDP or ICMP ECHO requests. It uses raw sockets and supports ECN via a switch. This makes it ideal for testing whether a site works with ECN without having to turn it off on the whole machine.

A perl wrapper script is used to extract the data from file and run the test, update the datafile and if requested, email people. A separate CGI script produces the HTML output of the list of broken hosts.


The results that we give are based entirely on the output of tcptraceroute - specifically, whether we receive the output:
 n  xxxxxxxxx ( [open] ms ms ms
from tcptraceroute when the -E switch is enabled. We run a control test without the -E switch, and will only list the site if it works without but not with it. We can make no guarantees that the data are correct, accept that the test is not perfect (although we do perform a control test either side of the ECN test, network outages may result in us incorrectly identifying a problem), and the data are provided on a 'best efforts' basis. We do now lookup the IP at the start, and use only that (to prevent us recording inconsistent data due to round-robin DNS).

False negatives/positives

We have discovered a host for which the tcptraceroute test succeeds where it should fail (ie it doesn't report broken ECN where it does in fact break in real-world tests (eg making a TCP connection to a machine with ECN enabled locally). Hopefully we can investigate this further. We know of no false positives, however (ECN marked as broken where not really)

Each host will be retested once every six weeks.

The contents of the "Organisation" field is provided by the submitter, and we can take no responsibility for it.


This page was written by Dominic Hargreaves and Ganesh Sittampalam. If you want to make any comments or suggest any additions, please email

Last updated: Sat Nov 24 13:53:13 GMT 2001, Thu Aug 26 14:52:50 BST 2004