Algorytmy kontroli przeciążenia

Oceń tę pracę

Algorytmy kontroli przeciążenia powinny się cechować: skalowalnością, optymalnością, odpornością i implementowalnością. Z opisów algorytmów i analizy symulacji wynika, że żaden z przedstawionych algorytmów nie spełnia w pełni wszystkich cech. Żaden algorytm ze względu na brak niektórych standardów nie może być implementowany jednocześnie w sieciach lokalnych i rozległych. W bardzo szybkich nowopowstających sieciach  rozległych ATM algorytmy typu rate-based są zbyt wolne i nie nadążają czasami za gwałtownymi zmianami stanów sieci. Algorytmy typu credit-based pozbawione tej wady, ze względu na konieczność implementacji osobnych kolejek dla każdego kanału wirtualnego w przełącznikach są obecnie zbyt skomplikowane technologicznie aby mogły być wdrożone. ATM Forum wstrzymała z tego powodu pracę nad algorytmami credit-based i zajęła się udoskonalaniem algorytmów typu rate-based.

Algorytmy bazujące na bitowym sprzężeniu zwrotnym okazały się zbyt wolne, a brak informacji w sprzężeniu zwrotnym na temat stanu sieci (dostępne pasmo, prędkość transmisji) nie umożliwia efektywnej kontroli ruchem. Algorytmy te także w niektórych specyficznych konfiguracja nie sprawiedliwie rozdzielały dostępne pasmo, faworyzując niektórych użytkowników. Najlepszymi do tej pory okazały się algorytmy: CAPC, ERPCA i MIT. Jednak algorytmy te nie są także idealnymi metodami kontroli przeciążenia. Wszystkie trzy algorytmy sprawiedliwie rozdzielają dostępne pasmo. Algorytm CAPC nie rodził sobie z długotrwałym, początkowym przeciążeniem, powodując zatrzymanie transmisji. Algorytm ERPCA, jeden z najprostszych algorytmów, cechował się dość dużymi oscylacjami przydzielanego  pasma i nie osiągał stabilizacji takiej jak pozostałe algorytmy. Najlepszym algorytmem okazał się algorytm MIT, który „najsprawiedliwiej” rozdzielił pasmo przepustowe, osiągną szybko stabilizację prędkości ruchu dla poszczególnych użytkowników. Algorytm ten wymaga prostych obliczeń dla każdego kanału wirtualnego, co w przypadku konfiguracji testowej składającej się z 7 kanałów wirtualnych nie stanowiło problem. Jednak w rzeczywistych warunkach przełącznik obsługuje jednocześnie tysiące kanałów wirtualnych, ilość nieskomplikowanych obliczeń i czas w jakim mają być wykonane wówczas rośnie na tyle, że przekraczają one obecnie moc dostępnych procesorów mogących być zastosowanych w przełącznikach.

Jak widać nie istnieje jeszcze „idealny” algorytm kontroli przeciążeniem. Prace nad niektórymi słabszymi algorytmami zostały wstrzymane, najlepsze  algorytmy są w ciągłej fazie udoskonaleń i testów.

Organizacje standaryzacyjne muszą wybrać jeden najlepszy algorytm albo też zdecydować się na kilka algorytmów i starać się zapewnić kompatybilność pomiędzy poszczególnymi algorytmami. Jest to trudny wybór, którego  organizacjom do tej pory nie udało się dokonać. Problem przeciążenia jeszcze długo będzie tematem otwartym, czekającym na nowe, lepsze rozwiązania.

Niniejsza praca stanowi próbę przedstawienia problemu przeciążenia i analizy dostępnych metod jego rozwiązania. Posiadając odpowiedni pakiet symulacyjny można kontynuować rozpoczętą pracę nad problemem przeciążenia, np. wybierając jeden z algorytmów, spróbować optymalizować jego parametry a nawet starać się modyfikować algorytm, likwidując jego wady. Badania takie dałyby ogromną wiedzę nie tylko na temat problemu przeciążenia, ale także na temat całej technologii ATM.

Warstwa adaptacji ATM

Oceń tę pracę

Aby sieć ATM przenosiła szeroka gamę usług o różnych charakterystykach ruchu oraz różnych wymaganiach systemowych, uzależnieniach czasowych itp., niezbędna jest adaptacja różnych klas aplikacji do jednolitej warstwy ATM. Funkcje te wypełnia Warstwa Adaptacji ATM (AAL – ATM Adaptation Layer).

Zdefiniowano cztery protokoły warstwy adaptacji ATM:

AAL1 – wspomaga usługi połączeniowe. wymagające stałej prędkości transmisji ( CBR -Constant Bit Rate), charakteryzujące się uzależnieniem czasowym pomiędzy nadawcą a odbiorcą (taktowanie i opóźnienie). Realizuje następujące funkcje:

  • Segmentacja i desegmentacja jednostek informacyjnych,
  • Zmniejszanie wpływu zmiennego opóźnienia komórek,
  • Reakcja na stratę komórek lub zmianę ich kolejności,
  • Odtwarzanie w odbiorniku częstotliwości zegara nadajnika,
  • Monitorowanie i obsługa błędów pola kontrolnego AAL.

