|
From: | Hubert Tarasiuk |
Subject: | [Bug-wget] TCP Fast Open for HTTP |
Date: | Thu, 28 May 2015 00:41:14 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
Hello Wget developers, I have prepared TCP Fast Open support for HTTP requests in Wget. I have prepared sample TCP segment dump to show how it works: https://github.com/jy987321/Wget/wiki/TCP-TFO The TFO is disabled by default and can be enabled using --tcp-fast-open option when running Wget. The support for TFO has been added only recently to Linux kernel (3.6 for client and 3.7 for server) and is not supported on Winodws AFAIK. Therefore, it is added as conditional compilation code. In order to force the use of it, you can pass --enable-tcp-tfo (--disable-tcp-tfo) to ./configure script. The default is to include the code if possible (if required constants are defined in <sys/socket.h>). The support for TFO has been added to Python test suite. In order to make it work, you need to enable both client-side and server-side TFO support in your Linux kernel: $ echo 3 > /proc/sys/net/ipv4/tcp_fastopen If there is no server-side support, TCP will transparently fall back to using traditional 3-way handshake. Please let me know what do you think of this feature. Suggestions or comments about patches are more than welcome. The code is available as attachment and on Github. https://github.com/jy987321/Wget/commits/master-hubert PS I was hoping to do some performance tests, but have not found too many servers that support TFO (actually it is only google.com that I have found so far). -- Hubert Tarasiuk
0001-Const-qualify-buffer-when-writing-to-fd.patch
Description: Text Data
0002-Some-refactoring-in-request_send.patch
Description: Text Data
0003-Split-request_send-into-request-creation-and-actual-.patch
Description: Text Data
0004-Add-autoconf-test-for-TCP-Fast-Open.patch
Description: Text Data
0005-Add-tcp-fast-open-option.patch
Description: Text Data
0006-Enable-TCP_FASTOPEN-in-testenv-server.patch
Description: Text Data
0007-Support-TCP-Fast-Open-in-connect_to_host-and-connect.patch
Description: Text Data
0008-Pass-pointer-by-value-instead-of-by-reference-to-est.patch
Description: Text Data
0009-Prototype-of-TCP-Fast-Open-support-http.c.patch
Description: Text Data
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |