2010-05-23 203 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;