Opis i demonstracja zasady działania protokołu wielodostępu w sieci HIPERLAN/2 przy pomocy apletu napisanego w języku JAVA.





Wstęp:

    Symulację warstwy MAC sieci Hiperlan 2 stanowi program napisany w języku Java. Aby go uruchomić należy wybrać jeden z poniższych odnośników. Wszystkie odnośniki uruchamiają ten sam program, ale osadzony w różnych plikach html. Pliki różnią się parametrami wywołania apletu i przez to wpływają na jego działanie.

    Pierwszy odnośnik otwiera okno symulacji w trybie CM nie ustawiając jakichkolwiek parametrów.

    Drugi ustawia symulację w tryb CM i ustawia każdemu terminalowi deklarowany ruch VBR w ilości powodującej wysłanie średnio jedno LCH co drugą ramkę. Powoduje to występowanie dużej ilości resource request-ów w fazie RCH, co pociąga za sobą występowanie kolizji. Symulacja ta pozwala na prześledzenie w jaki sposób terminale używają tego kanału.

    Trzeci przykład ukazuje różnicę w dostępie do medium dla ruchu o stałej przepływności, gdzie następuje rezerwacja pasma i ruchu o zmiennej przepływności, gdzie terminal musi dla każdego LCH poprosić o zasoby.

    Czwarty przykład ukazuje jak ruch ABR wypełnia całkowicie dostępne pasmo.

    Ostatni z przykładów nie posiada parametrów tak jak w przykładzie pierwszym, natomiast komunikuje się z użytkownikiem w języku polskim.



Symulacje warstwy MAC Hiperlan 2:

  1. Symulacja bez parametrów.
  2. Kolizje w RCH.
  3. Różnica pomiędzy CBR i VBR.
  4. ABR.
  5. Symulacja bez parametrów, w języku polskim.
  6. Przykład wykorzystania wszystkich parametrów apletu.


