From: Eric Dumazet <dada1@cosmosbay.com>
To: Olaf van der Spek <olafvdspek@gmail.com>
Cc: "J.R. Mauro" <jrm8005@gmail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Unix sockets via TCP on localhost: is TCP slower?
Date: Fri, 14 Nov 2008 09:54:45 +0100 [thread overview]
Message-ID: <491D3CD5.5020105@cosmosbay.com> (raw)
In-Reply-To: <b2cc26e40811140051n4e821fddsc5504eedcccc9cdc@mail.gmail.com>
Olaf van der Spek a écrit :
> On Fri, Nov 14, 2008 at 1:19 AM, J.R. Mauro <jrm8005@gmail.com> wrote:
>> On Wed, Nov 12, 2008 at 6:20 PM, Olaf van der Spek <olafvdspek@gmail.com> wrote:
>>> Hi,
>>>
>>> Quite often in discussions, I see people claiming Unix sockets are
>>> faster then TCP sockets on a connection that stays inside localhost.
>> Unix domain sockets should be faster because they're not subject to
>> windowing, ACKs, flow control, encapsulation, etc. etc.
>
> Why would you use windowing, ACKs, flow control and encapsulation on localhost?
>
> I expected the kernel to copy data directly from user-space of the
> sending process to a kernel buffer of the receiving process, much like
> UNIX sockets.
>
localhost uses a standard network device, and whole network stack
is used, no 'special kludges'. You can add iptables rules, you
can do trafic shaping, trafic sniffing (tcpdump), limiting
memory used by all sockets (controlling memory pressure on the
machine)
Doing what you suggest would slow down AF_INET stack.
You probably can expect AF_UNIX to be faster, since this one is really
special and use shortcuts.
Then, you probably can use shared memory instead of AF_UNIX, or
pipes (and splice()), or ...
Then you probably can use threads and do zero-copy ;)
next prev parent reply other threads:[~2008-11-14 8:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-12 23:20 Unix sockets via TCP on localhost: is TCP slower? Olaf van der Spek
2008-11-13 11:24 ` Arnaldo Carvalho de Melo
2008-11-13 19:06 ` Olaf van der Spek
2008-11-13 23:04 ` Chris Friesen
2008-11-14 0:19 ` J.R. Mauro
2008-11-14 0:22 ` David Miller
2008-11-14 0:27 ` J.R. Mauro
2008-11-14 8:51 ` Olaf van der Spek
2008-11-14 8:54 ` Eric Dumazet [this message]
2008-11-14 9:06 ` Olaf van der Spek
2008-11-14 13:14 ` J.R. Mauro
2008-11-14 8:56 ` David Miller
2008-11-14 9:09 ` Olaf van der Spek
2008-11-14 10:37 ` Bernd Petrovitsch
2008-11-14 13:17 ` J.R. Mauro
2008-11-14 21:07 ` Willy Tarreau
2008-11-14 22:40 ` Olaf van der Spek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=491D3CD5.5020105@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=jrm8005@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=olafvdspek@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox