The Transparent Inter Process Communication protocol

Submitted by Jeremy
on June 29, 2004 - 9:14am

Jon Maloy announced that TIPC, the Transparent Inter Process Communication protocol developed and used by Ericsson, has been officially released under a dual GPL/BSD license. Jon explains, "TIPC is a protocol specially designed for high-performance, location transparent communication within loosely connected clusters". The protocol is further defined in its Internet Draft, and described at a higher level in the paper Make Clustering Easy with TIPC. The current 1.3 development version of the protocol was written for the 2.6 Linux kernel.

The feature highlights of this protocol include: full location transparency, providing functional addressing that hides the physical addresses and cluster topography; a generic signaling link protocol, quickly detecting and reporting link failures, and handling failover; and lightweight connections, providing a speed boost on short data transactions as frequently exchanged in telecommunications applications. Read on for more details found in Jon's announcement email.


From: Jon Maloy [email blocked]
To:  linux-kernel, [email blocked]
Subject: [ANNOUNCE] supporting cluster communication with TIPC
Date: 	Mon, 28 Jun 2004 21:42:31 -0400



Hi all,
I would like to announce the availability of TIPC (Transparent Inter 
Process Communication protocol). TIPC is a protocol specially designed 
for high-performance, location transparent communication within 
loosely connected clusters, and has been used successfully in various 
Ericsson products over the last years. 

In cooperation with colleagues from OSDL and Intel, I have ported TIPC 
to Linux,and rewritten large parts of the code to fit the Linux kernel 
environment and coding requirements. TIPC can be compiled either as a 
part of the kernel or as a loadable module, and is now released as 
open source code under a dual GPL/BSD license. 


Overview
--------
TIPC provides a good support for designing scalable, distributed, 
site independent, highly available, and high-performance applications.

It provides features such as:

o Reliable and unreliable connectionless communication modes: 
  SOCK_RDM and SOCK_DGRAM.
o Reliable connection oriented communication modes: SOCK_SEQPACKET
  and SOCK_STREAM.
o Reliable and unreliable multicast covering the whole cluster.
o 35-80% better performance than TCP/IP for messages < 1.5 kbytes.
  (The tipc-1.2 line).
o A functional addressing scheme that allows primary/secondary key
  addressing and group addressing.
o Ability to adapt to and be carried over different media/protocols, 
  depending on the available network infrastructure and security needs: 
  raw Ethernet, RapidIO, ATM/AAL5, TCP, SCTP, UDP etc.(Only Ethernet 
  supported in the latest version).
o A topology service helping applications to keep track of available 
  functional and physical addresses in the clusters.
  

Implementation Status:
----------------------

There exists two main source code lines:


tipc-1.2.X: this is the most stable and tested release. It works well
            on both Linux 2.4 and Linux 2.6. This code is not compliant 
            with Linux kernel code requirements regarding code style etc,
            and now only has interest for comparative reasons. The 
            corresponding CVS modules are "source/stable_ericsson" and 
            "source/unstable_ericsson". 
            A downloadable example using the API of this version is found
            under "tipc-test", the file "tipc-benchmark-0.93.tar.gz"

tipc-1.3.X: the most recent code, written for Linux 2.6, and compliant with 
            requirements on such code. It works well, but is still slightly 
            less stable than the 1.2 line. The corresponding CVS module is 
            "source/unstable", while we have not had the guts to check in
            anything under "source/stable" yet. We have not been able to 
            verify that this code has the same performance as the 1.2 code, 
            but we have every reason to believe it will be comparable once 
            the proper optimization work is done.
            A downloadable example using the API of this version is found
            under "tipc-test", the file "tipc_test-1.5.tar.gz"


Links:
------
The TIPC page at SourceForge:
http://tipc.sourceforge.net

Downloading source code and documentation:
http://sourceforge.net/projects/tipc/

A draft protocol specification presented at IETF-59 in Seoul last March.
http://www.ietf.org/internet-drafts/draft-maloy-tipc-00.txt

An article written for the April issue of Linux World Magazine:
http://www.linux.ericsson.ca/papers/tipc_lwm/index.shtml

To be presented at OLS in Ottawa next month:
http://www.linux.ericsson.ca/papers/tipc_ols.pdf

We would appreciate your feedback and advice.

Thank you,
Jon Maloy


Related Links:

serial

Anonymous
on
June 30, 2004 - 7:47pm

if it was working over serial connections what sort of
overhead compared to ppp are we looking at for
large and small packets? gee, if there is a visible
speed up in serial along with seemless ethernet intergration
there would be more applications than just clustering.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.