802.11n
Multiple Input Multiple Output (MIMO)
Jedną z cech standardu 802.11n jest zdolność to odbierania lub wysyłania z wielu anten.
Standard sam w sobie definiuje wiele konfiguracji „M x N” w zakresie od „1 x 1” do „4 x 4”.
Gdzie M to jest liczba anten wysyłających a N jest liczbą anten odbierających.
Na przykład dwie anteny wysyłające i trzy obierające „2 x 3”, gdzie „2 x 3” to nie jest suma anten czyli 5. Można to także interpretować na zasadzie iż są trzy anteny a z tego dwie są podłączone pod tor TX a trzy pod tor RX( czyli jedna z trzech zajmuje się tylko i wyłącznie torem RX).

Generalnie wygląda to tak że im więcej anten jest używanych tym większa jest przepustowość. Jednakże samo w sobie dokładanie anten nie powoduje wzrostu przepustowości i zasięgu. Ulepszenia w standardzie 802.11n polegają właściwie na tym w jaki sposób urządzenia komunikują się za pomocą tych anten. Są to zaawansowane techniki przesyłania sygnału o których można przeczytać w dalszej części.

Spatial Multiplexing (SM) – Dzieli wychodzący sygnał na wiele części, wysyłając je przez różne anteny. Ponieważ każda transmisja jest rozpropagowana przez różne drogi, te części nazywane spatial streams (przestrzenne strumienie) są odbierane z różną siłą oraz różnym opóźnieniem. Jeżeli odbiornik obsługujący SM odbierze indywidualne strumienie z odpowiednimi sygnaturami przestrzennymi(spacial signatures) to może je poskładać z powrotem do oryginalnego strumienia z danymi. Multipleksowanie dwóch przestrzennych strumieni na jednym kanale efektywnie podwaja pojemność danej częstotliwości radiowej co skutkuje powiększeniem przepustowości.
Każdy punkt dostępowy(AP) 802.11n musi mieć zaimplementowane co najmniej dwa strumienie przestrzenne (spatial streams) do maksymalnie czterech. Stacje (managed/sta) pracujące w standardzie 802.11n mogą mieć zaimplementowany tylko jeden strumień przestrzenny( Tak jak to mamy np w urządzeniach ubnt).

Space-Time Block Coding (STBC) – Wysyła wychodzący sygnał redundantnie, używając do czterech różnie kodowanych strumieni przestrzennych(spatial streams), gdzie każdy jest transmitowany przez inną antenę. Podczas porównywania przychodzących strumieni przestrzennych(spatial streams), odbiornik ma lepsze szanse na dokładne oszacowanie oryginalnego sygnału strumienia w otoczeniu innych nadajników radiowych, interferencji bądź zniekształcenia sygnału. STBC ulepsza skuteczność poprzez redukcje współczynnika błędów(error rate) przy danym Signal to Noise(SNR). To opcjonalne udoskonalenie łączy się w praktyce z SM, ale może być tylko używane kiedy liczba anten wysyłających przewyższa liczbę anten odbierających.

Transmit Beamforming (TxBF) – steruje wychodzącym strumieniem w zamierzony odbiornik poprzez skoncentrowanie całej energii nadajnika na zadany kierunek. Umożliwia to zniwelowanie fenomenów takich jak na przykład odbicia sygnału w celu polepszenia siły sygnału odbieranego oraz zapewnienia wyższych przepustowości. By sterować sygnałem w najlepszym kierunku sygnał musi wiedzieć w jaki sposób będzie on odbierany. Ta informacja może być wywnioskowana na dwa sposoby. Jednym z nich jest założenie że propagacja odbywa się identycznie w dwie strony a drugi polega na wywnioskowaniu z reakcji odbiornika. Obecnie TxBF nie jest zaimplementowane w żadnym urządzeniu dostępnym na rynku.
Modulation and Coding Schemes
Punkty dostępowe oraz klienci muszą negocjować różne ustawienia w których mogą pracować, takich jak na przykład liczba strumieni przestrzennych czy szerokość kanału. Muszą także dojść do porozumienia jaką modulację wybrać, z jaką prędkością się zsynchronizować czy jaki powinien być Guard Interval(GI). Kombinacja wszystkich tych współczynników determinuje praktyczną przepustowość połączania która może być od 6.5Mbps do maksymalnej 600Mbps.
Ponieważ sam standard 802.11n definiuje aż 77 możliwych permutacji tych ustawień które determinują prędkość, został stworzony prosty i wydajny sposób by komunikowały się między sobą.
Standard 802.11n definiuje tzw Modulation and Coding Scheme (MCS). Są to proste wartości liczbowe którym są przypisane określone ustawienia permutacji zmiennych takich jak modulacja, liczba anten, GI, szerokość kanału oraz liczba strumieni przestrzennych. Jak dotąd z tych permutacji zostało niewiele zaimplementowane w obecnych układach radiowych, a te które są można zobaczyć w poniższej tabelce.

