rodzaju transmisjom pierwszeństwo na innymi mniej wrażliwymi na
utratę pakietów.
</p>
+ <h2 id="3.9.1.specificsofnetworktrafic">3.9.1. Specyfikacja ruchu sieciowego</h2>
+ <p>
+ Na początku XXI w. w ruchu sieciowym można było zaobserwować takie
+ transmisje jak klasyczna transmisja danych oraz transmisje głosowe
+ VoIP. Obecenie również dużą częścią ruchu zajmują również transmisje
+ wideo, zarówno spotkania przy użyciu komunikatorów jak i telewizja
+ wykorzystująca obecnie w dużej mierze sieć Intenet. Te rodzaje
+ ruchu mają bardzo specyficzne wymagania odnośnie jakości połączenia.
+ </p>
+ <p>
+ Ruch transmisji głosowej jest bardzo wrażliwy na opóźnienia oraz na
+ utracone pakiety. Retransmisje w tym przypadku nie mają sensu,
+ dlatego też ruch tego rodzaju musi mieć wyższy priorytet niż ruch
+ innego rodzaju. Transmisje głosowe dopuszczają poźnienie do 150 ms,
+ <em>jitter</em> do 30 ms, strata pakietów do 1% oraz wymaganie
+ przepustowości od 30 do 128 Kb/s. Cechami charakterystycznymi tego
+ ruchu są: płynność, łagodność, wrażliwość na opoźnienia i przerwania
+ oraz preferencja transmisji UDP nad TCP.
+ </p>
+ <p>
+ W przypadku ruchu wideo jest bardziej niespójny i nieprzewidywalny
+ w porównaniu do ruchu głosowego. W zależności od dynamiki
+ wyświetlanych treści ruch ten może przesłać znacznie więcej danych
+ tym samym odcinku czasu. Podobnie do ruchu głosowego ruch ten jest
+ wrażliwy na warunki sieciowe, ale nie aż tak bardzo jak ruch głosowy
+ Ruch wideo również powinien posiadać zwiększony priorytet, kosztem
+ ruchu mniej wrażliwego na zakłócenia - takiego jak ruch danych.
+ W przeciwnym wypadku transmisje czy strumienie wideo mogą być
+ niezdatne do oglądania. Transmisje wideo dopuszczają opoźnienia na
+ poziomie do 200 - 400 ms. <em>Jitter</em> do 30-50 ms, stratę
+ pakietów na poziomie od 0,1% do 1% oraz minimalną przepustowość na
+ poziomie od 384 Kb/s do 20 Mb/s. Cechy charakterystyczne dla ruchu
+ wideo to: gwałtowność, zachłanność, wrażliwość na przerwania i
+ opóźnienia oraz wybór UDP na TCP.
+ </p>
+ <p>
+ W przypadku transmisji danych aplikacje wykorzystują protokoły UDP
+ oraz TCP. Gdy aplikacja nie toleruje błędów, wybrany zostanie
+ protokoł TCP nad UDP, gdyż dokonuje on korekcji błędów przez
+ retransmisje. Ruch danych może być płynny lub gwałtowny, ale
+ zazwyczaj jest płynny i przewidywalny. Przypadku ruchu danych to
+ niektóre aplikacje TCP mogą wykorzystać tyle przepustowości ile da
+ się uzyskać. Ruch danych jest stosunkowo niewrażliwy na spadki i
+ opóźnienia w porównaniu z ruche wideo czy ruchem głosowym, to przy
+ ustalaniu priorytetów, należy wziąć po uwagę doświadczenia
+ użytkowników - istnieją dwa kryteria:
+ </p>
+ <ul>
+ <li>Czy dane podchodzą z aplikacji interaktywnej?</li>
+ <li>Czy dane są krytyczne?</li>
+ </ul>
+ <p>
+ Jeśli aplikacja jest interaktywa, a dane są krytyczne to należy
+ ustawić priorytet dla ruchu tej aplikacji aby uzyskać opoźnienia
+ mieszczące się w granicach ludzkiego czasu reakcji. Około 1 do 2 ms.
+ Jeśli na dane nie są krytyczne do aplikację zyskają na większym
+ priorytecie/mniejszym opoźnieniu.
+ </p>
+ <p>
+ Jeśli aplikacja jest nie interaktywna, a dane są krytyczne to
+ opóźnienie może znacznie się różnić, o ile zostanie zapewniona
+ minimalna przepustowość. Jeśli dane są nie krytyczne, aplikacja może
+ pobrać dla siebie pozostałą część przepustowości związaną z obsługą
+ głosu, wideo oraz innych danych.
+ </p>
+ <h2 id="3.9.2.queingalgorithms">3.9.2. Algorytm kolejkowania</h2>
+ <p>
+ Do implementacji jakości usług potrzebne są algorytmy kolejkowania.
+ Te mechanizmy stają się aktywne gdy na łączu występuję przeciążenie.
+ Kolejkowanie jest narzędziem do zarządzania ograniczeniami, które
+ można buforować ustalać priorytety i ewentualnie, jeśli to konieczne
+ zmieniać kolejność pakietów przed przesłaniem ich do miejsca
+ docelowego. Do wyboru mamy takie algorytmy jak:
+ </p>
+ <ul>
+ <li>First In First Out (FIFO)</li>
+ <li>Ważone uczciwe kolejkowanie (Weighted Fair Queuing - WFQ)</li>
+ <li>Uczciwe kolejkowanie oparte na klasach (Class-Based Weighted Fair
+ Queuing - CBWFQ.</li>
+ <li>Kolejkowanie o niskim opoźnieniu (Low Latency Queuing - LLQ).<li>
+ </ul>
+ <p>
+ Pierwszą kolejką jest <strong>FIFO</strong>. Jest to najprostszy
+ model kolejki, przekazuje on pakiety dalej w kolejności ich
+ przybycia. Kolejka tego typu nie rozpoznaje ani priorytetów, ani
+ klas ruchu. Ta kolejka może dopuścić do utraty pakietów ważnego dla
+ nas ruchu. Jeśli nie są wdrożone żadne inne kolejki jest domyślna
+ kolejka dla wszystkich interfejsów z wyjątkiem interfejsów
+ szeregowych E1 (europejskie łącza dzierżawione).
+ </p>
+ <p>
+ <strong>WFQ</strong> jest zautomatyzowaną metodą planowania,
+ zapewniającą uczciwy podział przepustowści dla całego ruchu. WFQ
+ stosuje priorytet lub wagi do zidentyfikowania ruchu. WFQ nie
+ zezwala na konfiguracji opcji klasyfikacji. WFQ klasyfikuje ruch
+ do rozmów lub przepływów, następnie określa ile każdy przepływ ma
+ otzymać przepustowości względem innych. WFQ umożliwia nadanie
+ niewielkiemu interaktywnemu ruchowi typu SSH lub ruch głosowy
+ pierszeństwa w stostunku do dużego ruchu takiego jak FTP. WFQ
+ opiera swoje klasyfikacje na adresacji pakietów, adresach MAC,
+ numerach protów, protokołach oraz wartości pola typu usługi (ToS) w
+ nagłówku IPv4. Przypły ruchu o niskiej przepustowości otrzymają
+ usługę preferencyjną, która pozwoli na terminowe przesłanie całego
+ ładunku transmisji. Wiekszy ruch jest dzielony proporcjonalnie
+ między pozostałą przepustowość. WFQ nie jest obsługiwana przez
+ funkcje tunelowania oraz szyfrowania, ponieważ te funkcje modyfikują
+ informacje o zawartości pakietów wymaganej przez WFQ do klasyfikacji.
+ Mechanizm ten również trochę mniej precyzyjnie zapewnia kontrolę
+ nad alokacją pasma.
+ </p>
+ <p>
+ <strong>CBWFQ</strong> rozszeraz standardową funkcjonalność WFQ
+ zapewniając obsługę klas ruchu. Za pomoca CBWQF możemy zdefiniować
+ klasy na podstawie dopasowania do protokołów, listy ACL, czy
+ interfejsów wejściowych. Klasy są przypisywane według kryteriów
+ dopasowania. Definiując klasę określamy jej przepustowość, wagę czy
+ maksymalny limt pakietów, zdefiniowana przepustowość jest to
+ gwarantowana szerokość pasma dostarczana klasie podczas przeciążenia.
+ Chcąc określić klasę, należy również określić limit kolejki dla tej
+ klasy, tj. maksymalną liczbę pakietów, które mogą się w niej
+ znajdować. Po osiągnięciu tego limitu pakiety każdy pakiet
+ docierający na koniec kolejki (nowy pakiet) będzie porzucany. Ten
+ mechanizm nazywa się <strong><em>tail drop</em></strong> - porzucenie
+ ogona. <em>Tail drop</em>, traktuje ruch jednakowo i nie rozróżnia
+ klas usług.
+ </p>
+ <p>
+ <strong>LLQ</strong> jest funkcja kolejki zapewniająca ścisłe
+ kolejkowanie priorytetowe (PQ) dla CBWFQ. Ścisłe PQ zapewnia
+ wysłanie pakietów wrażliwych na opoźnienia takich jak transmisja
+ głosowa przed pakietami w innych kolejkach. LLQ zapewnia ścisłą
+ kolejkę priorytetową dla CBWFQ, zmieniejszając zniekształcenia w
+ transmisji głosowej.
+ </p>
+ <h2 id="3.9.3.qosmodels">3.9.3. Modele QoS</h2>
+ <p>
+ Istnieją trzy modele QoS, które możemy wdrożyć:
+ </p>
+ <ul>
+ <li><strong>Model best-effort</strong></li>
+ <li><strong>Usługi zintegrowane (IntServ)</strong></li>
+ <li><strong>Usługi zróżnicowane (DiffServ)</strong></li>
+ </ul>
+ <p>
+ QoS jest zaimplementowany w sieci przy użyciu <em>IntServ</em> lub
+ <em>DiffServ</em>. Podczas gdy <em>IntServ</em> zapewnia najwyższą
+ gwarancję jakości usług jest bardzo zasobochłonny, a zatem nie jest
+ łatwo skalowalny. Natomiast <em>DiffServ</em> jest mniej
+ zasobochłonny i bardziej skalowalny. Te dwa podejścia są czasami
+ współwdrażane w sieciowych implementacjach QoS.
+ </p>
+ <p>
+ Modele do wdrożenia QoS:
+ </p>
+ <ul>
+ <li><strong>Model best-effort</strong> - To tak naprawdę nie jest
+ implementacja, ponieważ QoS nie jest jawnie skonfigurowana. Można
+ użyć tej metody gdy jakość usług nie jest wymagana.</li>
+ <li><strong>Usługi zintegrowane (IntServ)</strong> - <em>IntServ</em>
+ zapewnia bardzo wysoką jakość usług dla pakietów IP z
+ gwarantowaną dostawą. Definiuje proce sygnalizacji dla aplikacji w
+ celu zasygnalizowania sieci, że wymagają specjalnego QoS przez
+ pewien okres i że przepustowość powinna być zarezerewowana.
+ <em>IntServ</em> może poważnie ograniczyć skalowalność sieci.</li>
+ <li><strong>Usługi zróżnicowane (DiffServ)</strong> -
+ <em>DiffServ</em> zapewnia wysoką skalowalność i elastyczność we
+ wdrażaniu QoS. Urządzenia sieciowe rozpoznają klasy ruchu i
+ zapewniają różne poziomy jakości usług do róznych klas ruchu.</li>
+ </ul>
+ <h2 id="3.9.4.qosimplementationtechniques">3.9.4. Techniki wdrażania QoS</h2>
+ <p>
+ Utrata pakietów jest zwykle wynikiem przeciążenia na interfejsie.
+ Większość aplikacji korzystających z protokołu TCP spowoduje to
+ spowolnienie, ponieważ TCP automatycznie dostosowuje się do
+ przeciążenia sieci. Porzucone segmenty TCP powoduje, że sesje TCP
+ zmniejszają rozmiary okien. Niektóre aplikacje nie używają TCP i
+ nie obsługują zrzutów. Następujące podejścia mogą zapobiegać spadkom
+ w aplikacjach wrażliwych:
+ </p>
+ <ul>
+ <li>Zwiększ pojemność łącza, aby ułatwić lub zapobiec zatłoczeniu.</li>
+ <li>Zapewnij wystarczającą przepustowość i zwiększ przestrzeń
+ buforową, aby pomieścić impulsy ruchu z delikatnych przypływów.
+ WFQ, CBWFQ i LLQ mogą zagwarantować przepustowość i zapewnić
+ priorytetowe przekazywanie do aplikacji wrażliwych.</li>
+ <li>Utrata pakietów o niższym priorytecie przed wystąpieniem zatorów
+ Cisco IOS QoS zapewnia mechnizmy kolejkowania, takie jak ważone
+ losowe wczesne wykrywanie (WRED), które rozpoczynają odrzucanie
+ pakietów zanim wystąpi przeciążenie.</li>
+ </ul>
+ <p>
+ Narzędzia do wdrażania QoS:
+ </p>
+ <ul>
+ <li><strong>Narzędzia do klasyfikacji i znakowania</strong> - Sesje
+ lub przepływy są analizowane w celu określenia, która klasa ruchu
+ jest do nich przydatna. Po określeniu klasy ruchu pakiety są
+ onaczone.</li>
+ <li><strong>Narzędzia do unikania zatorów</strong> - Na klasy ruchu
+ przydzielane są porce zasobów sieciowych, zgodnie z zaleceniami
+ przez badanie QoS. Zasady QoS określają również, w jaki sposób
+ część ruchu może być selektywna utracona, opóźniona lub ponownie
+ oznaczona, aby uniknąć zatorów. Głównym narzędziem do unikania
+ przeciążenia WRED i służy do regulacji ruchu danych TCP w sposób
+ efektywny pod względem przepustowści, za nim wystąpi
+ <em>tail drop</em> spowodowane przepełnieniem kolejki.</li>
+ <li><strong>Narzędzia do zarządzania zatorami</strong> - Gdy ruch
+ przekracza dostępne zasoby sieciowe, jest umieszczany w kolejce
+ w oczekiwaniu na dostępność zasobów. Wspólne narzędzia do
+ zarządzania ograniczeniami oparte na systemie Cisco IOS obejmują
+ CBWFQ i algorytmy LLQ.</li>
+ </ul>
+ <p>
+ Zanim pakiet będzie mógł mieć zastosowaną politykę QoS musi zostać
+ sklasyfikowany. Klasyfikacja i znakowanie pozwalają nam identyfikować
+ lub <em>oznaczać</em> typy pakietów. Klasyfikacja określa klasę ruchu,
+ do której należą pakiety lub ramki. Dopiero po zaznaczeniu ruchu
+ można zastosować do niego zasady.
+ </p>
+ <p>
+ Sposób, w jaki pakiet jest klasyfikowany, zależy od implementacji
+ jakości usług. Metody klasyfikacji przepływów ruchu na warstwie 2 i
+ 3 obejmują korzystanie z interfejsów ACL i map klas. Ruch można
+ również klasyfikować w warstwach od 4 do 7 przy użyciu funkcji
+ rozpoznawania aplikacji sieciowych (NBAR).
+ </p>
+ <p>
+ Oznakowanie ruchu dla QoS:
+ </p>
+ <ul>
+ <li><strong>Ethenet(802.1Q, 802.1p)</strong> - warstwa: 2, znakowanie
+ pola: Klasa usług (CoS), Szerokość w bitach: 3</li>
+ <li><strong>802.11 (Wi-Fi)</strong> - warstwa: 2, znakowanie pola:
+ Identyfikator ruchu Wi-Fi (TID), szerokość w bitach: 3</li>
+ <li><strong>MPLS</strong> - warstwa: 2, znakowanie pola:
+ Eksperymentalne (EXP), szerokość w bitach: 3.</li>
+ <li><strong>IPv4 i IPv6</strong> - warstwa: 3, znakowanie pola:
+ Pierwszeństwo IP (IPP), szerokość w bitach: 3.</li>
+ <li><strong>IPv4 i IPv6</strong> - warstwa: 3, znakowanie pola:
+ DSCP (<em>Differentiated Services Code Point</em>), Szerokość w
+ w bitach: 6.</li>
+ </ul>
</div>
</body>
</html>