【发布时间】:2014-05-22 02:29:59
【问题描述】:
我正在编写一个需要创建自组织网络的程序。一旦创建并连接其他节点,我需要一种方法来确定网络上每个节点的 ip(或形成连接的其他方式。我更喜欢使用 tcp 和/或 udp,但我不必)。一旦我有办法连接到其他节点,我需要确定这台机器和我希望连接的节点之间的跳数。
我已经四处寻找这些信息,但无济于事....有谁知道是否有一个已经到位的 API 来解决这个问题?如果没有,我将如何创建自己的......
【问题讨论】:
我正在编写一个需要创建自组织网络的程序。一旦创建并连接其他节点,我需要一种方法来确定网络上每个节点的 ip(或形成连接的其他方式。我更喜欢使用 tcp 和/或 udp,但我不必)。一旦我有办法连接到其他节点,我需要确定这台机器和我希望连接的节点之间的跳数。
我已经四处寻找这些信息,但无济于事....有谁知道是否有一个已经到位的 API 来解决这个问题?如果没有,我将如何创建自己的......
【问题讨论】:
我知道这个问题已经很老了,但我在这个领域有丰富的经验。
您需要的是一种自组织路由协议,通常称为 MANET(移动自组织网络)协议。我建议您看一下 OLSR,它被 IETF 标准化为 RFC 7181 和 RFC 3636。 您可以在http://www.olsr.org/?q=download 获取 OLSR 的源代码和二进制文件。
通过使用它,OLSR 将在网络中的所有节点之间创建路由,通过查看路由表,您将能够确定网络中每个节点的 IP 地址,然后可以轻松打开套接字连接( UDP/TCP) 到其中任何一个。如果需要,您还将获得有关每个链接质量的信息。
【讨论】: