Open 4-FLOSS-Free-Libre-Open-Source-Software opened 3 years ago
The OptimisticData
features works great in combination with rethink forwarding, the other way around. But it is not officially yet supported on its side for this way of usage. I could provide the experiment for debugging if necessary.
A note on this, one forwarding proxy that actually implemented it is the noncaching forward proxy privoxy with the so called socks5t
forwarding.
supported SOCKS extension is optimistic data which can reduce the latency for the first request made on a newly created connection.
http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/user-manual/config.html#SOCKS
https://www.privoxy.org/user-manual/config.html#SOCKS
However, the android builds have not been updated for a few years.
Please implement support for Tor
OptimisticData
feature.Requires to lie to the application that the SOCKS Handshake has succeeded immediately, allowing the application to begin sending data optimistically.
For Reference, see linked Proposal.
Performance benefits:
Example of resolving and connection user wants to Visit http://rethinkdns.com, and we assume the user connects through OrBot and sets non-leaking DNS to OrBot DNSPort current standard connection setup:
With support for
OptimisticData
it may instead look shorter like:TCP Connection delay includes circuit creation times seen: https://metrics.torproject.org/onionperf-buildtimes.html Once the circuit finished, the Round-trip latencies apply. Average can be found here on: https://metrics.torproject.org/onionperf-latencies.html According to that, today's, the average is still high enough to noticeable benefit from supporting
OptimisticData
.Combined with celzero/rethink-app#339 this can reduce the RTT to effectively -1 hops compared to traditional Socks5 Proxies or VPN. Because the App can start sending Data towards the proxy to the destination on socks connection before the connection to the destination even finished, and before target hostname was resolved. Combined that would reduce the sample steps above from 10 to only to 3: