问题标签 [mesh-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何使用 SPAN [Smart Phone Ad-hoc Network] 框架建立 Mesh 网络?
我正在开发一个基于 android 的应用程序,该应用程序将在紧急情况或灾难情况下用于帮助用户安全撤离的路径。因此,在这方面我需要在特定区域的用户之间建立一个网状网络。我必须在 ad-hoc 模式下工作才能使它成为可能。
android - 如何在不root的情况下在Android手机中启用ad-hoc模式?
我正在开发一个 Android 应用程序,它将在灾难情况下使用并指导受影响的人从哪里安全撤离。
通过启用 ad-hoc 模式,将在特定区域建立网状网络。不扎根智能手机是不可能的,这是我迄今为止研究过的。
必须更新 Wi-Fi 芯片组驱动程序的源代码才能在 android 手机中启用 ad-hoc 模式。有没有什么解决方案,我们可以在不root手机的情况下启用ad-hoc模式?
linux - Linux(主线内核)上的 Zigbee 堆栈?
我打算在 Linux 嵌入式计算机上使用 Zigbee。
是否有 Zigbee Linux 堆栈之类的东西?(类似于 TCP/IP 堆栈)它是否包含在主线内核中?
理想情况下,我希望将简约的 USB Zigbee RF (802.15.4) 收发器连接到嵌入式计算机,并且大部分工作将在此 Zigbee 软件堆栈中完成。
这样的事情存在吗 ?
algorithm - 在多个对等点之间保持状态同步
我需要创建一个(希望如此)简单的 p2p 网络,所有客户端都需要在其中维护一组共享的设置。我的网络需要做的一些事情:
- 不断更新每个peer的状态
- 执行命令
- 获取共享资源并将其分发给所有对等点
虽然我确实对如何实现这一点有一些想法,但我确信我只是在重新发明轮子。但是,我的 Google-fu 太弱了,无法找到用于构建进一步搜索的起始参考/术语。
请注意,在这里建立对等点不是问题:我有一个中央服务器,其中包含有关所有对等点的确切信息,对等点可以随意查询服务器。
我相信我的问题可以分为两个或 - 简化 - 只有一个问题:
- 维护一个全局状态,其中对等方有办法知道它们何时不同步
- (可能已经由 #1 完成)确定将执行下一个命令的对等方
2 给定一个同步的全局状态应该相对容易:如果有一个任务要执行,只需将其标记为已执行,验证所有对等方都已收到通知,然后执行它。
因此,我必须解决的一个真正问题是如何维护一个全局状态,而无需针对状态的每次更改向所有对等方发出数百个 IP 请求。我的意思是,我知道必须通知所有对等方,我只是希望有一种算法不需要原始对等方自己完成所有操作。此外,多个对等点可以同时检测到一些状态变化,并且可能已经存在解决此类冲突的方法。
android - 在 Android 中分配 Wifi Direct 组所有者的 IP 地址
我正在使用 Wifi Direct 和 Wifi 构建一个 android 设备网格。
我的基本方案如下:
WifiP2pManager.createGroup()1)每个节点使用该方法构建一个Wifi Direct Group Owner(GO)接入点。然后它通过WifiP2pManager.addLocalService().
2) 每个节点也通过 扫描其他节点WifiP2pManager.discoverServices()。当它找到另一个节点时,它会使用常规的旧版 Wifi: wifiManager.disconnect()、wifiManager.enableNetwork()和连接到该节点wifiManager.reconnect()。
3) 更新路由表和 ipTables 以允许流量转发到正确的目的地。这需要root权限。
这种技术的问题在于 WifiP2p 为每个 Group Owner 分配相同的地址,192.168.49.1并使用192.168.49.0/24DHCP 中的池向加入 Group Owner 的设备发布地址。 因此,网格将无法通过多个跃点路由流量,因为所有链路都具有相同的 IP 空间。 已经提出了一些技术来克服网络之间的这种切换(使用存储转发来移动包),使用 IP 广播一次通过多个链接发送,以及修改 WifiP2p 以发布不同的地址。我正在研究修改 WifiP2p 实现的最后一个选项。
哪个库将 IP 块分配给192.168.49.1Android 中的 Wifi Direct 组所有者?
在 Android 4.0 中,它WifiP2pService.java在第 155 和 156 行被直接赋值:
从 Android 5.0 开始,该库已被弃用。我已经跟踪了当前的实现,直到它离开 Java 并开始执行 C 库。 这是我需要您帮助了解要查看哪个 C 库的地方。
免责声明:我知道我将在自定义内核领域工作并使用有根设备。我已经扎根了我的测试台设备并了解风险。我也明白 Android 不是为此而构建的。我也知道 Wifi 802.11s 引入了网状网络(不符合 Android)。我确实希望使用 Wifi Direct(副蓝牙等),因为它利用了 wifi 基础设施模式的许多好处(节能、加密等)。汉斯在这里问了一个非常相似的问题,但不想根设备,我想根设备。
android - 安卓网状网络
我即将制作一个使用网状网络进行通信的应用程序。到目前为止,我已经找到了 The Serval Project,但问题是我不了解网状网络背后的完整逻辑。
我所知道的是网格是一种集中式通信协议。
这个想法是制作一个使用网状网络的 Android 应用程序,而 ESP8266 微控制器也使用网状网络。
问题是没有足够的资源来做这件事。你能帮我完成这个任务吗?
c# - Graph Engine“扇出搜索”是如何工作的?
我正在查看Graph Engine(不要与 MSFT AD Graph 混淆),但我对分布式“扇出搜索”有疑问。
据我所知
- 对象以分布式方式保存在 N 个服务器上。
- 在运行期间不得更改此 N 个服务器的分配
- 根据一些配置设置,它们可以是“只读”的
- 节点之间没有“身份验证”,只有完全信任有效的命令。
我很困惑
- 数据以何种方式跨节点分片/分区?
- 在写入过程中可能成为瓶颈的“全局锁”的侵入性有多大
- 一次会查询多少个节点?
理想情况下,有这样的可视化:
p2p - 什么是 P2P 和网状网络?任何人都可以帮助我吗?
现在我正在研究一个完全依赖点对点通信(即没有集中式服务器)而没有互联网连接的项目。上周我正在研究点对点,我开始了解网状网络的东西。它似乎类似于P2P。
我想知道P2P是网状网络概念的一部分还是它们是一样的?这两者有什么区别吗?
就我的研究而言,我真的很难找到我想要的东西。谁能用简单的方式解释一下?因为我一直得到的是相同的答案,而没有参考这两者之间的关系。
cloud - 具有主/从设置的网状网络
想象一下,有一个巨大的物理开放空间,里面有 100 多个物联网设备。它们都通过网状网络(adhoc wifi)相互连接,每个设备都有自己的数据。由于空间很大,wifi路由器/接入点只能达到100个节点中的10%,即10个节点。这 10 个节点被视为主节点,其余为从节点。奴隶可以拥有自己的奴隶,也称为次要主人。所以层次结构就像任何典型的组织。每个人都有一个主节点,只有 10% 的主节点可以访问互联网。
目标是从所有节点收集数据并将其推送到可以托管在 AWS 或任何其他云服务上的中央数据库。这意味着每个从站都必须将其数据传输给它的主站,并最终传输到可以将其推送到云端的前 10 位主站。
网状网络是否支持重新传输数据,或者是否有任何开源网状软件可以用于类似的事情?
python - 通过 xbee.send() 发送命令的协议是什么?
我想使用Digi XStick2 ZB(通过 USB 连接并在 上显示为串行接口/dev/ttyUSB0)作为 ZigBee 控制器,用于一堆 ZigBee 传感器和执行器(温度和湿度、接触传感器、漏水、电源插头……)。换句话说,我正在寻找配置网状网络并与传感器/执行器通信的方法。
我找到了python xbee并编写了一个简单的 python 脚本来与 U 盘进行通信:
它有效,我得到了一些对我的命令的响应:
但是我找不到任何关于使用的协议(即我可以发送的消息的内容)的任何信息 - 是否有一些我可以使用的命令参考或协议定义?
或者,是否有更简单的方法(更高级别的库?)通过 USB 记忆棒控制传感器?
