[gnutls-devel] TCP Fast Open
tim.ruehsen at gmx.de
Mon Jul 25 16:38:28 CEST 2016
On Monday, July 25, 2016 3:25:02 PM CEST Nikos Mavrogiannopoulos wrote:
> On Wed, Jul 20, 2016 at 1:06 PM, Tim Ruehsen <tim.ruehsen at gmx.de> wrote:
> > On Wednesday, July 13, 2016 9:28:28 AM CEST Nikos Mavrogiannopoulos wrote:
> >> On Tue, Jul 12, 2016 at 5:33 PM, Tim Ruehsen <tim.ruehsen at gmx.de> wrote:
> >> > Hi,
> >> > I just wanted to mention that I recently added TFO in Wget2 using
> >> > GnuTLS
> >> > (tested on Linux, speedup ~ 1xRTT).
> >> Hi Tim,
> >> That sounds great. Did you combine that with other optimizations such
> >> as session resumption and false start?
> > I just did combine TFO with False Start in wget2 - and yes, it is another
> > 1xRTT speedup !
> What do you think about this separation of the fast open code?
> When the fastopen() function is used, all the push and pull callbacks
> are overridden with the ones that can cope with the TCP fast open.
> This separates the two code bases.
This is a good thing, cleaner design.
A few little things:
# Comma missing after 'undesirable':
* If this is undesirable TCP Fast Open must be implemented on the user
# Unneeded 'return' statement in gnutls_transport_set_fastopen()
# In _system_writev_tfo(), what about
return sendmsg(fd, &hdr, flags);
That would reduce one level of indentation for most of the code.
> What I found hard with TCP fast open, is error recovery. That has to
> be implemented by checking errors of the gnutls_handshake() function.
Could you give an example what exactly you mean ?
Maybe I have a brain slug... EAGAIN/EINPROGRESS/ENOTCONN/EOPNOTSUPP are
handled. Most other errors are fatal and are returned by gnutls_handshake() as
error. What am I missing ?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: This is a digitally signed message part.
More information about the Gnutls-devel