2012-10-29 75 views
2

我已经使用了这个主题,但我仍然需要帮助。在stackoverflow上有类似的问题,但没有一个匹配确切(他们也没有很好的答案)。Windows adhoc网状网络

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

我不知道如何做到这一点,但我认为:

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

这很清楚,我没有实际完成此项目的背景,但我想了解解决方案的大纲。你能否评论大纲的正确性,什么是缺失/错误?由于新技术的出现,什么概念是不必要的或过时的?

节点的操作有多简单?每个节点对其他节点的攻击有多安全?中毒网络流量&路由?

我已阅读过有关为Linux尝试类似目标的项目,但没有针对Windows的当前项目。对车辆和应急响应者进行一些讨论,但这是不同的。我的兴趣是,由飓风桑迪激起的,在广泛的城市连接中断情况下连接到流行的住宅操作系统。当许多电力和通信系统不可用时,网格可以提供帮助。

几乎所有的mesh参与者都没有提前配置它们的节点。相反,他们可能会在他们停下来寻找其他无线网络并找到SSID“Free Emergency Mesh WiFi”并连接。与热点一样,他们将看到一个代理登录页面,解释项目并提供一个安装链接,如果他们想参与。如果不是,他们仍然可以连接到作为客户端的网状“接入点”。

回答

3

问题是,你基本上要求将一个WiFi无线电同时放入三种不同的模式。为了使节点与其他节点对话,它需要处于Ad-Hoc模式。为了与接入点(AP)进行互联网访问,需要使用基础架构模式。为了使手机连接起来,其中大多数不支持Ad-Hoc网络,因此您还需要将节点置于主模式(使它们显示为正常接入点)。因此,在一张WiFi卡上,您试图采用三种不同的操作模式。理论上,如果卡和驱动程序支持原始帧注入,那么您可能能够在应用程序中模拟WiFi和网络堆栈,并将所有三种模式混合在一张卡上,但我有一种感觉会导致非常高的碰撞速度,丢失帧数,高延迟以及所有额外的CPU周期都会在您的电池上烧毁,如果您在笔记本电脑上运行该功能。

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

+0

(第2点允许第二个可能是硬连线的适配器用于互联网连接)。 –

+0

好的见解。好的,但是如果只有一个适配器可用,在原始模式下是否会支持这些模式的用户采用值,但是广告说 - “嘿,下一次,第二个甚至第三个适配器会提高性能”? –

+1

我真的不这么认为。网状网络已经具有相当薄弱的声誉,所以采用缓慢挑剔的解决方案可以强化对人们的负面定型,并且不会尝试其他配置。他们会说,“看,我知道网状网络无法工作!” 在尝试打击神话并将网状网络作为可行解决方案进行销售方面拥有第一手经验,我的建议是不要打扰提供最好的产品。批评者将采取最懒惰的方式来审查你的项目,并宣布每一个缺点,证明它永远不能工作。 – Sitwon