SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
TIPC
Status and Roadmap 2021
by Jon Maloy
STATUS OCTOBER 2020
FUNCTIONALITY
Container/Name Space support
→ From Linux 4.0
Autoadaptive Hierarchical Neighbor Node monitoring
→ Scales up to 1000 nodes with 1 second failure discovery time
→ From Linux 4.7
Group Messaging
→ User instantiated brokerless message bus
→ Allows for lossless, flow controlled, broadcast/multicast/anycast/unicast within a group
→ From Linux 4.14
128-bit self-assigned node identity
→ Can optionally be assigned by user: integer number, UUID, host name…
→ From Linux 4.16
Moved away from <Zone,Cluster,Node> network and addressing hierarchy
→ A node now only has an identity with no assumed internal structure
→ All node using the same cluster identity will detect each other and form a cluster
→ From Linux 4.16
Extensive Tracing Support
→ From Linux 4.20
FUNCTIONALITY
Introduced 'Smart Nagle' mechanism
→ Switches itself on/off depending on the traffic characteristics
→ Doubles stream socket throughput for small message traffic
→ From Linux 5.4
Built-in AEAD-based Encryption/Authentication Support
→ AES-GCM (Like in TLS 1.3)
→ Transparent to user, no application change needed
→ Works even for multicast, without requiring message replication
→ From Linux 5.4
‘Wormhole' inter-name space communication mechanism
→ Messages take a shortcut, bypassing network interfaces, between containers located on the same host.
→ Gives inter-container traffic the same performance as normal intra-container traffic
→ Much better throughput and latency than TCP
→ 100% secure
→ From Linux 5.4
Introduced variable window link flow control mechanism
→ Based on TCP’s Reno algorithm
→ Gives 25% improvement of max link throughput. (Jon Maloy/Xin Long, Linux 5.5
→ From Linux 5.5
Broadcast Binding Table Updates
→ When network infrastructure so permits
→ From Linux 5.8
API
Low-level socket API
→ Needs some effort to learn and use
Higher-level socket C API exists
→ As static libtipc library
→ Still only available by downloading tipcutils tar file
APIs for Python, Java, GO, Perl, Ruby, D
Support for TIPC in ZeroMQ
→ Not yet with full features
AVAILABILITY
Management tool now in package iproute2
→ “tipc” replaces previously used “tipc-config”
→ Available in all new distros after May 2015
Kernel module available in all major distros
→ Inclusive RHEL 8
IMPLEMENTATION
Significant effort to improve quality and maintainability over the last years
→ Reduced code bloat
→ Reduced structure interdependencies
→ Improved locking policies
→ Fewer locks, RCU locks instead of RW locks…
→ Eliminated all known risks of deadlock
→ Buffer handling
→ Much more use of sk_buff lists and other linux features
→ Improved and simplified fragmentation/reassembly
→ Redesigned and simplified broadcast link resulting in a significant performance improvement
→ Simplified and de-generalized topology server
Linuxification of code and coding style
→ Adapting to kernel naming conventions
→ Using RB tree instead of expanding arrays in service binding table
FLOW CONTROL
New connection level flow control
→ Now based on roundup(1k) size block instead of messages
→ Reduces need for socket receive buffer with factor 30
Link level flow control still uses a small fix window by default
→ Not optimal from performance viewpoint
→ Configurable
Datagram flow control
→ Resolved as part of the Group Communication feature
SCALABILITY
Introduced the “Overlapping Ring Supervision” algorithm in Linux 4.7
→ A combination of Gossip and Ring Supervision
→ Largest cluster we have tested had 800 fully-meshed nodes
→ But more is possible
→ Works flawlessly
New flat address space
→ Moved from <Zone.Cluster.Node> address scheme to a flat 128-bit identity space
# tipc node set addr 1.1.1 (Deprecated. Mandatory before Linux 4.18.)
# tipc node set identity myhostname (Optional. From Linux 4.18. Self assigned if not set.)
PERFORMANCE
Latency times better than on TCP
→ ~33 % faster inter-node
→ 2 to 7 times faster intra-node messaging (depends on message size)
→ We don’t use the loopback interface
→ From Linux 5.4 we do this even with inter container messages on same host
→ “Wormhole” technique
→ Just as secure as going via an interface
→ Kubernetes Pods will benefit greatly from this
Throughput lower than TCP on bare metal and between VMs
→ ~65-90% of max TCP throughput inter-node
→ Seems to be environment dependent, notably due to TCP TSO
Thoughput 25-400% better than TCP intra-node/inter-container on same host
→ 4 times better than TCP when using “wormhole” technique between containers on same host
→ New “smart nagle” feature from Linux 5.4 improves small message throughput with 50-100%
→ Turns itself on an off depending on traffic pattern
→ No ACK delay problem as in TCP
MANAGEMENT
Netlink based API
→ Replaces old ascii-based commands (also via netlink)
→ Uses more standard features such as socket buffers, attribute nesting, sanity checks etc.
→ Scales much better when clusters grow
New user space tool “tipc”
→ Syntax inspired by “ip” tool
→ Modular design inspired by git
→ Uses libmnl
→ Replaces deprecated “tipc-config” tool
→ Part of iproute2 package
→ Along with “ip”, “tc” and others
ROADMAP 2021
FUNCTIONALITY
128-bit service and socket addresses
→ All fields 128 bits long
→ Possible, but intrusive change
Try it out in Kubernetes
→ Inter- and intra-pod messaging
Built-in consensus protocol for topology events
→ RAFT or Blockchain based?
struct tipc_addr{
char type[16]; // zero: socket addess, otherwise random
char instance[16]; // e.g. uuid, port number if socket address
char node[16]; // zero: whole cluster is lookup scope
};
MORE INFORMATION
TIPC Overview
https://www.slideshare.net/JonMaloy/tipc-overview-93483595
TIPC Communication Groups
https://www.slideshare.net/JonMaloy/tipc-communication-groups
TIPC Overlapping Ring Neighbor Monitoring
https://www.youtube.com/watch?v=ni-iNJ-njPo
TIPC home page
http://tipc.io
TIPC project page
https://sourceforge.net/projects/tipc
TIPC protocol specification (needs update)
http://tipc.sourceforge.net/doc/draft-spec-tipc-10.html
TIPC programmer’s guide (needs update)
http://tipc.sourceforge.net/doc/tipc_2.0_prog_guide.html
TIPC demo and test programs package
https://sourceforge.net/projects/tipc/files/?source=navbar
THANKYOU

Mais conteúdo relacionado

Mais procurados

The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
hugo lu
 
Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3
Mohamed Al-Natour
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
Open-NFP
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
Kernel TLV
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
Sim Janghoon
 

Mais procurados (20)

Ccna Commands In 10 Minutes
Ccna Commands In 10 MinutesCcna Commands In 10 Minutes
Ccna Commands In 10 Minutes
 
Day 3 ENHANCED IGRP (EIGRP) AND OPEN SHORTEST PATH FIRST (OSPF)
Day 3 ENHANCED IGRP (EIGRP) AND OPEN SHORTEST PATH FIRST (OSPF)Day 3 ENHANCED IGRP (EIGRP) AND OPEN SHORTEST PATH FIRST (OSPF)
Day 3 ENHANCED IGRP (EIGRP) AND OPEN SHORTEST PATH FIRST (OSPF)
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
CCNP Route - OSPF
CCNP Route - OSPFCCNP Route - OSPF
CCNP Route - OSPF
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Bgp
BgpBgp
Bgp
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Ospf.ppt
Ospf.pptOspf.ppt
Ospf.ppt
 
DHCP Server & Client Presentation
DHCP Server & Client PresentationDHCP Server & Client Presentation
DHCP Server & Client Presentation
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 
Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3Juniper Srx quickstart-12.1r3
Juniper Srx quickstart-12.1r3
 
Router commands
Router commandsRouter commands
Router commands
 
cours ospf
cours ospf cours ospf
cours ospf
 
P4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC OffloadP4, EPBF, and Linux TC Offload
P4, EPBF, and Linux TC Offload
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
eBPF maps 101
eBPF maps 101eBPF maps 101
eBPF maps 101
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Linux Linux Traffic Control
Linux Linux Traffic ControlLinux Linux Traffic Control
Linux Linux Traffic Control
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 

Semelhante a TIPC Roadmap 2021

How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
Etsuji Nakai
 
Some important networking questions
Some important networking questionsSome important networking questions
Some important networking questions
Srikanth
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
Juraj Hantak
 

Semelhante a TIPC Roadmap 2021 (20)

Building a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in dockerBuilding a sdn solution for the deployment of web application stacks in docker
Building a sdn solution for the deployment of web application stacks in docker
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
Osnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptxOsnug meetup-tungsten fabric - overview.pptx
Osnug meetup-tungsten fabric - overview.pptx
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
 
Docker networking tutorial 102
Docker networking tutorial 102Docker networking tutorial 102
Docker networking tutorial 102
 
Comparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetesComparison of existing cni plugins for kubernetes
Comparison of existing cni plugins for kubernetes
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
Day-3 PowerPoint
Day-3 PowerPointDay-3 PowerPoint
Day-3 PowerPoint
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
Module 1 slides
Module 1 slidesModule 1 slides
Module 1 slides
 
Some important networking questions
Some important networking questionsSome important networking questions
Some important networking questions
 
OpenStack Tokyo 2015: Connecting the Dots with Neutron
OpenStack Tokyo 2015: Connecting the Dots with NeutronOpenStack Tokyo 2015: Connecting the Dots with Neutron
OpenStack Tokyo 2015: Connecting the Dots with Neutron
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 
Hackerworkshop exercises
Hackerworkshop exercisesHackerworkshop exercises
Hackerworkshop exercises
 
Docker Multihost Networking
Docker Multihost Networking Docker Multihost Networking
Docker Multihost Networking
 
Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4Packet walks in_kubernetes-v4
Packet walks in_kubernetes-v4
 
Mellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDNMellanox Approach to NFV & SDN
Mellanox Approach to NFV & SDN
 
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdfContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
 
Simple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project CalicoSimple, Scalable and Secure Networking for Data Centers with Project Calico
Simple, Scalable and Secure Networking for Data Centers with Project Calico
 
Dive into DevOps | March, Traefik as kubernetes ingress controller, Ihor Borodin
Dive into DevOps | March, Traefik as kubernetes ingress controller, Ihor BorodinDive into DevOps | March, Traefik as kubernetes ingress controller, Ihor Borodin
Dive into DevOps | March, Traefik as kubernetes ingress controller, Ihor Borodin
 

Último

Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 

Último (20)

Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 

TIPC Roadmap 2021

  • 1. TIPC Status and Roadmap 2021 by Jon Maloy
  • 3. FUNCTIONALITY Container/Name Space support → From Linux 4.0 Autoadaptive Hierarchical Neighbor Node monitoring → Scales up to 1000 nodes with 1 second failure discovery time → From Linux 4.7 Group Messaging → User instantiated brokerless message bus → Allows for lossless, flow controlled, broadcast/multicast/anycast/unicast within a group → From Linux 4.14 128-bit self-assigned node identity → Can optionally be assigned by user: integer number, UUID, host name… → From Linux 4.16 Moved away from <Zone,Cluster,Node> network and addressing hierarchy → A node now only has an identity with no assumed internal structure → All node using the same cluster identity will detect each other and form a cluster → From Linux 4.16 Extensive Tracing Support → From Linux 4.20
  • 4. FUNCTIONALITY Introduced 'Smart Nagle' mechanism → Switches itself on/off depending on the traffic characteristics → Doubles stream socket throughput for small message traffic → From Linux 5.4 Built-in AEAD-based Encryption/Authentication Support → AES-GCM (Like in TLS 1.3) → Transparent to user, no application change needed → Works even for multicast, without requiring message replication → From Linux 5.4 ‘Wormhole' inter-name space communication mechanism → Messages take a shortcut, bypassing network interfaces, between containers located on the same host. → Gives inter-container traffic the same performance as normal intra-container traffic → Much better throughput and latency than TCP → 100% secure → From Linux 5.4 Introduced variable window link flow control mechanism → Based on TCP’s Reno algorithm → Gives 25% improvement of max link throughput. (Jon Maloy/Xin Long, Linux 5.5 → From Linux 5.5 Broadcast Binding Table Updates → When network infrastructure so permits → From Linux 5.8
  • 5. API Low-level socket API → Needs some effort to learn and use Higher-level socket C API exists → As static libtipc library → Still only available by downloading tipcutils tar file APIs for Python, Java, GO, Perl, Ruby, D Support for TIPC in ZeroMQ → Not yet with full features
  • 6. AVAILABILITY Management tool now in package iproute2 → “tipc” replaces previously used “tipc-config” → Available in all new distros after May 2015 Kernel module available in all major distros → Inclusive RHEL 8
  • 7. IMPLEMENTATION Significant effort to improve quality and maintainability over the last years → Reduced code bloat → Reduced structure interdependencies → Improved locking policies → Fewer locks, RCU locks instead of RW locks… → Eliminated all known risks of deadlock → Buffer handling → Much more use of sk_buff lists and other linux features → Improved and simplified fragmentation/reassembly → Redesigned and simplified broadcast link resulting in a significant performance improvement → Simplified and de-generalized topology server Linuxification of code and coding style → Adapting to kernel naming conventions → Using RB tree instead of expanding arrays in service binding table
  • 8. FLOW CONTROL New connection level flow control → Now based on roundup(1k) size block instead of messages → Reduces need for socket receive buffer with factor 30 Link level flow control still uses a small fix window by default → Not optimal from performance viewpoint → Configurable Datagram flow control → Resolved as part of the Group Communication feature
  • 9. SCALABILITY Introduced the “Overlapping Ring Supervision” algorithm in Linux 4.7 → A combination of Gossip and Ring Supervision → Largest cluster we have tested had 800 fully-meshed nodes → But more is possible → Works flawlessly New flat address space → Moved from <Zone.Cluster.Node> address scheme to a flat 128-bit identity space # tipc node set addr 1.1.1 (Deprecated. Mandatory before Linux 4.18.) # tipc node set identity myhostname (Optional. From Linux 4.18. Self assigned if not set.)
  • 10. PERFORMANCE Latency times better than on TCP → ~33 % faster inter-node → 2 to 7 times faster intra-node messaging (depends on message size) → We don’t use the loopback interface → From Linux 5.4 we do this even with inter container messages on same host → “Wormhole” technique → Just as secure as going via an interface → Kubernetes Pods will benefit greatly from this Throughput lower than TCP on bare metal and between VMs → ~65-90% of max TCP throughput inter-node → Seems to be environment dependent, notably due to TCP TSO Thoughput 25-400% better than TCP intra-node/inter-container on same host → 4 times better than TCP when using “wormhole” technique between containers on same host → New “smart nagle” feature from Linux 5.4 improves small message throughput with 50-100% → Turns itself on an off depending on traffic pattern → No ACK delay problem as in TCP
  • 11. MANAGEMENT Netlink based API → Replaces old ascii-based commands (also via netlink) → Uses more standard features such as socket buffers, attribute nesting, sanity checks etc. → Scales much better when clusters grow New user space tool “tipc” → Syntax inspired by “ip” tool → Modular design inspired by git → Uses libmnl → Replaces deprecated “tipc-config” tool → Part of iproute2 package → Along with “ip”, “tc” and others
  • 13. FUNCTIONALITY 128-bit service and socket addresses → All fields 128 bits long → Possible, but intrusive change Try it out in Kubernetes → Inter- and intra-pod messaging Built-in consensus protocol for topology events → RAFT or Blockchain based? struct tipc_addr{ char type[16]; // zero: socket addess, otherwise random char instance[16]; // e.g. uuid, port number if socket address char node[16]; // zero: whole cluster is lookup scope };
  • 14. MORE INFORMATION TIPC Overview https://www.slideshare.net/JonMaloy/tipc-overview-93483595 TIPC Communication Groups https://www.slideshare.net/JonMaloy/tipc-communication-groups TIPC Overlapping Ring Neighbor Monitoring https://www.youtube.com/watch?v=ni-iNJ-njPo TIPC home page http://tipc.io TIPC project page https://sourceforge.net/projects/tipc TIPC protocol specification (needs update) http://tipc.sourceforge.net/doc/draft-spec-tipc-10.html TIPC programmer’s guide (needs update) http://tipc.sourceforge.net/doc/tipc_2.0_prog_guide.html TIPC demo and test programs package https://sourceforge.net/projects/tipc/files/?source=navbar