UDP-вещание не работает на некоторых маршрутизаторах?

429
Vexir

У меня есть игра, которая работает на мобильных устройствах и соединяет два из них с помощью UDP Broadcast и одновременно прослушивания и вещания. В большинстве домашних сетей WiFi это работает хорошо (корпоративные сети - другая история). Однако, на других, устройства просто не могут найти друг друга.

Я не очень хорошо разбираюсь в домашних сетях, чтобы понять, почему это так, но мне бы хотелось узнать некоторые возможные причины, чтобы я мог предоставить некоторые возможные исправления людям, у которых есть эта проблема.

0
Добро пожаловать в Супер пользователя; Пожалуйста, расскажите нам, что вы исследовали и как вы пытались решить эту проблему. Чем больше информации доступно, тем лучше. Пожалуйста, уделите пару минут и прочитайте: http: //superuser.com/help и https://superuser.com/help/how-to-ask, еще раз добро пожаловать в superuser.Thankyou mic84 6 лет назад 0
Используйте широковещательную / многоадресную рассылку только для обнаружения. Переключитесь на одноадресную или даже TCP после этого. Daniel B 6 лет назад 0
Открытие - это проблема. Игровая система знает, как использовать TCP после установления соединения. Vexir 6 лет назад 0

1 ответ на вопрос

1
Spiff

Есть много причин, по которым многоадресные передачи (включая широковещательные рассылки) ненадежны на дешевом оборудовании 802.11.

Поддержка многоадресной рассылки - сложная для реализации часть протокола 802.11, которую многие разработчики ошибаются, и их команды QA не могут ее отловить. То, как он взаимодействует с WPA / WPA2 и режимом энергосбережения 802.11, делает его еще более сложным. Это также не Ack'd, поэтому его нужно отправлять с низкой скоростью передачи данных (простая схема модуляции), чтобы помочь клиентам получить его более надежно.

Несколько вещей, чтобы попробовать:

  • Отключите «изоляцию клиента» на точке доступа.
  • Отключить WPA; используйте только чистый WPA2.
  • Настройте частоту многоадресной рассылки на точке доступа таким образом, чтобы она была достаточно низкой, чтобы все ее получали, но не настолько низкой, чтобы они занимали слишком много эфирного времени и начинали падать.
  • Уменьшите интервал DTIM на точке доступа до 1.
  • Убедитесь, что ваши многоадресные приемники правильно выполняют IGMP. В противном случае отключите IGMP Snooping на AP.
  • Переместите своих клиентов ближе к точке доступа.
  • Выберите более чистый канал.
  • Отключите режим энергосбережения 802.11 в дополнительных свойствах драйверов драйверов 802.11. За исключением этого, рассмотрите возможность запуска своих клиентов от сети переменного тока (некоторые клиенты реже используют режим энергосбережения, когда они не используют свои батареи).
  • Это решительная мера, но попробуйте убедиться, что все ваши клиенты находятся в одной полосе на одной точке доступа. Это может потребовать настройки каждой радиостанции каждой точки доступа для использования разных SSID.
  • Обновите прошивку AP до более качественной, даже если это означает, что дистрибутивы Linux-маршрутизатора похожи на LEDE.
  • Покупайте более качественное оборудование с хорошей репутацией для многоадресной передачи, например базовые станции Apple AirPort и другие продукты Apple (Bonjour, многоадресная рассылка, является очень важным протоколом для экосистемы Apple, поэтому Apple почти всегда понимает это правильно).

Для получения дополнительной информации, смотрите здесь: Почему некоторые маршрутизаторы WiFi блокируют многоадресные пакеты, идущие от проводного к беспроводному? (Этот ответ был написан для случая проводной и беспроводной связи, но также распространяется и на случай беспроводной связи.)

Это действительно полезно. Это слишком много потенциальных причин для того, чтобы я мог рекомендовать нетехническим пользователям, и теперь мне интересно, какие более эффективные методы локального подключения можно использовать. Очевидно, что есть Bluetooth, но мне интересно, в частности, о случае Wi-Fi. Я знаю, что у Apple есть платформа Multi-Peer Connectivity, так что, возможно, там есть что-то многообещающее. Vexir 6 лет назад 0

Похожие вопросы