Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#10429 closed enhancement (fixed)

Test multiple flashproxy Bridge lines

Reported by: dcf Owned by: dcf
Priority: Medium Milestone:
Component: Archived/Flashproxy Version:
Severity: Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Flash proxy bridge configuration looks like this:

Bridge flashproxy 0.0.1.0:1

To Tor it looks like a single bridge, even though there are multiple (5–10) browser proxies behind it. Only one of these is in use at a time, while the others sit idle waiting for the first to die. It is a dummy address because we don't know the address of our browser proxy until we receive a connection.

comment:14:ticket:7153 would be the ideal situation, where flashproxy-client dynamically informs Tor of what actual browser are available, adding them and removing them as needed. But failing that, we should try a configuration like

Bridge flashproxy 0.0.1.0:1
Bridge flashproxy 0.0.1.0:2
Bridge flashproxy 0.0.1.0:3
Bridge flashproxy 0.0.1.0:4
Bridge flashproxy 0.0.1.0:5

That is, multiple distinct dummy addresses. There will still be an unknown number of real browser proxies behind them, but Tor will be more aware that there is actually more than one proxy in use. If one of them happens to be slow, it can try another one, which will be connected to a different browser. It may allow us to get rid of the "LearnCircuitBuildTimeout 0" workaround and actually usefully exclude the slowest browser proxies.

The scheme was previously suggested in comment:5:ticket:7153.

Child Tickets

Attachments (12)

failures.1.png (6.6 KB) - added by dcf 4 years ago.
failures.5.png (6.6 KB) - added by dcf 4 years ago.
fracsuccess.png (16.9 KB) - added by dcf 4 years ago.
data.1 (5.6 KB) - added by dcf 4 years ago.
Data file for 1 bridge line.
data.5 (5.6 KB) - added by dcf 4 years ago.
Data file for 5 bridge lines.
graphs.R (1.4 KB) - added by dcf 4 years ago.
R script used to generate graphs.
20140405-failures.1.png (6.6 KB) - added by dcf 4 years ago.
20140405-failures.5.png (6.9 KB) - added by dcf 4 years ago.
20140405-fracsuccess.png (21.5 KB) - added by dcf 4 years ago.
exercise.sh (604 bytes) - added by dcf 4 years ago.
flashproxy-exercise.sh (269 bytes) - added by dcf 4 years ago.
Driver script for exercise.sh. Called from crontab.
torrc (133 bytes) - added by dcf 4 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 4 years ago by dcf

I set up a cron job to test both one bridge line and five bridge lines every hour. It downloads a page, waits 10 minutes, and tries to download a page again. We'll see if additional bridge lines have any effect on reliability.

Changed 4 years ago by dcf

Attachment: failures.1.png added

Changed 4 years ago by dcf

Attachment: failures.5.png added

Changed 4 years ago by dcf

Attachment: fracsuccess.png added

Changed 4 years ago by dcf

Attachment: data.1 added

Data file for 1 bridge line.

Changed 4 years ago by dcf

Attachment: data.5 added

Data file for 5 bridge lines.

Changed 4 years ago by dcf

Attachment: graphs.R added

R script used to generate graphs.

comment:2 Changed 4 years ago by dcf

The test has been running for 10 days now. Each hour, tor starts flash proxy with 1 bridge line, and tries two downloads 10 minutes apart. It does the same thing 30 minutes later with 5 bridge lines. In each test, either both downloads succeed, only one succeeds, or none succeed.

Let's count how many times there were either 1 or 2 failures. (Remember there are 24 trials per day, each of which may have 0, 1, or 2 failures. We're calling either 1 or 2 download failures a single "failure" in this count.)


Here is a graph with the success probability (success is 0 failures) for both 1 bridge line and 2 bridge lines.

The average success ratios:
1 bridge line: 0.8992754
5 bridge lines: 0.9452734

Last edited 4 years ago by dcf (previous) (diff)

comment:3 Changed 4 years ago by dcf

Resolution: fixed
Status: newclosed

https://gitweb.torproject.org/flashproxy.git/commitdiff/51bdfe59cad37a5f2ffdac3b5f40fe5e2f402a2e is the change to add multiple bridge lines in flashproxy, and #11223 is to make the same change in Tor Browser.

Changed 4 years ago by dcf

Attachment: 20140405-failures.1.png added

Changed 4 years ago by dcf

Attachment: 20140405-failures.5.png added

Changed 4 years ago by dcf

Attachment: 20140405-fracsuccess.png added

comment:4 Changed 4 years ago by dcf

Here are more graphs after running the experiment a bit longer.

The average success ratios:
1 bridge line: 0.9138285
5 bridge lines: 0.9304952




Mental note: I had two cron jobs running exercise.sh with different torrc files having different numbers of bridge lines. I extracted the data files that are the input to graphs.R with

grep -c YourFuckingHostname 1/log/log-* | sed -e 's/.*\/log-\(.*\)-\(..:..\):\(.*\)/\1 \2:00 \t\3/' > data.1
grep -c YourFuckingHostname 5/log/log-* | sed -e 's/.*\/log-\(.*\)-\(..:..\):\(.*\)/\1 \2:00 \t\3/' > data.5

Changed 4 years ago by dcf

Attachment: exercise.sh added

Changed 4 years ago by dcf

Attachment: flashproxy-exercise.sh added

Driver script for exercise.sh. Called from crontab.

Changed 4 years ago by dcf

Attachment: torrc added
Note: See TracTickets for help on using tickets.