透明进程间通信
透明进程间通信(英語:Transparent Inter-process Communication,缩写为TIPC)是一种用于进程间通信的网络通信协议,原本是为集群间通信特别设计的。它允许设计人员能够创建可以和其它应用快速可靠地通信应用,无须考虑在其它需要通信的应用在集群环境中的位置。
特点
[编辑]TIPC的一些特点:
实现
[编辑]TIPC项目是TIPC协议的开源实现。TIPC项目组正在关注TIPC的演化,并致力于开发一个自由的可移植的TIPC协议实现。
在Linux和VxWorks中,TIPC已经可用,对Solaris的支持则正在开发当中。用C或C++编写的应用能够创建AF_TIPC协议簇的套接字(Socket)来使用TIPC协议,为Perl, Python和Ruby的插件现在也可使用。
TIPC 协议从Linux kernel版本2.6.16开始已经在内核支持,也可以作为模块置于之前版本的内核。其他操作系统中也有支持,包括Wind River VxWorks和Sun Microsystems的Solaris。
承载介质
[编辑]尽管设计之初是要用于任意介质,目前(2007年10月)的实现只支持以太网.VxWorks实现也支持共享存储,可以被操作系统的多个实例支持,在同一硬件上并发运行。
相邻节点链路
[编辑]链路建立
[编辑]一个TIPC节点在所有配置的接口上定期广播Link Request消息,以发现相邻的集群节点。如果一个以前没有建立过链接的节点收到这样的消息,它会返回一个单播的Link Response消息,这样就在这两个节点之间建立了一个链接.
链路持续检测
[编辑]逻辑网络拓扑
[编辑]逻辑网络拓扑与物理拓扑不一定相同。
地址模式
[编辑]和大多数如IP等网络协议不同,地址并不是与接口关联,而是和整个物理节点关联。一个节点也只能拥有整个网络中唯一的一个地址。
地址模式映射到逻辑网络拓扑。易读的标识为<Z.C.N>方式,其中Z表示Zone,C代表Cluster,N代表(节点)Node.在内部,地址用一个32位的整数表示,高8位最高有效位表示Zone,中间12位表示Cluster,最后12位最低有效位表示节点(Node).
通信语义
[编辑]为了适应用户需要,TIPC允许以下4种不同的通信语义:
- 不可靠无连接消息(SOCK_DGRAM),类似UDP。
- 可靠无链接消息(SOCK_RDM)。
- 可靠面向链接消息(SOCK_SEQPACKET)。
- 可靠面向链接字节流(SOCK_STREAM),类似TCP。
协议操作
[编辑]报丢失检测
[编辑]流控
[编辑]历史
[编辑]TIPC协议最初由Jon Paul Maloy在Ericsson开发,在逐步分发到开源社区之前用于该公司的电信级集群应用已有多年。
参考链接
[编辑]- TIPC项目组:http://tipc.sourceforge.net (页面存档备份,存于互联网档案馆)
- Linux内核:http://www.kernel.org (页面存档备份,存于互联网档案馆)