Instrukcja obsługi:

    Na górze okna programu znajduje się skrócony opis zawartości kanału BCH i ACH tak, aby od razu, bez potrzeby otwierania dodatkowych okien, można było poznać najważniejsze informacje tam zawarte. Poniżej znajduje się wykres czasowy przedstawiający jedną ramkę MAC. Widoczna jest od razu cała ramka, skala ją opisująca obejmuje 2 ms. Początek ramki znajduje się po lewej stronie. Transmisja symbolizowana jest kolorowymi prostokątami. By ułatwić obserwacje prostokąty mają różne barwy. Ich kolor odpowiada poszczególnemu terminalowi, który dokonał transmisji, a wysokość symbolizuje prędkość transmisji. Dokładną wartość można odczytać ze skali, która znajduje się na wykresie po lewej stronie

    Poniżej wykresu wyświetlona jest skrócona informacja o zawartości FCH (lewa strona) oraz o występujących w ramce resource request-ach (prawa strona). Informacje te zawierają najistotniejsze pola zawarte w przesyłanych RR i RG. Czas wskazywany przez start pointer został zinterpretowany.

    Na samym dole znajdują się kolorowe prostokąty symbolizujące mobilne terminale biorące udział w symulacji. Pierwszy z nich to AP/CC. Wewnątrz prostokątów znajdują się parametry ruchowe źródeł danych, dołączonych do poszczególnych terminali oraz stan buforów w terminalach. Opis jest podzielony na kategorie ruchu. W pierwszym wierszu wyświetlone jest żądane pasmo dla ruchu CBR w kb/s i zajętość bufora dla ruchu CBR w bajtach. W następnym wierszu jest zadeklarowane średnie pasmo VBR również w kb/s i zajętość bufora dla VBR w bajtach, poniżej ilość zadeklarowanych danych do przesłania w trybie ABR. W tym wypadku wyświetlona jest ilość danych, które pozostały do wysłania. Na samym dole wyświetlona jest ustawiona szybkość pracy terminala - PHY mode.

    Do sterowania pracą programu przeznaczone są pola listy oraz przyciski znajdujące się na dole po prawej stronie okna programu. Za pomocą pola listy, przez wybranie pozycji, można otworzyć dodatkowe okienko zawierające pełną informację na temat zawartości kanałów osobno BCH, FCH i ACH. Do otwarcia okna wystarczy rozwinąć listę i wybrać pozycję. Dane w tych oknach wyświetlane są przedstawione w postaci zgodnej z opisem w normie. Przyciskiem konfig (config) /w nawiasie podaję opis przycisku po załadowaniu angielskiego interfejsu/ otwieramy okno konfiguracji, a przyciskiem krok (step >) wyświetlamy pierwszą i następne ramki symulowanej transmisji w sieci Hiperlan/2.

    Obsługa programu polega na wybraniu określonych parametrów w oknie konfiguracji. Następnie należy zamknąć okno konfiguracji, ponieważ podczas jego zamykania wpisane parametry zapisywane są do poszczególnych terminali oraz AP/CC. Dalsza obsługa polega na kolejnym wciskaniu przycisku krok (step>) i obserwowaniu wyników symulacji. Każde wciśnięcie przycisku krok (step>) powoduje przesunięcie się czasu symulacji o 2 ms i pojawienie się nowej ramki MAC, a więc powoduje wysłanie przez wszystkie urządzenia danych, tworzących tę kolejną ramkę. W wyniku tego zmienia się również zawartość buforów w urządzeniach, co od razu uwidocznione jest na dole okna programu.

    Aby przeprowadzić kolejną symulację należy doprowadzić program do stanu pierwotnego w celu ustawiania terminali i access point-a w stan początkowy. Aby tego dokonać, należy zrestartować aplet. W tym celu wystarczy wcisnąć w przeglądarce przycisk odśwież (refresh lub reload) powodujący ponowne załadowanie strony www.

    Okno konfiguracji zawiera pola pozwalające na wpisywanie parametrów ruchowych do poszczególnych urządzeń. Po lewej stronie okna znajdują się etykiety opisujące, którym urządzeniom odpowiadają poszczególne pola konfiguracyjne, następnie umieszczone jest pole listy, z którego można wybrać, w jakim trybie fizycznym, tj., z jaką prędkością dany terminal będzie prowadził transmisję. Dalej znajdują się pola, w których możemy określić wielkość ruchu generowanego w terminalu. Wiersze pól są pogrupowane po trzy. Każda trójka odpowiada jednemu terminalowi, pola dotyczą po kolei ruchowi CBR, VBR oraz ABR. Należy w nie wpisać wartość liczbową odpowiadającą ilości ruchu generowanego przez urządzenie użytkownika, podłączone do terminala. W polach opisujących ruch CBR i VBR należy wpisać pasmo wyrażone w kilobitach na sekundę, a w polu ABR wielkość pliku wyrażoną w kilobajtach. Następnie należy ustawić adresata dla danego typu ruchu. W prawej kolumnie można wpisać ruch generowany w zewnętrznej sieci kablowej, który będzie przesyłany przez AP w fazie downlink do wybranego terminala. Wyjątek stanowi pierwsze urządzenie AP/CC lub MT/CC, w przypadku którego nie ma sensu, by przesyłało ruch z sieci zewnętrznej drogą radiową do siebie. W trybie Centralized używamy AP, do którego nie jest możliwe podłączenie urządzenia użytkownika generującego ruch. Dlatego została zablokowana możliwość wpisania wartości w pola konfiguracyjne.

    Poniżej pól konfiguracyjnych znajdują się trzy liczby będące podsumowaniem wpisanego, oferowanego przez urządzenia ruchu.

    Na samym dole okna konfiguracji, po lewej stronie, znajduje się przełącznik trybu CM / DM. W trybie Centralized Mode (CM), siecią zarządza dedykowany Access Point (AP/CC) podłączony do zewnętrznej sieci kablowej. W tym trybie przyjąłem, że może on pracować jedynie z maksymalną prędkością 54 Mbit/s. W trybie Direct Mode (DM) siecią zarządza wylosowany terminal MT/CC oznaczony numerem zero. Nie jest on podłączony do sieci kablowej i może generować ruch, dlatego możliwość edycji pól została włączona. W tym trybie możliwe jest również występowanie fazy DiL w ramce MAC.

    Po wypełnieniu wszystkich danych przyciskiem OK należy zamknąć okno konfiguracji, by zmiany zostały zapisane do terminali.

    Istnieje również możliwość automatycznego wypełnienia wszystkich pól konfigurujących pracę programu poprzez przekazanie odpowiednich wartości, używając parametrów wywołania programu. Parametry te należy wpisać w treść strony html wywołującej aplet. Praca zawiera plik html zawierający przykładowe użycie wszystkich możliwych parametrów. Poniżej znajduje się lista dostępnych parametrów:

