[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-wget] TCP Fast Open for HTTP

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:

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.

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

Attachment: 0001-Const-qualify-buffer-when-writing-to-fd.patch
Description: Text Data

Attachment: 0002-Some-refactoring-in-request_send.patch
Description: Text Data

Attachment: 0003-Split-request_send-into-request-creation-and-actual-.patch
Description: Text Data

Attachment: 0004-Add-autoconf-test-for-TCP-Fast-Open.patch
Description: Text Data

Attachment: 0005-Add-tcp-fast-open-option.patch
Description: Text Data

Attachment: 0006-Enable-TCP_FASTOPEN-in-testenv-server.patch
Description: Text Data

Attachment: 0007-Support-TCP-Fast-Open-in-connect_to_host-and-connect.patch
Description: Text Data

Attachment: 0008-Pass-pointer-by-value-instead-of-by-reference-to-est.patch
Description: Text Data

Attachment: 0009-Prototype-of-TCP-Fast-Open-support-http.c.patch
Description: Text Data

Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]