MCS- Determinuje w jaki sposób dane są wysyłane przez eter. Na przykład Binary Phase Shift Keying (BPSK) jest zaimplementowany w oryginalnym standardzie 802.11 a Quadrature Amplitude Modulation (QAM) został dodany przez standard 802.11a. Nowsze modulacje są właściwie bardziej wydajne i można otrzymać za ich pomocą większe przepustowości, ale starsze wersje są w dalszym ciągu możliwe do utrzymania(tzw. Backwards compatibility).
Gurad Interval – Jest czasem pomiędzy wysłanymi symbolami(najmniejsza jednostka danych wysłanych naraz). GI jest właściwie długością pauzy pomiędzy słowami wypowiedzianymi poprzez megafon po to by zniwelować echo. Urządzenia 802.11a/g używają GI=800 ns a urządzenia w standardzie 802.11n pauzują na tylko 400 ns. Krótsze GI prowadzi do większej interferencji i zredukowanej przepustowości, kiedy dłuższe GI prowadzi do niechcianego czasu opóźnienia. Short Guard Interval(SGI) przyśpiesza transfer do 11% przy zachowaniu odpowiedniego odstępu między symbolami tak żeby pasowały do typowych środowisk.
Unequal Modulation – Odnosi się do używania różnych typów modulacji i liczby anten na każdym strumieniu przestrzennym. Warości MCS od 0 do 31 określają że taka sama modulacja i kodowanie będzie użyte na wszystkich strumieniach, skolei wartości od 32 do 77 opisują różne kombinacje które mogą zostać użyte do modulacji od dwóch do czterek strumieni. Na przykład, MCS 33 używa 16-QAM na strumieniu przestrzennym nr 1 i QPSK na strumieniu przestrzennym nr 2, kiedy MCS 77 używa 64-QAM na strumieniach nr 1-3 a 16-QAM na strumieniu 4.
Punkty dostępowe pracujące w standardzie 802.11n muszą pracować wartościami MCS co najmniej od 0 do 15 a stacje 802.11n muszą pracować co najmniej z wartościami MCS od 0 do 7. Wszystkie inne wartości MCS, włącznie z tymi które pracują przy 40MHz, SGI i UM są opcjonalne.
MAC Layer Overhead Reduction
Udoskonalenie polegające na redukcji ramek MAC w warstwie łącza danych(2giej modelu OSI)
Block Acknowledgement – Redukuje liczbę paczek ACP które odbiorca musi wysłać do adresata by potwierdzić przybycie paczki. Typowe urządzenia 802.11a/g oczekują prawie natychmiastowej odpowiedzi ACK na każdą nie multicastową/broadcastową ramkę. Z kolei urządzenia 802.11n akceptują Bloki ACK które potwierdzają odebranie wielu ramek unicast. Na przykład zamiast wysyłaniu dziewięciu paczek ACK by potwierdzić ramki od 1 do 8 i 10, 802.11n wysyła jedną ramkę potwierdzająca (Block ACK) która znaczy to samo.
Frame Aggregation – Powiększa payload(ilość danych) który może być przeniesiony przez każdą ramkę 802.11 przy pomocy redukcji ramek MAC z 83% do 58%(podczas używania A-MSDU) i 14% (podczas używania A-MPDU). Typowe urządzenia 802.11a/g nie mogą wysłać więcej niż 2304 bajtów danych(payload-u) na ramkę. Nowe urządzenia pracujące w standardzie 802.11n potrafią łączyć ramki razem do transmisji. Istnieją dwie opcje agregacji:
MAC Service Data Unit Aggregation (A-MSDU) – grupuje paczki kontrolne logicznego połączenia (MSDU) z takimi samymi ramkami 802.11e QoS które są niezależne od źródła i celu. Otrzymana ramka MAC zawiera tylko jeden nagłówek MAC, który jest „przyczepiony” do 7935 bajtów MSDU(parę ramek spiętych w jedną)
MAC Protocol Data Unit Aggregation (A-MPDU) – Działa po procesie w którym nagłówki MAC są dodawane do każdego MSDU. Kompletne ramki MAC (MPDU) są grupowane w specjalne ramki warstwy pierwszej, które przetrzymują dane do 65545 bajtów

