Download presentation
Presentation is loading. Please wait.
Published bySandra Gordon Modified over 9 years ago
1
Jon Maloy, Ericsson Steven Blake, Ericsson Maarten Koning, WindRiver draft-maloy-tipc-00.txt Transparent Inter Process Communication TIPC
2
NOKIA RESEARCH CENTER / BOSTON TIPC A general transport protocol for cluster environments Not dedicated for distributed routers or ForCES protocol only A framework for detecting, supervising and maintaining cluster topology Available as portable open source code package under dual BSD/GPL licence 13000 lines of C code, 112 kbyte Linux kernel module Runs on 4 OS:es so far, and more to come Proven concept, used and deployed in several Ericsson products
3
NOKIA RESEARCH CENTER / BOSTON TIPC In the ForCES context, TIPC is intended used as a transport protocol for carrying ForCES protocol messages, not a ForCES protocol as such
4
NOKIA RESEARCH CENTER / BOSTON Connectionless, Connection Oriented and Multicast communication modes Reliable transport in all modes, but can be made unreliable per socket or per connection Single, consistent addressing model for all three modes Scalable Can handle clusters hundreds of nodes Performance Directly on media (Ethernet,Infiniband...) when possible 24 byte header for most messages Location Transparency in all three communication modes The cluster can be seen as one single computer Selective transparency Why TIPC in ForCES ?
5
NOKIA RESEARCH CENTER / BOSTON Congestion control at three levels Connection level, signalling link level and media level Based on 4 importance priorities Simple to configure Each node needs to know its own identity, that is all Automatic neighbour detection using multicast/broadcast Lightweigth, Reactive Connections Immediate connection abortion at node/process failure or overload Toplogy Subscription Service Functional and physical topology Why TIPC in ForCES ?
6
NOKIA RESEARCH CENTER / BOSTON Infiniband Mirrored Memory EthernetSCTPUDP Bearer Adapter API Sequence/Retransmission Control Packet Bundling Congestion Control Fragmentation/De-fragmentation Reliable Multicast Neighbour Detection Link Establish/Supervision/Failover Address Table Distribution Connection Supervision Route/Link Selection Address SubscriptionAddress Resolution User Adapter API Socket API AdapterPort API AdapterOther API Adapters Node Internal Functional View
7
NOKIA RESEARCH CENTER / BOSTON Zone Node Internet/ Intranet Slave Node Network Topology Cluster
8
NOKIA RESEARCH CENTER / BOSTON Server Process, Partition B Server Process, Partition A Client Process bind(type = foo, lower=0, upper=99) sendto(type = foo, instance = 33) bind(type = foo, lower=100, upper=199) foo,33 Functional Addressing: Unicast Function Address Persistent, reusable 64 bit port identifier assigned by user Consists of type number and instance number Function Address Sequence Sequence of function addresses with same type
9
NOKIA RESEARCH CENTER / BOSTON Server Process, Partition B Server Process, Partition A Client Process bind(type = foo, lower=0, upper=99) sendto(type = foo, lower = 33, upper = 133) bind(type = foo, lower=100, upper=199) foo,33,133 Functional Addressing: Multicast Based on Function Address Sequences Any partition overlapping with the range used in the destination address will receive a copy of the message Client defines “multicast group” per call
10
NOKIA RESEARCH CENTER / BOSTON Location of server not known by client Lookup of physical destination performed on-the-fly Efficient, no secondary messaging involved Client Process sendto(type = foo, lower = 33, upper = 133) Node Server Process, Partition B Server Process, Partition A bind(type = foo, lower=0, upper=99) bind(type = foo, lower=100, upper=199) foo,33,133 Location Transparency
11
NOKIA RESEARCH CENTER / BOSTON Location of server not known by client Lookup of physical destination performed on-the-fly Efficient, no secondary messaging involved Client Process sendto(type = foo, lower = 33, upper = 133) Node Server Process, Partition B Server Process, Partition A bind(type = foo, lower=0, upper=99) bind(type = foo, lower=100, upper=199) foo,33,133 Location Transparency Node
12
NOKIA RESEARCH CENTER / BOSTON Node bind(type = foo, lower=100, upper=199) Node Location of server not known by client Lookup of physical destination performed on-the-fly Efficient, no secondary messaging involved Client Process sendto(type = foo, lower = 33, upper = 133) Node Server Process, Partition B Server Process, Partition A bind(type = foo, lower=0, upper=99) foo,33,133 Location Transparency
13
NOKIA RESEARCH CENTER / BOSTON Many sockets may bind to same partition Closest-First or Round-Robin algorithm chosen by client bind(type = foo, lower=0, upper=99) Client Process sendto(type = foo, lower = 33, upper = 133) Server Process, Partition A’ Server Process, Partition A bind(type = foo, lower=0, upper=99) foo,33,133 Address Binding
14
NOKIA RESEARCH CENTER / BOSTON Many sockets may bind to same partition Closest-First or Round-Robin algorithm chosen by client Same socket may bind to many partitions bind(type = foo, lower=100, upper=199) Client Process sendto(type = foo, lower = 33, upper = 133) Server Process, Partition B Server Process, Partition A+B’ bind(type = foo, lower=0, upper=99) bind(type=foo, lower=100, upper=199) foo,33,133 Address Binding
15
NOKIA RESEARCH CENTER / BOSTON Many sockets may bind to same partition Closest-First or Round-Robin algorithm chosen by client Same socket may bind to many partitions Same socket may bind to different functions bind(type = foo, lower=100, upper=199) Client Process sendto(type = foo, lower = 33, upper = 133) Server Process, Partition B Server Process, Partition A bind(type = foo, lower=0, upper=99) bind(type=bar, lower=0, upper=999) foo,33,133 Address Binding
16
NOKIA RESEARCH CENTER / BOSTON Server Process, Partition B Server Process, Partition A Client Process bind(type = foo, lower=0, upper=99) subscribe(type = foo, lower = 0, upper = 500) bind(type = foo, lower=100, upper=199) foo,100,199 foo,0,99 Functional Topology Subscription Function Address/Address Partition bind/unbind events
17
NOKIA RESEARCH CENTER / BOSTON TIPC bind(type = node, lower=0x1001003, upper=0x1001003) Node Client Process subscribe(type = node, lower = 0x1001000, upper = 0x1001009) node,0x1001003 node,0x1001002 Node bind(type = node, lower=0x1001002, upper=0x1001002) TIPC Network Topology Subscription Node/Cluster/Zone availability events Same mechanism as for function events
18
NOKIA RESEARCH CENTER / BOSTON ForCES Applied on TIPC Network Equipment Control Element Forwarding Element OSPF, RIP COPS, CLI, SNMP Other Applications ForCES Protocol/TIPC LFB
19
NOKIA RESEARCH CENTER / BOSTON Network Equipment Control Element ForCES applied on TIPC Control Element Forwarding Element OSPF, RIP COPS, CLI, SNMP Other Applications Internet ForCES Protocol/TIPC LFB
20
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS Establishment based on functional addressing Selectable lookup algorithm, partitioning, redundancy etc No protocol messages exchanged during setup/shutdown Only payload carrying messages Traditional TCP-style connection setup/shutdown as alternative End-to-end flow control SOCK_SEQPACKET SOCK_STREAM SOCK_RDM for connectionless and multicast SOCK_DGRAM can easily be added if needed Same with “Unreliable SOCK_SEQPACKET”
21
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS foo,117 Server Process, Partition B Client Process sendto(type = foo, instance = 117 ) No protocol messages exchanged during setup/shutdown Only payload carrying messages
22
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS No protocol messages exchanged during setup/shutdown Only payload carrying messages Server Process, Partition B Client Process connect(client) send()
23
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS No protocol messages exchanged during setup/shutdown Only payload carrying messages Server Process, Partition B Client Process connect(server)
24
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS Immediate “abortion” event in case of peer process crash Server Process, Partition B Client Process abort
25
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS Immediate “abortion” event in case of peer node crash Server Process, Partition B Client Process abort Node
26
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS Immediate “abortion” event in case of communication failure Server Process, Partition B Client Process abort Node
27
NOKIA RESEARCH CENTER / BOSTON CONNECTIONS Immediate “abortion” event in case of node overload Server Process, Partition B Client Process Node abort
28
NOKIA RESEARCH CENTER / BOSTON Network Redundancy Retransmission protocol and congestion control at signalling link level Normally two links per node pair, for full load sharing and redundancy Server Process, Partition B Client Process Node
29
NOKIA RESEARCH CENTER / BOSTON Network Redundancy Retransmission protocol and congestion control at signalling link level Normally two links per node pair, for full load sharing and redundancy Smooth failover in case of single link failure, with no consequences for user level connections Server Process, Partition B Client Process Node
30
NOKIA RESEARCH CENTER / BOSTON Remaining Work Implementation Reliable Multicast not fully implemented yet (exp. end of Q1) Re-stabilization after most recent changes Re-implementation of multi-cluster neighbour detection and link setup Protocol Fully manual inter cluster link setup Guaranteeing Name Table consistency between clusters Slave node Name Table reduction ?????
31
NOKIA RESEARCH CENTER / BOSTON http://tipc.sourceforge.net
32
QUESTIONS ??
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.