Embedded

Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Luty 17, 2021 0
Podziel się:

Jednym z najszybciej rozwijających się standardów w telekomunikacji (pomijając 5G) jest IEEE 802.11.

Pierwszy standard został opublikowany w 1997 roku, nazwany po prostu 802.11 (czasem zwany 802.1y) przez IEEE LAN/MAC Standards Committee, a do dnia dzisiejszego powstało kilkadziesiąt jego rozszerzeń. Powszechnie przyjęło się jednak nazywanie standardu 802.11 jako WiFi, a zamiast rozszerzenia 802.11ax używa się po prostu nazwy WiFi 6. Niektóre typy sieci WiFi zyskały również swoja popularność ze względu na brak infrastruktury (sieci ad-hoc, zdecentralizowane lub tymczasowe). Dodatkowo zaletą takich sieci jest prostota jej konfiguracji, nawet dla całkowitych laików, w kontraście do sieci zarządzanych, gdzie sama konfiguracja punktu dostępowego oraz pojedynczego terminala (urządzenia końcowego np. komputera) wymaga specjalistycznej wiedzy. Brak jednostki centralnej (zarządzającej) powoduje wymuszenie na sieci samoorganizacji. W związku z tym, wprowadzono funkcje DCF (Distributed Coordination Function) w warstwie łącza danych MAC (Medium Access Control). Jednak zastosowanie w funkcji DCF mechanizmów wielodostępu CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) do unikania kolizji, nie rozwiązuje problemu stacji ukrytych.

PROBLEM STACJI UKRYTYCH

W lokalnych sieciach bezprzewodowych możliwe jest wysyłanie wiadomości tylko w jednym kierunku w jednym czasie (half-duplex). Podczas próby transmisji symultanicznej następuje kolizja. W takich sytuacjach wydajność sieci spada. Dlatego, aby poprawić wydajność, wprowadzono mechanizm obustronnego potwierdzania transmisji opartego na wymianie ramek kontrolnych RTS/CTS (Request to Send/Clear to Send). Mechanizm ten znacznie zmniejsza ilość kolizji w sieci, jednak w sieciach gęstych, w których stacji jest bardzo dużo, mechanizm ten jest niewydajny. Lepszym sposobem jest stosowanie zmiennego poziomu wykrywania nośnej. Powoduje to celowe ukrywanie stacji (CCA (Clear Channel Assessment) (w dalszej części artykułu zostanie opisane jak to wypływa na wydajność). Spójrzmy na rysunek 1, by lepiej zrozumieć problem stacji ukrytych.

zdjecia na bloga - Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Rysunek 1. Sieć z węzłami ukrytymi dla dwóch poziomów wykrywania nośnej

W przypadku A, stacja STA1 i STA3 znajdują się w zasięgu wykrywania stacji STA2, natomiast STA4 jest poza zasięgiem. Analogicznie dla stacji STA3, STA2 i STA4 znajdują się w zasięgu, a STA1 jest poza zasięgiem. W sieci tej zrealizowano transmisję STA4 → STA3 oraz równocześnie STA2 → STA3.

Nastąpiła kolizja, ponieważ transmisja STA4 → STA3 nie była widoczna dla stacji STA2, która również podjęła próbę transmisji do stacji STA3. Wystąpić może również przypadek, w którym ma miejsce transmisja STA4 → STA3 oraz równocześnie transmisja STA1 → STA2. Ponieważ stacja STA2 nie widzi transmisji STA4 → STA3, a stacja STA3 nie widzi transmisji STA1 → STA2, obie transmisje są zrealizowane w sposób poprawny. W celu uniknięcia sytuacji pierwszej wprowadzono mechanizm four-way-handshake oparty na wymianie ramek RTS/CTS (wspomniany wcześniej). Stosując ten mechanizm, stacja STA4 przed rozpoczęciem transmisji nadaje ramkę rezerwacji kanału RTS do stacji STA3. Stacja STA3 wysyła ramkę potwierdzenia rezerwacji CTS do STA4 oraz STA2. W tym momencie STA2 nie może transmitować danych do stacji STA3, ponieważ nie zostało przyznane jej prawo do nadawania.

Innym mechanizmem umożliwiającym wykrywanie możliwości zaistnienia kolizji jest regulacja poziomu wykrywania nośnej. Na rys. 1. zostały umieszczone obszary A oraz B. Oznaczają one różne wartości poziomu wykrywania nośnej. W sytuacji, gdy stacja STA2 ma ustawiony poziom wykrywania nośnej na przypadek B, wtedy stacja STA4 znajduje się w zasięgu stacji STA2, dzięki czemu stacje nie są wzajemnie dla siebie ukryte. Wówczas podczas wykonania transmisji STA4 → STA3, stacja STA2 nie podejmie próby wykonania transmisji STA2 → STA3. Wykonanie tej transmisji w przypadku B będzie bardziej efektywne, niż wykonanie transmisji z mechanizmem four-way-handshake, ponieważ zmniejszony zostanie narzut protokołu. Niemniej jednak w przypadku B pojawia się inne zestawienie stacji ukrytych STA1 oraz STA4. W tej sytuacji jakakolwiek próba nawiązania połączenia przez stacje STA1 spowoduje kolizję z transmisją STA4 → STA3. Poza tym nie możliwe będzie zrealizowanie transmisji STA4 → STA3 i STA1 → STA2 równocześnie. Jest to spowodowane tym, że zwiększenie lub zmniejszenie poziomu nośnej nie zawsze powoduje oczekiwany wzrost ogólnej wydajność pracy sieci. Zwiększenie poziomu wykrywania nośnej zawsze zmniejsza liczbę kolizji, ponieważ zmniejsza relatywną liczbę stacji ukrytych.

WYDAJNOŚĆ

W celu sprawdzenia wpływu stacji ukrytych oraz zmian poziomu nośnej na wydajność w sieci sporządza się symulacje. Aby lepiej to zrozumieć zapoznajmy się z poniższym rysunkiem.

2 e1613405309601 - Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Rysunek 2. Topologia użyta w celu zbadania wydajności.

W topologii znajduje się 9 stacji ustawionych w linii oddalonych od siebie o 20m. Przykładem takiej sieci jest sieć kratowa (mesh). Potencjalny zasięg sieci WLAN to 100m, natomiast w tym przypadku zastosowano tłumienia kanału jednorodne. Symulacje zostały sporządzone za pomocą środowiska symulacyjnego NS-3 w wersji 3.21. Stacje zostały skonfigurowane tak, aby generowały ruch UDP w klasie Best effort. Sieć samoorganizuje się ad-hoc, co powoduje że nie ma jednostki zarządzającej. Każda stacja transmituje ramki o długości 1kB bezpośrednio do swojego sąsiada. Sieć działa w konfiguracji maksymalnej prędkości 54Mb/s. Moc stacji została ustawiona na 10dBm (10mW czyli 10% mocy maksymalnej). Aby zobrazować wpływ rożnych mechanizmów, przeprowadzono symulacje dla 4 poziomów wykrywania nośnej. W każdym kroku symulacji zwiększany był ruch oferowany poprzez stacje aż do poziomu nasycenia sieci. Poniżej widzimy tabelę przedstawiającą poziomy tłumienia pomiędzy stacjami w dB.

3 - Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Następnie możemy zapoznać się z wykresami ruchu realizowanego w funkcji ruchu oferowanego dla każdej z 9 stacji z wyłączonym mechanizmem RTS/CTS dla CCA równym a)-71 dBm; b)-74 dBm; c) -77 dBm; d) -80 dBm.