Test
Do testu wykorzystano:
2 szt. JIROUS JRC-29DUPLEX,
2 szt. RB 600 (procesor PPC 400 mhz)
2 szt. kart mpci r52n
4 szt. Konektorów K-U.FL-SMA-C
2 szt. zasilaczy PoE 48V 2A
Pierszym środowiskiem w jakim przetestowaliśmy standard 802.11n było połączenie o długości 24km. Anteny umieszczono kolejno na 120m kominie byłej elektrociepłowni ursus oraz kościele na wysokości ~20m. Widoczność optyczna zachowana w 100%
Na obu urządzeniach był zainstalowany podczas testów routeros v4.1.
Średni sygnał jaki udało się uzyskać -65/-65 (momentami -60/-60). Środowisko było bardzo „zaszumione”. Urządzenia synchronizowały się na 215/240 Mbit (HT) przy ccq 90%.


Poniższy screen pokazuje okienko statusu link-a:

Poniższy zrzut pokazuje ruch hdx udp :

Poniższy screen pokazuje ruch fdx tcp.

Poniższy zrzut pokazuje ruch fdx udp:


Niestety nie mieliśmy możliwości postawienia czegoś za rb600. Za skutkowało to tym iż podczas testu na ruch tcp CPU RB600 nie wydalało – obciążenie było 100%. Dlatego test fdx tcp = ~28/~28 Mbit a hdx tcp = 30 Mbit !!!. Podobnie wyglądało to z ruchem udp.
Test 1km
Do testu wykorzystano:
2 szt. JIROUS JRC-24DUPLEX,
2 szt. płyt głównych z procesorami opartymi o architekturę x86
2 szt. kart mpci r52n
4 szt. Konektorów K-U.FL-SMA-C
2 szt. zasilaczy PoE 12V 5A
Test odbyty na odległości około 1km w linku produkcyjnym. Sygnał od -40/-45 do -45/-49. Z jednej strony niestety nieczysta strefa fresnela- zasłania kawałek bloku.


Ping na linku produkcyjnym:

Podsumowanie
Architektura x86 idealnie nadaje się na przepuszczanie dużych przepustowości. Trudno ją obciążyć.
W obu przypadkach szerokość kanału wynosiła 40Mhz.
Przy okazji dobrze by było wspomnieć że otrzymane wyniki zależą naprawdę mocno od konfiguracji, dlatego podczas zestawiania takiego linku trzeba testować naprawdę wszystkie opcje do momentu otrzymania najlepszych osiągów.
Praktyczne wskazówki:
-W wersjach routeros >=4.3 działa poprawnie pooling mniejszych paczek.
-Podczas ustawiania anten należy ustawić tryb only-n z zaznaczonymi wszystkimi trybami (rates) ze standardu 802.11a. Po ustawieniu anten należy wyłączyć wszystkie data rates do 54mbit włącznie, po czym włączy się opcja wybierania HT MCS(w przeciwnym razie będzie disabled).
-Ustawienia MCS należy dobierać pojedynczo (względem tabeli we wstępie). Najlepiej zaznaczyć minimum dwa tryby HT MCS.
-Wyłączyć no radar detect.
Najlepiej sprawująca się konfiguracja dla powyższych przypadków:

AKTUALIZACJA:
Po aktualizacji systemu MikroTik RouterOS z wersji 4.3 do 4.4 czasy uległy zmianie. Poniżej znajduje się aktualny zrzut ekranu.

