iOS MultipeerConnectivity 是否提供路由层?

mat*_*eek 3 networking distributed routes wifi ios

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

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

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

据我所知,自组织延迟容忍无线网络仍然是研究的热点课题。与几年前一样,这些关于自组织延迟容忍无线网络的幻灯片对这个主题有了更多的了解。还有这篇论文。Apple 在 MC 方面取得了很大进展吗?我真的看不出有什么方法可以在不直接相互连接的节点之间发送消息而不发生洪水。正确的? 网状网络

Tob*_*ary 5

MCSession参考文献指出

\n\n
\n

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

\n
\n\n

另外,您引用的概述说

\n\n
\n

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

\n
\n\n

此外,有关手动管理对等点的文档建议会话中的所有对等点必须相互连接才能使它们处于会话中。

\n\n

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

\n\n

就您的问题而言,这就是问题 - 很简单,因为所有对等点 a 都MCSession相互链接 - 不需要路由。

\n\n

然而,这确实允许您非常轻松地构建路由层。

\n\n

根据您的场景,将会有多个MCSessions,其中设备至少属于其中一个。属于多个设备的所有设备MCSession都会成为路由器并将MCSession设备彼此互连。

\n\n

任务的其余部分应该是直接的;定义用于寻址设备的命名空间并实现您选择的路由协议。

\n\n

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

\n\n

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

\n\n\n