MPI-SWS

Test your broadband link: ISP BitTorrent traffic manipulation

How the test works

Your browser will load a Java Applet from our webserver that will emulate BitTorrent and TCP transfers in upstream and downstream direction. This means, you need to have a Java plugin installed in your browser (If you do not have Java you can download it for free from here).
The applet will connect to our test server and run the selected test. After the test is done, the website will show the results of the tests whether throttling of BitTorrent traffic could be detected or not.
We produced a signed version of the applet for MacOS X users. This is necessary that the applet can run successfully in the Apple Java Virtual Machine as it uses some unique policy settings. To run this test, you have to "trust" the applet in the pop-up window that will appear once you started the test. This allows the applet to access the system property "sun.arch.data.model" (it is used to determine how many bits the underlying architecture uses) which is needed by the java.nio.channels.Selectors class

We offer two different tests: A simple test (approximately 4 minutes) and a full test (approximately 7 minutes). The simple test uses shorter transfers (each transfer runs for 10 seconds) while the full test uses 20 seconds per transfer to increase the confidence while inferring the results.

Our tool detects two types of throttling:

* Certain traffic (e.g. all BitTorrent traffic or all traffic at a certain port) is shaped and does not achieve the same throughput as a TCP transfer.
* BitTorrent traffic is interrupted using forged TCP RST packets (you can find more information about this type of throttling in a Whitepaper from the Electronic Frontier Foundation).

The test runs transfers using the popular BitTorrent protocol as described in the official specification. First, the connection is established using BitTorrent handshake messages and pieces of data are requested using BitTorrent request messages. The other peer sends the data as BitTorrent piece messages. To tests uploads and downloads, your host will first act as a sender and then as a receiver.
if the Java Applet saw a TCP RST terminating the transfer, we check on our measurement server (using tcpdump) if the server sent the TCP RSTs or if there are even incoming TCP RSTs. This helps us to identify forged TCP RST packets.

To detect if an ISP rate limits BitTorrent traffic, we also run plain TCP transfers and compare the achieved throughput with the one from the BitTorrent transfers. If the TCP transfer achieves twice as much throughput as the BitTorrent transfer we report throttling of the BitTorrent transfer.

All experiments are run at a well-known BitTorrent port as well as on a non-BitTorrent port. This allows us to decide if an ISP throttles (1) all traffic at a well-known BitTorrent port, (2) all transfers using the BitTorrent protocol on every port, or (3) all transfers using the BitTorrent protocol on well-known BitTorrent ports.

To allow accurate measurements you should stop any large downloads (e.g., BitTorrent) that might run in the background.

In case you have questions about this tool or our research, please visit our transparency project webpage or contact us via e-mail: \"broadband

Go to the test page




Imprint / Data Protection