透明進程間通信

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
(重新導向自TIPC

透明進程間通信(英語: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開發,在逐步分發到開源社區之前用於該公司的電信級集群應用已有多年。

參考鏈接[編輯]