1. Cel ćwiczenia.

Celem ćwiczenia było zapoznanie się z algorytmami dostępu do wspólnego łącza komputerowego (ALOHA, CSMA, CSMA/CD) oraz wykazanie ich istotnych cech.

2. Krótki wstęp teoretyczny.

Protokoły sieciowe można potraktować jako zasady na jakich powinno odbywać się połączenie między użytkownikami w danej sieci komputerowej. Dzięki protokołom możliwe jest nawiązanie połączenia przez komputery pracujące w różnych systemach operacyjnych, spełniających określone funkcje w naszej sieci (np. administracja, serwery, jak również zwyczajni użytkownicy), czyli dzięki użyciu protokołów dostępu komputery nie muszą być ze sobą kompatybilne.

Podczas ćwiczenia badaliśmy następujące protokoły:

  • ALOHA - protokół ten stosowany jest zazwyczaj w rozległych sieciach radiowych. Jego działanie polega na tym, że nadawca może rozpocząć transmisję w dowolnym momencie, nie sprawdzając w żaden sposób stanu zajętości kanału transmisyjnego. Jak wiadomo, taka "ignorancja" może doprowadzić do kolizji z danymi wysłanymi przez innych nadawców. Po otrzymaniu pakietu danych odbiorca wysyła do nadawcy informację o pomyślnym dostarczeniu wiadomości. Jeżeli adresat nie potwierdzi odbioru pakietu, następuje retransmisja danych. Z uwagi na fakt możliwości zablokowania łącza przez powtarzające się próby transmisji kończące się kolizjami, protokół ALOHA opłaca się stosować jedynie w sieciach o małym ruchu.
  • CSMA - w protokole Carrier Sense Multiple Access nadajnik, zanim zacznie transmisję danych, sprawdza czy kanał jest zajęty. Kolizje zachodzą jedynie w przypadku gdy dwa pakiety danych zostaną wysłane jednocześnie od dwóch nadawców, którzy po sprawdzeniu, że kanał jest wolny, zaczynają jednocześnie nadawać. Niestety w momencie wystąpienia kolizji, wszystkie stacje nadawcze, nadal nadają swój sygnał. Treść takiego sygnału jest jednak niemożliwa do odczytu przez odbiorcę.
  • CSMA/CD - dzięki użyciu protokołu Carrier Sense Multiple Access With Collision Detection stacja nadawcza ma możliwość wykrywania kolizji. W chwili detekcji kolizji następuje przerwanie transmisji. Aby wszystkie stacje uczestniczące w transmisji wykryły tę kolizję transmisja jest przerywana z opóźnieniem, dla każdej stacji jest losowany czas opóźnienia przed wznowieniem transmisji. Potwierdzenie prawidłowego odbioru jest zatem bezcelowe. Dla każdej stacji nadawczej zdefiniuje się czas, po którym w razie wystąpienia kolizji nadajnik ponowi transmisję. Standard Ethernet korzysta właśnie z tej metody dostępu do medium.

3. Analiza przeprowadzonej symulacji.

Do symulacji, zgodnie z instrukcją użyliśmy programu "Symulacja dostępu do sieci". Program ten pozwala na obserwację przesyłu danych pomiędzy maksymalnie 10 komputerami, przy użyciu protokołów ALOHA, CSMA oraz CSMA/CD przy różnych parametrach przeprowadzanej symulacji (możliwy jest wybór częstotliwości nadawania oraz długości oczekiwania na potwierdzenie odbioru). W przyjętej przez nas jednostce czasu staraliśmy się obserwować zależność częstotliwości występowania kolizji od rodzaju użytego protokołu, a także wybranych parametrów naszej sieci. Wynik przeprowadzonych symulacji przedstawiają poniższa tabela oraz wykres. Rejestrowaliśmy liczbę kolizji podczas około minuty działania programu. Wyniki które otrzymaliśmy są raczej intuicyjne, trudności sprawiało policzenie dokładnie wszystkich kolizji przy dużej liczbie komputerów. Nie przeprowadziliśmy dokładnej symulacji dla liczby komputerów równej 10, gdyż liczba kolizji staje się trudna do policzenia, a różnice pomiędzy poszczególnymi protokołami stają się widoczne już przy mniejszej liczbie komputerów. Na trudności w policzeniu liczby kolizji złożyły się również częste blokady sieci, przy większej liczbie komputerów w przypadku protokołów ALOHA oraz CSMA.


