透明行程間通訊
透明行程間通訊(英語: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 (頁面存檔備份,存於互聯網檔案館)