Removing T/TCP and replacing it with something simpler

Igor Sysoev is at rambler-co.ru
Thu Oct 21 12:42:13 PDT 2004


On Thu, 21 Oct 2004, Sean Chittenden wrote:

> >> In 2001, there was a push to make Linux's TCP_CORK option behave the
> >> same as FreeBSD's TCP_NOPUSH.  Is maintaining that compatibility still
> >> a goal, or are we going to kick this change off to the Linux folk to
> >> have them play catchup (to what sounds like a more secure option than
> >> Linux's TCP_CORK)?
> >>
> >> http://seclists.org/linux-kernel/2001/Feb/0993.html
> >
> > I'm not sure if I can follow you here.  TCP_CORK deals with the
> > different
> > behaviour of connections with Nagle vs. TCP_NODELAY.  TCP_CORK allows
> > to
> > avoid the delays of Nagle by corking (sort of blocking) the sending of
> > packets until you are done with write()ing to the socket.  Then the
> > connection is uncorked and all data will be sent in one go even if it
> > doesn't fill an entire packet.  Sort of an fsync() for sockets.  There
> > are no security implications with TCP_CORK as far as I am aware.
>
> Isn't that what NOPUSH does?  Or is it that CORK uses a fully
> established TCP connection, but blocks sending data until the
> connection has been uncorked/flushed?  I thought that TCP_CORK had the
> same security implications that NOPUSH does (ie, the lack of a hand
> shake).

I think that TCP_CORK was implemented only for Linux's sendfile()
to postpone the sending of the HTTP header:

http://freebsd.rambler.ru/linux/kernel_1999/msg13796.html
http://freebsd.rambler.ru/linux/kernel_2001/msg61910.html


Igor Sysoev
http://sysoev.ru/en/


More information about the freebsd-arch mailing list