我应该如何编程以使用 linux 内核(CONFIG_TIPC xconfig 参数)附带的 TIPC 网络协议?
有没有使用 TIPC 的应用程序?
我应该如何编程以使用 linux 内核(CONFIG_TIPC xconfig 参数)附带的 TIPC 网络协议?
有没有使用 TIPC 的应用程序?
TIPC 旨在用于高可用性计算机集群中的通信。主要的寻址方案侧重于服务而不是位置。TIPC 还可以使用多个“承载”来实现冗余,并提供链路和处理器监控功能。
除非您使用计算机集群,否则您可能不应该使用 TIPC。
TIPC 使用标准套接字接口。您必须先配置集群中的处理器,然后才能在处理器之间使用 TIPC。
使用 TIPC 的一个应用程序是“Open SAF” http://www.opensaf.org/。高可用性集群软件不足为奇。
TIPC代表“<em>透明的进程间通信”。
在使用它之前,您应该检查您的 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;
在评估 TIPC(我也是新手)时,我在这里找到了一些出色的演示示例。可能有人会发现它们也很有用
我不知道 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.
文档(包括示例)在那里。并且文档提到 TIPC 也有一个“本机”API。