4 e1613405446261 - Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Z powyższych wyników symulacji wynika, że dla stacji STA1 oraz STA2 nasycenie zostaje osiągnięte znacznie później, ponieważ mają tylko jednego bezpośredniego sąsiada. Natomiast można zauważyć bezpośrednią korelację pomiędzy położeniem stacji w sieci, a jej wydajnością (stacje o identycznym oddaleniu od stacji środkowej STA5 charakteryzują się podobną wydajnością). Dodatkowo, w zależności od poziomu wykrywania nośnej zmieniają się stacje o największej oraz najmniejszej wydajności. Niemniej jednak, najważniejsza powinna być wydajność całej sieci.

5 e1613405474708 - Problem ukrytych stacji w sieciach WiFi a wydajność, czyli dlaczego czasem WiFi działa bardzo wolno

Rysunek 3. Wykres ruchu realizowanego w funkcji ruchu oferowanego w sieci z włączonym i wyłączonym mechanizmem RTS/CTS

Na rysunku 3. przedstawiono wydajność całej sieci. Najmniejszą wydajność sieć osiągała w przypadku z wyłączonym mechanizmem RTS/CTS i poziomem wykrywania nośnej -70 dBm i wynosiła ona około 40 Mb/s w stanie nasycenia. W tej sytuacji, występuje największa liczba stacji ukrytych w całej sieci. Uruchomienie mechanizmu RTS/CTS poprawiło wydajność sieci aż o 25% (do 50 Mb/s). Przypadkiem, w którym występuje największa wydajność sieci, jest przypadek z poziomem wykrywania nośnej -74 dBm i wyłączonym mechanizmem RTS/CTS. Zwiększenie poziomu wykrywania nośnej o 4 dB poprawiło wydajność sieci o 15 Mb/s (ponad 30%).

PODSUMOWANIE

Znajomości problemu stacji ukrytych oraz świadomość jak sobie z nim radzić, jest niezmiernie istotne dla sieci WLAN. Często bywa tak, że w mieszkaniach w blokach mieszkalnych wydajność sieci WLAN drastycznie spada, ze względu na kolizje i źle skonfigurowane sieci. Dlatego aby podnieść wydajność sieci można:

  • Zmienić kanał naszej sieci
  • Zmienić moc naszego access pointa (routera)

Nie ma jednak jednoznacznej odpowiedzi czy zwiększyć czy zmniejszyć moc. Niemal każdy przypadek sieci wifi jest unikatowy. Pomieszczenia maja rożny kształt, ściany są z różnych materiałów itp. Każdy taki obiekt lub nawet ustawienie naszego access pointa ma bezpośredni wpływ na warunki propagacyjne fali radiowej. Dlatego należy eksperymentować z ustawieniami mocy. Kolejnym ważnym krokiem jest zaobserwowanie jakie inne sieci są dla nas widoczne oraz na jakich kanałach są one ustawione. Można do tego wykorzystać aplikacje na system android WiFi Analyzer. Po ustaleniu, który kanał jest najmniej obłożony sieciami ustawić nasz router właśnie na taki kanał. Dzięki temu nasze urządzenia będą rywalizowały o dostęp do danej częstotliwości pracy sieci ze znacznie mniejszą ilością obcych urządzeń.

Ze względu na częstą prace zdalną, spadki wydajności są aktualnie powszechnie obserwowane, dlatego można zadbać samodzielnie o wzrost wydajności swojej sieci, a co za tym idzie również jakości pracy.

4.7 / 5
Kategorie: Embedded
Grzegorz Ząbkowicz
Autor: Grzegorz Ząbkowicz
Inżynier ds. Oprogramowania w dziale Centrum Kompetencyjnym Embedded w Sii. Posiada 8 lat komercyjnego doświadczenia w rozwoju Oprogramowania oraz Sprzętu. Aktualnie realizuje projekt w obszarze automotive. W Sii od marca 2019. W wolnych chwilach fotografuje.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz