Most of our network runs on Linux, and TCP Fast Open (https://en.wikipedia.org/wiki/TCP_Fast_Open, https://tools.ietf.org/html/rfc7413) has been supported by Linux since 3.6, and enabled by default since 3.13. You have to use special socket APIs on the client side to use it, though, so we need to patch Tor to make use of it.
If we turned this on at Tor exits, I would guess it would make most of the exit connections 1xRTT, since cookies would be shared by all clients using that exit, and for popular destination servers, odds will be high that a given exit has connected to server recently.
I'm not sure the inter-node case will help as much, but maybe.. However, if we do use it, we'll need to be extra careful not to use it for Tor clients (or bridges), to avoid linkability.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
Hrmm. Actually, this is likely an unsafe default, even if the Tor app is using optimistic data. From reading https://tools.ietf.org/html/rfc7413#section-6.3.1, it sounds like it shouldn't be used for POST requests..
I guess I will close this as invalid, since I don't think we have a way to signal from the SOCKS port to Tor that we'd want to use something like this just for some connections.
Trac: Resolution: N/Ato invalid Status: new to closed
Yawning and I discussed briefly on IRC that we might be able to get away with doing TFO just for exit traffic destined to port 443, since TLS should be fine with issues in section 6, and sketch non-TLS 443 servers shouldn't be advertising/accepting TFO.
Reopening while we ponder that case.
Trac: Resolution: invalid toN/A Status: closed to reopened
Nowadays Windows also have TFO Support by default. It can speed up bootstrapping. Reconnecting time of updated or up-and-down or hibernated nodes or expired connections also inter-node. Most benefit for Exit nodes.
Yawning and I discussed briefly on IRC that we might be able to get away with doing TFO just for exit traffic destined to port 443, since TLS should be fine with issues in section 6, and sketch non-TLS 443 servers shouldn't be advertising/accepting TFO.
Reopening while we ponder that case.
hello, i suggest split this work to get it done quicker.
while concerning about privacy, this decisions may need review first. Why not open a child ticket for this maybe?
implementation in inter-relay and client=>guard connection seems to be without any possible privacy impacts yet. why don't just enable TFO(TCP Fast Open) in alpha testing branch for this TLS only connections?
Canonical relay-to-relay channels only last for 45..75min or consensus +/- 25%
I tested this and found out, that on extending through a relay, to a given node can have high cbt on first because TLS handshaking inter relay. Next CircuitBuildTime will be better, because multiplexing above existing orcon. But later used, the same behavior repeats!
So, the relay could benefit from reestablishing the connections. giving better latency for circuits. This have no privacy impacts. Why don't just enable TFO in alpha branch for this TLS channels?
so not only exit node can benefit but all nodes when talking inter-node. because tcp is not keepalive kept connected very long. less for clients that do single tcp multiplex through guards.
but clients extending with TFO enabled hops get faster circuitbuildtimes!
the question is not, what platforms do support but which ones does not make use of TFO yet? all known that tor can run on are supported to date.
enabling TFO usage into alpha for all roles but exit first, should give good results with no known side effects and be good to go experienced further with later enabling exiting TLS connection ?