Klient:
/interface wireless
set 0 ack-timeout=dynamic adaptive-noise-immunity=none allow-sharedkey=no \
antenna-gain=0 antenna-mode=ant-a area="" arp=enabled band=5ghz-onlyn \
basic-rates-a/g="" basic-rates-b="" comment="" compression=no country=\
mexico default-ap-tx-limit=0 default-authentication=yes \
default-client-tx-limit=0 default-forwarding=yes dfs-mode=none \
disable-running-check=no disabled=no disconnect-timeout=3s \
frame-lifetime=0 frequency=5825 frequency-mode=manual-txpower hide-ssid=\
no ht-ampdu-priorities=0,1,2,3,4,5,6,7 ht-amsdu-limit=8192 \
ht-amsdu-threshold=8192 ht-basic-mcs=mcs-5,mcs-13 ht-extension-channel=\
above-control ht-guard-interval=any ht-rxchains=0,1 ht-supported-mcs=\
mcs-5,mcs-13 ht-txchains=0,1 hw-fragmentation-threshold=disabled \
hw-protection-mode=none hw-protection-threshold=0 hw-retries=10 l2mtu=\
2290 max-station-count=2007 mode=station \
mtu=1500 name=wlan1 on-fail-retry-time=100ms periodic-calibration=\
disabled periodic-calibration-interval=60 preamble-mode=short \
proprietary-extensions=post-2.9.25 radio-name=www.cyberteam.pl rate-set=default \
scan-list=default security-profile=default ssid=CYBERTEAM \
station-bridge-clone-mac=00:00:00:00:00:00 supported-rates-a/g="" \
supported-rates-b="" tx-power=25 tx-power-mode=all-rates-fixed \
update-stats-interval=disabled wds-cost-range=50-150 wds-default-bridge=\
none wds-default-cost=100 wds-ignore-ssid=no wds-mode=disabled \
wmm-support=disabled
/interface wireless manual-tx-power-table
set wlan1 comment="" manual-tx-powers="1Mbps:17,2Mbps:17,5.5Mbps:17,11Mbps:17,\
6Mbps:17,9Mbps:17,12Mbps:17,18Mbps:17,24Mbps:17,36Mbps:17,48Mbps:17,54Mbps\
:17,HT20-0:0,HT20-1:0,HT20-2:0,HT20-3:0,HT20-4:0,HT20-5:0,HT20-6:0,HT20-7:\
0,HT40-0:0,HT40-1:0,HT40-2:0,HT40-3:0,HT40-4:0,HT40-5:0,HT40-6:0,HT40-7:0"
/interface wireless nstreme
set wlan1 comment="" disable-csma=yes enable-nstreme=yes enable-polling=yes \
framer-limit=2000 framer-policy=best-fit
Baza:
/interface wireless
set 0 ack-timeout=dynamic adaptive-noise-immunity=none allow-sharedkey=no \
antenna-gain=0 antenna-mode=ant-a area="" arp=enabled band=5ghz-onlyn \
basic-rates-a/g="" basic-rates-b="" comment="" compression=no country=\
mexico default-ap-tx-limit=0 default-authentication=yes \
default-client-tx-limit=0 default-forwarding=yes dfs-mode=none \
disable-running-check=no disabled=no disconnect-timeout=3s \
frame-lifetime=0 frequency=5825 frequency-mode=manual-txpower hide-ssid=\
no ht-ampdu-priorities=0,1,2,3,4,5,6,7 ht-amsdu-limit=8192 \
ht-amsdu-threshold=8192 ht-basic-mcs=mcs-5,mcs-13 ht-extension-channel=\
above-control ht-guard-interval=any ht-rxchains=0,1 ht-supported-mcs=\
mcs-5,mcs-13 ht-txchains=0,1 hw-fragmentation-threshold=disabled \
hw-protection-mode=none hw-protection-threshold=0 hw-retries=10 l2mtu=\
2290 max-station-count=2007 mode=ap-bridge \
mtu=1500 name=wlan1 on-fail-retry-time=100ms periodic-calibration=\
disabled periodic-calibration-interval=60 preamble-mode=short \
proprietary-extensions=post-2.9.25 radio-name=www.cyberteam.pl rate-set=default \
security-profile=default ssid=CYBERTEAM station-bridge-clone-mac=\
00:00:00:00:00:00 supported-rates-a/g="" supported-rates-b="" tx-power=25 \
tx-power-mode=all-rates-fixed update-stats-interval=disabled \
wds-cost-range=50-150 wds-default-bridge=none wds-default-cost=100 \
wds-ignore-ssid=no wds-mode=disabled wmm-support=disabled
/interface wireless manual-tx-power-table
set wlan1 comment="" manual-tx-powers="1Mbps:17,2Mbps:17,5.5Mbps:17,11Mbps:17,\
6Mbps:17,9Mbps:17,12Mbps:17,18Mbps:17,24Mbps:17,36Mbps:17,48Mbps:17,54Mbps\
:17,HT20-0:0,HT20-1:0,HT20-2:0,HT20-3:0,HT20-4:0,HT20-5:0,HT20-6:0,HT20-7:\
0,HT40-0:0,HT40-1:0,HT40-2:0,HT40-3:0,HT40-4:0,HT40-5:0,HT40-6:0,HT40-7:0"
/interface wireless nstreme
set wlan1 comment="" disable-csma=yes enable-nstreme=yes enable-polling=yes \
framer-limit=3000 framer-policy=best-fit
/interface wireless align
set active-mode=yes audio-max=-20 audio-min=-100 audio-monitor=\
00:00:00:00:00:00 filter-mac=00:00:00:00:00:00 frame-size=300 \
frames-per-second=25 receive-all=no ssid-all=no
AKTUALIZACJA: 26.04.2010
















