[anti-censorship-team] Improving Snowflake performance by adjusting smux parameters

David Fifield david at bamsoftware.com
Sun Jul 18 15:01:26 UTC 2021


On Wed, Jul 14, 2021 at 10:01:28PM +0200, Kali Kaneko wrote:
> On Wed, Jul 14, 2021 at 03:20:31PM -0400, Cecylia Bocovich wrote:
> 
> > I starting doing a few quick performance tests by just modifying the
> > client. This should be enough to check the impact of tuning the
> > MaxStreamBuffer and MaxReceiveBuffer for download speeds.
> 
> Last weekend Jacobo and me were playing a little bit with tweaking the
> buffer sizes on the client. I kind of observe some patterns, but after a
> few runs I suspected that I was catching more temporal network
> variations than any buffer effects.
> 
> https://0xacab.org/kali/snowflake-metrics/-/blob/no-masters/data/Rplots.pdf
> https://0xacab.org/kali/snowflake-metrics/-/blob/no-masters/data/maxstreambuffer.png

Thanks for testing this. Indeed the download speed look uncorrelated
with MaxStreamBuffer.

One thing you might try is also increasing the turbotunnel queueSize
(try a value of ≈1024):
https://gitweb.torproject.org/pluggable-transports/snowflake.git/tree/common/turbotunnel/consts.go?h=v1.1.0#n13
For the reasons explained here:
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/48#note_2744619
At high transfer rates, packets may be getting dropped internally, which
requires retransmission and slows everything down. Increasing queueSize
is probably more important on the bridge side, but try on the client
side as well.



More information about the anti-censorship-team mailing list