On 07/19/2017 10:40 PM, Joe Touch wrote:

On 7/19/2017 12:23 PM, Vladimir Olteanu wrote:
I think there's a misunderstanding here. SOCKSv6 runs strictly on top
of TCP.
OK, so to clarify - TCP is between the two SOCKS endpoints.
The user data travels over SOCKS.
Can you confirm that's correct?
Yes.
The "user data" to which we're referring is data meant to be relayed
by the proxy to the server. The SYN's payload (both SOCKS request and
said user data) is irrevocably part of the client-proxy data stream
and we do not change it retroactively after learning that the proxy
does not support TFO.
If the above is correct, then it would be useful to NEVER speak of
"putting data in the SYN payload". You simply don't have that control.
The interface to TCP *allows* pending "user" (as in TCP user, which in
this case is the SOCKS layer) data to be placed in the SYN, but never
requires it.
We're perfectly aware of that. We were only talking about putting data in the SYN for the sake of brevity, because said data is very likely to actually make it into the SYN under typical circumstances.

However, you do have a point, especially given that MPTCP-PM and O-RTT converters are being actively discussed and they do require data to be placed in the SYN.
So you can talk about putting information in the SOCKS stream, but
shouldn't be referring to individual TCP segments.

If we were not discussing performance, I would agree with you. However, it's impractical (and not useful, either) to reason about the RTT overhead without making some assumptions about what data goes into which segment. SOCKS 6 is is designed to take advantage of how the stack is likely to split the data into segments in typical use cases.

Cheers,
Vlad

_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to