Opened 3 weeks ago

Last modified 7 days ago

#32545 assigned task

Perform measurements to concretely understand snowflake throughput and network health

Reported by: cohosh Owned by: cohosh
Priority: Medium Milestone:
Component: Circumvention/Snowflake Version:
Severity: Normal Keywords: network-health, metrics
Cc: arlolra, cohosh, phw, dcf Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor28

Description

We know that there are several proxies that don't seem to work once connected (#31960) and that connections are very slow on Windows and possible all platforms (#31971).

It would help to be able to quantify this and actively monitor it. There are two things we want to measure: the number of snowflakes that work at all, and the throughput of a sample of snowflakes.

Perhaps something like onionperf can help us out here, but we'll have to see whether onionperf works well with snowflake when we get bad proxies or disconnect.

Child Tickets

Attachments (1)

snowflake-throughput-canada-2019-11-28.pdf (5.2 KB) - added by cohosh 9 days ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 13 days ago by cohosh

Owner: set to cohosh
Status: newassigned

comment:2 Changed 13 days ago by cohosh

I made some alterations to the bridgetest: https://github.com/cohosh/bridgetest/tree/snowflake_health

This makes a connection through 100 snowflakes and attempts to download a 1MB file. The script infer-throughput.py has been modified to process the 100 pcap files associated with these connections and output a CSV file that contains the bytes downloaded over time. The script throughput.R turns this CSV into a CDF plot and some stats and outputs the number of snowflakes that failed (we were unable to build a Tor circuit through them).

Changed 9 days ago by cohosh

comment:3 Changed 9 days ago by cohosh

I ran the health check on linux from a VPS in North America and here are the results:

[1] "Number of failed snowflakes: 10"
[1] "Average throughput (KB/s): 191.174541609437"
[1] "Standard deviation: 123.497706667578"

comment:4 Changed 7 days ago by cypherpunks

@cohosh: what do you think about #31661 as a solution to the throughput problem?

comment:5 in reply to:  4 Changed 7 days ago by cohosh

Replying to cypherpunks:

@cohosh: what do you think about #31661 as a solution to the throughput problem?

Thanks for the idea cypherpunks. Running more than one snowflake bridge and having the broker tell snowflake proxies which bridge to use is definitely something we're considering. An idea like #31661 to base this decision roughly on location is interesting. It's going to take a while to consider this proposal (and to work out the logistics of setting up more than one snowflake bridge at all) and in the meantime this ticket is about getting some more concrete data on what the main reasons for high latency or low throughput are.

If you've written some scripts to measure throughput or latency of snowflakes and correlate this with geoip data and are willing to share them, please do! We really appreciate these insights.

Note: See TracTickets for help on using tickets.