Wraz z popularyzacją Internetu, który mógł tworzyć każdy, niezbędne okazało się określenie usług jakie taka globalna sieć powinna udostępniać oraz jakie parametry należy tym usługom zagwarantować by były użyteczne. Usystematyzowanie tych parametrów nosi miano jakości usług (Quality of Service). Pierwszy opis jakości usług został dokonany w 1993 roku przez Scotta Schenkera, Davida Clarcka i Lixie Zang [1]. Wprowadzili podział zapewniania usługi (service commitment) na kilku płaszczyznach. Po pierwsze, określać przydział można:
Autorzy zwracają uwagę na to, że najważniejszym parametrem usługi jest opoźenienie, a konkretnie jego minimalna i maksymalna możliwa wartość. Wymogi jakie stawiają aplikacje tym parametrom klasyfikują je w sposób pokazany na rysunku. Nie jest to podział dokładny, a jedynie obrazujący rozwój algorytmów kolejkowania danych. ASAP (As Soon As Possible) to określenie wysyłania pakietów tak szybko jak to możliwe bez narażania innych usług na niespełnienie swoich warunków. Pakiety z tej kategorii wybierane są w kolejności określonej według ustalonego priorytetu (kolejno ASAP1, ASAP2, ASAP3). Przewidujący minimaksymalny algorytm to sposób dzielenia minimaksymalnie według potrzeb jakie zdaje się mieć aplikacja. Chodzi tu między innymi o usługi przekazujące strumień, które dostosowują ilość danych do prędkości połączenia. Przykładowe aplikacje według podziału:
Podczas gdy dla pojedyńczego połączenia liczy się opóźnienie, to z punktu widzenia interfejsu sieciowego routera, który przepustowość swego łącza musi rozdzielić optymalnie, najważniejszą wartościa dotyczącą połączenia jest jego ogół przepustowości w danej jednostce czasu. Ogół czynności z tym związanych określa się mianem wspołdzielenia łącza (link-sharing). W zależności od typu przedmiotów współdzielących wyróżnia się współdzielenie na bazie:
Problem wymaga jasnego określenia zasad współdzielenia. Rozpatrzmy następujący przykład (tamże, s. 15 :) ): Firmy 1, 2, 3 mają udział w łączu odpowiednio $1/4$, $1/4$, $1/2$. Przypuśćmy, że przez godzinę firma 1 nie korzysta z łącza, a firmy 2 i 3 przesyłają dane mogące wykorzystać całość łącza. Czy te dwie firmy powinny być ograniczone tylko do swoich udziałów, czy też mogą użyć niewykorzystanego pasma firmy 1? Jeśli tak, to jak podzielić dodatkowe pasmo pomiędzy interesantów? Ponadto, jeśli przez kolejne 20 minut, wszystkie firmy będą w stanie wykorzystywać całość łącza, to czy należy brać pod uwage debet firmy 1 w średniej przepustowości powstały przez godzinę nieaktywności, czy też dzielić sztywno według pierwotnych udziałów? Podczas gdy podział dodatkowego pasma można podzielić proporcjonalnie do udziałów, to przedział czasu w którym należy obliczać średnią przepustowość jest trudny do określenia. Zbyt duży czas, może zatrzymać przesył danych firm 2 i 3 póki debet przepustowości firmy 1 nie wyrówna się. Może to mieć poważny, negatywny wpływ na wymagania usług firm 2 i 3 dotyczące maksymalnego opóźnienia.
Wyidealizowany model współdzielenia łącza zaproponowany przez Demersa, Keshava i Schenkera [2] mówi, że w każdej chwili dostępne pasmo jest rozdzielone pomiędzy aktywnymi jednostkami proporcjonalnie do swych udziałów. Oznaczmy $\mu$ jako przepustowość łącza. Przydzielmy każdemu połączeniu $i$ jego włąsną wirtualną kolejkę do której lądują pakiety przesyłanie przez to połączenie. Każde takie połączenie charakteryzują następujące wartości:
Wartość $b'_i(t)$ określa z jaką prędkością może przesyłać dane połączenie $i$. Jeśli pochodna jest ciągła, otrzymujemy podział idealny, i choć niemożliwy do uzyskania w rzeczywistości to stanowiący dobre kryterium większości algorytmów kolejkowania.
Przypisy
Content by Michał Pokrywka
is licensed under a Creative Commons BY-SA 3.0 Ostatnia znacząca zmiana: 2010-04-28 |