版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-透明進(jìn)程間通信

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

透明進(jìn)程間通信(Transparent Inter-process Communication,縮寫為TIPC)是一種用于進(jìn)程間通信的網(wǎng)絡(luò)通信協(xié)議,原本是為集群間通信特別設(shè)計的。它允許設(shè)計人員能夠創(chuàng)建可以和其它應(yīng)用快速可靠地通信應(yīng)用,無須考慮在其它需要通信的應(yīng)用在集群環(huán)境中的位置。

歷史TIPC協(xié)議最初由Jon Paul Maloy在Ericsson開發(fā),在逐步分發(fā)到開源社區(qū)之前用于該公司的電信級集群應(yīng)用已有多年。1

特點(diǎn)TIPC的一些特點(diǎn):

網(wǎng)絡(luò)中服務(wù)的位置透明

自動發(fā)現(xiàn)機(jī)制。

可靠傳輸。

標(biāo)準(zhǔn)套接字接口支持。

無鏈接傳輸,面向鏈接傳輸以及多播消息機(jī)制。

網(wǎng)絡(luò)事件訂閱。

BSD/GPL雙重許可證代碼。1

實(shí)現(xiàn)TIPC項(xiàng)目是TIPC協(xié)議的開源實(shí)現(xiàn)。TIPC項(xiàng)目組正在關(guān)注TIPC的演化,并致力于開發(fā)一個自由的可移植的TIPC協(xié)議實(shí)現(xiàn)。

在Linux和VxWorks中,TIPC已經(jīng)可用,對Solaris的支持則正在開發(fā)當(dāng)中。用C或C++編寫的應(yīng)用能夠創(chuàng)建AF_TIPC協(xié)議簇的套接字(Socket)來使用TIPC協(xié)議,為Perl, Python和Ruby的插件現(xiàn)在也可使用。

TIPC 協(xié)議從Linux kernel版本2.6.16開始已經(jīng)在內(nèi)核支持,也可以作為模塊置于之前版本的內(nèi)核。其他操作系統(tǒng)中也有支持,包括Wind RiverVxWorks和Sun Microsystems的Solaris。2

承載介質(zhì)盡管設(shè)計之初是要用于任意介質(zhì),目前(2007年10月)的實(shí)現(xiàn)只支持以太網(wǎng).VxWorks實(shí)現(xiàn)也支持共享存儲,可以被操作系統(tǒng)的多個實(shí)例支持,在同一硬件上并發(fā)運(yùn)行。2

鏈路建立一個TIPC節(jié)點(diǎn)在所有配置的接口上定期廣播Link Request消息,以發(fā)現(xiàn)相鄰的集群節(jié)點(diǎn)。如果一個以前沒有建立過鏈接的節(jié)點(diǎn)收到這樣的消息,它會返回一個單播的Link Response消息,這樣就在這兩個節(jié)點(diǎn)之間建立了一個鏈接。2

地址模式和大多數(shù)如IP等網(wǎng)絡(luò)協(xié)議不同,地址并不是與接口關(guān)聯(lián),而是和整個物理節(jié)點(diǎn)關(guān)聯(lián)。一個節(jié)點(diǎn)也只能擁有整個網(wǎng)絡(luò)中唯一的一個地址。

地址模式映射到邏輯網(wǎng)絡(luò)拓?fù)?。易讀的標(biāo)識為方式,其中Z表示Zone,C代表Cluster,N代表(節(jié)點(diǎn))Node.在內(nèi)部,地址用一個32位的整數(shù)表示,高8位最高有效位表示Zone,中間12位表示Cluster,最后12位最低有效位表示節(jié)點(diǎn)(Node)。2

通信語義為了適應(yīng)用戶需要,TIPC允許以下4種不同的通信語義:

不可靠無連接消息(SOCK_DGRAM),類似UDP。

可靠無鏈接消息(SOCK_RDM)。

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

可靠面向鏈接字節(jié)流(SOCK_STREAM),類似TCP。2

本詞條內(nèi)容貢獻(xiàn)者為:

李岳陽 - 副教授 - 江南大學(xué)