TIPC
Encyclopedia
Transparent Inter-process Communication (TIPC) is a network communications protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

 for inter-process communication (IPC)
Inter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...

 that was specially designed for intra-cluster communication.

Features

Some features of TIPC:
  • Location transparency
    Location transparency
    In computer networks location transparency describes names used to identify network resources independent of both the user's location and the resource location.A distributed system will need to employ a networked scheme for naming resources....

     of services in a network.
  • Auto-discovery mechanism.
  • Reliable
    Reliability (computer networking)
    In computer networking, a reliable protocol is one that provides reliability properties with respect to the delivery of data to the intended recipient, as opposed to an unreliable protocol, which does not provide notifications to the sender as to the delivery of transmitted data.A reliable...

     transport.
  • Standard socket
    Berkeley sockets
    The Berkeley sockets application programming interface comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly for communications across a computer network....

     interface support.
  • Connectionless
    Connectionless mode transmission
    In packet switching networks, CL-mode or connectionless communication is a data transmission method in which each data packet carries information in a header record that contains a destination address sufficient to permit the independent delivery of the packet to its destination via the network.A...

    , connection-oriented
    Connection-oriented
    Connection-oriented communication is a data communication mode in telecommunications whereby the devices at the end points use a protocol to establish an end-to-end logical or physical connection before any data may be sent. In case of digital transmission, in-order delivery of a bit stream or...

     and multicast
    Multicast
    In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source creating copies automatically in other network elements, such as routers, only when the topology of the network requires...

     messaging.
  • Subscription to network events.
  • Dual BSD
    BSD licenses
    BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....

    /GPL
    GNU General Public License
    The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

     licensed code.

Implementations

TIPC protocol support is available in Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....

 starting with version 2.6.16. It can also be built into earlier versions of the kernel as a supplementary module. The TIPC project currently provides an open source implementation of TIPC for Other operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s including Wind River's VxWorks
VxWorks
VxWorks is a real-time operating system developed as proprietary software by Wind River Systems of Alameda, California, USA. First released in 1987, VxWorks is designed for use in embedded systems.- History :...

 and Sun Microsystems' Solaris. TIPC applications are typically written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 (or C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

) and utilize sockets of the AF_TIPC address family. Support for D
D (programming language)
The D programming language is an object-oriented, imperative, multi-paradigm, system programming language created by Walter Bright of Digital Mars. It originated as a re-engineering of C++, but even though it is mainly influenced by that language, it is not a variant of C++...

, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, and Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

 is also available.

Bearer media

While designed to be able to use all kinds of bearer media, implementations only support Ethernet
Ethernet
Ethernet is a family of computer networking technologies for local area networks commercially introduced in 1980. Standardized in IEEE 802.3, Ethernet has largely replaced competing wired LAN technologies....

 at the moment (October 2007). The VxWorks implementation also supports a shared memory
Shared memory
In computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...

 which can be accessed by multiple instances of the operating system, running simultaneously on the very same hardware.

Link setup

A TIPC node periodically broadcasts Link Request messages on all configured media interfaces to detect neighbouring cluster nodes. If such a message is received by a node with no prior established link to the sending node, it replies with a unicast
Unicast
right|200pxIn computer networking, unicast transmission is the sending of messages to a single network destination identified by a unique address.-Addressing methodologies:...

 Link Response message. This establishes a Link between those two nodes.

Link continuity check

A background timer is maintained for each link. When a certain amount of time is passed without regular incoming traffic, a message is sent over the link to indicate to the counterpart that the link is still up. This message also contains an acknowledge for the last received Link Level Sequence Number, in order to allow the receiver to release sent packet buffers, and a Last Sent Sequence Number, allowing the receiver to detect gaps in the packet sequence. The continuity check mechanism allows rapid detection of communication media failure, or node crashes. The Link Tolerance is a configurable parameter for each link endpoint, determining how long the other link endpoint may remain unresponsive before the link is declared faulty, and reset. For Ethernet the default value of this parameter is 1.5 s. After a reset, the remaining link endpoint will continue to probe the link until it is re-established.

Logical network topology

The logical Network Topology is not necessarily equal to the physical one.

TIPC nodes with point-to-point links to each other (fully meshed) are logically grouped and named a Cluster. Fully meshed clusters can in turn be grouped in Zones. Again, the zones of a TIPC network have to be able to reach each other directly.

Addressing scheme

Unlike in most other network protocols like IP
Internet Protocol
The Internet Protocol is the principal communications protocol used for relaying datagrams across an internetwork using the Internet Protocol Suite...

, the address is not attached to an interface but to the whole physical node. Also a node can only possess one single address which identifies it throughout the whole network.

The addressing scheme is mapped to the logical Network Topology. The human readable notation is where Z stands for Zone, C for Cluster and N for Node. Internally the address is represented as a 32-bit integer
Integer
The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively...

