-
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
TIPC协议
于 2022-06-25 23:11:18 首次发布