5 ms·
Chrome's implementation solves this by racing a TCP connection with the QUIC connection.
by pfg 8y ago
Chrome's implementation solves this by racing a TCP connection with the QUIC connection.
- xxpor 8y agoAh now that's clever.
- toomuchtodo 8y agoApple supports this with iOS, albeit with multiple TCP connections over both wifi and cellular for user experience concerns. https://support.apple.com/en-us/HT201373 https://support.apple.com/en-us/HT201373
- gmueckl 8y agoSo the server now sends a TCP ACK to SYN that is never followed up on? That is, the actual server software will wake up from a listen(), go through the motions of setting up a session for nothing for 50% of the time with this hack? Nice waste of other people's resources right there!
- nly 8y agoWell, presumably, the client with close the TCP connection once QUIC is established, and cache the result of the race for some period of time.
- gmueckl 8y agoOkay, I had to do some extra digging. And I was a bit off in my original comment: accept returns a socket only when a connection is fully established, that is, after the ACK from the client. Until then, the application is oblivious to the connection attempt. So sending SYNs by themselves is it too hard on the servers.