PODWARSTWA
KONTROLI DOSTĘPU DO NOŚNIKA
UPD: e-mail: yakovyna@matman.uwm.edu.pl Slajdy są dostępne pod linkiem:
http://wmii.uwm.edu.pl/~yakovyna/
W poprzednich wykładach …
• Model odniesienia OSI
W poprzednich wykładach …
• Warstwa fizyczna
Bity, sygnały, kodowanie
Fizyczne nośniki transmisyjne
• Warstwa łącza danych
Ramkowanie
Kontrola błędów transmisji
• Sterowanie dostępem do wspólnego kanału
Kanały rozgłoszeniowe
• Łącza sieciowe można podzielić na dwie kategorie:
• używające łączy dwupunktowych
• używające kanałów rozgłoszeniowych
• W literaturze kanały rozgłoszeniowe są czasem
określane jako kanały wielodostępne lub kanały o dostępie swobodnym.
• W każdej sieci rozgłoszeniowej kluczowym
problemem jest metoda ustalenia, kto skorzysta z
kanału, gdy pojawi się rywalizacja o dostęp.
Podwarstwa MAC
• Protokoły służące do ustalania, kto następny będzie mógł skorzystać z kanału wielodostępnego, należą do podwarstwy warstwy łącza danych zwanej MAC
(Medium Access Control – kontrola dostępu do nośnika).
• Podwarstwa MAC jest szczególnie ważna w sieciach lokalnych, zwłaszcza w tych bezprzewodowych,
ponieważ tutaj kanał jest z natury kanałem rozgłoszeniowym.
• Sieci rozległe, z wyjątkiem sieci satelitarnych, używają łączy dwupunktowych.
• Z technicznego punktu widzenia podwarstwa MAC jest
dolną częścią warstwy łącza danych.
PROBLEM
PRZYDZIELANIA KANAŁU
Jak przydzielać pojedynczy kanał rozgłoszeniowy rywalizującym ze sobą użytkownikom?
Statyczne przydzielanie kanałów
• Tradycyjną metodą przydzielania pojedynczego kanału wielu rywalizującym użytkownikom jest rozdzielenie jego pojemności za pomocą jednej z metod
multipleksacji.
• Gdy liczba użytkowników N jest niewielka i stała, a
każdy z nich utrzymuje stabilny strumień ruchu, podział taki jest prostym i efektywnym mechanizmem alokacji zasobów.
• Podstawowy problem polega na tym, że gdy
użytkownicy nie używają kanału, ich pasmo marnuje się
i nikt inny nie ma prawa z niego skorzystać. Alokacja
statyczna słabo sprawdza się w większości systemów
komputerowych, w których ruch danych jest wyjątkowo
impulsowy.
Statyczne przydzielanie kanałów
• Średnie opóźnienie T związane z wysłaniem ramki kanałem o pojemności C bitów na sekundę:
𝑇 = 1
𝜇𝐶 − 𝜆
• Ramki pojawiają się losowo ze średnią szybkością ramek na sekundę i mają różne rozmiary z rozmiarem średnim rzędu 1/
bitów; C ramek na sekundę – współczynnik zagospodarowania kanału.
• Jeśli C wynosi 100 Mb/s, 1/ wynosi 10 000 bitów, a szybkość przychodzenia ramek jest równa 5000 ramek na sekundę, wówczas T = 200 s.
• Jeśli zignorujemy opóźnienie kolejkowania i zapytamy, jak długo potrwa przesyłanie 10 000-bitowej ramki w sieci 100 Mb/s,
otrzymamy (niepoprawny) wynik 100 s. Taki wynik będzie prawidłowy tylko w przypadku braku rywalizacji w kanale.
Statyczne przydzielanie kanałów
• Podzielmy teraz pojedynczy kanał na N niezależnych podkanałów, z których każdy będzie miał
przepustowość C/N b/s. Oznacza to, że teraz szybkość wprowadzania ramek w każdym podkanale będzie
wynosić /N. Ponownie obliczając T, otrzymamy:
𝑇
𝑁= 1
𝜇(𝐶/𝑁) − 𝜆/𝑁 = 𝑁
𝜇𝐶 − 𝜆 = 𝑁𝑇
• Znaczy to, że opóźnienie kanału podzielonego jest N-
krotnie większe niż wówczas, gdyby wszystkie ramki
były jakoś magicznie porządkowane w dużej centralnej
kolejce.
Założenia dla dynamicznego
przydzielania kanału w sieciach
• Żadna z tradycyjnych statycznych metod przydzielania kanału nie sprawdza się dobrze przy impulsowym
charakterze ruchu w sieci.
• Wszystkie prace dotyczące problemu przydzielania kanału opierają się na pięciu kluczowych założeniach:
1. Ruch niezależny. Model składa się z N niezależnych stacji. Oczekiwana liczba ramek do wygenerowania w interwale o długości t wynosi t, gdzie jest stalą (szybkością przychodzenia nowych ramek). Modele Poissona pomagają w analizie protokołów pod kątem szacunkowej oceny wydajności w zakresie
parametrów operacyjnych oraz pozwalają
porównywać je z alternatywnymi projektami.
Założenia dla dynamicznego
przydzielania kanału w sieciach
2. Pojedynczy kanał. Do wszelkiej komunikacji dostępny jest pojedynczy kanał. Wszystkie stacje mogą w nim nadawać i wszystkie mogą w nim odbierać. Stacje powinny mieć
podobne możliwości nadawczo-odbiorcze, za to protokół może przypisywać im różne role (a z nimi różne
priorytety). Założenie pojedynczego kanału jest w tym modelu najważniejsze. Nie istnieją żadne zewnętrzne metody komunikacji. Stacja nie może „podnieść ręki”, żądając prawa głosu, trzeba więc wymyślić lepsze
rozwiązanie.
3. Możliwość wykrywania kolizji. Gdy jednocześnie wysyłane są dwie ramki, nakładają się one w czasie i
otrzymany sygnał zostaje zniekształcony. Takie zdarzenia noszą nazwę kolizji i wszystkie stacje potrafią je
wykrywać. Ramka, która uległa kolizji, musi zostać wysłana jeszcze raz.
Założenia dla dynamicznego
przydzielania kanału w sieciach
4. Czas ciągły albo rozpatrywany szczelinami. Możemy przyjąć założenie ciągłości czasu, przy którym transmisja ramki może zacząć się w dowolnym momencie, albo czasu podzielonego na szczeliny (interwały). Transmisja ramki zawsze zaczyna się
wtedy na początku szczeliny. Wymaga, aby stacje podążały za wspólnym głównym zegarem taktującym albo wzajemnie
synchronizowały swoje poczynania.
5. Wykrywanie nośnej. Przy założeniu wykrywania nośnej stacje potrafią rozpoznać, czy kanał jest używany, jeszcze przed próbą skorzystania z niego. Żadna stacja nie będzie próbowała używać kanału, jeśli wykryje jego zajętość. Przy braku wykrywania
nośnej stacje nie potrafią wykryć stanu kanału przed próbą użycia go. Po prostu nadają informacje. Dopiero później mogą ustalić, czy transmisja się powiodła.
• Żaden z protokołów dostępu wielokrotnego nie gwarantuje
niezawodnego dostarczania. Dlatego za niezawodność doręczania odpowiadają tutaj wyższe warstwy stosu protokołów sieciowych.
PROTOKOŁY DOSTĘPU
WIELOKROTNEGO
ALOHA
• Hawaje, lata 1970
• Podłączyć do głównego komputera w Honolulu użytkowników z odległych wysp archipelagu
• Wykorzystywał krótkofalówki radiowe w systemie, w którym każda z końcówek współdzieliła z innymi tę samą częstotliwość wysyłania ramek danych do
centralnego komputera
• Dwie wersje ALOHA: prostą i szczelinową. Różnią się
tym, czy czas jest rozpatrywany w sposób ciągły, czy też jest w protokole dzielony na dyskretne przedziały, w
których muszą mieścić się wszystkie ramki.
Prosty ALOHA
• Podstawowa idea systemu ALOHA – pozwala się
użytkownikom nadawać, kiedy tylko mają dane do wysłania.
• Oczywiście występują kolizje, a kolidujące ramki są
uszkadzane. Nadawcy potrzebują sposobu wykrycia kolizji transmisji. W ALOHA każda ramka wysłana przez dowolny z nadajników do centralnego komputera była przez ten
komputer retransmitowana (rozgłoszeniowo) do wszystkich stacji w systemie. Stacja nadawcza musiała więc nasłuchiwać transmisji rozgłoszeniowych i po ich analizie stwierdzała, czy ramka dotarła do odbiorcy.
• Jeśli ramka została uszkodzona, nadajnik oczekuje przez losową ilość czasu i wysyła ją ponownie. Czas oczekiwania musi być losowy; w przeciwnym razie te same ramki
kolidowałyby ze sobą raz za razem.
Prosty ALOHA
• Ramki mają tu stałą długość, ponieważ przepustowość systemów ALOHA jest
maksymalizowana przez stosowanie stałego
rozmiaru ramek zamiast ich zmiennej długości.
Wydajność kanału ALOHA
• Jaki odsetek wysłanych ramek unika kolizji w takich chaotycznych warunkach?
• Jakie warunki są potrzebne, by zacieniowana ramka
dotarła bez uszkodzenia?
Wydajność kanału ALOHA
• Niech t oznacza czas wymagany do jej wysłania.
Gdyby dowolny inny użytkownik wygenerował ramkę w czasie od t
0do t
0+t, koniec tej ramki
zderzyłby się z początkiem zacieniowanej. W istocie los tej ramki został przypieczętowany, jeszcze zanim został wysłany jej pierwszy bit, lecz ponieważ w
prostym protokole ALOHA stacja nie nasłuchuje w kanale przed nadawaniem, nie ma żadnego
sposobu zorientowania się, czy jakaś inna ramka nie jest już w drodze. Podobnie każda inna ramka
rozpoczęta w czasie pomiędzy t
0+t i t
0+2t zderzy się
z końcem ramki zacieniowanej.
Wydajność kanału ALOHA
• Prawdopodobieństwo, że w danym czasie ramki zostanie
wygenerowanych k ramek, podczas gdy oczekiwano w nim G ramek, określa rozkład Poissona:
Pr 𝑘 = 𝐺𝑘𝑒−𝐺
• Prawdopodobieństwo zera ramek wynosi więc e𝑘! -G. W okresie o długości dwóch czasów ramek średnia liczba wygenerowanych ramek wynosi 2G, tak więc prawdopodobieństwo, że w całym okresie wrażliwym na kolizję nie dojdzie do wygenerowania nowych ramek, to P0= e-2G. Używając równania S = GP0,
otrzymamy:
𝑆 = 𝐺𝑒−2𝐺 S – zdolność przepustowa kanału
G – generowane obciążenie
P0 – prawdopodobieństwo, że ramka nie ulegnie kolizji
Wydajność kanału ALOHA
• Zależność pomiędzy generowanym ruchem i zdolnością przepustową kanału
• Maksymalna zdolność przepustowa występuje przy G = 0,5 i wynosi S = 1/(2e), czyli w przybliżeniu 0,184. Inaczej
mówiąc, najlepsze wykorzystanie kanału, na jakie możemy liczyć, wynosi 18%.
Szczelinowy ALOHA
• Wkrótce po tym, jak system ALOHA ujrzał światło dzienne,
Roberts (1972) ujawnił metodę podwojenia jego przepustowości.
Jego propozycja polegała na podzieleniu czasu na dyskretne odcinki zwane szczelinami (ang. słots), przy czym każdy odcinek odpowiadał jednej ramce.
• Takie podejście wymaga od użytkowników uzgodnienia granic szczelin. Jedną z możliwych metod synchronizacji jest wysyłanie przez specjalną stację krótkiego impulsu, przypominającego takt zegara, na początku każdego interwału.
• W metodzie Robertsa, która otrzymała nazwę szczelinowy ALOHA (slotted ALOHA) w odróżnieniu od prostego ALOHA (pure ALOHA), stacja nie ma prawa nadawać w dowolnym momencie. Zamiast tego musi czekać na początek następnej szczeliny.
• W ten sposób ciągły ALOHA został przekształcony w system z czasem rozpatrywanym dyskretnie. Zysk polega na zmniejszeniu okresu podatności na kolizje o połowę.
Wydajność kanału ALOHA
• Prawdopodobieństwo, że w tej samej szczelinie czasu razem z naszą testową ramką nie wystąpi inny ruch, wynosi e
-G, co prowadzi do następującej zależności:
𝑆 = 𝐺𝑒
−𝐺• Jak widać na rysunku (slajd #20), dla szczelinowego ALOHA szczyt przypada na G = 1 ze zdolnością
przepustową S = 1/e, czyli około 0,368 – dwa razy wyższą niż w prostym ALOHA.
• Gdy system działa przy G = 1, prawdopodobieństwo trafienia pustej ramki wynosi 0,368. W najlepszym
przypadku dla szczelinowego ALOHA możemy liczyć na 37% pustych szczelin, 37% pomyślnych transmisji i 26%
kolizji. Praca z wyższymi wartościami G zmniejsza liczbę
pustych szczelin, lecz wykładniczo zwiększa liczbę kolizji.
Znaczenie ALOHA
• Został on opracowany w latach 70., zastosowany w kilku wczesnych systemach eksperymentalnych, a potem niemal zapomniany.
• Gdy odkryto możliwość dostępu do Internetu przez sieć telewizji kablowej, nagle pojawił się problem, jak
podzielić wspólny kanał pomiędzy wielu rywalizujących użytkowników.
• Później mieliśmy do czynienia z wariantem tego samego problemu w przypadku wielu znaczników RFID
komunikujących się z jednym czytnikiem RFID. Znów
wybawieniem okazał się szczelinowy protokół ALOHA z
domieszką późniejszych pomysłów.
Protokoły dostępu wielokrotnego z wykrywaniem nośnej
• W szczelinowym systemie ALOHA najlepsze wykorzystanie kanału, jakie można osiągnąć, wynosi 1/e. Tak niski wynik nie jest zaskakujący, ponieważ gdy stacje nadają, jak im się podoba – bez zwracania uwagi na to, co robią inne stacje – musi występować wiele kolizji. Jednakże w sieciach
lokalnych często istnieje możliwość wykrywania przez stacje działania innych stacji i odpowiedniego dostosowywania swojego zachowania. Sieci takie mogą osiągać znacznie wyższy stopień wykorzystania niż 1/e.
• Protokoły, w których stacje nasłuchują nośnej (tzn.
transmisji) i reagują zależnie od wyniku, noszą nazwę
protokołów z wykrywaniem nośnej (carrier sense protocol).
Zaproponowano do tej pory szereg takich protokołów i zadbano o ich szczegółową analizę.
Protokoły persistent CSMA i nonpersistent CSMA
• 1-persistent CSMA (Carrier Sense Multiple Access).
Otóż gdy stacja ma dane do wysłania, najpierw nasłuchuje na kanale, czy ktoś w danej chwili
nadaje. Jeśli kanał jest wolny, stacja nadaje własne dane. W przeciwnym przypadku (kanał zajęty)
zwyczajnie czeka na zwolnienie kanału i dopiero potem wysyła ramkę. W razie wystąpienia kolizji stacja odczekuje losową ilość czasu i próbuje od
nowa. Protokół nosi nazwę 1-persistent („1-ciągły”), ponieważ stacja nadaje ramkę z
prawdopodobieństwem równym 1, gdy wykryje
wolny kanał.
1-persistent CSMA: kolizje
• Jeśli dwie stacje są gotowe do nadawania w czasie trwania transmisji trzeciej stacji, obie będą grzecznie czekać na zwolnienie kanału, a potem obie
równocześnie będą próbowały nadawać własne dane, doprowadzając do kolizji sygnałów w kanale.
• Na ilość kolizji znaczący wpływ ma także opóźnienie propagacji sygnału w kanale. Jeśli sygnał pierwszej stacji jeszcze nie dotarł do drugiej, to druga wykryje kanał jeszcze bezczynny i również zacznie nadawać, co spowoduje kolizję. Ryzyko to jest proporcjonalne do
liczby ramek, które mieszczą się jednocześnie w kanale,
czyli do iloczynu opóźnienia i przepustowości kanału.
Nonpersistent CSMA
• Drugim protokołem z wykrywaniem nośnej jest
nonpersistent CSMA (nieciągły CSMA). W tym protokole podjęto świadomą próbę zmniejszenia „zachłanności” w stosunku do poprzedniego.
• Jak poprzednio, stacja przed rozpoczęciem nadawania
prowadzi nasłuch kanału w oczekiwaniu na jego zwolnienie, a kiedy nikt nie nadaje, sama zaczyna transmisję.
• Jeśli jednak kanał jest już używany, stacja nie nasłuchuje w sposób ciągły. Zamiast tego odczekuje losową ilość czasu, a następnie powtarza algorytm.
• Dzięki temu użycie tego algorytmu powoduje lepsze wykorzystanie kanału, lecz większe opóźnienia niż w 1- persistent CSMA.
p-Persistent CSMA
• Ostatnim protokołem jest p-persistent CSMA przeznaczony dla kanałów szczelinowych.
• Jego działanie polega na tym, że gdy stacja staje się gotowa do nadawania, sprawdza stan kanału. Jeśli kanał jest
bezczynny, stacja nadaje z prawdopodobieństwem p, a z
prawdopodobieństwem q = 1-p czeka na następną szczelinę.
Jeśli ta również jest wolna, stacja albo nadaje, albo
ponownie czeka z prawdopodobieństwem odpowiednio
wynoszącym p i q. Proces jest powtarzany, dopóki ramka nie zostanie wysłana albo inna stacja nie zacznie nadawać.
• Jeśli stacja na początku wykryje zajętość kanału, to czeka do następnej szczeliny i postępuje zgodnie z powyższym
algorytmem.
• Protokół IEEE 802.11 korzysta z ulepszonej wersji p- persistent CSMA.
Wyliczona zdolność przepustową w
zależności od obciążenia
CSMA z wykrywaniem kolizji
• Protokoły persistent CSMA i nonpersistent CSMA gwarantują że żadna stacja nie zacznie nadawać po wykryciu zajętości kanału. Jeśli jednak dwie stacje wykryją obecność wolnego kanału i równocześnie rozpoczną transmitowanie własnych danych, ich sygnały doprowadzą do kolizji.
• Kolejnym ulepszeniem jest możliwie szybkie wykrycie kolizji i natychmiastowe zaprzestanie nadawania (bez kończenia ramki – ta i tak zostanie zniekształcona).
Dzięki temu można zaoszczędzić czas transmisji i przepustowość kanału.
• Ten protokół, znany pod nazwą CSMA/CD (CSMA with
Collision Detection – CSMA z wykrywaniem kolizji), to
podstawa klasycznych sieci lokalnych Ethernet.
CSMA/CD: wykrywanie kolizji
• Proces wykrywania kolizji jest z natury procesem analogowym.
• Oprzyrządowanie stacji musi prowadzić nasłuch kanału w trakcie nadawania własnych danych; jeśli
nasłuchiwany sygnał odbiega od nadawanego,
wiadomo, że doszło do kolizji z inną stacją nadawczą.
• Wynika z tego, że sygnał odbierany musi być znaczący względem nadawanego (w przypadku sieci
bezprzewodowych jest to problematyczne), a modulacja sygnałów musi być dobrana tak, żeby ułatwiać
wykrywanie kolizji (np. kolizja dwóch sygnałów 0-
woltowych jest w zasadzie niemożliwa do wykrycia).
CSMA/CD: model ideowy
• CSMA/CD może być w jednym z trzech stanów:
rywalizacji, transmisji i bezczynności
CSMA/CD: algorytm rywalizacji
• Załóżmy, że obie stacje zaczną nadawać dokładnie w chwili t
0. Po jakim czasie wykryją kolizję?
• Minimalny czas niezbędny do wykrycia kolizji to
czas potrzebny na propagację sygnału z jednej stacji do drugiej. W oparciu o tę informację można by
sądzić, że stacja, która nie wykryła kolizji w czasie
równym czasowi pełnej propagacji sygnału przez
cały kanał, może być pewna tego, że skutecznie ten
kanał przejęła. Powyższy wniosek jest błędny.
CSMA/CD: algorytm rywalizacji
• Niech czas potrzebny do propagacji pomiędzy dwoma najdalszymi stacjami wynosi .
• W chwili t0 jedna stacja zaczyna nadawać.
• W chwili t0+-, na moment przed dotarciem sygnału do najodleglejszej stacji, ta również zaczyna nadawać.
• Oczywiście wykrywa kolizję niemal natychmiast i przerywa transmisję, lecz spowodowany przez kolizję krótki impuls
zakłócający dociera do pierwszej stacji dopiero w chwili 2-.
W najgorszym przypadku stacja może być pewna przejęcia kanału dopiero po czasie 2 nadawania bez wykrycia kolizji.
• Taki układ znakomicie polepsza efektywność w przypadku, kiedy czas ramki jest znacznie większy od czasu propagacji.
Protokoły bezkolizyjne
• Kolizje w CSMA/CD pogarszają wydajność systemu,
zwłaszcza gdy iloczyn przepustowości i opóźnienia jest duży – na przykład przy długich kablach – a ramki krótkie. Kolizje nie tylko zmniejszają przepustowość, ale i wpływają na
zmienność czasu potrzebnego do przesłania ramki, co w przypadku wymiany danych w aplikacjach o ścisłych
ograniczeniach czasowych (np. przesył głosu w sieciach IP) jest wielce niepożądane.
• Przedstawimy kilka protokołów, które rozstrzygają
rywalizację o kanał bez żadnych kolizji, nawet w okresie rywalizacji. Większości z nich nie używa się obecnie w liczących się systemach.
• Zakładamy, że jest dokładnie N stacji, z których każda ma zaprogramowany unikatowy adres od 0 do N. Zakładamy też, że opóźnienie propagacji jest pomijalne. Pozostaje
podstawowe pytanie: która stacja otrzyma dostęp do kanału po udanej transmisji?
Protokół z mapą bitową
• W podstawowej metodzie z mapą bitową, każdy okres rywalizacji zawiera dokładnie N szczelin.
• Jeśli stacja nr 0 ma ramkę do wysłania, to nadaje bit 1 w zerowej szczelinie.
• Podczas tej szczeliny żadna inna stacja nie ma prawa nadawać.
• Stacja j może ogłosić, że ma ramkę do wysłania, wstawiając bit 1 do szczeliny j. Po przeminięciu
wszystkich N szczelin każda stacja dysponuje pełną wiedzą o tym, które stacje chcą nadawać.
• Teraz rozpoczynają one transmisję ramek w porządku
numerycznym.
Podstawowy protokół z mapą
bitową
Protokół z mapą bitową
• Ponieważ kolejność została z góry ustalona, nigdy nie wystąpi kolizja.
• Po nadaniu ramki przez ostatnią z gotowych stacji rozpoczyna się kolejny N-bitowy okres rywalizacji.
• Jeśli stacja osiągnie gotowość zaraz po minięciu jej bitu, to musi poczekać z nadawaniem, dopóki wszystkie
stacje nie otrzymają swojej szansy na transmisję i ponownie nie pojawi się mapa bitowa.
• Protokoły tego typu, w których zamiar nadawania jest ogłaszany przed faktyczną transmisją, noszą nazwę protokołów z rezerwacją, ponieważ w celu
zapobiegania kolizjom dokonują rezerwacji kanału
zawczasu.
Wydajność protokołu z mapą bitową
• Dla wygody będziemy mierzyć czas w jednostkach szczeliny bitowej z okresu rywalizacji, a ramki danych będą składać się z d jednostek czasu.
• Stacji o niskim numerze. Statystycznie, gdy stacja staje się gotowa do transmisji, bieżąca szczelina znajduje się gdzieś w środku mapy bitowej. Stacja musi czekać przeciętnie N/2
szczelin do zakończenia bieżącej mapy i dalej na ukończenie kolejnych pełnych N szczelin, zanim będzie mogła nadawać.
• Stacji o wyższych numerach. Ogólnie muszą czekać tylko połowę przebiegu (N/2 szczelin) przed rozpoczęciem
nadawania.
• Ponieważ stacje o niskich numerach muszą czekać średnio 1,5N szczelin, a stacje o numerach wysokich 0,5N szczelin, to średnia dla wszystkich stacji wynosi N szczelin.
Wydajność protokołu z mapą bitową
• Wydajność kanału przy niskich obciążeniach. Na każdą przesłaną ramkę przypada dodatkowe N bitów, a ramka ma d bitów, więc wydajność wynosi d/(d+N).
• Przy dużych obciążeniach, gdy wszystkie stacje mają cały czas coś do wysłania, N-bitowy okres rywalizacji przypada na N ramek, co daje dodatkowe obciążenie tylko 1 bitu na ramkę i wydajność d/(d+1).
• Średnie opóźnienie dla ramki jest równe sumie czasu kolejkowania w stacji i (N-1)d + N od momentu, gdy ramka dostanie się na początek wewnętrznej kolejki.
Interwał ten jest równy czasowi oczekiwania wszystkich
pozostałych stacji na ich kolej wysyłania ramki danych z
kolejną bitmapą.
Transmisja z żetonem
• Zasadniczym elementem protokołu z mapą bitową jest to, że poszczególne stacje mogą transmitować ramki danych w określonej z góry kolejności nadawania.
Podobny efekt można uzyskać poprzez przekazywanie pomiędzy stacjami krótkiego komunikatu zwanego żetonem albo tokenem (przekazywanie go również odbywa się w ustalonym z góry porządku).
• Żeton reprezentuje zezwolenie na nadawanie. Jeśli stacja posiada ramkę danych do transmisji i odbierze żeton, może wysłać swoją ramkę, a następnie wysłać żeton do następnej stacji. Jeśli stacja nie posiada
danych do wysiania, od razu wysyła żeton.
Protokół token-ring
• Aby jednak kiedyś przerwać
przekazywanie ramki w pierścieniu, któraś ze stacji musi ją z niego usunąć, to znaczy zrezygnować z retransmisji. Może to być albo stacja, która była pierwotnym
nadawcą ramki, albo stacja, która była jej adresatem.
• W protokole token-ring (pierścień stacji z żetonem) do definiowania kolejności nadawania poszczególnych stacji służy topologia sieci.
• Przekazywanie żetonu pomiędzy nimi sprowadza się do
odebrania reprezentującego go komunikatu z jednej strony i wysłania go w drugą stronę pierścienia.
• Ramki są transmitowane w tym samym kierunku co żeton.
Dzięki temu krążą one w pierścieniu i docierają do wszystkich potencjalnych stacji docelowych.
Protokół token-ring
• Zauważmy, że implementacja takiego protokołu w żadnym razie nie wymaga fizycznej topologii
pierścienia.
• Kanał łączący stacje może być nawet pojedynczą magistralą współdzieloną.
• W takim przypadku poszczególne stacje wykorzystują wspólny kanał do wysyłania żetonu do następnej stacji w predefiniowanej sekwencji.
• Posiadanie żetonu daje natomiast prawo do przejęcia kanału i wysłania pojedynczej ramki.
• Taki wariant tego protokołu nazywa się token-bus.
Wydajność protokołu z żetonem
• Wydajność przekazywania żetonu jest podobna jak
wydajność protokołu z mapą bitową, choć dochodzi tu do przemieszania szczelin rywalizacji i ramek w ramach jednego cyklu.
• Po wysłaniu ramki każda ze stacji musi odczekać, aż
wszystkie N stacji (w tym ona sama) odeśle żeton sąsiadowi oraz potencjalnie na N-1 ramek pozostałych stacji.
• Ponieważ jednak wszystkie pozycje w pierścieniu są
równorzędne, nie dochodzi do preferowania stacji o niskich numerach.
• W przypadku protokołu z przekazywanym żetonem każda ze stacji przesyła go jedynie do stacji sąsiedniej, więc żeton
żadnej z nich nie ominie. Nie musi on każdorazowo dotrzeć do wszystkich stacji, aby można było przejść do następnego kroku protokołu.
Sieci typu token-ring
• Sieci typu token-ring pojawiły się jako implementacje
protokołu MAC z zapewnieniem pewnego stopnia spójności.
• Wczesna wersja protokołu z przekazywaniem żetonu w
pierścieniu (IEEE 802.5) zyskała sporą popularność w latach 80. poprzedniego stulecia jako efektywna alternatywa dla klasycznej sieci Ethernet.
• Jednak w latach 90. przełączane (komutowane) sieci Ethernet pokonały wydajnością nawet szybką sieć typu
token-ring o nazwie FDDI (Fiber Distributed Data Interface).
• W pierwszej dekadzie XXI wieku zdefiniowano standard IEEE 802.17: sieć typu token-ring o nazwie RPR (Resilient Packet Ring) mającą ujednolicić pierścienie metropolitarne
wykorzystywane przez ISP.
Odliczanie binarne
• Problem z podstawowym protokołem z mapą bitową (oraz z jego wariantem rozszerzonym w postaci
przekazywania żetonu) polega na tym, że dodatkowe obciążenie wynosi 1 bit na stację, więc rozwiązanie nie skaluje się dobrze przy tysiącach stacji.
• Możemy poprawić sytuację, używając binarnych
adresów stacji z kanałem, który kombinuje transmisje.
• Teraz stacja, która chce użyć kanału, ogłasza swój adres w postaci binarnego łańcucha bitów, zaczynając od bitu najstarszego. Zakłada się, że wszystkie adresy mają tę samą długość. Na bitach na każdej pozycji z różnych stacji wykonywana jest operacja boole’owska OR. Ten protokół nazwiemy odliczaniem binarnym (binary
countdown).
Odliczanie binarne
• Zakłada się tu, że opóźnienia transmisji są
pomijalne, więc wszystkie stacje natychmiast widzą otrzymane bity.
• Dla uniknięcia konfliktów musi zostać zastosowana reguła arbitrażu: gdy tylko stacja zobaczy, że
bardziej znaczący bit w jej adresie równy 0 został nadpisany przez 1, rezygnuje z transmisji.
• Stacje o wyższych numerach mają w nim
pierwszeństwo przed stacjami o numerach niższych,
co może być dobre lub złe zależnie od kontekstu.
Protokół binarnego odliczania wstecz
• Na przykład: gdy jednocześnie próbują zdobyć dostęp do kanału stacje 0010, 0100, 1001 i 1010, w pierwszym bicie nadają one odpowiednio 0, 0, 1 i 1.
• Operacja LUB daje wynik 1. Stacje 0010 i 0100 rozpoznają przez to, że konkurują z nimi stacje o wyższym numerze,
więc w tej rundzie rezygnują. Stacje 1001 i 1010 przechodzą dalej.
• Następny bit to 0 i obie stacje kontynuują nadawanie adresu.
• Kolejny jest bit 1, więc stacja 1001 rezygnuje.
• Zwycięzcą jest stacja 1010, ponieważ ma najwyższy adres. Po wygranej licytacji
stacja może wysłać ramkę, po czym rozpoczyna się kolejny cykl licytacji.
Wydajność protokołu binarnego odliczania
• Wydajność tej metody wynosi d/(d + log
2N). Jeśli jednak format ramki zostanie tak sprytnie dobrany, że adres nadawcy będzie w niej pierwszym polem, nawet ten log
2N nie zmarnuje się i wydajność
wyniesie 100%.
• Odliczanie binarne jest przykładem prostego,
eleganckiego i wydajnego protokołu, który czeka na
ponowne odkrycie.
Protokoły z ograniczoną rywalizacją
• Podstawowe strategie przejmowania kanału w sieci z kanałem o charakterze rozgłoszeniowym: z rywalizacją i bezkolizyjnie.
• Każdą strategię można ocenić pod kątem dwóch ważnych parametrów wydajności:
• opóźnienia przy małym obciążeniu
• i wydajności kanału przy dużym obciążeniu.
• W warunkach małego obciążenia preferowana jest rywalizacja z uwagi na małe opóźnienia (kolizje są wtedy rzadkością).
• Dokładnie na odwrót jest w przypadku protokołów
bezkolizyjnych. Przy małych obciążeniach wprowadzają one stosunkowo duże opóźnienia, lecz ze wzrostem
obciążenia wydajność kanału także rośnie.
Protokoły z ograniczoną rywalizacją
• Dobrze byłoby połączyć najlepsze właściwości protokołów rywalizacyjnych i bezkolizyjnych i otrzymać nowy protokół, który korzystałby z rywalizacji przy niskich obciążeniach, aby zapewnić małe opóźnienia, oraz z technik bezkolizyjnych
przy wysokich obciążeniach, by zapewnić dobrą wydajność kanału.
• Takie protokoły nazywa się protokołami z ograniczoną rywalizacją (limited-contention protocol).
• Symetryczne protokoły rywalizacyjne – każda stacja
usiłowała przejąć kanał z pewnym prawdopodobieństwem p, a wartość p dla wszystkich stacji była taka sama.
• Ogólną wydajność systemu można zwiększyć za pomocą protokołu, który przydziela różne prawdopodobieństwa różnym stacjom.
Wydajność protokołów symetrycznych
• Załóżmy, że k stacji rywalizuje o dostęp do kanału. Każda ma prawdopodobieństwo nadawania w każdej szczelinie równe p.
• Prawdopodobieństwo, że stacja z powodzeniem przejmie kanał w danej szczelinie, jest równe szansie na to, że dowolna ze
stacji prowadzi transmisję, a wszystkie inne k-1 stacji się od niej powstrzymuje (każda z prawdopodobieństwem 1-p).
Otrzymujemy więc wartość kp(1-p)k-1.
• Aby znaleźć optymalną wartość p, zróżniczkujmy p,
przyrównajmy do 0 i rozwiążmy równanie dla p. Zobaczymy, że najlepszą wartością dla p jest 1/k. Podstawiając p = 1/k,
otrzymamy:
Pr 𝑝𝑜𝑤𝑜𝑑𝑧𝑒𝑛𝑖𝑒 𝑝𝑟𝑧𝑦 𝑜𝑝𝑡𝑦𝑚𝑎𝑙𝑛𝑒𝑗 𝑤𝑎𝑟𝑡𝑜ś𝑐𝑖 𝑝 = 𝑘 − 1 𝑘
𝑘−1
Prawdopodobieństwo przejęcia kanału przy rywalizacji symetrycznej
• Dla niewielu stacji prawdopodobieństwo
powodzenia jest wysokie, lecz już przy pięciu
stacjach spada ono w okolice asymptotycznej
wartości 1/e.
Protokoły z ograniczoną rywalizacją
• Prawdopodobieństwo przejęcia kanału przez stację możemy zwiększyć, tylko zmniejszając poziom rywalizacji. Dokładnie tak zachowują się protokoły z ograniczoną rywalizacją.
• Najpierw dzielą stacje na grupy (niekoniecznie rozłączne).
• Jedynie te będące członkami grupy 0 mają prawo
rywalizować o szczelinę 0. Zwycięzca przejmuje kanał i wysyła swoją ramkę. Jeśli szczelina nie zostanie
wykorzystana lub jeśli wystąpi kolizja, członkowie grupy 1 rywalizują o szczelinę 1 itd.
• Odpowiedni podział stacji na grupy pozwala na zmniejszenie rywalizacji o każdą szczelinę, dzięki czemu funkcjonowanie kanału będzie bliskie przedstawionemu przy lewej krawędzi rysunku.
Przydzielanie stacji do szczelin
• W jednej skrajności każda grupa ma tylko jednego członka.
Taki przydział gwarantuje, że kolizja nigdy nie wystąpi (np.
odliczanie binarne).
• Następny przypadek szczególny to dwie stacje na grupę.
Prawdopodobieństwo, że obie będą próbowały nadawać w danej szczelinie, wynosi p2, więc jest pomijalne dla małych p.
• W miarę przydzielania coraz większej liczby stacji do tej samej szczeliny prawdopodobieństwo kolizji rośnie.
Przypadkiem granicznym jest jedna grupa zawierająca wszystkie stacje (czyli szczelinowy ALOHA).
• Potrzebujemy sposobu dynamicznego przydzielania stacji do szczelin z wieloma stacjami na szczelinę przy niskim
obciążeniu i kilkoma lub nawet jedną stacją na szczelinę, gdy obciążenie jest wysokie.
Protokół adaptacyjnego przejścia przez drzewo
• Wyobraźmy sobie stacje jako liście binarnego drzewa.
• W pierwszej szczelinie rywalizacji następującej po pomyślnej transmisji ramki (szczelinie nr 0) wszystkie stacje mają
prawo próbować przejąć kanał.
• Jeśli jedna z nich to zrobi, wszystko w porządku. Jeśli wystąpi kolizja, to w szczelinie drugiej rywalizować mogą tylko stacje przynależące do węzła 2 drzewa.
• W przypadku gdy jedna z nich przejmie kanał, kolejna szczelina po wysłanej ramce będzie zarezerwowana dla stacji pod węzłem 3.
• Jeśli z drugiej strony dwie lub więcej stacji pod węzłem 2 będzie chciało nadawać, wystąpi kolizja w szczelinie nr 1 i wtedy szczelina nr 2 przypadnie węzłowi 4.
Protokół adaptacyjnego przejścia przez drzewo
• Gdy obciążenie systemu jest duże, nie opłaca się zbytnio przydzielać szczeliny nr 0 do węzła 1, ponieważ to miałoby sens jedynie w mało prawdopodobnym przypadku tylko jednej stacji mającej ramkę do wysłania.
• Na którym więc ogólnie poziomie powinno się rozpocząć przeszukiwanie drzewa? Na tym niższym, im większe
obciążenie.
• Założymy, że każda stacja dysponuje ilość gotowych stacji (q). Każdy węzeł n poziomu i ma pod sobą ułamek 2-i stacji.
Spodziewana liczba gotowych stacji pod konkretnym
węzłem na poziomie i wynosi 2-iq. Optymalny poziom, na którym należy zacząć przeszukiwać drzewo, to ten, gdzie
średnia liczba stacji rywalizujących o szczelinę wynosi 1, czyli ten, gdzie 2-iq = 1. Rozwiązanie tego równania: i = log2q.
Protokoły bezprzewodowych sieci LAN
• Typową konfiguracją bezprzewodowej sieci LAN jest
budynek biurowy z punktami dostępowymi (tzw. AP, od ang. access point) rozmieszczonymi w strategicznych
miejscach. Punkty dostępowe są ze sobą połączone
kablami miedzianymi lub światłowodowymi i realizują
łączność dla stacji bezprzewodowych, które się z nimi
komunikują.
Protokoły bezprzewodowych sieci LAN
• W systemach bezprzewodowych nie można polegać na wykrywaniu kolizji w trakcie transmisji. Sygnał
odbierany przez daną stację może być znikomy w stosunku do sygnału nadawanego. Dlatego do
wykrywania kolizji i innych błędów odbioru służy tu mechanizm potwierdzeń.
• Jest też jeszcze ważniejsza różnica pomiędzy sieciami lokalnymi przewodowymi i bezprzewodowymi:
• Stacja sieci bezprzewodowej może nie być w stanie nadawać albo odbierać ramek ze wszystkich pozostałych stacji z
powodu ograniczonego zasięgu transmiterów radiowych stosowanych w sieciach lokalnych.
• W przypadku sieci przewodowych, kiedy jedna stacja wysyła ramkę, wszystkie inne mogą ją odebrać. Brak tej cechy w sieciach bezprzewodowych powoduje mnóstwo komplikacji.
Problemy w używaniu CSMA
• Przyjmiemy upraszczające założenie, że każdy
transmiter radiowy posiada pewien stały zasięg, w obrębie którego inna stacja może wykryć i odebrać transmisję danej stacji.
• Próba użycia CSMA – nasłuchiwania innych
transmisji i nadawania tylko wtedy, gdy nikt inny tego nie robi.
• Problem w tym, że ten protokół nie jest tu
naprawdę skuteczny – zakłócenia występują
przecież w odbiorniku, a nie w nadajniku.
Problemy w używaniu CSMA
• Co się dzieje, gdy stacje A i C transmitują dane do stacji B tak jak na rysunku (a)? Problem niezdolności stacji do wykrycia potencjalnego rywala w dostępie do nośnika z tego powodu, że rywal znajduje się za daleko, nosi nazwę problemu
ukrytej końcówki (ang. hidden terminal problem).
• B nadaje do A, a w tym samym czasie C zamierza
transmitować dane do D jak na rysunku (b). Jest to z kolei tzw. problem odkrytej końcówki (ang. exposed terminal problem).
Problemy w używaniu CSMA
• Trudność polega na tym, że przed rozpoczęciem transmisji stacja musi wiedzieć, czy w okolicy odbiornika nie występuje jakaś aktywność transmisyjna.
• CSMA informuje, czy coś się dzieje w pobliżu transmitera, jedynie poprzez wykrycie nośnej.
• W przypadku kabla wszystkie sygnały propagują się do wszystkich stacji, więc rozróżnienie odległościowe nie ma znaczenia, za to w danej chwili w obrębie całego systemu może zachodzić tylko jedna transmisja.
• W systemie opartym na falach radiowych o krótkim zasięgu jednocześnie może występować wiele transmisji, jeśli mają one różne miejsca przeznaczenia, a każda stacja docelowa jest poza zasięgiem reszty nadajników.
Protokół MACA
• Wczesnym (ale ważnym) protokołem dla bezprzewodowych sieci LAN, który realizował postulat współbieżności
transmisji, był MACA (Multiple Access with Collision Avoidance – wielodostęp z unikaniem kolizji).
• Podstawowa idea tego protokołu jest taka, że nadajnik
stymuluje odbiornik do wysłania krótkiej ramki, dzięki której okoliczne stacje mogą wykryć transmisję i uniknąć
nadawania przy przesyłaniu następnej (dużej) ramki danych.
Technika ta jest tu stosowana jako analog wykrywania nośnej.
• Stacja A wysyła ramkę do B:
• Zaczyna od wysłania do B ramki RTS (Request to Send – zgłoszenie do wysłania). Ta krótka ramka zawiera długość ramki danych.
• Następnie B odpowiada ramką CTS (Clear to Send – gotowy do wysłania). Ramka ta zawiera długość danych (skopiowaną z ramki RTS).
• Po odebraniu ramki CTS A rozpoczyna nadawanie.
Protokół MACA
• Jak reagują stacje odbierające którąś z tych ramek?
• Każda stacja odbierająca RTS znajduje się blisko A i musi pozostać bezczynna wystarczająco długo, by ramka CTS została odesłana do A bez konfliktu.
• Każda stacja, która odbierze CTS, jest w pobliżu B i musi powstrzymać się od nadawania podczas następującej po ramce CTS transmisji danych, której długość może poznać, korzystając z zawartości tej ramki.