【问题标题】:Does iOS MultipeerConnectivity provide routing layer?iOS Multipeer Connectivity 是否提供路由层?
【发布时间】:2016-06-10 16:34:57
【问题描述】:

我正在编写一个应用程序,该应用程序假定无需连接到移动运营商且无需本地 WiFi 即可工作。每个设备都将充当发射器、接收器和路由器。 到目前为止,我面临的主要挑战是我无法弄清楚 MultipeerConnectivity 究竟是如何工作的,因为 MC 上的文档非常有限。 Apple 否认透露 MC 的技术规范,声称它是专有网络堆栈,因此我必须依靠网络嗅探器和 reverse-engineering,这不是了解 MC 工作原理的最快方法。

假设我有 100 台设备组成网状网络,每个设备都在至少一个其他设备的范围内,最多三个其他设备的范围内

有没有办法从节点 A 向节点 B 发送消息,该消息 不在 节点 A 的范围内,而无需将消息广播到所有其他节点?我的意思是消息应该通过所有其他节点正确路由。 MC是否也包含路由层还是我必须自己编写?

据我所知,ad hoc 延迟容忍无线网络仍然是研究的热点。 ad hoc delay tolerant wireless network 上的这些幻灯片更清楚地说明了几年前的主题。和also this paper。苹果在 MC 方面取得了很大进展吗? 我真的看不出有任何方法可以在不直接相互连接的节点之间发送消息而不会泛滥。 正确的?

【问题讨论】:

  • 这很有趣!我非常怀疑是否有一种方法可以在没有路由表的情况下将消息从节点 A 发送到节点 B。由于两台设备只依赖于在mesh网络上发送消息,我相信这意味着应该有某种路由机制来弄清楚如何通过mesh网络发送消息。

标签: ios networking routing wifi distributed


【解决方案1】:

MCSession Reference 声明

会话目前最多支持 8 个对等点,包括本地对等点。

另外,你引用的概述说

在发现阶段,您的应用使用浏览器对象 [...] 来浏览附近的对等点 [.]

此外,the documentation on managing peers manually 建议会话中的所有对等点必须相互连接才能使它们进入会话。

这表明该框架仅涵盖附近设备之间的通信,如“可通过蓝牙或 WiFi 访问”。从程序员的角度来看,这些设备自然不需要复杂的路由,因为它们确实可以相互通信,而且框架的好处是在附近设备之间进行简单的多播。

就您的问题而言,这就是它 - 微不足道,因为 MCSession 的所有对等点都具有相互链接 - 不需要路由。

不过,这确实让您可以非常轻松地构建路由层。

根据您的情况,将有多个MCSessions,其中设备是至少一个的一部分。属于多个MCSession 的所有设备都会成为路由器并将MCSessions 相互连接。

其余的任务应该是直截了当的;为寻址设备定义命名空间并实现您选择的路由协议。

互联网的旧时代,拨号连接不稳定,可能对您来说是一个加分因素,因为现有的路由协议在链路丢失方面相当稳定。

这里有两个很好的起点,可以帮助您选择更合适的选择:

【讨论】:

  • 感谢您的回答
猜你喜欢
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多