iOS MultipeerConnectivity是否提供路由层?

时间:2016-02-27 11:16:53

标签: ios networking routing wifi distributed

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

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

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

从我所看到的 ad hoc延迟容忍无线网络仍然是研究的热门话题。 几年前ad hoc delay tolerant wireless network上的这些幻灯片对这个主题有了更多的了解。并且also this paper。苹果公司是否在MC上取得了很大成就? 我真的看不到任何方式在没有泛滥的情况下在彼此没有直接连接的节点之间发送消息。 正确? Mesh network

1 个答案:

答案 0 :(得分:3)

MCSession Reference表示

  

Sessions目前最多支持8个同行,包括本地同行。

此外,您引用的概述说

  

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

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

这表明该框架仅涵盖附近设备之间的通信,例如可以通过蓝牙或WiFi接入。当然,这些设备不需要复杂的路由,因为它们确实相互通信,并且框架的好处是附近设备之间的简单多播,来自程序员和#39;观点。

就你的问题而言,这是关于它的 - 很简单,因为MCSession的所有同行都有相互链接 - 不需要路由。

但是,这样可以很容易地构建路由层。

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

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

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

以下是两个很好的起点,让您选择更合适: