我已经用谷歌搜索了这个话题,但我仍然需要帮助。stackoverflow 上有类似的问题,但没有一个完全匹配(也没有很好的答案)。
我想编写一个程序(如果它不存在并且可能的话),它允许 Windows 7+ 用户使用单个 WiFi 适配器配置一个 ad-hoc 网状网络,然后以某种方式允许类似于普通互联网连接的连接每个节点。额外的好处是,如果手机等设备不需要额外的软件,但可以连接到一个或多个网状节点,就好像它是标准接入点一样。
我不知道该怎么做,但我认为:
- 可以使用 Windows Wireless-ADHOC API 以编程方式将单个无线网卡配置为在 adhoc 模式下运行
- Ad hoc 模式通常不包括基础设施模式,除非适配器的驱动程序支持它,因此从节点到真实互联网的连接需要第二个适配器。
- 我们的程序将拥有/需要对 WiFi 适配器的独占控制。
- Mesh 方面是通过诸如 Babel 之类的路由协议独立于 adhoc 连接来实现的。
- 必须通过我们的程序创建的一些新的虚拟适配器来提供 Internet。(这个新适配器扮演什么角色,使它成为任何网络感知程序应该选择咨询互联网访问的适配器?)
- 如果一个节点上有一个真正的互联网连接可用,则该节点将通过 Babel 实现将其共享给网格上的其他节点
- 无论是否可以从任何节点访问互联网,都不确定网格本身可以托管哪些服务。如何提供资源/域名解析?
- 如果当前节点有互联网,任何对互联网资源的请求都将直接通过它,而网格内的任何资源都将通过 Babel。如果该节点丢失了直接互联网,则所有流量都将通过 Babel。假设我们的程序编写正确,是否需要对此进行编程,或者 Windows 网络堆栈是否知道如何处理?
- 由于这是 Windows 7+,IPv6 是在网格中寻址节点的合法选择,但是,并非所有 Internet 连接都支持 IPv6。有些可能。我们如何从网状段定义互联网段?
- 网格可以任意大,Babel 和其他组件将能够以良好的带宽、低内存使用和最佳路径收敛来处理它。
很明显,我没有实际完成这个项目的背景,但我想了解解决方案的概要。您能否评论大纲的正确之处,缺失/错误之处?由于新技术的出现,哪些概念是不必要或过时的?
一个节点操作起来有多简单?每个节点对攻击它们的其他节点的安全性如何?毒化网络流量和路由?
我读过一些尝试在 Linux 上实现类似目标的项目,但在 Windows 上却没有。对车辆和应急响应人员进行了一些讨论,但这是不同的。飓风桑迪激起了我的兴趣,即在城市连接广泛中断的情况下,流行住宅操作系统的连接性。当许多人的电力和通信系统不可用时,网状网络可以提供帮助。
几乎所有网格参与者都不会提前配置他们的节点。相反,他们可能会在他们的无线网络出现故障时寻找其他人的无线网络,并找到 SSID“免费紧急 Mesh WiFi”并进行连接。与热点一样,他们将看到一个代理登录页面,该页面解释了该项目并提供了一个安装链接,如果他们想参与的话。如果没有,他们仍然可以作为客户端连接到网格“接入点”。