You are on page 1of 32

TIPC Introduction

Hoang Nguyen
RTOS Team
Presentation Outline

Introduction
Feature

vietnam_hoangminhnguyen@yahoo.com 2 09/14/10
Introduction

TIPC is a high-speed, reliable, message oriented


communication service specially designed for cluster
environment.

vietnam_hoangminhnguyen@yahoo.com 3 09/14/10
Introduction

It provides a framework for keeping track of limit, processor


and process states

Generic signal link layer makes the


Protocol easily portable, while retaining
Adaptability to bearers with difference
Carrier characteristic, Bearers like Ethernet,
ATM, InfiniBand....

vietnam_hoangminhnguyen@yahoo.com 4 09/14/10
Introduction

Why another protocol ?


TCP:
TCP is most commonly used protocol today, it has advantage
of being ubiquitous, stable and well-known by programmer but
is also has serious deficiencies making it less suitable for true
cluster environment, especially when real-time performance is
demanded. And It's non-optimal performance, especially for
intra-processor communication and for short messages in
general.

The rather heavy connection setup/shutdown scheme of TCP


is also a major flaw in a dynamic environment. The minimum
number of packets exchanged for even the shortest TCP
transaction is nine( SYN,, SYNACK, ect.... ), while in TIPC this
can be reduced to 2, or even to one if connectionless mode
can be used.

vietnam_hoangminhnguyen@yahoo.com 5 09/14/10
Introduction

Why another protocol ?


SCTP:
SCTP is a more modern protocol than TCP, and has better
potential for efficient cluster communication.

SCTP's disadvantage is the lack of location transparency that


is the main drawback, in the SCTP a plain IP-addressing
scheme is assumed, and there's no support for logical
addressing or real-time address translating like we have in
TIPC.

vietnam_hoangminhnguyen@yahoo.com 6 09/14/10
Introduction

Why another protocol ?


TIPC:
Within a cluster we can assume that:
Most messages make online 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-communication nodes is relatively and
limited at any moment in time
Security is a less crucial issue in closed clusters than on the
internet

vietnam_hoangminhnguyen@yahoo.com 7 09/14/10
Features

Addressing
Network Topology: from a TIPC viewpoint the network is
seen as a five-layer structures

vietnam_hoangminhnguyen@yahoo.com 8 09/14/10
Features

Addressing
Network Topology:
The top level is the TIPC network as such, sometime called
the super cluster => this simply is the ensemble of all zones
interconnected via TIPC ( now TIPC supports 15 zones )
The next level is the cluster or zone, the principal entity of a
network.
Third level is the subnetwork. Subnetworks within a zone
must be interconnected all-to-all, but just as with zones
there's no need for all-to-all processor links. ( theoretical limit
for number of subnetworks within a zone is 4097 )
The fourth level is the individual system processor, or just
processor. Processors within a subnetwork must be
interconnected all-to-all. ( theoretical limit for number of
processor is 2047, but the implementation limit now is 511 )
The fifth level is the device processor level.
vietnam_hoangminhnguyen@yahoo.com 9 09/14/10
Features

Addressing
Network Topology:

Device Processor

Processor
Sub network

Zone

Super cluster

vietnam_hoangminhnguyen@yahoo.com 10 09/14/10
Features

Addressing
Address types: TIPC has 3 visible address types
Port Name:
This persistent address is typically used for connectionless
communication and for setting up connections.
A port name consists of two 32-bits integers, giving it a value
range of 64 bits :
The first integer is called the name: type => identifies a
certain service type such as a telephone number analyzer..
The second integer is called the name: instance => it's
used as a qualifier for accessing a certain instance of the
requested service e.g: the analyzer instance responsible for
a certain set of phone numbers.
Port name sequence, A name sequence is three-integer
structure containing a range of port names.

vietnam_hoangminhnguyen@yahoo.com 11 09/14/10
Features

Addressing
Address types: TIPC has 3 visible address types
Port Name:

vietnam_hoangminhnguyen@yahoo.com 12 09/14/10
Features

Addressing
Address types: TIPC has 3 visible address types
Port Identity:
This volatile address is produced internally by TIPC when a
port is created. It consists of two 32-bit integers.
The first one is a pseudo-random number with a period of
2^31-1
The second one is processor address.
A port identity can not be influenced by user, it has to be
obtained by either requesting the port about its identity, or by
looking at the sender address when a connection-less message
is received.
Zone Identity:
Location transparency is supported only within a cluster. Once
a named message needs to be transported to a different zone
the address of that zone has to be indicated along with the port
name in the send call.
The range value of this
vietnam_hoangminhnguyen@yahoo.com 13address is from 1 → 15
09/14/10
Features

Location transparency - “The cluster is the computer”


Logical Addressing
Location transparency is the ability to communication between
processes within a cluster as if they were all located on the
same computer.
With TIPC the target of an address is a service, not a
processor => This is what we call logical addressing
Naming Table
The most important functionality for providing location
transparency is the TIPC internal naming table => this's a fully
distributed table with the task of handling the mapping
between port names and corresponding port identities.

vietnam_hoangminhnguyen@yahoo.com 14 09/14/10
Features

Location transparency - “The cluster is the computer”


Naming Table

vietnam_hoangminhnguyen@yahoo.com 15 09/14/10
Features

Location transparency - “The cluster is the computer”


Publication scope
The default scope of a published port name is the zone.
However, under certain conditions it may be desirable to
publish it within a smaller scope, e.g. only the own
subnetwork or own processor
Subscription service
The naming table also provides a subscription service for
availability of port names.

vietnam_hoangminhnguyen@yahoo.com 16 09/14/10
Features