. Here, the 8 most significant bit
Most significant bit
In computing, the most significant bit is the bit position in a binary number having the greatest value...

s identify the Zone, the next 12 ones the Cluster and the 12 least significant bit
Least significant bit
In computing, the least significant bit is the bit position in a binary integer giving the units value, that is, determining whether the number is even or odd. The lsb is sometimes referred to as the right-most bit, due to the convention in positional notation of writing less significant digits...

s the individual Node. This allows for a maximum of 256 Zones, each containing 4096 Clusters, each containing 4096 Nodes.

Communication semantics

In order to be able to adapt to the user's needs, TIPC allows to choose from four different communication semantics:
  • Unreliable connectionless
    Connectionless mode transmission
    In packet switching networks, CL-mode or connectionless communication is a data transmission method in which each data packet carries information in a header record that contains a destination address sufficient to permit the independent delivery of the packet to its destination via the network.A...

     messages (SOCK_DGRAM). This is comparable to UDP
    User Datagram Protocol
    The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

    .
  • Reliable connectionless messages (SOCK_RDM).
  • Reliable connection-oriented
    Connection-oriented
    Connection-oriented communication is a data communication mode in telecommunications whereby the devices at the end points use a protocol to establish an end-to-end logical or physical connection before any data may be sent. In case of digital transmission, in-order delivery of a bit stream or...

     messages (SOCK_SEQPACKET).
  • Reliable connection-oriented byte streams (SOCK_STREAM). This is comparable to TCP
    Transmission Control Protocol
    The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

    .

Protocol operations

The protocol operations are optimized for networks matching the following assumptions:
  • Most messages cross only one direct hop.
  • Transfer time for most messages is short.
  • Most messages are passed over intra-cluster connections.
  • Packet loss rate is normally low; retransmission is infrequent.
  • Available bandwidth and memory volume is normally high.
  • For all relevant bearers packets are check-summed by hardware.
  • The number of inter-communicating nodes is relatively static and limited at any moment in time.
  • Security is a less crucial issue in closed clusters than on the Internet.

While being able to work within environments not complying to this list, TIPC will not be able to show its advantages over other protocols which were designed to work within a wider range of parameters.

Packet loss detection

Packet loss detection is done on the node-to-node link level. A packet is given a 16-bit Link Level Sequence Number which is incremented modulo
Modular arithmetic
In mathematics, modular arithmetic is a system of arithmetic for integers, where numbers "wrap around" after they reach a certain value—the modulus....

 216 − 1 every time a packet is created and sorted into the link's send queue. At the time a packet is taken from this queue and actually sent, its Link Level Sequence Acknowledge Number field is filled with the latest received in-sequence Link Level Sequence Number of the respective link. When a link endpoint receives the acknowledge it purges the messages with the equal and lower sequence numbers from its memory. After 16 incoming messages with no traffic in the other direction which would have been used to acknowledge them, a receiving node transmits an extra message in order to achieve this.

In case the sequence number of an arriving packet indicates that there were one or more previous packets lost, the receiving node calculates the gap and reports it to the sender who instantly retransmits the missing packets. For both connectionless and -oriented message flows, packet or byte-stream order is maintained from the receiving application's point of view.

Flow control

User-to-user flow control
Flow control
In data communications, flow control is the process of managing the pacing of data transmission between two nodes to prevent a fast sender from outrunning a slow receiver. It provides a mechanism for the receiver to control the transmission speed, so that the receiving node is not overwhelmed with...

 is only supported for established connections. Here, flow control is achieved by keeping a counter SENT_CNT on the sending side which is increased with every sent package. The receiving node counts the packages which were read by the receiving application. When this counter reaches the configurable number N, it informs the sender of this, which subtracts N from SENT_CNT. In case SENT_CNT reaches a certain limit, the sender stops sending packages until SENT_CNT falls under the threshold again.

The recommended value for N is at least 200, while the threshold for SENT_CNT should be at least 2N.

When the communication mode is connectionless, flow control can only be performed at the application level, implemented according to the particular characteristics of the application.

Apart from this, there are various mechanisms for congestion control in TIPC, both at bearer, link and node level. These are transparent for the user programs.

Development

The TIPC Project Team is currently involved in the evolution of TIPC and is engaged in developing a freely available, portable implementation of the TIPC protocol.

History

This protocol was originally developed by Jon Paul Maloy at Ericsson
Ericsson
Ericsson , one of Sweden's largest companies, is a provider of telecommunication and data communication systems, and related services, covering a range of technologies, including especially mobile networks...

, and has been used by that company in carrier-grade cluster applications for many years, before subsequently being released to the open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 community.

Reference links

  • TIPC project at SourceForge
    SourceForge
    SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

  • Technical documents at SourceForge
  • Linux kernel website
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK