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?
wireless
ieee-802.11
linux
bandwidth
throughput
Vladimir Leiv
źródło
źródło
Odpowiedzi:
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.
źródło
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.
iw
mamcast-rate
opcję dla poleceńibss join
imesh join
.Ale jeśli zdarza się, że używasz całkiem nowego jądra,
iw
które obsługuje obaNL80211_CMD_SET_MCAST_RATE
, możesz to zmienić w dowolnym momencie i jest to tak proste, jakustawić 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.
źródło
W rzeczywistości można zmodyfikować szybkość transmisji, wymuszając szybkość na karcie sieci bezprzewodowej. W systemie Linux polecenie to:
źródło
iwconfig
jest 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.