Warum ist meine drahtlose UDP-Broadcast-Kommunikation auf 1 MB begrenzt?

10

Ich versuche, die Netzwerkcodierung über ein vermaschtes Netzwerk zu implementieren. Daher muss ich Pakete an mehrere Ziele senden. Auf diese Weise verwende ich Broadcast-Pakete. Aber ich kann nicht verstehen, warum dies auf ~ 990 KB begrenzt ist.

Gibt es eine Konfiguration zu tun?

Vladimir Leiv
quelle
Erwähnen Sie vielleicht, wie Sie die Pakete generieren und um welches Betriebssystem es sich handelt. Frage könnte mehr zu Hause in Stackoverflow sein
ytti
4
@ytti, für mich klingt dies nicht nach einer Entwicklerfrage, sondern ist in meinen Augen ganz klar eine 802.11-Grundfrage. Aber hey, ich könnte mich irren (und wie meine Frau betont, bin ich es oft).
YLearn
Bitte hinzufügen: relevante Konfigurationen, HW / Firmware-Informationen und möglicherweise ein Diagramm?
Mike Pennington

Antworten:

11

In 802.11 Wireless (von dem ich annehme, dass es Ihr Fall ist) werden Broadcast- / Multicast-Frames (sowie viele Management-Frames) normalerweise mit der niedrigsten Basis- / Basis- / erforderlichen Datenrate (Laufzeit variiert je nach Anbieter) übertragen. Dies ist unabhängig von den unterstützten Datenraten.

Um die beste Reichweite und maximale Kompatibilität zu erzielen, wird standardmäßig die Datenrate von 1 Mbit / s verwendet, obwohl einige Anbieter in den letzten Jahren diese Standardeinstellung erhöht haben.

Einige Anbieter bieten jetzt auch eine Multicast-zu-Unicast-Konvertierung an, mit der Multicast-Clients mit einer Form von Multicast-Snooping verfolgt werden. Ich kenne jedoch keine ähnlichen Mittel für die Übertragung (ein drahtloses Gerät kann nicht alle Clients kennen, die es möglicherweise benötigt erreichen).

Wenn es sich um ein Ad-hoc-Mesh-Netzwerk handelt, haben Sie in den Treibereinstellungen häufig keine Kontrolle darüber.

YLearn
quelle
7

Die Multicast-Rate muss der kleinste gemeinsame Nenner sein, damit alle Geräte sie erfolgreich empfangen können. Multicast-Frames können nicht bestätigt werden [1]. Wenn ein Peer sie nicht empfängt, weiß der Absender dies nicht und überträgt den Frame nicht erneut. Verlustraten von mehr als 1% pro Empfänger sind üblich. Viel höhere Verlustraten sind zu erwarten, wenn auf demselben Kanal starker Unicast-Verkehr stattfindet.

Wenn Sie die Basis-Multicast-Rate erhöhen, erhöhen Sie auch die Verlustrate. Da Sie jedoch native Pakete kombinieren und Redundanz einführen müssen, um die reine Verlustrate auszugleichen, sollte Ihr Netzwerk in der Lage sein, dies zu überleben. Beachten Sie, dass Multicast-802.11-Verwaltungsrahmen (einschließlich Beacons) nicht für hohe Verlustraten ausgelegt sind.

Unter Linux sollten die meisten Mac802.11-Treiber das Festlegen der Multicast-Rate unterstützen. Nicht so aktuelle Kernel erfordern, dass dies zum Zeitpunkt der Verknüpfung sowohl für IBSS als auch für Mesh erfolgt. iwhat eine mcast-rateOption für den Befehl ibss joinund mesh join.

Wenn Sie jedoch einen relativ neuen Kernel ausführen und iwbeide unterstützen NL80211_CMD_SET_MCAST_RATE, können Sie ihn jederzeit ändern, und das ist so einfach wie

iw dev wlanX set mcast_rate 6

um eine 6-Mbit / s-Multicast-Rate festzulegen.

[1] Vielleicht können sie es jetzt. Es wurde eine Änderung des 802.11-Standards vorgeschlagen, um Multicast-Frames zu bestätigen: Alle Stationen würden nach erfolgreichem Empfang eines Multicast-Frames ein zufälliges Backoff auswählen und eine Bestätigung an den Sender senden. Acks könnten natürlich kollidieren, so dass der Sender sie erneut senden und größere Backoffs zulassen würde, bis alle Empfänger den Frame erfolgreich bestätigt haben.

BatchyX
quelle
1

Es ist tatsächlich möglich, die Bitrate zu ändern, indem die Rate auf der drahtlosen Karte erzwungen wird. Unter Linux lautet der Befehl:

sudo iwconfig wlan0 rate 11M

Vladimir Leiv
quelle
3
iwconfigist obsolet. Alle verwendeten Ioctls sind entweder gehackt oder vollständig gefälscht oder sogar No-Ops. Wie auch immer, was dieser spezielle Befehl tut, ist schrecklich. Und ist nicht das, was Sie wollen: Dies begrenzt die verfügbare Rate, es behebt sie in keiner Weise. Und ich bin mir nicht einmal sicher, ob diese Einstellung bei IBSS noch lange anhält.
BatchyX
2
Dies hat zwar den Effekt, dass Ihre Broadcasts 1 Mbit / s überschreiten können, ist jedoch keine korrekte Antwort auf die gestellte Frage: "Warum ist Broadcast Wireless auf 1 MB begrenzt?" Was Sie getan haben, ist, das WLAN anzuweisen, nur mit einer Datenrate zu arbeiten, und es muss mindestens eine Basis- / Basis- / erforderliche Datenrate vorhanden sein. Während Sie einen höheren Broadcast-Verkehr erhalten, verlieren Sie die Möglichkeit, die Datenraten zu senken (um eine gute Verbindung aufrechtzuerhalten, wenn das Signal schwächer ist) oder die Datenraten zu erhöhen (und dies wirkt sich auch auf den Unicast-Verkehr aus). Im Wesentlichen ist dies eine schnelle Lösung, die für die reale Welt nicht geeignet ist.
YLearn