Update (6/26/12): I Found Orbot to have lower idle usage then previously recorded. The post now reflects the new statistics. The previous stats were based on idle usage at 92 bytes/s
There have been many inquiries about the cost of Orbot’s data usage. I ran five different tests to record the types of data tax a user might encounter. Heavy usage of Orbot combined with a low monthly data allotment could be an issue.
Below is the compiled data for 4 different use cases:
Test Scenario | Data Usage | Overhead | |
---|---|---|---|
Web Traffic | |||
Without Orbot | 2.35 MiB | — | |
With Orbot | 3.44 MiB | 46% | |
Orweb | 3.26 MiB | 38% | |
Bulk Download | |||
With Orbot | 17.82 MiB | 15% | |
Without Orbot | 15.49 MiB | — | |
Idle | 65 Bytes/s | — | |
228 KiB/hour | |||
160 MiB/month | |||
Client Start/Stop | 37.8 KiB | — |
Test Scenarios
The test cases were fairly straight forward. I used Droidwall to limit traffic on my phone to Orbot or the desired application and then recorded data.
- Web Browsing: Browsed five common websites (guardianproject.info, boingboing.net, facebook.com, slashdot.org, twitter.com) with Orbot/Orweb and javascript OFF, the default browser with Orbot running as a transparent proxy, and just the default browser by itself
- Idle: Started Orbot and began recording on Idle for ~10 minutes. The traffic graph clearly shows a small data spike approximately every minute.
- Bulk Download: Downloaded a 5 MB file with the download manager 3 times both with Orbot’s transparent proxy and without
- Client Stop/Start: Recorded traffic incurred by starting and stopping Orbot
Contextualizing the Data
This data suggests that Orbot could incur between 15 and 46 percent of additional data usage plus about 227 MiB of data a month for those that run Orbot 24⁄7. This tradeoff may significant to some, but it really depends on your data usage.
I have calculated how much data you could use for 3 different plans if you used Orbot for ALL your traffic. This means running it 24⁄7 over your data network AND using the transparent proxy to enforce all your applications to go through Orbot. This table represents the most extreme use case.
Monthly Plan | Usable Data | Orbot Data Tax | ||
---|---|---|---|---|
At 15% | At 46% | At 15% | At 46% | |
5 GiB | 4.21 GiB | 3.31 GiB | 16% | 34% |
1 GiB | 751 MiB | 588 MiB | 27% | 43% |
500 MiB | 295 MiB | 233 MiB | 41% | 53% |
Reducing Data Cost
These numbers may be high for some, but they represent very heavy usage of Orbot. If a user only wishes to use Orbot for a specific set of apps that have proxy support, there is no reason to leave Orbot running 24⁄7. Twitter is a great example of this because it caches its data asynchronously and would only need Orbot turned on to gather new tweets or search. If the application’s proxy is on but Orbot is off it will simply not be able to update rather then updating outside the Tor network.
Warning: Turning off Orbot to save data will also remove the transparent proxy rules. This means applications relying on the transparent proxy rules as opposed to proxy support (Twitter) will be free to broadcast data outside Orbot if you have not taken other precautions.
Note: (Updated 6/26/12) I previously mentioned that Droidwall may have some issues in blocking certain outbound data. I filed a bug with the author and it turned out to be my mistake in recording the traffic. So, ignore my previous statement, Droidwall would be great application to enforce outbound traffic rules during periods in which Orbot is turned off.