当前位置:网站首页>TIPC协议
TIPC协议
2022-07-02 07:33:00 【云端漫步的程狗子】
TIPC协议概述
TIPC是爱立信开源的透明进程通信协议,一般用于集群系统中。
虽然tipc是基于socket实现的,但是与一般的socket还有所区别。平时我们使用socket,无论是TCP也好,UDP也好,用来标识一对socket的通信,无非是用两个socket的IP地址和端口号。比如使用UDP的socket,要发送一个datagram到另一个socket,需要指定对端的地址,这个地址是由对端设备的IP和端口号组成的。Socket是在内核中进行管理,当内核检测到socket有数据可读时,就会通知拥有这个socket的进程去读取数据。
平时我们使用socket是需要指定对端的地址,我们必须知道这个socket在哪台设备上,设备IP是多少,使用的端口号是什么,才能发送数据。
TIPC解决了这个问题。使用TIPC,我们在创建socket的时候,在内核中注册自己的服务类型,那么在发送端,只需要指定服务类型就可以由内核路由到相应的socket。这个时候,对应用层来讲,对端地址仅仅是一个服务类型。显然,内核维护着这样一张路由表,可以根据服务类型去找到对应的socket。每台设备都有这样的路由表,他们的信息就能够像普通路由表一样共享到整个集群网络中去,所有设备都可以进行socket查找。因此,有了TIPC,我们无需关心socket使用了哪个IP,哪个端口。Tipc还具有如下特性:
有些时候,多个进程提供相同的服务,仅仅是为了负载均衡或冗余备份等原因,这种情况下可以用一个整数变量instance来标识不同的socket,但是指定同样的服务类型。此时,socket是由service type和instance共同指定的。发送数据的时候只需要指定service type和一个instance值即可。也可以指定service type和instance的一个区间,这种情况就是broadcast你的datagram
管理tipc路由表的是内核中的name server进程。他维护着集群中所有的tipc socket。在发送datagram给某个socket之前,可以向他请求推荐资料
http://tipc.sourceforge.net/index.html
MORE INFORMATION
TIPC home page
http://tipc.io
TIPC project page
http://sourceforge.net/project/tipc
TIPC Demo/Test/Utility programs
http://sourceforge.net/project/tipc/files
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 protocol specification (somewhat dated)
http://tipc.sourceforge.net/doc/draft-spec-tipc-10.html
TIPC programmer’s guide (somewhat dated)
http://tipc.sourceforge.net/doc/tipc_2.0_prog_guide.html
边栏推荐
- Special topic of binary tree -- acwing 18 Rebuild the binary tree (construct the binary tree by traversing the front and middle order)
- How to implement tabbar title bar with list component
- OpenMLDB Meetup No.4 会议纪要
- Luogu p1892 [boi2003] Gang (and search for variant anti set)
- Luogu p4281 [ahoi2008] emergency gathering / gathering (tree doubling LCA)
- Special topic of binary tree -- acwing 1497 Traversal of the tree (use post and mid order traversal to build a binary tree)
- JVM garbage collector
- Flink two Open, implement Batch Lookup join (attached source)
- 【TS】1368- 秒懂 TypeScript 泛型工具类型!
- 【AGC】如何解决事件分析数据本地和AGC面板中显示不一致的问题?
猜你喜欢

Special topic of binary tree -- acwing 1497 Traversal of the tree (use post and mid order traversal to build a binary tree)

如何使用IDE自动签名调试鸿蒙应用

从.bag文件中读取并保存.jpg图片和.pcd点云

JVM garbage collector

Huawei game failed to initialize init with error code 907135000

Hdu1236 ranking (structure Sorting)

618 what is the secret of dominating the list again? Nike's latest financial report gives the answer

HDU1236 排名(结构体排序)

洛谷 P5536 【XR-3】核心城市(贪心 + 树形 dp 寻找树的中心)

Read H264 parameters from mediarecord recording
随机推荐
Huawei game failed to initialize init with error code 907135000
K-d tree and octree of PCL
PCL extracts a subset from a point cloud
UVM learning - object attribute of UVM phase
Special topic of binary tree -- acwing 1589 Building binary search tree
二叉树专题--P1030 [NOIP2001 普及组] 求先序排列
PCL 投影点云
OpenMLDB Meetup No.4 会议纪要
In the face of uncertainty, the role of supply chain
Shell programming 01_ Shell foundation
Use of vscode tool
如何使用IDE自动签名调试鸿蒙应用
Hdu1236 ranking (structure Sorting)
HDU1236 排名(结构体排序)
HDU1234 开门人和关门人(水题)
Record attributeerror: 'nonetype' object has no attribute 'nextcall‘
Operator-1 first acquaintance with operator
PCL 从一个点云中提取一个子集
Special topic of binary tree -- acwing 47 Path with a certain value in binary tree (preorder traversal)
Is the account above changtou school safe?