public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: Renzo Davoli <renzo@cs.unibo.it>
Cc: Andi Kleen <andi@firstfloor.org>,
	Chris Friesen <cfriesen@nortel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: New Address Family: Inter Process Networking (IPN)
Date: Thu, 6 Dec 2007 23:38:23 +0100	[thread overview]
Message-ID: <20071206223823.GH20595@one.firstfloor.org> (raw)
In-Reply-To: <20071206221837.GE30293@cs.unibo.it>

On Thu, Dec 06, 2007 at 11:18:37PM +0100, Renzo Davoli wrote:
> * IPN is for inter-process communication. It is *not* directly related 
> to TCP-IP or Ethernet.
> 
> If you want you can call it Inter Process Bus Communication.  It is an
> extension of AF_UNIX.  Comments saying that some services can be
> implemented by using TCP-IP multicast protocols are unrelated to IPN.
> All AF_UNIX services could be implemented as TCP-IP services on
> 127.0.0.1. Do we abolish AF_UNIX, then?  The problem is that to use
> TCP-IP, you'd need to wrap the packets with TCP or UDP, IP and Ethernet

No ethernet headers on localhost. Just to give you a perspective:
IP+TCP headers are 50 bytes (with timestamps) and IP+UDP is 28 bytes.
On the other hand the sk_buff+skb_shared_info header which are used for 
all socket communication in Linux and have to be mostly set up always
are 192+312bytes on 64bit [parts of the 312 bytes is an array that is 
typically only partly used] or 156+236 bytes on 32bit. So the network
headers dwarf the internal data structures.

There might be other reasons why TCP/IP is slower, but arguing 
with the size of the headers is just bogus.

My personal feeling would be that if TCP/IP is too slow for something
it is better to just improve the stack than to add a completely
new socket family. That will benefit much more applications without
requiring to change them.

About the only good reason to use UNIX sockets is when you need to use
file system permissions. 

> * IPN services (like AF_UNIX) do not require root privileges.
> 
> There are many communication services where the user need broadcast or
> p2p among user processes.  If a user (not root) wants to run several

IP Multicast when properly set up also doesn't need root.

Broadcast is kind of obsolete anyways.

> User-Mode Linux, Qemu, Kvm VM the only way to have them connected
> together is our Virtual Distributed Ethernet.  (For this reason VDE

They could easily just tunnel over a local multicast group for example.

-Andi


  reply	other threads:[~2007-12-06 22:38 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-05 16:40 New Address Family: Inter Process Networking (IPN) Renzo Davoli
2007-12-05 21:55 ` Stephen Hemminger
2007-12-06  5:38   ` Renzo Davoli
2007-12-06  5:43     ` Renzo Davoli
2007-12-06  6:04     ` Stephen Hemminger
2007-12-05 23:39 ` Andi Kleen
2007-12-06  5:30   ` Renzo Davoli
2007-12-06  6:19     ` Kyle Moffett
2007-12-06  6:59       ` David Newall
2007-12-06 16:34         ` Andi Kleen
2007-12-06 22:21           ` David Newall
2007-12-06 22:42             ` Andi Kleen
2007-12-06 16:35     ` Andi Kleen
2007-12-06 20:36       ` Chris Friesen
2007-12-06 21:26         ` Andi Kleen
2007-12-06 21:49           ` Chris Friesen
2007-12-06 22:07             ` Andi Kleen
2007-12-06 22:18               ` Renzo Davoli
2007-12-06 22:38                 ` Andi Kleen [this message]
2007-12-07  0:18                   ` Renzo Davoli
2007-12-06 23:02               ` Chris Friesen
2007-12-06 23:06                 ` Andi Kleen
2007-12-06 23:42                   ` Chris Friesen
2007-12-07  3:41         ` David Miller
2007-12-07  4:21           ` Chris Friesen
2007-12-07  4:54             ` Ben Pfaff
2007-12-07  6:40             ` David Miller
2007-12-07 10:03               ` Andi Kleen
2007-12-07 21:18                 ` AF_IPN: Inter Process Networking, try these Renzo Davoli
2007-12-08  2:07                   ` David Miller
2007-12-10 16:05               ` New Address Family: Inter Process Networking (IPN) Chris Friesen

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=20071206223823.GH20595@one.firstfloor.org \
    --to=andi@firstfloor.org \
    --cc=cfriesen@nortel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=renzo@cs.unibo.it \
    /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