AAL2 -wspomaga usługi połączeniowe, wymagające zmiennej (przydzielanej dynamicznie) prędkości transmisji ( VBR – Variable Bit Rate). Realizuje następujące funkcje:

  • Segmentacja i desegmentacja jednostek informacyjnych,
  • Korekcja błędów dla usług audio i video,
  • Synchronizacja terminali poprzez przesyłanie znaczników czasu,
  • Obsługa zagubionych i niesekwencyjnych komórek.

AAL3/4 – wspomaga usługi o zmiennym zapotrzebowaniu na przepustowość, zarówno połączeniowe, jak tez bezpołączeniowe (klasy usług „C” i „D”). Początkowo istniały dwa oddzielne protokoły AAL3 oraz AAL4 odpowiednio dla usług połączeniowych i bezpołączeniowych. Spełnia następujące funkcje, które są aktywne w zależności od trybu pracy:

  • Segmentacja i desegmentacja jednostek informacyjnych,
  • Reakcja na błędy,
  • Wskazywanie typu informacji,
  • Określanie maksymalnej wielkości buforów po stronie odbiorczej potrzebnych do skompletowania przesyłanej wiadomości.

AAL5 – wspomaga usługi połączeniowe o zmiennym zapotrzebowaniu na przepustowość. W stosunku do AAL3/4 jest on wersją znacznie odchudzoną m.in. poprzez uproszczenie korekcji błędów. Dzięki temu większe pole w komórce ATM przeznaczone jest na informacje użytkownika (warstwy wyższej). Upraszcza się także obróbka komórki oraz implementacja protokołu. Zakwalifikowano go jako wspomagającego klasę usług „C”, chociaż istnieją projekty wykorzystania go do transportu usług bezpołączeniowych (projekt ATM Forum – „LAN-emulation” oraz specyfikacja IETF dotycząca transportu protokołu IP przez sieć ATM).

Konfiguracja systemu klienta DNS

Oceń tę pracę

Na początku trzeba się przyjrzeć konfiguracji systemu wykorzystującego DNS do rozwiązywania nazw (jeżeli jest w nim także plik Hosts, będzie on również sprawdzany). Klient DNS jest także nazywany resolverem.

Rozwiązywanie nazw DNS jest włączane przez zakładkę DNS w Properties okna dialogowego protokołu TCP/IP.

Pole Host Name (Nazwa hosta) opisuje nazwę hosta, pod jaką system będzie znany usłudze DNS. Jest to taka sama nazwa jak systemu Windows NT. Pole Domain (Domena) określa nazwę domeny lokalnej. Pole DNS Service Search Order (Porządek wyszukiwania serwera DNS) zawiera listę adresów IP dla serwerów DNS, których ten system powinien używać do rozwiązywania nazw. Serwery są używane w kolejności podanej na liście. Domyślnie uznaje się, że żądane nazwy hostów znajdują się w domenie lokalnej (nazwa domeny lokalnej jest dopisywana jako przyrostek do nieznanych nazw hostów).

 Domain Suffix Search Order (Porządek wyszukiwania sufiksów domeny) można wykorzystać do określania dodatkowych domen, w których ma być poszukiwana nazwa hosta. Ta cecha nie jest wymagana w większości przypadków, chyba że używana domena jest głębsza niż dwa poziomy.
Jeżeli podajemy tu dodatkowe domeny, domena lokalna i podane tu domeny będą przeszukiwane w momencie próby rozwiązania nieznanej nazwy hosta (w takiej kolejności, w jakiej są wstawione na liście) i będą to jedyne sprawdzane domeny. Dla odróżnienia, jeżeli zostanie określone jedynie pole Domain w oknie dialogowym, ta domena i wszystkie domeny nadrzędne będą przeszukiwane w poszukiwaniu nieznanych nazw hostów.

Instalowanie TCP/IP

Oceń tę pracę

Instalowanie TCP/IP to proces konfiguracji protokołu sieciowego TCP/IP (Transmission Control Protocol/Internet Protocol), który jest podstawą dla komunikacji w sieciach komputerowych, w tym w Internecie. Protokół TCP/IP umożliwia przesyłanie danych między komputerami, zapewniając mechanizmy zarządzania połączeniami, kontrolowania błędów oraz routingu danych w sieci. Instalacja TCP/IP jest kluczowym krokiem przy konfiguracji sieci komputerowej, niezależnie od tego, czy chodzi o lokalną sieć LAN, czy o dostęp do szerokopasmowego Internetu.

Instalowanie TCP/IP w systemach operacyjnych odbywa się zwykle automatycznie w trakcie instalacji samego systemu operacyjnego. W większości współczesnych systemów operacyjnych, takich jak Windows, Linux czy macOS, TCP/IP jest domyślnie zainstalowane i aktywowane. W przypadku systemów Windows, instalacja protokołu TCP/IP jest procesem zazwyczaj niewymagającym interwencji użytkownika. Jednak w niektórych przypadkach, na przykład przy konfiguracji niestandardowych połączeń sieciowych, konieczne może być ręczne dodanie lub zmodyfikowanie ustawień protokołu.

