Współcześnie tworzone sieci ATM osiągają bardzo duże rozmiary zarówno ze względu na rozpiętość geograficzną, jak i też liczbę podłączonych do niej urządzeń końcowych. ATM staje się obecnie najbardziej rozpowszechnianą technologią szkieletową dla złożonych sieci korporacyjnych, miejskich i regionalnych, zaczyna także powoli wkraczać do sieci lokalnych.
Technologia ATM (Asynchronous Transfer Mode) powstała w wyniku kompromisu między dwoma już funkcjonującymi technikami cyfrowej transmisji szerokopasmowej: STM (Synchronous Transfer Mode) i PTM (Packet Transfer Mode), łącząc zalety istniejących technologii przy jednoczesnej eliminacji większości wad tych systemów. Technika STM jest stosowana w sieciach ISDN, PTM zaś w lokalnych sieciach komputerowych. Wywodząca się z telekomunikacji technologia ATM jest coraz częściej postrzegana jako technika łącząca standard przekazów telekomunikacyjnych sieci SDH (Synchronous Digital Hierarchy) na poziomie warstwy fizycznej z różnymi sieciami komputerowymi.
Informacja w standardzie ATM jest przesyłana w postaci krótkich komórek o stałej długości (48 bajtów informacji + 5 bajtów nagłówka). Nagłówek jest niezbędny w celu zrealizowania przezroczystego transportu informacji użytkownika przez sieć ATM bez zakłóceń, straty czy też nadmiernego opóźnienia.
Standard ATM jest techniką telekomunikacyjną typu połączeniowego, co oznacza, że faza przesyłania informacji właściwej jest poprzedzona fazą zestawiania połączenia. W tej fazie wstępnej następuje negocjowanie kontraktu pomiędzy „klientem” sieci a „administracją” sieci. Na podstawie parametrów deklarowanych przez użytkownika (typ usługi, przewidywana przepływność), sieć decyduje, czy można zagwarantować odpowiedni poziom jakości obsługi dla nowopojawiającego się zgłoszenia i dla wszystkich innych aktualnie realizowanych. Zadeklarowane w fazie wstępnej parametry zgłoszenia mogą podlegać renegocjacji. Transmisja w sieci ATM odbywa się poprzez zestawienie łącza logicznego (kanał wirtualny, ścieżki wirtualne).
Sieci oparte o technologie ATM są konfigurowane jako gwiazda lub hierarchiczna gwiazda (w przypadku połączeń miedzy przełącznikami) z przełącznikiem ATM w centrum. Wyróżnia się dwa typy interfejsów:
- UNI (User Network Interface), który łączy sprzęt użytkownika (Customer Premises Equipment) z siecią ATM, czyli odpowiada za styk użytkownik-sieć publiczna. Interfejs UNI powinien zapewnić użytkownikowi podłączenie do publicznej sieci urzadzenia typu: terminal, urządzenie sieci LAN/MAN, przełącznik.
- NNI (Network Node Interface), styk sieciowy umieszczony pomiędzy węzłami ATM. Interfejs łączący tylko porty przełączników ATM – tzn. za ich pośrednictwem łączone są sieci i podsieci ATM. (styk sieć publiczna-sieć publiczna).
- Sieć ATM do przesyłania danych wykorzystuje pakiety o jednakowej długości 53 bajtów (48 bajtów informacji i 5 bajtów nagłówku). Stała długość pakiety upraszcza sterowanie ruchem i zarządzanie zasobami sieci. W dalszej części pracy przedstawię budowę komórki ATM i rodzaje występujących komórek.GFC (Generic Flow Control) – cztery bity kontroli przepływu stosowane w przypadku interfejsu UNI kiedy z jednego interfejs korzysta kilka przyłączonych stacji. W przypadku nie wykorzystywania funkcji kontroli przepływu pole to zawiera same zera. Pole GFC może być wykorzystane przez użytkownika w celu wydzielenia w ramach jego prywatnej sieci wielu klas usług z realizacją różnych wartości QOS.
VPI/VCI (Virtual Path Identifier / Virtual Channel Identifier) – bity identyfikacji wirtualnej ścieżki (VPI) i kanału (VCI) tworzące tzw. routing field – pole decydujące o routingu-transmisji komórki w sieci, miedzy węzłami ATM. Jak wcześniej pokazałem., sieć ATM jest protokółem wymagającym fazy nawiązania połączenia dla ustanowienia wirtualnego połączenia na fizycznych łączach ( uaktualnienia tablic w punktach komutacyjnych). VPI/VCI służą do identyfikacji danej komórki z konkretnym połączeniem i są wykorzystywane do multipleksowania, demultipleksowania i komutacji komórek w węzłach sieci ATM, przyporządkowuje się je danemu połączeniu na czas transmisji i obowiązują na odcinku miedzy węzłami sieci. Ze względu na małe rozmiary komórek stosowanie pełnych adresów byłoby bardzo nieekonomiczne, dlatego stosuje się właśnie takie etykiety unikalne tylko w obrębie interfejsu. Ogólnie rzecz biorąc w węzłach sieci odbywa się wymiana wartości VPI/VCI na inne – ważne na odcinku do następnego węzła. Używając takiego mechanizmu warstwa ATM może asynchronicznie przeplatać w jednym fizycznym medium komórki z wielu połączeń.
PT (Payload Type) – 3-bitowe pole służące do identyfikacji typu informacji jaka niesie komórka. Pozwala ono na odróżnienie danych użytkownika od informacji kontrolnych – związanych z serwisem i zarządzaniem zasobami sieci.
CLP (Cell Loss Priority) – bit określający porządek, w jakim sieć będzie odrzucała komórki w przypadku jej zatłoczenia – kiedy istnieje niebezpieczeństwo przepełnienia bufora w węźle. Komórki z ustawionym bitem CLP (CLP=1) w pierwszej kolejności zostaną odrzucone, dając możliwość obsłużenia komórek o wyższym priorytecie (w sytuacji awaryjnej).
HEC (Header Error Control) – pole kontrolne informacji przenoszonej przez nagłówek. Pojedyncze błędy mogą być korygowane a większa liczba błędów tylko wykrywana.
Standard ATM wyróżnia kilka typów komórek, mogących pojawić się w sieci:
- komórki „puste” (idle cells), komórki nie przenoszące żadnej informacji a jedynie mają za cel dostosowanie szybkości przepływu pomiędzy warstwą ATM a warstwą fizyczną. Komórki te są generowane i usuwane przez warstwę fizyczną;
- komórki „poprawne” (valid cells) –przesyłane w warstwie fizycznej, które mają prawidłowy nagłówek lub których nagłówek został zmodyfikowany przez proces weryfikacji;
- komórki „niepoprawne” (invalid cells), których nagłówek zawiera błędy nie usunięte przez proces weryfikacji, komórki tego typu są usuwane przez warstwę fizyczną;
- komórki „przydzielone” (assigned cells), występujące w warstwie ATM i dostarczające usługi dla aplikacji;
- komórki nieprzydzielone (unassigned cells), czyli wszystkie komórki warstwy ATM, które nie są „przydzielone”.
Sieci w standardzie ATM powinny zapewnić użytkownikom wydajność, efektywność i zagwarantować wynegocjonowane parametry jakościowe przez cały czas połączenia.
Technologia ATM, aby sprostać stawianym jej wymaganiom, potrzebuje odpowiednich algorytmów sterowania ruchem i kontroli przeciążeniem.
Kontrola przeciążenia jest odpowiedzialna za efektywną, wydajną i bezbłędną transmisję danych. Kontrola ta jest jednym z najbardziej istotnych zagadnień we wszystkich szybkich sieciach komputerowych.
Przyczynami powstawania przeciążenia są: fluktuacja strumieni pakietów, niezgodność przepustowości łącz, „wybuchowość” ruchu w sieci a także awarie wewnątrz sieci. Przykładowo transmisja skompresowanego obrazu video może być przyczyną fluktuacji strumieni pakietów. Niezgodność przepustowości łącz spowodowana jest m.in. koniecznością współpracy bardzo szybkich nowoczesnych łącz wraz ze starych wolnymi łączami, które nie znikną z chwilą wprowadzenia szybkich łączy i będą jeszcze długo używane. Rozpiętość przepustowości łącz ciągle się zwiększa. Dzisiaj istnieją sieci o łączach od prędkości 9,6 kbps do 1Gbps, jutro będziemy mieli sieci składające się z łączy od prędkości 9,6 kbps do kilku Gbps. Wzrastająca niejednorodność potęguje problem przeciążenia.
Aby zapewnić efektywność sieci i zapobiec stratom danych na skutek w/w przyczyn, potrzebujemy efektywnych metod badających stan sieci i podejmujących odpowiednie reakcje w celu uniknięcia przeciążenia. Algorytmy sterowania przeciążeniem, którymi się zająłem w niniejszej pracy, są takimi metodami.
W pracy krótko opisałem technologie ATM: architekturę protokołu, format komórki ATM i rodzaje połączeń. Następnie przedstawiłem problem przeciążenia, przyczyny powstawania i próby jego rozwiązania. W dalszej części pracy sklasyfikowałem i powiązałem poszczególne metody kontroli przeciążenia z rodzajami ruchu w sieci ATM. W rozdziale 11 opisałem zasadę działania najbardziej znanych algorytmów kontroli przeciążenia. W następnych rozdziałach bazując na dostępnych symulacjach dokonałem porównania, analizy algorytmów kontroli przeciążenia.