透明进程间通信

透明进程间通信(英語: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开发,在逐步分发到开源社区之前用于该公司的电信级集群应用已有多年。

参考链接

[编辑]