Instalacja TCP/IP w systemie Windows odbywa się przez Panel Sterowania. Aby to zrobić, użytkownik przechodzi do „Centrum sieci i udostępniania”, wybiera opcję „Zmień ustawienia karty sieciowej”, a następnie wybiera właściwe połączenie (np. Ethernet lub Wi-Fi). Po kliknięciu prawym przyciskiem myszy na połączeniu, wybiera opcję „Właściwości”, gdzie w zakładce „Ogólne” znajduje się lista protokołów. Protokół TCP/IP (wersja 4 lub 6) powinien być już domyślnie zainstalowany. Jeśli nie, użytkownik może go dodać, klikając przycisk „Zainstaluj” i wybierając odpowiedni protokół z listy.

Instalacja TCP/IP w systemie Linux wymaga zazwyczaj mniej interwencji ze strony użytkownika, ponieważ w większości dystrybucji jest to protokół domyślnie aktywowany. Konfiguracja może wymagać edytowania plików konfiguracyjnych, takich jak /etc/network/interfaces w dystrybucjach opartych na Debianie lub /etc/sysconfig/network-scripts/ifcfg-eth0 w systemach opartych na Red Hat. Dla bardziej zaawansowanych użytkowników możliwe jest ręczne przypisanie adresów IP, ustawienie bramy domyślnej oraz skonfigurowanie serwerów DNS. W zależności od dystrybucji, proces ten może różnić się szczegółami, ale większość nowoczesnych systemów Linux automatycznie zarządza protokołem TCP/IP za pomocą narzędzi takich jak NetworkManager lub systemd-networkd.

Po zainstalowaniu protokołu TCP/IP użytkownik może przejść do konfiguracji szczegółowych ustawień, takich jak adresy IP. Istnieją dwa główne podejścia do przypisywania adresów IP: dynamiczne i statyczne. W przypadku ustawienia dynamicznego, komputer automatycznie otrzymuje adres IP z serwera DHCP (Dynamic Host Configuration Protocol), który jest odpowiedzialny za przydzielanie adresów w sieci. W przypadku ustawienia statycznego, użytkownik samodzielnie przypisuje adres IP, co jest typowe w sieciach o stałej konfiguracji, takich jak sieci firmowe czy serwery.

Konfiguracja TCP/IP w systemie macOS jest podobna do systemu Windows, chociaż proces może wyglądać nieco inaczej w zależności od wersji systemu. W przypadku macOS, użytkownik przechodzi do „Preferencji systemowych”, a następnie do „Sieć”, gdzie wybiera aktywne połączenie. W zakładce „Zaawansowane” można ustawić parametry protokołu TCP/IP, takie jak adres IP (statyczny lub dynamiczny), maska podsieci, brama domyślna oraz serwery DNS.

Testowanie i weryfikacja instalacji TCP/IP to kluczowy etap w procesie. Po zainstalowaniu i skonfigurowaniu protokołu TCP/IP, warto upewnić się, że połączenie działa poprawnie. W systemach Windows można użyć polecenia ping, aby sprawdzić, czy komputer może komunikować się z innymi urządzeniami w sieci lub z Internetem. W systemach Linux i macOS również dostępne jest polecenie ping, które służy do testowania połączeń. Można także sprawdzić ustawienia za pomocą polecenia ipconfig (Windows) lub ifconfig (Linux/macOS), które wyświetlają aktualną konfigurację interfejsów sieciowych.

Instalowanie i konfiguracja protokołu TCP/IP to niezbędny proces przy konfigurowaniu połączeń sieciowych w większości systemów operacyjnych. Dzięki temu użytkownicy mogą nawiązywać komunikację w sieci lokalnej oraz z Internetem, a także zarządzać różnymi aspektami sieci, takimi jak przypisywanie adresów IP, ustawienia DNS czy zarządzanie połączeniami.

Zakładka Protocols (Protokoły) apletu Network panelu sterowania pokazuje funkcje sieciowe zainstalowane w systemie i pozwala na dodawanie nowych. Naciśnięcie przycisku Add… (Dodaj…) daje listę dostępnych protokołów.

Rysunek 11

Źródło własne

Aby zainstalować oprogramowanie sieciowe TCP/IP wybieramy TCP/IP Protocol (Protokół TCP/IP), Po wstępnym pytaniu o to, czy chcesz używać DHCP czy nie (zakładam, że na tym etapie wybieramy No), wymagane jest dysku instalacyjnego z Windows NT.

Gdy oprogramowanie zostanie zainstalowane, zamknięcie apletu panelu sterowania automatycznie przenosi użytkownika do podstawowej konfiguracji TCP/IP (która jest również zawsze dostępna przez przycisk Properties zakładkiProtocols, gdy zosta nie wybrany protokół TCP/IP).

Sieć ATM

5/5 - (1 vote)

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.

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.