lang	- Ustawia język komunikacji z użytkownikiem, dostępne możliwości to pl_PL lub en_US, w przypadku błędnego wypełnienia używana jest wartość domyślna - en_US.
mode	- dostępne możliwości to CM lub DM, w przypadku błędnego wypełnienia używana jest wartość domyślna - CM

mt0_speed	- dostępne możliwości to liczby od 0 do 6. Opisuje prędkość terminala. 0- 6Mbit, 1- 9Mbit, 2- 12Mbit, 3- 18Mbit, 4- 27Mbit, 5- 36Mbit, 6- 54Mbit
mt0_cbr	- wartość deklarowanej transmisji typu CBR z MT nr 0 (nie działa w trybie CM - dla AP)
mt0_vbr	- wartość deklarowanej transmisji typu VBR z MT nr 0 (nie działa w trybie CM - dla AP)
mt0_abr	- wartość deklarowanej transmisji typu ABR z MT nr 0 (nie działa w trybie CM - dla AP)
mt0_target_cbr	- cel transmisji typu CBR z MT nr 0 (nie działa w trybie CM - dla AP)
mt0_target_vbr   - cel transmisji typu VBR z MT nr 0 (nie działa w trybie CM - dla AP)
mt0_target_abr   - cel transmisji typu ABR z MT nr 0 (nie działa w trybie CM - dla AP)


mt1_speed	- znaczenie jak dla poprzednich parametrów
mt1_cbr
mt1_vbr
mt1_abr
mt1_target_cbr
mt1_target_vbr
mt1_target_abr
mt1_incoming_cbr	- wielkość transmisji typu CBR do MT nr 1 z sieci zewn. (nie działa w trybie DM)
mt1_incoming_vbr	- wielkość transmisji typu VBR do MT nr 1 z sieci zewn. (nie działa w trybie DM)
mt1_incoming_abr	- wielkość transmisji typu ABR do MT nr 1 z sieci zewn. (nie działa w trybie DM)

 mt2_speed
mt2_cbr
mt2_vbr
mt2_abr
mt2_target_cbr
mt2_target_vbr
mt2_target_abr
mt2_incoming_cbr
mt2_incoming_vbr
mt2_incoming_abr

mt3_speed
mt3_cbr
mt3_vbr
mt3_abr
mt3_target_cbr
mt3_target_vbr
mt3_target_abr
mt3_incoming_cbr
mt3_incoming_vbr
mt3_incoming_abr

mt4_speed
mt4_cbr
mt4_vbr
mt4_abr
mt4_target_cbr
mt4_target_vbr
mt4_target_abr
mt4_incoming_cbr
mt4_incoming_vbr
mt4_incoming_abr
 


Słowniczek skrótów:
ABR - Available Bit Rate
ACH - Access Feedback Channel
AP - Access Point
BCH - Broadcast CHannel
CBR - Constant Bit Rate
CC - Central Controller
CM - Centralized Mode
DM - Direct Mode
DiL - Direct Link Phase 
DL - Downlink phase
FCH - Frame CHannel
LCH - Long transport CHannel
MAC - Medium Access Control
MT - Mobile Terminal
RCH - Random CHannel
RG - Resource Grant
RR - Resource Request
SCH - Short transport CHannel
UL - Uplink Phase
VBR - Variable Bit Rate



