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
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
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
from the Electronic Frontier Foundation).
The test runs transfers using the popular BitTorrent protocol as described in the official
specification. First, the connection is
BitTorrent handshake messages and pieces of data are requested using
BitTorrent request messages. The other peer sends the data as
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
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:
Go to the test page