版权归原作者所有,如有侵权,请联系我们

[科普中国]-透明进程间通信

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

透明进程间通信(Transparent Inter-process Communication,缩写为TIPC)是一种用于进程间通信的网络通信协议,原本是为集群间通信特别设计的。它允许设计人员能够创建可以和其它应用快速可靠地通信应用,无须考虑在其它需要通信的应用在集群环境中的位置。

历史TIPC协议最初由Jon Paul Maloy在Ericsson开发,在逐步分发到开源社区之前用于该公司的电信级集群应用已有多年。1

特点TIPC的一些特点:

网络中服务的位置透明

自动发现机制。

可靠传输。

标准套接字接口支持。

无链接传输,面向链接传输以及多播消息机制。

网络事件订阅。

BSD/GPL双重许可证代码。1

实现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 RiverVxWorks和Sun Microsystems的Solaris。2

承载介质尽管设计之初是要用于任意介质,目前(2007年10月)的实现只支持以太网.VxWorks实现也支持共享存储,可以被操作系统的多个实例支持,在同一硬件上并发运行。2

链路建立一个TIPC节点在所有配置的接口上定期广播Link Request消息,以发现相邻的集群节点。如果一个以前没有建立过链接的节点收到这样的消息,它会返回一个单播的Link Response消息,这样就在这两个节点之间建立了一个链接。2

地址模式和大多数如IP等网络协议不同,地址并不是与接口关联,而是和整个物理节点关联。一个节点也只能拥有整个网络中唯一的一个地址。

地址模式映射到逻辑网络拓扑。易读的标识为方式,其中Z表示Zone,C代表Cluster,N代表(节点)Node.在内部,地址用一个32位的整数表示,高8位最高有效位表示Zone,中间12位表示Cluster,最后12位最低有效位表示节点(Node)。2

通信语义为了适应用户需要,TIPC允许以下4种不同的通信语义:

不可靠无连接消息(SOCK_DGRAM),类似UDP。

可靠无链接消息(SOCK_RDM)。

可靠面向链接消息(SOCK_SEQPACKET)。

可靠面向链接字节流(SOCK_STREAM),类似TCP。2

本词条内容贡献者为:

李岳阳 - 副教授 - 江南大学