UDP-Broadcasting funktioniert auf einigen Routern nicht?

486
Vexir

Ich habe ein Spiel, das auf mobilen Geräten läuft und zwei davon miteinander verbindet, indem es UDP-Broadcast verwendet und gleichzeitig zuhört und sendet. In den meisten WiFi-Heimnetzen funktioniert dies gut (Unternehmensnetzwerke sind eine andere Geschichte). Bei anderen Geräten können sich die Geräte jedoch nicht finden.

Ich bin im Home-Networking nicht gut genug versiert, um zu wissen, warum dies der Fall ist, aber ich würde gerne einige mögliche Ursachen erfahren, damit ich denjenigen, die dieses Problem haben, einige mögliche Korrekturen anbieten kann.

0
Willkommen bei Super User; Bitte teilen Sie uns mit, was Sie recherchiert haben und wie Sie versucht haben, das Problem zu lösen. Je mehr Informationen zur Verfügung stehen, desto besser. Bitte nehmen Sie sich ein paar Minuten und lesen Sie: http: //superuser.com/help und https://superuser.com/help/how-to-ask. Nochmals willkommen bei superuser.Thankyou mic84 vor 6 Jahren 0
Verwenden Sie Broadcast / Multicast nur für die Erkennung. Wechseln Sie danach zu Unicast oder sogar zu TCP. Daniel B vor 6 Jahren 0
Entdeckung ist das Problem. Das Spielsystem kann TCP verwenden, sobald die Verbindung hergestellt ist. Vexir vor 6 Jahren 0

1 Antwort auf die Frage

1
Spiff

Es gibt viele Gründe, warum Multicasts (einschließlich Broadcasts) auf billigem 802.11-Gerät unzuverlässig sind.

Multicast-Unterstützung ist ein komplizierter Teil des 802.11-Protokolls, den viele Implementierer falsch verstehen und von ihren QA-Teams nicht erkannt werden. Die Art und Weise, wie es mit dem WPA / WPA2- und dem 802.11-Energiesparmodus interagiert, macht es noch schwieriger. Es ist auch nicht Ack'd, daher muss es mit einer niedrigen Datenrate (einfaches Modulationsschema) gesendet werden, damit Clients es zuverlässiger erhalten können.

Einige Dinge zu versuchen:

  • Deaktivieren Sie "Client Isolation" auf dem AP.
  • WPA deaktivieren Verwenden Sie nur reines WPA2.
  • Passen Sie Ihre Multicast-Rate auf dem AP so an, dass sie niedrig genug ist, damit jeder sie bekommt, aber nicht so niedrig, dass sie zu viel Sendezeit benötigen und fallen gelassen werden.
  • Senken Sie Ihr DTIM-Intervall auf dem AP auf 1.
  • Stellen Sie sicher, dass Ihre Multicast-Empfänger IGMP ordnungsgemäß ausführen. Andernfalls deaktivieren Sie IGMP-Snooping auf dem AP.
  • Bringen Sie Ihre Kunden näher an den AP.
  • Wähle einen saubereren Kanal.
  • Deaktivieren Sie den 802.11-Energiesparmodus in den erweiterten Treibereigenschaften Ihrer 802.11-Treiber. Wenn dies nicht der Fall ist, sollten Sie Ihre Kunden von der Stromversorgung trennen (einige Kunden verwenden den Energiesparmodus seltener, wenn sie ihre Batterien nicht verwenden).
  • Dies ist eine drastische Maßnahme, aber stellen Sie sicher, dass sich alle Ihre Kunden in derselben Band auf demselben AP befinden. Dies erfordert möglicherweise die Konfiguration jedes Funkgeräts für jeden AP, um eine andere SSID zu verwenden.
  • Aktualisieren Sie auf eine bessere AP-Firmware, auch wenn dies Linux-Distributionen wie LEDE bedeutet.
  • Kaufen Sie bessere Geräte mit einem guten Ruf für den Umgang mit Multicast-Geräten wie Apple AirPort-Basisstationen und anderen Apple-Produkten.

Weitere Informationen finden Sie hier: Warum blockieren einige WLAN-Router Multicast-Pakete, die von drahtgebunden zu drahtlos übertragen werden? (Diese Antwort wurde für den Fall drahtgebunden zu drahtlos geschrieben, gilt jedoch auch für den Fall drahtlos zu drahtlos.)

Das ist sehr hilfreich. Dies sind viel zu viele potenzielle Gründe, die ich an nichttechnische Benutzer weiterempfehlen kann, und jetzt frage ich mich, welche besseren Methoden der lokalen Konnektivität verwendet werden können. Natürlich gibt es Bluetooth, aber ich frage mich speziell nach dem WLAN-Fall. Ich weiß, dass Apple ein Multi-Peer-Konnektivitäts-Framework hat, also gibt es dort etwas vielversprechendes. Vexir vor 6 Jahren 0