Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TCP Fast Open #144

Closed
krizhanovsky opened this issue Jul 10, 2015 · 2 comments
Closed

TCP Fast Open #144

krizhanovsky opened this issue Jul 10, 2015 · 2 comments

Comments

@krizhanovsky
Copy link
Contributor

krizhanovsky commented Jul 10, 2015

Linux 3.13 enables TCP fast open, RFC 7413, by default, so the feature also must be supported by Tempesta for client and server sockets:

  1. Synchronous sockets must be adjusted to handle TFO (like setsockopt(TCP_FASTOPEN) for server sockets and sendto(MSG_FASTOPEN), if an HTTP request of TLS record (see Full TLS proxying #769) to be sent fit MSS, for client sockets). The queue limit size shall be configurable and 1000 by default.
  2. duplicated SYN+data segments must be handled in an idempotent fashion, i.e. we must not pass nonidepotent requests for TFO (in sense of Redesign of TCP synchronous sending and data caching #391). It seems there is nothing to do for this point for client connections.

tempesta.sh must ensure that tcp_tw_reuse isn't used together with tcp_fastopen to avoid duplicate data SYNs (see chapter 3.5 in the original paper.

See TCP Fast Open: expediting web services for details. Ideal HTTP Performance refers the feature as crucial for HTTP performance.

@krizhanovsky
Copy link
Contributor Author

krizhanovsky commented Feb 18, 2018

Test for the issue should be done in the new synchronous socket tests suite (see #778).

@krizhanovsky
Copy link
Contributor Author

It seems that nobody uses the feature in real life https://lwn.net/Articles/814522/:

Then the browsers tried it ... and it did not work. Middleboxes would just drop the TFO packets. Currently no browser enables TFO by default.

It's especially makes no sense to implement the issue with upcoming QUIC #724 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants