[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <491D3CD5.5020105@cosmosbay.com>
Date: Fri, 14 Nov 2008 09:54:45 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Olaf van der Spek <olafvdspek@...il.com>
CC: "J.R. Mauro" <jrm8005@...il.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: Unix sockets via TCP on localhost: is TCP slower?
Olaf van der Spek a écrit :
> On Fri, Nov 14, 2008 at 1:19 AM, J.R. Mauro <jrm8005@...il.com> wrote:
>> On Wed, Nov 12, 2008 at 6:20 PM, Olaf van der Spek <olafvdspek@...il.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 ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists