代码之家  ›  专栏  ›  技术社区  ›  matcheek

iOS MultipeerConnectivity是否提供路由层?

  •  3
  • matcheek  · 技术社区  · 9 年前

    我正在编写一个应用程序,该应用程序可以在没有连接到移动运营商和本地WiFi的情况下工作。每个设备将充当发射器、接收器 和路由器 . 到目前为止,我面临的主要挑战是,我无法弄清楚到底是如何做到的 MultipeerConnectivity 作为MC上的文档工作确实有限。苹果否认透露了MC的技术规格,声称它是一个专有的网络堆栈,因此我不得不依赖网络嗅探器和 reverse-engineering 这不是了解MC如何工作的最快方法。

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

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

    从我所看到的 adhoc延迟容忍无线网络 仍然是研究的热点。 这些幻灯片 ad hoc delay tolerant wireless network 像几年前一样,对这个问题有了更多的了解。和 also this paper 。苹果在MC方面取得了很大进展吗? 我真的看不出有任何方法可以在彼此不直接连接的节点之间发送消息而不发生洪泛。 对的 Mesh network

    1 回复  |  直到 9 年前
        1
  •  5
  •   Tobi Nary Miriam    9 年前

    这个 MCSession Reference 声明

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

    此外,你所引用的概述还说

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

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

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

    就你的问题而言,这是关于它的-很琐碎,因为所有的同行都是 MC会话 彼此有链接-不需要路由。

    然而,这允许您非常容易地构建路由层。

    根据您的场景,将有多个 MC会话 s,其中设备是至少一个的一部分。属于多个设备的所有设备 MC会话 成为路由器并将 MC会话 s与对方。

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

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

    这里有两个很好的出发点,可以让你选择更适合自己: