Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752649AbYKNIzD (ORCPT ); Fri, 14 Nov 2008 03:55:03 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751132AbYKNIyx (ORCPT ); Fri, 14 Nov 2008 03:54:53 -0500 Received: from gw1.cosmosbay.com ([86.65.150.130]:35719 "EHLO gw1.cosmosbay.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751055AbYKNIyw convert rfc822-to-8bit (ORCPT ); Fri, 14 Nov 2008 03:54:52 -0500 Message-ID: <491D3CD5.5020105@cosmosbay.com> Date: Fri, 14 Nov 2008 09:54:45 +0100 From: Eric Dumazet User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Olaf van der Spek CC: "J.R. Mauro" , Linux Kernel Mailing List Subject: Re: Unix sockets via TCP on localhost: is TCP slower? References: <3aaafc130811131619w3ba48a86u6c6e2af35f149bf1@mail.gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.6 (gw1.cosmosbay.com [0.0.0.0]); Fri, 14 Nov 2008 09:54:49 +0100 (CET) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1532 Lines: 38 Olaf van der Spek a écrit : > On Fri, Nov 14, 2008 at 1:19 AM, J.R. Mauro wrote: >> On Wed, Nov 12, 2008 at 6:20 PM, Olaf van der Spek 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/