Windows adhoc mesh сеть

Я погуглил эту тему, но мне все еще нужна помощь. Есть похожие вопросы по stackru, но ни один из них не соответствует точным (и не дает хороших ответов).

Я хочу написать программу (если она еще не существует и если это возможно), которая позволяет пользователям Windows 7+ настраивать специализированную ячеистую сеть с использованием одного адаптера WiFi, а затем каким-то образом обеспечивает подключение, аналогичное обычному подключению к Интернету, для каждый узел. Бонус в том случае, если такие устройства, как телефоны, не нуждаются в дополнительном программном обеспечении, но могут подключаться к одному или нескольким узлам сетки, как если бы это была стандартная точка доступа.

Я не знаю, как это сделать, но я думаю:

  1. Одна беспроводная карта может быть настроена для работы в режиме adhoc программно с помощью API-интерфейса Windows Wireless-ADHOC
  2. Режим Ad hoc обычно исключает инфраструктурный режим, если драйвер адаптера не поддерживает его, поэтому для подключения узла к реальному Интернету потребуется второй адаптер.
  3. Наша программа будет иметь / нуждается в эксклюзивном управлении WiFi-адаптером.
  4. Ячеистый аспект достигается независимо от соединения по принципу adhoc с помощью протокола маршрутизации, такого как Babel.
  5. Интернет должен быть предоставлен через какой-то новый виртуальный адаптер, созданный нашей программой. (Какую роль играет этот новый адаптер, который делает его адаптером, который любая сетевая программа должна выбрать для доступа к Интернету?)
  6. Если реальное интернет-соединение доступно на узле, оно будет использоваться этим узлом для других узлов сетки через реализацию Babel.
  7. Доступен ли Интернет с любого узла, не уверен, какие сервисы могут быть размещены в самой сети. Как обеспечивается разрешение ресурса / доменного имени?
  8. Если у текущего узла есть Интернет, любые запросы к интернет-ресурсам будут проходить напрямую через него, а любые ресурсы в сетке - через Бабель. Если этот узел потеряет прямой интернет, весь трафик будет проходить через Babel. Это нужно запрограммировать или сетевой стек Windows знает, как с этим справиться, если наша программа написана правильно?
  9. Поскольку это Windows 7+, IPv6 является законным выбором для адресации узлов в сетке, однако ожидается, что не все интернет-соединения будут поддерживать IPv6. Некоторые могут. Как мы определяем сегмент интернета из сегмента сетки?
  10. Сетка может быть произвольно большой, и Babel и другие компоненты смогут справиться с ней с хорошей пропускной способностью, низким использованием памяти и оптимальной конвергенцией пути.

Ясно, что у меня нет опыта, чтобы фактически завершить этот проект, но я бы хотел понять схему решения. Можете ли вы прокомментировать, что правильно в плане, что отсутствует / неправильно? Какие концепции являются ненужными или устаревшими из-за появления новых технологий?

Насколько простым может быть узел для работы? Насколько защищен каждый узел от атакующих их других узлов? Отравление сетевого трафика и маршрутизация?

Я читал о проектах, которые преследуют аналогичные цели для Linux, но ничего не актуально для Windows. Некоторые обсуждения автомобильного и аварийного реагирования, но это разные. Мой интерес, вызванный ураганом "Сэнди", связан с подключением к популярным жилым операционным системам в ситуациях широко распространенных городских отключений. Когда системы питания и связи для многих недоступны, сетка может помочь.

Почти все участники меша не будут заранее настраивать свои узлы. Вместо этого они могут искать другие беспроводные сети, когда их сети не работают, и находить SSID "Free Emergency Mesh WiFi" и подключаться. Как и в случае с горячими точками, им будет предоставлена ​​прокси-страница входа в систему, которая объясняет проект и предлагает ссылку для установки, если они хотят участвовать. Если нет, они все равно могут подключаться к "точке доступа" сетки в качестве клиента.

1 ответ

Решение

Проблема в том, что вы в основном просите включить одно радио WiFi в три разных режима одновременно. Чтобы узел мог общаться с другими узлами, он должен находиться в режиме Ad-Hoc. Чтобы говорить с точкой доступа (AP) для доступа в Интернет, это должно быть в режиме Инфраструктуры. Чтобы мобильные телефоны могли подключаться, большинство из них не поддерживают сети Ad-Hoc, поэтому вам также необходимо перевести свои узлы в основной режим (чтобы они выглядели как обычные точки доступа). Таким образом, на одной WiFi-карте вы пытаетесь манипулировать тремя различными режимами работы. Теоретически, если у вас есть карта и драйверы, которые поддерживают непосредственную инжекцию кадров, вы можете эмулировать стеки WiFi и сети в своем приложении и манипулировать всеми тремя режимами на одной карте, но у меня есть ощущение, что это приведет к очень высокой Частота коллизий, потерянных кадров, высокая задержка и все дополнительные циклы ЦП могут прожечь вашу батарею, если вы используете это на ноутбуке.

Является ли это возможным? Конечно. Это практическая идея? На самом деле, нет. Вам лучше дополнить ноутбук маленькими / дешевыми WiFi-адаптерами, такими как ASUS USB-N10. Дополнительные адаптеры могут обрабатывать дополнительные режимы, выполнять обработку во встроенном программном обеспечении и в пространстве ядра, где это происходит быстрее и эффективнее, и позволяют запускать каждый уровень сети на отдельном канале для НАМНОГО более высокой пропускной способности.

Другие вопросы по тегам