我应该如何编程使用Linux内核附带的TIPC网络协议(CONFIG_TIPC xconfig参数)?
有没有使用TIPC的应用程序?
答案 0 :(得分:1)
TIPC旨在用于高可用性计算机群集中的通信。主要的解决方案是关注服务而不是位置。 TIPC还可以使用多个“承载”来实现冗余,并提供链路和处理器监控功能。
除非您正在使用计算机群集,否则您可能不应该使用TIPC。
TIPC使用标准套接字接口。必须先配置群集中的处理器,然后才能在处理器之间使用TIPC。
使用TIPC的一个应用程序是“Open SAF”http://www.opensaf.org/。毫不奇怪,高可用性集群sw。
答案 1 :(得分:1)
在评估TIPC时(我也是新手),我找到了一些优秀的演示示例here。可能有人会发现它们也很有用
答案 2 :(得分:1)
TIPC 代表“透明进程间通信”。
在使用它之前,您应该检查您的Linux内核版本以确保它在您的系统上启用(无论如何您可以添加它)。
基本上,如果你想在linux中的两个或多个进程/线程之间进行通信,你应该使用TIPC(如果你需要IP层,或任何其他层,我不确定TIPC是最好的选择) 。
使用TIPC协议类型,您应该使用包含以下字段的“struct 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;
答案 3 :(得分: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也有“原生”API。
答案 4 :(得分:0)