2010-05-23 124 views
1

我應該如何編程以使用Linux內核(CONFIG_TIPC xconfig參數)附帶的TIPC網絡協議?Linux中的TIPC網絡協議

是否有任何應用程序使用TIPC?

+0

https://sourceforge.net/projects/tipc/ – osgx 2010-05-23 00:39:47

回答

0

我不知道TIPC是什麼,但我Google搜索了一個跡象表明它可以作爲「AF_TIPC地址族的套接字」訪問。

在這種情況下,你應該能夠通過常規的套接字機制來訪問它,就像任何其他的插座類型:

struct sockaddr_in Foo; 
    ... 
    memset(&Foo, 0, sizeof(Foo));  // Init address struct. 
    Foo.sin_family = AF_TIPC;   // Instead of the usual AF_INET 
    etc. 

文檔(包括示例)是there。 並且文檔中提到TIPC也有一個「native」API。

1

TIPC旨在用於高可用性計算機集羣通信。主要解決方案集中於服務而非位置。 TIPC還可以使用多個「載體」進行冗餘,並提供鏈路和處理器監控功能。

除非您正在使用計算機集羣,否則您應該不使用TIPC。

TIPC使用標準套接字接口。您必須先配置集羣中的處理器,然後才能在處理器之間使用TIPC。

使用TIPC的一個應用是「Open SAF」http://www.opensaf.org/。不奇怪的是高可用性集羣sw。

+0

我與集羣的工作。 – osgx 2011-09-12 23:46:55

1

在評估TIPC(我也是新手)時,我發現了一些優秀的演示示例here。可能有人會發現它們也有用

1

TIPC代表「Transparent Inter-Process Communication」。

在使用它之前,你應該檢查你的linux內核版本以確保它在系統上啓用(無論如何可以添加它)。基本上,如果你確實想在Linux中的兩個或多個進程/線程之間進行通信,你應該使用TIPC(如果你需要IP層或任何其他層,我不確定TIPC是否是最好的選擇) )。

使用TIPC協議類型,你應該使用「結構sockaddr_tipc」包含以下字段:

.family = AF_TIPC; 

.addrtype = TIPC_ADDR_NAMESEQ; (or …_MCAST, … _NAME,… _ID) 

.scope = TIPC_ZONE_SCOPE; (or …CLUSTER…, …NODE…) 

.addr.nameseq.type = TIPC_APP_TYPE_ANY_NUMBER_IS_GOOD; 

.addr.nameseq.lower = 1; 

.addr.nameseq.upper = 1024;