cbeuw / GoQuiet

A Shadowsocks obfuscation plugin utilising domain fronting to evade deep packet inspection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSR is faster

x0r2d2 opened this issue · comments

commented

@cbeuw
After several tests it seems that SSR is performing TLS shake faster.

SS+GQ = takes 3-4 seconds to open the page

The same page with SSR tls1.2_ticket_auth opens it in 1-2 seconds.

commented

@cbeuw
SSR support UDP relay by default, so it also perform DNS requests through the tunnel.
I have set the nameserver in SS config file, I will try to check it with out that option.

There could be several reasons:

  1. DNS lookups. SS tunnels all DNS requests by default, this adds a lot of overhead

  2. Browser session resumptions. If you tested the websites first with SS+GQ, the browser needs to do full handshakes with the websites which adds RTT. If you then test the same websites with SSR, the browsers can do session resumptions with these websites and save handshake time.

  3. TCP handshake overhead between SS and GQ. SS and GQ communicate using TCP connections on loopback, which still gives SYN SYN-ACK ACK overhead. The obfs modes in SSR are probably integrated and data are passed internally. However I doubt this will make a difference.

(WTB: prompt me after I click "Close and comment")

commented

@cbeuw
In my network, SS+GQ with turned off fast_open works faster or same as SSR.

@hybtoy
Golang's native TCPConn doesn't seem to support TCP fast open. I will integerate https://github.com/bradleyfalzon/tcp-fast-open into this project.

I'm an idiot

There is a new release

commented

@cbeuw Thanks! A lot better!
Waiting for Android release.

commented

@cbeuw
After several tests, still seems slow against SSR. What do you need from my side to help you to understand what is the problem?
Thanks.

@hybtoy
If you are using linux, could you please tell me the time of
time ( curl https://www.youtube.com > /dev/null )
and
time ( proxychains curl https://www.youtube.com > /dev/null )
while using GQ and SSR?
Thanks

commented

@cbeuw
I am on Win10

commented

Now it seems OK.
Don't know why it was slower on earlier versions.
Will continue to test.

@hybtoy @cbeuw I think there is no fundamental difference of performance between SSR (using its own TLS obfuscation plugin) and GoQuiet as a separate process. I made an experiment that extends SSR with GoQuiet as both a native SSR plugin and a SIP003 plugin. The speed is almost identical for both plugin modes. The only benefit of using a native SSR plugin that I could imagine is to potentially save some memory or reduce latency (though not noticeable in my tests).