ALOHA

ALOHA

CSMA

CSMA

CSMA/CD

mała długość oczekiwania

duża długość oczekiwania

mała długość oczekiwania

duża długość oczekiwania

-

mała częst. 3 komp.

7

5

12

4

6

duża częst. 3 komp.

4

1

2

0

0

mała częst. 5 komp.

22

13

28

22

8

duża częst. 5 komp.

30

5

10

5

3

mała częst. 8 komp.

80

30

60

25

15

duża częst. 8 komp.

60

10

20

10

4

00029637.gif 

Tabela oraz wykres liczby kolizji poszczególnych protokołów w jednostce czasu.

Protokół ALOHA

  • mała częstość nadawania, duża długość oczekiwania - kolizje zaczynają być widoczne już przy 3 komputerach. Pomimo małej liczby komputerów analizowany protokół sprzyja wyraźnie dużej liczbie kolizji. Można to zaobserwować zwłaszcza wtedy, gdy dwa komputery ustawimy na początku i na końcu sieci, wtedy przesyłane przez nie informacje powodują występowanie dużej ilości kolizji.
  • duża częstość nadawania, duża długość oczekiwania - w porównaniu z wcześniej rozpatrywanym przypadkiem, liczba kolizji zauważalnie zmalała, za sprawą zwiększenia częstości nadawania, lecz przy zwiększaniu liczby komputerów, dochodzimy do punktu w którym cała sieć zostaje zablokowana.
  • mała częstość nadawania, mała długość oczekiwania - jest to chyba najgorszy z omawianych przypadków, częstość kolizji jest tak wielka, że przy zwiększaniu liczby komputerów staje się bardzo trudna do policzenia. Po stopniowym zwiększaniu liczby komputerów, aż do liczby 8, zaobserwowaliśmy sytuację gdy cała sieć została zablokowana. Odblokowanie staje się możliwe jedynie odłączając jedną stacje. Pomiar ilości kolizji przy dużej ilości komputerów uniemożliwiają blokady sieci.
  • duża częstość nadawania, mała długość oczekiwania - przy mniejszej liczbie stacji podłączonych do sieci liczba kolizji jest względnie niewielka, za sprawą dużej częstości nadawania, jednak daleko jej do najkorzystniejszego drugiego omawianego przypadku.

Protokół CSMA

  • mała częstość nadawania, duża długość oczekiwania - pomimo zastosowania możliwości sprawdzania zajętości danego łącza, "piętą achillesową" tego protokołu są kolizje powstałe na skutek, wysyłania wiadomości przez dwie stacje w zbliżonym czasie. Stacje sprawdzają czy łącze jest wolne a następnie wysyłają dane, niestety dochodzi w tym momencie do kolizji. W wyniku dużego czasu oczekiwania, przy dużej liczbie komputerów, dość szybko udało się nam zaobserwować blokadę sieci.
  • duża częstość nadawania, duża długość oczekiwania - można zauważyć zauważalne zmniejszenie liczby kolizji w porównaniu z protokołem ALOHA, jednak nadal ilość kolizji mimo najkorzystniejszego układu parametrów jest niezadowalająca.
  • mała częstość nadawania, mała długość oczekiwania - dla tego najgorszego zestawu parametrów protokół CSMA, zachowuje się niemal identycznie jak protokół ALOHA, na nic zdaje się użycie funkcji sprawdzania zajętości łącza. Dla mniejszej liczby komputerów zaobserwowaliśmy nawet, że istnieje większe prawdopodobieństwo kolizji używając protokołu CSMA, niż protokołu ALOHA. Przy zwiększaniu liczby komputerów, różnica pomiędzy protokołami na korzyść CSMA staje się zauważalna.
  • duża częstość nadawania, mała długość oczekiwania - po zwiększeniu częstości nadawania znacząco znika prawdopodobieństwo wystąpienia kolizji. Widać tutaj efektywność Carrier Sense, dzięki któremu protokół CSMA uzyskuje dużą przewagę nad ALOHA.