Instalacja JRE i rozwiązywanie problemów:

    Ponieważ programy napisane w języku Java wymagają odpowiedniego środowiska uruchomieniowego, to mogą wystąpić problemy podczas pierwszego uruchomienia programu. Jeśli w oknie przeglądarki widać jeden pusty szary prostokąt, w którym po środku może pojawić się komunikat błędu, to znaczy, że najprawdopodobniej brakuje wirtualnej maszyny Javy lub jej odpowiednio aktualnej wersji. Program jest napisany w języku Java stworzonym przez firmę SUN, kompilowany jest z kodu źródłowego do kodu pośredniego, a nie maszynowego i w takiej postaci jest udostępniany do uruchomienia. Kod pośredni nie jest kodem pasującym do jakiegokolwiek istniejącego procesora, wymaga natomiast środowiska, w którym będzie go wykonywał i to jest wirtualna maszyna Java. Kod pośredni zawierający program można uruchomić bezpośrednio poprzez uruchomienie wirtualnej maszyny i wskazanie pliku z programem lub w postaci apletu osadzonego w dokumencie HTML. Ta druga metoda została w mojej pracy wykorzystana. Dzięki temu program nie ma możliwości wykonania jakichkolwiek niebezpiecznych działań na komputerze, gdzie został uruchomiony i może być bez przeszkód udostępniony w Internecie i bez obaw przez wszystkich uruchomiony. Ponieważ język Java rozwija się dość dynamicznie i powstają dość często nowe wersje wirtualnej maszyny, a także z powodów polityki licencyjnej niektórych producentów przeglądarek internetowych, nie każda przeglądarka ma ją zainstalowaną lub wystarczająco aktualną.

    Program został stworzony w wersji 2 języka Java z wykorzystaniem biblioteki SDK w wersji 1.3.1., dlatego do uruchomienia potrzeba minimum takiej wersji środowiska uruchomieniowego (JRE). Aktualną wersję (w dniu oddania pracy była to 1.5.0.01) można pobrać ze strony www firmy Sun. Jest ona dołączona też do płyty CD dołączonej do niniejszej pracy. Po zainstalowaniu JRE może być jeszcze konieczne skonfigurowanie przeglądarki. W przypadku Internet Exlorera w wersji 5.x i 6.x, w menu narzędzia | opcje internetowe, należy wybrać zakładkę zaawansowane i zaznaczyć opcję "Use Java 2 v 1.x.......". W przypadku programu Netscape lub Mozilla integracja powinna nastąpić automatycznie. Ustawienia można modyfikować w menu Edycja | preferencje. W otwartym okienku na dole po prawej stronie należy rozwinąć MozTweak i wybrać Nawigator - Wtyczki.

    Jeśli jest problem z użyciem przeglądarki www obsługującej Javę, można aplet uruchomić bezpośrednio za pomocą Applet Viewer-a dostarczonego wraz z JRE. W tym celu należy w wierszu poleceń wydać komendę: "appletviewer hiperlan.html". Sam program appletviewer znajduje się fizycznie na dysku komputera tam, gdzie pozostała cześć środowiska. Na systemach Windows jest to domyślnie c:\program files\jdk1.x....\bin. W systemach Unix lokalizacja bibliotek jest różna, ale binaria lub dowiązania symboliczne do nich najczęściej znajdziemy w /usr/bin/ lub /usr/local/bin.

    Jeśli przeglądarka obsługuje Javę i jest zainstalowane odpowiednie środowisko programistyczne, a aplet nadal nie działa, należy sprawdzić, czy w opcjach przeglądarki dozwolone jest użycie Javy oraz czy ścieżka przeszukiwania środowiska systemu operacyjnego (PATH) zawiera katalog z binariami JRE. Jeśli JRE właśnie zostało zainstalowane, często konieczne jest ponowne zalogowanie się do komputera w celu uaktualnienia środowiska systemu operacyjnego.


skok do lewandowicz.eu