User Connections
Lightweight
While there are normally only 2 or 4 links between any pair of
processors, there maybe thousands of user connections,
constantly and rapidly changing in number and duration =>
connections must therefore be kept as lightweight as possible,
avoiding any unnecessary supervision timers and end-to-end
protocol signalling.
Lightweight connections can be designed by centralizing most
failure detection functionality to the link layer level, without
compromising the quality of service the connection is
commited to deliver.

vietnam_hoangminhnguyen@yahoo.com 17 09/14/10
Features

User Connections
Simple Connection Setup and Shutdown

vietnam_hoangminhnguyen@yahoo.com 18 09/14/10
Features

User Connections
Simple Connection Setup and Shutdown
From the above figure, first no hidden internal messages are
exchanged to set up the connection. Instead the first user
data message received decides when each party's half of the
connection should be established. At the server side the
accept() call is hence an implicit command to create a new
socket/port and connect it to sender port whenever a
message arrives. When the new port is created the arriving
message is transparently moved over to this port, and can be
read from there just as any subsequent message on the
connection. At the client side connection establishment is also
done automatically
Shutting down the connection must be done explicitly from
both side

vietnam_hoangminhnguyen@yahoo.com 19 09/14/10
Features

User Connections
Immediate Failure Detection and Indication
Whenever one of the two participating ports of a connection
looses contact with its peer it will immediately abort the
connection and report the lost contact to its owner process.
Processor Availability Subscription: when an inter-processor
connection is established the participating ports will issue a
subscription to the “processor layer” of TIPC about the
availability of the peer processor. → Just like any other
subscriber of this service the port will be informed about the loss
of contact as soon as the last link to that processor has been
marked failed.
Port/Process Termination: if a port is deleted while still being in
connected mode it will consider this as an error, and report the
event to the other end of the connection before going out of
existence

vietnam_hoangminhnguyen@yahoo.com 20 09/14/10
Features

User Connections
Immediate Failure Detection and Indication
Message Undeliverable: if a message sent on a connection can
not find its recipient, either because the processor has become
unavailable or the port has disappeared, it will be returned to its
sender port along with an appropriate error code
Slow Background Supervision: Due to the way TIPC
connections are defined and implemented it is perfectly
possible, although not recommended, to establish “half” or
“unfinished” connections

vietnam_hoangminhnguyen@yahoo.com 21 09/14/10
Features

User Connections
Activity Domain: all processes interconnected via
connections define an activity domain. This domain has 3
essential properties:
Resource tracking and reclaiming: by keeping together
references to all involved processes and ports the system
may reclaim all resources allocated to an activity in a
controlled way, without risking that these resources are “lost”
or kept dangling.
Failure isolation: by keeping together references to all the
processes involved in a particular activity the chain reaction
mechanism makes it possible to terminate a complete activity
without disturbing other ones performing similar or different
tasks
Tracing: the TIPC message header contains a field which can
be used as activity identity

vietnam_hoangminhnguyen@yahoo.com 22 09/14/10
Features

Subscription for Network an Link Events: Apart from ability


to subscribe for availability of port names and port name
sequences, it's even possible for a user program to
subscribe for certain other events.
Processor Availability: Availability and non-availability of
zones, subnetworks or individual processors can be
subscribed for via a special system call.
Link Availability:

vietnam_hoangminhnguyen@yahoo.com 23 09/14/10
Features

Load sharing
Among Processors

Among Bearers

Generic Link Layer


TIPC includes a generic signalling link layer protocol and
implementation.
The TIPC link protocol implementation comprises the
following functionality:
Retransmission protocol
Message segmentation/reassembly
Message bundling
Message flow control
vietnam_hoangminhnguyen@yahoo.com 24 09/14/10
Features

Generic Link Layer


The TIPC link protocol implementation comprises the
following functionality:
Bearer congestion handling
Link establishing, continuity check and supervision
Link changeover

vietnam_hoangminhnguyen@yahoo.com 25 09/14/10
Features

Device Processor Concept


Device processor belong to a subnetwork, just like system
processors, and provide the same properties with respect to
location transparency and availability as system processors.
The difference is that device processors don't have to be
directly connected to all other processors within the
subnetwork
Device processors are not allowed to establish links directly
to each other, since they are supposed to play subordinate
role in the system.
From a TIPC viewpoint the address is the only thing
distinguishing a device processor from a system processor

vietnam_hoangminhnguyen@yahoo.com 26 09/14/10
Features

Routing
TIPC support routing of messages, both between zones and
between system processors and device processors.

vietnam_hoangminhnguyen@yahoo.com 27 09/14/10
Features

Routing
Routing algorithm
The available routes to a remote zone, subnetwork or device
processor are explored in the following order:
First, look for any direct links to the processor, and if there're
any, select one using the normal algorithm for this.
Second, if there're no direct links, send the message to a
processor within own subnetwork with a direct link to the
destination processor. Selection of the intermediate processor is
done in a deterministic way. If the destination or origin of the
message is a device processor this is the last option tried.
Otherwise, if no router processor was found, one will try the third
option, looking for a direct link to any processor within the
remote zone/subnetwork. This is also based on a deterministic
algorithm.

vietnam_hoangminhnguyen@yahoo.com 28 09/14/10
Features

Routing
Routing table
The “processor” elements in the routing hierarchy must
contain information about all available routes, and that his
information must be kept as updated as possible.

vietnam_hoangminhnguyen@yahoo.com 29 09/14/10
Features

Selft Configuration

vietnam_hoangminhnguyen@yahoo.com 30 09/14/10
Features

Management
Configuration
Alarms
Statistics

vietnam_hoangminhnguyen@yahoo.com 31 09/14/10
End part 1

Thanks for your attention

vietnam_hoangminhnguyen@yahoo.com 32 09/14/10

You might also like