Protokół CSMA/CD

  • mała częstość nadawania - kolizje podobnie jak w przypadku protokołu CSMA występują w przypadku jednoczesnego wysłania informacji przez dwie stacje nadawcze, jednak tym razem zostają one wykryte i w momencie odblokowania kanału powtórzone. Po zwiększeniu liczby komputerów można zauważyć wiele konfliktów w fazie wysyłania, lecz każda informacja prędzej czy później dociera do adresata. Jest to wielka zaleta badanego protokołu. Nie udało nam się zaobserwować zablokowania sieci, co pozwala przypuszczać, że protokół jest odporny na taką ewentualność. Najlepsze możliwości wzajemnego kontaktu mają stacje położone blisko siebie, zaś najgorsze - daleko.
  • duża częstość nadawania - po raz pierwszy dla trzech komputerów podłączonych do sieci, nie udało się odnotować ani jednej kolizji, chociaż jest ona możliwa przy jednoczesnym wysłaniu sygnału. Po zwiększeniu liczby komputerów liczba kolizji pozostaje niewielka, co nie przeszkadza w finalnym dotarciu danego pakietu wiadomości do adresata. Przy nadawaniu przez odległe od siebie stacje nie było kolizji, ponieważ reszta komputerów widziała kanał nośny jako zajęty.

4. Podsumowanie i wnioski końcowe.

Analizując dokładniej parametry badanych protokołów, takie jak częstość nadawania oraz długość czasu oczekiwania, można dojść do kilku ciekawych wniosków. Z wykresu wyraźnie widać, że większa długość czasu oczekiwania na powtórne przesłanie danych wpływa na zmniejszenie liczby kolizji. Długi czas oczekiwania ma jednak również minusy, ponieważ rośnie ryzyko zablokowania sieci (zwłaszcza gdy częstość nadawania również jest duża). W odwrotnym przypadku dochodzimy do odmiennych wniosków, nie tak łatwo zablokować sieć, jednak nie uzyskujemy potwierdzeń, a więc nastąpi strata na jakości połączenia.

Zaobserwowaliśmy, że w każdym badanym przypadku, zwiększenie częstości nadawania pakietów powoduje zmniejszenie liczby kolizji w systemie, co nie do końca wydaje się być zgodne z logiką. Można to jednak wytłumaczyć w ten sposób, że większa częstotliwość nadawania zwiększa prawdopodobieństwo dotarcia informacji do adresata, a co za tym idzie zmniejszenie ruchu w sieci.

W programie mieliśmy również możliwość zbadania jakości transmisji w zależności od umiejscowienia komputerów w sieci. Uruchomienie dwóch komputerów blisko siebie zmniejsza prawdopodobieństwo wystąpienia kolizji i rośnie proporcjonalne do odległości, którą przebyć musi pakiet od nadawcy do adresata. Zwiększając liczbę komputerów w sieci drastycznie wręcz zwiększa się ilość kolizji. Każda kolizja łączy się z powtórzeniem wysyłania pakietu, co zwiększa ruch w sieci. Taka duża liczba powtórzeń w skrajnym przypadku może doprowadzić do zablokowania systemu. Jak udało nam się zaobserwować, bardzo dobrze z tym problemem radzi sobie zastosowany w protokole CSMA/CD algorytm losowego doboru czasu opóźnienia.

Porównując badane protokoły zdecydowanie najlepiej wypada CMSA/CD. Różnice w ilości kolizji widać szczególnie dobrze przy zwiększaniu liczby komputerów, gdzie używając protokołu CSMA/CD nadal mieliśmy gwarancję dostarczenia wiadomości. Natomiast używając pozostałych protokołów, liczba kolizji okazywała się być tak wielka, że prowadziło to do blokady sieci. Protokół ALOHA oraz CMSA wydają się być dość dobrym rozwiązaniem do mniejszych sieci, o długim czasie oczekiwania.

Podsumowując, ćwiczenie uważam za przeprowadzone pomyślnie. Wyniki zebrane w tabeli i przedstawione na wspólnym wykresie mają charakter raczej intuicyjny. Czasem trudno było policzyć z rozsądną dokładnością liczbę kolizji, która przy innym wyborze stacji nadawczych i odbiorczych może się nieznacznie różnić od siebie. Wyniki jednak zdają się potwierdzać nasze przypuszczenia, pozwalając uchwycić zalety i wady badanych protokołów dostępu do wspólnego łącza komputerowego.