【发布时间】:2010-05-23 00:23:48
【问题描述】:
我应该如何编程以使用 linux 内核附带的 TIPC 网络协议(CONFIG_TIPC xconfig 参数)?
有没有使用 TIPC 的应用程序?
【问题讨论】:
标签: linux networking network-programming linux-kernel tipc
我应该如何编程以使用 linux 内核附带的 TIPC 网络协议(CONFIG_TIPC xconfig 参数)?
有没有使用 TIPC 的应用程序?
【问题讨论】:
标签: linux networking network-programming linux-kernel tipc
TIPC 旨在用于高可用性计算机集群中的通信。主要的寻址方案侧重于服务而不是位置。 TIPC 还可以使用多个“承载”来实现冗余,并提供链路和处理器监督功能。
除非您使用计算机集群,否则您可能不应该使用 TIPC。
TIPC 使用标准套接字接口。您必须先配置集群中的处理器,然后才能在处理器之间使用 TIPC。
使用 TIPC 的一个应用程序是“Open SAF”http://www.opensaf.org/。高可用性集群软件不足为奇。
【讨论】:
在评估 TIPC 时(我也是新手),我发现了一些出色的演示示例 here。可能有人会发现它们也很有用
【讨论】:
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;
【讨论】:
【讨论】:
我不知道 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。
【讨论】: