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?
wireless
ieee-802.11
linux
bandwidth
throughput
Vladimir Leiv
quelle
quelle
Antworten:
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.
quelle
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.
iw
hat einemcast-rate
Option für den Befehlibss join
undmesh join
.Wenn Sie jedoch einen relativ neuen Kernel ausführen und
iw
beide unterstützenNL80211_CMD_SET_MCAST_RATE
, können Sie ihn jederzeit ändern, und das ist so einfach wieum 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.
quelle
Es ist tatsächlich möglich, die Bitrate zu ändern, indem die Rate auf der drahtlosen Karte erzwungen wird. Unter Linux lautet der Befehl:
quelle
iwconfig
ist 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.