Dlaczego moja komunikacja bezprzewodowa w ramach UDP Broadcast jest ograniczona do 1 MB?

10

Próbuję zaimplementować kodowanie sieciowe w sieci zamkniętej. Dlatego muszę wysyłać pakiety do kilku miejsc docelowych, w ten sposób korzystam z pakietów rozgłoszeniowych. Ale nie rozumiem, dlaczego jest to ograniczone do ~ 990 KB.

Czy jest jakaś konfiguracja do zrobienia?

Vladimir Leiv
źródło
Może wspomnieć, w jaki sposób generujesz pakiety i jaki to system operacyjny. Pytanie może być więcej w domu w
przepełnieniu stosu
4
@ytti, dla mnie to nie brzmi jak pytanie deweloperskie, ale w mojej opinii jest to bardzo wyraźnie pytanie dotyczące podstaw 802.11. Ale hej, mogłem się mylić (i jak wskazuje moja żona, często tak jest).
YLearn
Dodaj: odpowiednie konfiguracje, informacje o sprzęcie / oprogramowaniu wewnętrznym, a może schemat?
Mike Pennington

Odpowiedzi:

11

W sieci bezprzewodowej 802.11 (która, jak zakładam, jest twoja sprawa), zazwyczaj ramki rozgłoszeniowe / multiemisji (jak również wiele ramek zarządzania) są przesyłane z najniższą podstawową / podstawową / wymaganą (termin zależy od dostawcy) szybkością transmisji danych. Jest to niezależne od obsługiwanych prędkości transmisji danych.

Zazwyczaj dla najlepszego zasięgu i maksymalnej kompatybilności domyślnie jest to szybkość transmisji danych 1 Mb / s, chociaż w ciągu ostatnich kilku lat niektórzy dostawcy zwiększali tę wartość domyślną.

Niektórzy dostawcy zawierają teraz także konwersję multiemisji do emisji pojedynczej, która śledzi klientów multiemisji z pewną formą szpiegowania multiemisji, jednak nie znam podobnych środków do transmisji (urządzenie bezprzewodowe nie zna wszystkich klientów, których może potrzebować osiągnąć).

Jeśli mówisz o sieci kratowej ad-hoc, często nie masz nad tym kontroli w ustawieniach sterownika.

YLearn
źródło
7

Szybkość multiemisji musi być najniższym wspólnym mianownikiem, aby wszystkie urządzenia mogły ją z powodzeniem odbierać. Ramek multiemisji nie można potwierdzić [1], więc jeśli peer nie odbierze, nadawca nie będzie wiedział i nie będzie retransmitował ramki. Częstość strat powyżej 1% na odbiornika jest powszechna. Znacznie wyższe wskaźniki strat można oczekiwać, jeśli na tym samym kanale odbywa się duży ruch emisji pojedynczej.

Jeśli zwiększysz podstawową stawkę multiemisji, zwiększysz również współczynnik strat. Ale ponieważ masz łączyć natywne pakiety i wprowadzać redundancję, aby zrekompensować zwykły współczynnik strat, twoja sieć powinna być w stanie to przetrwać. Należy pamiętać, że ramki zarządzania multiemisją 802.11 (w tym sygnały nawigacyjne) nie są zaprojektowane do obsługi wysokich współczynników strat.

W systemie Linux większość sterowników mac802.11 powinna obsługiwać ustawianie szybkości multiemisji. Nie tak nowe jądra wymagają tego w czasie łączenia zarówno dla IBSS, jak i dla siatki. iwma mcast-rateopcję dla poleceń ibss joini mesh join.

Ale jeśli zdarza się, że używasz całkiem nowego jądra, iwktóre obsługuje oba NL80211_CMD_SET_MCAST_RATE, możesz to zmienić w dowolnym momencie i jest to tak proste, jak

iw dev wlanX set mcast_rate 6

ustawić szybkość transmisji grupowej 6 Mb / s.

[1] Może teraz mogą. Zaproponowano modyfikację standardu 802.11 w celu potwierdzenia ramek multiemisji: Wszystkie stacje, po pomyślnym odebraniu ramki multiemisji, wybiorą losowe wycofanie i wyślą potwierdzenie do nadajnika. Potwierdzenie może oczywiście kolidować, więc nadajnik prześle go ponownie i pozwoli na większe wycofywanie, dopóki wszystkie odbiorniki nie potwierdzą ramki.

BatchyX
źródło
1

W rzeczywistości można zmodyfikować szybkość transmisji, wymuszając szybkość na karcie sieci bezprzewodowej. W systemie Linux polecenie to:

sudo iwconfig wlan0 oceń 11M

Vladimir Leiv
źródło
3
iwconfigjest przestarzały. Wszystkie ioctle, których używa, są albo zhakowane, albo całkowicie sfałszowane, albo nawet nie ma operacji. W każdym razie to, co robi to polecenie, jest okropne. I nie jest to, co chcesz: ogranicza to dostępną stawkę, nie naprawia jej w żaden sposób. Nie jestem nawet pewien, czy to ustawienie przetrwa długo w przypadku IBSS.
BatchyX
2
Chociaż daje to efekt pozwalający na transmisję przekraczającą 1 Mb / s, nie jest to poprawna odpowiedź na postawione pytanie, a mianowicie: „Dlaczego transmisja bezprzewodowa jest ograniczona do 1 MB?”. To, co zrobiłeś, to powiedzieć bezprzewodowemu, aby działał tylko z jedną prędkością danych, i musi istnieć co najmniej jedna podstawowa / podstawowa / wymagana szybkość danych. Podczas zwiększania ruchu rozgłoszeniowego tracisz zdolność do obniżania szybkości transmisji danych (w celu utrzymania dobrego połączenia, gdy sygnał jest słabszy) lub do zwiększania szybkości transmisji danych (i to również wpływa na ruch emisji pojedynczej). Zasadniczo jest to szybka poprawka, która nie jest odpowiednia do prawdziwego świata.
YLearn