On 7/14/2017 12:44 AM, Dragoș Niculescu wrote: >>> SOCKSv6 proposal makes use of extra data in the SYN (SOCKS data, and user >>> data), >>> but >>> its correctness and backward compatibility does not depend on TFO, only its >>> RTT >>> performance. >>> In fact, when TFO is not available neither between client and proxy, nor >>> between >>> proxy and >>> server the SOCKSv6 RTT is still lower than SOCKSv4 and SOCKSv5. But TFO is >>> likely to be the most >>> common case in the future - Linux kernel has TFO client side on by default >>> since >>> 3.12 >>> (November 2013)[1], and it seems to be the default in all Android phones and >>> default >>> Linux installs. >> What happens with a legacy receiver? >> >> Joe > Legacy receiver will use plain TCP.
No - a legacy receiver will interpret the SYN information as user data, which there is no way to "undo". You can't know that you're not talking to a legacy receiver until you receive the SYN-ACK. Even if you cache TFO availability, you could be wrong - the endpoint could reboot or be replaced with a new endpoint, etc. Ultimately, the onus is on you to NEVER poison a TCP connection that could be to a legacy receiver. That's a requirement in RFC793. Joe
_______________________________________________ Int-area mailing list [email protected] https://www.ietf.org/mailman/listinfo/int-area
