2

我已经用谷歌搜索了这个话题,但我仍然需要帮助。stackoverflow 上有类似的问题,但没有一个完全匹配(也没有很好的答案)。

我想编写一个程序(如果它不存在并且可能的话),它允许 Windows 7+ 用户使用单个 WiFi 适配器配置一个 ad-hoc 网状网络,然后以某种方式允许类似于普通互联网连接的连接每个节点。额外的好处是,如果手机等设备不需要额外的软件,但可以连接到一个或多个网状节点,就好像它是标准接入点一样。

我不知道该怎么做,但我认为:

  1. 可以使用 Windows Wireless-ADHOC API 以编程方式将单个无线网卡配置为在 adhoc 模式下运行
  2. Ad hoc 模式通常不包括基础设施模式,除非适配器的驱动程序支持它,因此从节点到真实互联网的连接需要第二个适配器。
  3. 我们的程序将拥有/需要对 WiFi 适配器的独占控制。
  4. Mesh 方面是通过诸如 Babel 之类的路由协议独立于 adhoc 连接来实现的。
  5. 必须通过我们的程序创建的一些新的虚拟适配器来提供 Internet。(这个新适配器扮演什么角色,使它成为任何网络感知程序应该选择咨询互联网访问的适配器?)
  6. 如果一个节点上有一个真正的互联网连接可用,则该节点将通过 Babel 实现将其共享给网格上的其他节点
  7. 无论是否可以从任何节点访问互联网,都不确定网格本身可以托管哪些服务。如何提供资源/域名解析?
  8. 如果当前节点有互联网,任何对互联网资源的请求都将直接通过它,而网格内的任何资源都将通过 Babel。如果该节点丢失了直接互联网,则所有流量都将通过 Babel。假设我们的程序编写正确,是否需要对此进行编程,或者 Windows 网络堆栈是否知道如何处理?
  9. 由于这是 Windows 7+,IPv6 是在网格中寻址节点的合法选择,但是,并非所有 Internet 连接都支持 IPv6。有些可能。我们如何从网状段定义互联网段?
  10. 网格可以任意大,Babel 和其他组件将能够以良好的带宽、低内存使用和最佳路径收敛来处理它。

很明显,我没有实际完成这个项目的背景,但我想了解解决方案的概要。您能否评论大纲的正确之处,缺失/错误之处?由于新技术的出现,哪些概念是不必要或过时的?

一个节点操作起来有多简单?每个节点对攻击它们的其他节点的安全性如何?毒化网络流量和路由?

我读过一些尝试在 Linux 上实现类似目标的项目,但在 Windows 上却没有。对车辆和应急响应人员进行了一些讨论,但这是不同的。飓风桑迪激起了我的兴趣,即在城市连接广泛中断的情况下,流行住宅操作系统的连接性。当许多人的电力和通信系统不可用时,网状网络可以提供帮助。

几乎所有网格参与者都不会提前配置他们的节点。相反,他们可能会在他们的无线网络出现故障时寻找其他人的无线网络,并找到 SSID“免费紧急 Mesh WiFi”并进行连接。与热点一样,他们将看到一个代理登录页面,该页面解释了该项目并提供了一个安装链接,如果他们想参与的话。如果没有,他们仍然可以作为客户端连接到网格“接入点”。

4

1 回答 1

3

问题是您基本上要求将单个 WiFi 无线电同时置于三种不同的模式。为了让节点与其他节点通信,它需要处于 Ad-Hoc 模式。为了与接入点 (AP) 通话以进行 Internet 访问,它需要处于基础架构模式。为了让手机连接,它们中的大多数不支持 Ad-Hoc 网络,因此您还需要将节点置于主模式(使它们显示为普通接入点)。因此,在一张 WiFi 卡上,您正试图兼顾三种不同的操作模式。理论上,如果您拥有的卡和驱动程序支持原始帧注入,那么您可能能够在您的应用程序中模拟 WiFi 和网络堆栈,并在一张卡上兼顾所有三种模式,但我有一种感觉会导致非常高碰撞率,

可能吗?当然。这是一个实用的想法吗?并不真地。您最好使用华硕 USB-N10 等小型/廉价 WiFi 适配器扩展笔记本电脑。额外的适配器可以处理额外的模式,在固件和内核空间中进行更快、更高效的处理,并允许您在单独的通道上运行网络的每一层以获得更高的吞吐量。

于 2012-10-29T23:55:11.017 回答