IntServ
Rezerwacja zasob贸w z RSVP dla gwarantowanej jako艣ci us艂ug.
1. Problem Internetu "Best-Effort"
Tradycyjny internet dzia艂a w oparciu o model dostarczania "najlepszych stara艅" (best-effort). Oznacza to, 偶e sie膰 dok艂ada wszelkich stara艅, aby dostarczy膰 Twoje pakiety danych, ale nie daje absolutnie 偶adnych obietnic. Dla wielu wczesnych zastosowa艅, takich jak e-mail czy transfer plik贸w, by艂o to wystarczaj膮ce. Je艣li niekt贸re pakiety by艂y op贸藕nione lub utracone, Protok贸艂 Kontroli Transmisji (TCP) po prostu je retransmitowa艂, a u偶ytkownik ledwo to zauwa偶a艂, poza nieco d艂u偶szym czasem pobierania.
Jednak wraz z rozwojem aplikacji czasu rzeczywistego, takich jak Voice over IP (VoIP), streaming wideo na 偶ywo i gry online, model best-effort okaza艂 si臋 nieadekwatny. W tych zastosowaniach czas jest wszystkim. Pakiet audio rozmowy telefonicznej, kt贸ry dociera z 500-milisekundowym op贸藕nieniem, jest ca艂kowicie bezu偶yteczny; moment w rozmowie ju偶 min膮艂. Nieprzewidywalno艣膰 sieci, ze zmiennymi op贸藕nieniami (jitter) i potencjaln膮 utrat膮 pakiet贸w podczas przeci膮偶enia, uniemo偶liwi艂a zapewnienie sp贸jnego, wysokiej jako艣ci do艣wiadczenia dla tych wra偶liwych na czas us艂ug. Potrzebna by艂a nowa architektura, kt贸ra mog艂aby zapewni膰 jawne, przewidywalne gwarancje dotycz膮ce wydajno艣ci sieci.
2. Wprowadzenie Zintegrowanych Us艂ug (IntServ): Filozofia Rezerwacji
Model zosta艂 opracowany przez IETF jako kompleksowe rozwi膮zanie tego problemu. Fundamentalna filozofia IntServ polega na odej艣ciu od podej艣cia "miejmy nadziej臋, 偶e si臋 uda" na rzecz modelu jawnej rezerwacji zasob贸w.
G艂贸wna idea IntServ polega na tym, 偶e zanim aplikacja wy艣le jakiekolwiek dane, musi najpierw zasygnalizowa膰 swoje potrzeby sieci i za偶膮da膰 rezerwacji zasob贸w niezb臋dnych do ich zaspokojenia. Rezerwacja ta musi by膰 dokonana na ka偶dym routerze wzd艂u偶 ca艂ej 艣cie偶ki od nadawcy do odbiorcy. Je艣li ka偶dy router na 艣cie偶ce zgodzi si臋, 偶e ma wystarczaj膮ce zasoby (przepustowo艣膰 i przestrze艅 buforow膮) i zaakceptuje rezerwacj臋, aplikacja otrzymuje gwarancj臋 od ko艅ca do ko艅ca dla swoich danych. Je艣li cho膰by jeden router na 艣cie偶ce nie mo偶e zapewni膰 偶膮danych zasob贸w, rezerwacja ko艅czy si臋 niepowodzeniem, a aplikacja jest powiadamiana, 偶e nie mo偶e uzyska膰 po偶膮danej jako艣ci us艂ugi. To podej艣cie zapewnia "twardy QoS", co oznacza, 偶e gwarancje s膮 jawne i mierzalne.
3. G艂贸wne Mechanizmy IntServ
Architektura IntServ jest zbudowana na trzech kluczowych, wsp贸艂dzia艂aj膮cych koncepcjach: przep艂ywie, rezerwacji zasob贸w i kontroli przyj臋膰.
A. Przep艂ywy Danych: Identyfikacja Konwersacji
IntServ nie zarz膮dza ruchem w spos贸b og贸lny. Zamiast tego dzia艂a na poj臋ciu . Przep艂yw to okre艣lony, daj膮cy si臋 odr贸偶ni膰 strumie艅 danych z pojedynczej aplikacji. Na przyk艂ad rozmowa VoIP mi臋dzy dwoma u偶ytkownikami to jeden przep艂yw, strumie艅 wideo z serwera do u偶ytkownika to inny przep艂yw, a transfer pliku to trzeci. Routery w sieci IntServ musz膮 by膰 w stanie identyfikowa膰 pakiety nale偶膮ce do okre艣lonych przep艂yw贸w, aby zastosowa膰 do nich odpowiedni膮, zarezerwowan膮 us艂ug臋.
B. Rezerwacja Zasob贸w: 呕膮danie Gwarancji
Aplikacja inicjuje rezerwacj臋, okre艣laj膮c charakterystyk臋 swojego ruchu i wymagany poziom us艂ug. Odbywa si臋 to za pomoc膮 protoko艂u sygnalizacyjnego. Sie膰 rezerwuje nast臋pnie dwa podstawowe zasoby wzd艂u偶 wyznaczonej 艣cie偶ki:
- Przepustowo艣膰: Pewna cz臋艣膰 przepustowo艣ci 艂膮cza jest odk艂adana na bok dla danego przep艂ywu, zapewniaj膮c, 偶e mo偶e on przesy艂a膰 dane z wymagan膮 szybko艣ci膮, nawet gdy 艂膮cze jest zaj臋te.
- Przestrze艅 Buforowa: Cz臋艣膰 pami臋ci routera jest rezerwowana dla pakiet贸w danego przep艂ywu. Zapewnia to, 偶e w przypadku wyst膮pienia ma艂ych impuls贸w, pakiety mog膮 by膰 kolejkowane bez odrzucania, co jest niezb臋dne do zapewnienia gwarancji op贸藕nienia.
C. Kontrola Przyj臋膰: Stra偶nik Sieci
Centralnym elementem modelu IntServ jest . Kiedy 偶膮danie nowej rezerwacji dociera do routera, router ten musi wykona膰 obliczenia. Sprawdza swoje bie偶膮ce zobowi膮zania co do zasob贸w w stosunku do ca艂kowitych dost臋pnych zasob贸w. Musi odpowiedzie膰 na pytanie: "Je艣li zaakceptuj臋 ten nowy przep艂yw, czy nadal b臋d臋 w stanie honorowa膰 wszystkie obietnice, kt贸re ju偶 z艂o偶y艂em istniej膮cym przep艂ywom?". Je艣li odpowied藕 brzmi tak, akceptuje rezerwacj臋. Je艣li odpowied藕 brzmi nie, odrzuca 偶膮danie. Ten proces dzia艂a jak stra偶nik, zapobiegaj膮c nadmiernemu obci膮偶eniu sieci i zapewniaj膮c, 偶e raz dana gwarancja jest zawsze dotrzymywana.
4. RSVP: Protok贸艂 Sygnalizacyjny dla IntServ
Mechanizmem, kt贸rego aplikacje u偶ywaj膮 do komunikowania swoich potrzeb sieci i ustanawiania rezerwacji, jest . RSVP to protok贸艂 sygnalizacyjny, co oznacza, 偶e nie przenosi on samych danych aplikacji; przenosi tylko komunikaty niezb臋dne do skonfigurowania 艣cie偶ki dla tych danych.
Dwuetapowy Proces Rezerwacji
RSVP ustanawia rezerwacje przy u偶yciu dwuetapowego procesu obejmuj膮cego komunikaty `PATH` i `RESV`.
- Krok 1: Komunikat `PATH` (Nadawca do Odbiorcy)
Proces rozpoczyna si臋 od nadawcy danych (np. serwera wideo). Aplikacja nadawcy wysy艂a komunikat RSVP `PATH` przeznaczony na adres IP odbiorcy. Ten komunikat `PATH` podr贸偶uje przez sie膰, pod膮偶aj膮c t膮 sam膮 tras膮, kt贸r膮 b臋d膮 pod膮偶a膰 rzeczywiste pakiety danych. Kiedy przechodzi przez ka偶dy router obs艂uguj膮cy IntServ, router sprawdza komunikat i tworzy "stan 艣cie偶ki". Ten wpis stanu rejestruje poprzedni przeskok, tworz膮c w zasadzie 艣lad, kt贸ry wyznacza 艣cie偶k臋 powrotn膮 do nadawcy. Komunikat `PATH` nie dokonuje 偶adnych rezerwacji; jedynie ustanawia 艣cie偶k臋 zwrotn膮 dla 偶膮dania rezerwacji.
- Krok 2: Komunikat `RESV` (Odbiorca do Nadawcy)
Kiedy komunikat `PATH` dociera do odbiorcy danych (np. klienta wideo), aplikacja odbieraj膮ca zna teraz 艣cie偶k臋 do nadawcy. Odbiorca jest odpowiedzialny za zainicjowanie faktycznej rezerwacji. Tworzy komunikat RSVP `RESV` (Rezerwacja), okre艣laj膮c po偶膮dan膮 jako艣膰 us艂ug (np. "Potrzebuj臋 5 Mbps przepustowo艣ci"). Ten komunikat `RESV` jest nast臋pnie wysy艂any z powrotem w kierunku nadawcy, pod膮偶aj膮c 艣cie偶k膮 zwrotn膮 ustanowion膮 przez komunikat `PATH`.
W miar臋 jak komunikat `RESV` podr贸偶uje z przeskoku na przeskok z powrotem do nadawcy, ka偶dy router na 艣cie偶ce go przechwytuje. Na ka偶dym routerze dzieje si臋 co nast臋puje:
- Modu艂 kontroli przyj臋膰 routera bada 偶膮danie rezerwacji.
- Sprawdza swoje dost臋pne zasoby przepustowo艣ci i bufor贸w, aby zobaczy膰, czy mo偶e zaspokoi膰 偶膮danie.
- Je艣li mo偶e, alokuje niezb臋dne zasoby, aktualizuje sw贸j wewn臋trzny stan, aby odzwierciedli膰 to nowe zobowi膮zanie, i przekazuje komunikat `RESV` do nast臋pnego routera w g贸r臋 艣cie偶ki.
- Je艣li nie mo偶e zaspokoi膰 偶膮dania, odrzuca je i wysy艂a komunikat o b艂臋dzie rezerwacji z powrotem do odbiorcy.
Je艣li komunikat `RESV` pomy艣lnie dotrze do pierwotnego nadawcy, oznacza to, 偶e ka偶dy router wzd艂u偶 艣cie偶ki zaakceptowa艂 i ustanowi艂 rezerwacj臋. Istnieje teraz gwarantowany kana艂 od ko艅ca do ko艅ca, a nadawca mo偶e zacz膮膰 przesy艂a膰 swoje dane z zapewnieniem, 偶e sie膰 zapewni 偶膮dan膮 Jako艣膰 Us艂ugi.
To podej艣cie zorientowane na odbiorc臋 jest kluczow膮 cech膮 projektow膮 RSVP. Naturalnie wspiera scenariusze multicast, w kt贸rych jeden nadawca przesy艂a dane do wielu odbiorc贸w. Ka偶dy odbiorca mo偶e z艂o偶y膰 w艂asne, niezale偶ne 偶膮danie rezerwacji, dostosowane do jego specyficznych potrzeb i przepustowo艣ci 艂膮cza.
5. Klasy Us艂ug IntServ
IntServ definiuje dwie podstawowe klasy us艂ug, o kt贸re mo偶e wnioskowa膰 aplikacja.
- Us艂uga Gwarantowana (Guaranteed Service)
Jest to najwy偶szy poziom us艂ug w IntServ. Zapewnia ona twarde, matematycznie udowadnialne, deterministyczne (nie statystyczne) g贸rne ograniczenie op贸藕nienia pakiet贸w od ko艅ca do ko艅ca. Aplikacja 偶膮daj膮ca tej us艂ugi okre艣la swoje charakterystyki ruchu za pomoc膮 modelu wiadra 偶eton贸w. Dokonuj膮c rezerwacji us艂ugi gwarantowanej, aplikacja ma pewno艣膰, 偶e jej pakiety nigdy nie zostan膮 odrzucone z powodu przepe艂nienia kolejki (o ile pozostaje w swoim profilu ruchu) i dotr膮 w ramach obliczonego limitu op贸藕nienia. Us艂uga ta jest idealna dla wysoce nietolerancyjnych aplikacji czasu rzeczywistego, kt贸re wymagaj膮 艣cis艂ych gwarancji czasowych.
- Us艂uga o Kontrolowanym Obci膮偶eniu (Controlled-Load Service)
Us艂uga ta zapewnia mniej rygorystyczny, ale wci膮偶 bardzo niezawodny poziom us艂ug. Nie zapewnia ona 艣cis艂ego numerycznego ograniczenia op贸藕nienia, ale gwarantuje wydajno艣膰 "艣ci艣le odpowiadaj膮c膮 wydajno艣ci, jak膮 ten sam przep艂yw otrzyma艂by w nieprzeci膮偶onej sieci best-effort". W istocie ma na celu sprawienie, aby aplikacja czu艂a si臋, jakby dzia艂a艂a w lekko obci膮偶onej sieci, nawet gdy sie膰 jest zaj臋ta. Jest odpowiednia dla szerszego zakresu adaptacyjnych aplikacji czasu rzeczywistego, kt贸re mog膮 tolerowa膰 niewielkie wahania op贸藕nie艅, ale wci膮偶 wymagaj膮 lepszej wydajno艣ci ni偶 standardowy model best-effort.
6. Pi臋ta Achillesowa: Problem Skalowalno艣ci IntServ
Chocia偶 koncepcja zapewnienia twardych gwarancji dla poszczeg贸lnych przep艂yw贸w jest pot臋偶na, model IntServ cierpi na fataln膮 wad臋, kt贸ra uniemo偶liwi艂a jego szerokie wdro偶enie: g艂臋boki brak skalowalno艣ci.
- Utrzymywanie Stanu na Przep艂yw: Najwi臋kszym problemem jest ilo艣膰 stanu, jak膮 routery musz膮 utrzymywa膰. Router rdzeniowy w du偶ej sieci ISP mo偶e obs艂ugiwa膰 miliony jednoczesnych przep艂yw贸w. W modelu IntServ ten router musia艂by przechowywa膰 oddzielny wpis stanu rezerwacji dla ka偶dego z tych przep艂yw贸w. Ta "eksplozja stanu" wymaga艂aby ogromnych ilo艣ci pami臋ci i mocy obliczeniowej, co czyni implementacj臋 w rdzeniu sieci zbyt kosztown膮 i z艂o偶on膮.
- Narzut Sygnalizacyjny: Same komunikaty RSVP zu偶ywaj膮 przepustowo艣膰 sieci i cykle procesora routera. W du偶ej sieci ci膮g艂y strumie艅 komunikat贸w `PATH` i `RESV` do ustanawiania, zrywania i od艣wie偶ania stan贸w generowa艂by znaczny narzut.
- Z艂o偶ono艣膰: Og贸lna z艂o偶ono艣膰 implementacji i zarz膮dzania IntServ i RSVP w du偶ej, wielodostawczej sieci, takiej jak internet, jest niezwykle wysoka.
Z powodu tych problem贸w ze skalowalno艣ci膮, IntServ jest prawie nigdy nieu偶ywany w publicznym internecie. Jego zastosowanie ogranicza si臋 do mniejszych, kontrolowanych sieci prywatnych (np. dedykowanych firmowych sieci wideokonferencyjnych, przemys艂owych system贸w sterowania), gdzie liczba przep艂yw贸w jest mo偶liwa do zarz膮dzania, a potrzeba twardych gwarancji przewa偶a nad z艂o偶ono艣ci膮. Mimo ograniczonego wdro偶enia, koncepcje zapocz膮tkowane przez IntServ po艂o偶y艂y kluczowe podwaliny pod bardziej skalowalne modele QoS, takie jak DiffServ, oraz protoko艂y in偶ynierii ruchu, takie jak MPLS-TE.