Documente Academic
Documente Profesional
Documente Cultură
Capacitatea de trecere (throughput) Fiabilitate (procent de date pierdute, receptionate eronat, intr-o ordine gresita, duplicate, etc).
Aplicatiile de timp real au de obicei cerinte mai ridicate de QoS. Exemple de aplicatii real-time:
Sesiuni la distanta (remote login sau telenet) Jocuri on-line Aplicatii bancare sau de bursa (stock exchange) Video conferinte audio si video streaming voce (de ex VoIP : voice over IP),
Aplicatiile nrt au in general cerinte mai mici privind intirzierea, dar cerinte mai mari de fiabilitate Si intre ele exista diferente (de ex la www intrizierea e mai importanta decit la e-mail)
Istoric
Internetul a fost dezvoltat ca o retea de date de tip best effort:
Datorita faptului ca primele aplicatii erau transferul de fisiere si schimbul de mesaje electronice (e-mail)
Se bazeaza pe comutarea de pachete (PS = pachet switching), care nu e potrivita pentru QoS la aplicatii rt. In timp au aparut si aplicatii de timp real, de exemplu ideea de a transmite si voce, tv, etc, pe aceeasi retea In mod normal vocea se transmite pe retele cu comutare de circuite (CS = Circuit Switching)
ATM
In anii 70 au fost propuse retelele ATM (Asynchronous Transfer Mode) Sint primele (si deocamdata singurele) retele proiectate pentru QoS Folosesc comutare cu circuite virtuale, un compromis intre PS si CS:
Se stabilesc circuite intre sursa si destinatie, ca la CS, dar in noduri resursele se partajeaza intre mai multe conexiuni Datele, numite celule (a nu se confunda cu celulele de la telefonia celulara), sint pachete cu lungimea de 53 octeti: 5 octeti header + 48 de octeti payload (date utile)
Doreau sa permita trafic rt si nrt, integrind voce, date, TV, etc Doreau sa inlocuiasca Internetul Acest lucru nu s-a reusit, retelele ATM avind acum un rol mult mai limitat. Totusi, idei din ATM au fost preluate si aplicate la Internet, pentru a se obtine QoS pe Internet.
Trafic elastic:
Se poate adapta la variatii mari ale intirzierii (delay) si capacitatii de trecere (throughput), continuind sa indeplineasca cerintele aplicatiei E tipul traditional de trafic din Internet Aplicatiile care genereaza astfel de trafic utilieaza in mod tipic TCP sau UDP la nivel transport
UDP: aplicatia va utiliza atita capacitate a retelei cita este disponibila, pina la limita maxima la care aplicatia poate genera date TCP: aplicatia va utiliza atita capacitate a retelei cita este disponibila, pina la limita data de capacitatea receptorului conexiunii end-to-end.
Trafic elastic
Tipuri de trafic elastic:
E-mail (protocol SMTP): nu e senzitiv la modificari ale intirzierii (delay changes) Transfer de fisiere (FTP): senzitiv la modificari de throughput, deoarece utilizatorul se asteapta ca intirzierea fisierelor sa fie proportionala cu lungimea lor Trafic interactiv: remote login (TELNET) si acces Web (HTTP) senzitiv la intirzieri Network management (SNMP): senzitiv la delay doar in cazul congestiilor
QoS perceput de utilizatori nu se refera la intirzierea pachetelor (IP), ci la intirzierea unui element al aplicatiei curente (o tastare la Telnet, un fisier la FTP, o pagina Web la HTTP, dar o pagina web poate fi mica sau foarte mare, daca are multe imagini) Pt elemente mici intirzierea lor e determinata doar de intirzierea pe internet, pe cind pt elemente mari intirzierea totala e determinata de fereastra TCP (the sliding-window performance of TCP[Sta08]) Necesitatea QoS e evidenta chiar si doar pt traficul elastic
Trafic inelastic
Definitie: traficul inelastic NU se adapteaza cu usurinta sau nu se adapteaza deloc la modificarile de delay si throughput de pe internet Exemplu tipic: traficul real-time (rt) Cerintele pt traficul inelastic pot fi:
Throughput: cere o valoare minima pt a putea functiona Delay: exemplu de delay-sensitive application: stock trading (bursa) Jitter. Jitter = variatia intrizierii e un parametru critic pt unele aplicatii rt (streaming, videoconferinte)
Pt a compensa jitter-ul se utilizeaza bufferarea datelor, dar lungimea bufferelor trebuie de asemena limitata (ex: videoconferinte)
Abordarea ISA
Scopul ISA: sa asigure QoS in retele IP Ideea centrala: cum sa aloce (sa imparta) capacitatea existenta a retelei in caz de congestie Mecanisme de controlul congestiei utilizate in routere inainte de ISA:
Algoritmi de rutare: majoritatea incearca sa minimizeze intirzierea, asigurind asfel load balancing Packet discard: cind bufferele routerului sint pline, pachetele sosite cel mai recent sint eliminate => conexiunile TCP respective isi vor reduce rata de generare a datelor => se reduce congestia Aceste mecanisme nu mai sint suficiente in cazul traficului inelastic
Abordarea ISA
Fiecare pachet poate fi asociat unui flux (flow) Flow = a distinguishable stream of related IP packets that results from a single user activity and requires the same QoS (RFC 1633, conform [Sta08]) Diferente intre flux si conexiune TCP:
Fluxul e unidirectional Fluxul poate avea mai multi destinatari (multicast)
Algoritmi de routare:
Rutarea poate fi facuta pe baza a diferiti parametri de QoS, nu doar pe baza intirzierii
Queueing discipline:
Cum se aloca resurse cozilor (scheduling)
Discard policy:
Ce pachete se elimina (discard, or drop) din cozi
Componentele ISA
In figura, functiile de sub linia orizontala se aplica fiecarui pachet, deci trebuiesc optimizate (forwarding functions) Functiile de deasupra liniei se numesc background functions:
Ele creaza structuri de date utilizate de forwarding functions Reservation protocol: rezerva resurse ptr un flux si mentine informatii de stare despre fiecare flux in routere si end systems (probleme de scalare !) AC: cind apare un nou flux se invoca functia de AC, care determina daca resursele existente sint suficiente pt noul flux, astfel incit sa ii fie satisfacute cerintele de QoS si sa nu fie afectat negativ QoS-ul fluxurilor existente Management agent: poate modifica politicile de AC Routing protocol: mentine o baza de date de rutare (routing database) care da urmatorul nod (next hop) pt fiecare adresa destinatie a fiecarui flux.
Forwarding functions
Classifier and route selection:
Pachetele sint mapate unor clase O clasa poate corespunde unui singur flux sau unui set de fluxuri care au aceleasi cerinte de QoS (ex: toate fluxurile de videostreaming sau toate fluxurile care apartin unei anumite organizatii) Selectia unei clase se face pe baza unor cimpuri din header-ul pachetului IP
Packet scheduler:
managementul unei sau a mai multor cozi pt acelasi port de iesire Include si functia de policing: sa determine daca un flux depaseste rata negociata si ce masuri sa se ia in acest caz.
Servicii ISA
Se definesc la doua niveluri:
1. Categorii generale de servicii, fiecare din ele oferind anumite garantii (service guarantees). 2. In cadrul fiecarei categorii, serviciul pentru un anumit flux este specificat prin valorile anumitor parametri. Impreuna, acesti parametri formeaza Tspec (traffic specification specificatia de trafic)
Cind un flux cere o rezervare, Tspec defineste cantitatea exacta de servicii cerute.
Daca rezervarea e acceptata, serviciul se obliga sa asigure QoS cerut atita timp cit traficul respecta descrierea din Tspec. Traficul poate fi bine specificat utilizind token bucket.
Token bucket
Sursa de token-uri genereaza token-uri cu o rata de generare R R = the continually sustainable data rate: rata medie de generare a datelor ce poate fi suportata pt o perioada relativ lunga de timp pt acel flux de date. Daca tokenurile nu sint consumate, in recipient (galeata=bucket) se acumuleaza token-uri pina la capacitatea B octeti. B e cantitatea cu care rata de generare poate fi depasita pentru perioade scurte de timp (burstiness) Un pachet IP e trimis doar daca cantiatea de bucket-uri din recipient e mai mare sau egala cu lungimea pachetului (in octeti) si atunci din recipient se scot token-urile corespunzatoare lungimii pachetului. Daca nu e indeplinita conditia, atunci pachetul va fi supus unei actiuni de policing, adica pachetul poate fi eliminat, intirziat, degradat la best effort sau marcat pt a fi eliminat ulterior, daca va fi nevoie. Se garanteaza astfel ca, de-a lungul oricarei perioade de timp T, cantitatea maxima de date ce poate fi trasmisa pt acel flux de date nu poate depasi valoarea RT+B.
Guaranteed service:
Se specifica o limita superioara pt intirzierea in cozi (queueing delay), ce trebuie adaugata la timpul de propagare (propagation delay or latency) Nu sint pierderi de pachete in cozi (queueing losses due to buffer overflow), dar se pot pierde pachete datorita altor cauze (caderi ale unor elemente de retea sau schimbarea cailor de rutare) E cel mai solicitant serviciu oferit de ISA.
Differentiated Services
Probleme intimpinate de IntServ (ISA):
Complexitate ridicata Cantitate mare de semnalizari, ceea ce face ca solutia sa nu fie scalabila pt volum mare de trafic Routerele mentin informatii de stare => problema pt volum mare de trafic
Tosusi, exista o necesitate imediata de a asigura niveluri diferite de QoS unor fluxuri de date diferite => arhitectura DS (Differentiated Services, or DiffServ), RFC 2475:
Usor de implementat, cost scazut, low-overhead
DS domain
DS domain = a contiguous portion of Internet over which a consistent set of DS policies are administrated. Serviciile oferite intr-un DS sint definite printr-un SLA (Service Level Agreement), care este un contract intre client si furnizorul de servicii, contract ce specifica serviciul forwarding ce trebuie sa il primeasca clientul pt diferite clase de pachete. Clientul indica clasa fiecarui pachet IP prin cimpul DS setat in header-ul fiecarui pachet IP Furnizorul de servicii trebuie sa configureze in fiecare router politicile de forwarding necesare indeplinirii contractului si trebuie sa masoare performantele fiecarei clase de pachete. Daca destinatia pachetelor este in exteriorul domeniului DS, atunci domeniul va incerca sa trimita pachetele spre alte domenii, cerind acelor domenii servicii cit mai apropiate de cel negociat cu clientul in SLA. Cimpul DS se numeste DS codepoint (DSCP) si are 6 biti.
DS field [Sta08]
Configurarea si operarea DS
Un domeniu DS consta intr-un set contiguu de routere (se poate ajunge de la un router la altul fara sa se iasa din domeniu). Routerele dintr-un domeniu DS pot fi:
Noduri de frontiera (boundary nodes) Noduri interioare (interior nodes)
Tratamentul de forwarding intr-un router se numeste Per Hop Behaviour (PHB). PHB trebuie sa fie in orice router, dar in mod tipic cele interioare ofera doar PHB Nodurile de frontiera indeplinesc, in afara de PHB, si functii mai complexe: clasificare, masurare (metter), marcare (marker), formare (shaper) si eliminare (dropper). Clasificarea va separa pachetele in functie de clasa lor (pe baza DSCP) Masurarea: verifica daca pachetul e conform cu TSpec negociat. In caz ca nu e, se aplica una din functiile de marcare, intirziere (formare) sau eliminare,
Queueing disciplines
FIFO (first in first out):
Usor de implementat, dar: fara garantii de QoS fara protectia unor fluxuri de date fata de fluxurile care nu respecta contractul Pot aparea situatii defavorizante: de ex mai multe pachete mici in coada in urma unui pachet mare => pachetele mici pot avea intirzieri foarte mari
Algoritmii reali aproximeaza FFQ (GPS), trimitind pachetele reale dupa timpul de finish sau/si de start al pachetelor in FFQ. Algoritmii reali aproximeaza mai bine sau mai rau algoritmul ideal FFQ si au o complexitate de implementare mai mare sau mai mica Pt a reduce calculele, se introduce notinuea de timp virtual, si pachetele primesc ca si etichete timpul de start si de finish virtual. La timpul virtual valorile acestor timpi nu sint importante, ci doar ordinea lor. Algoritmi reali: Packet by Packet GPS PGPS ( Weighted Fair Queueing WFQ), Start time Fair Queueing SFQ, Worst Case Weighted Fair Queueing WF2Q, etc
Priority queueing
E un caz limita de fair queueing Datele utilizatorilor se pun in mai multe cozi, fiecare coada avind o anumita prioritate O coada de prioritate mai mica nu va fi servita decit daca toate cozile de prioritate mai mare decit a ei sint goale. Se poate ajunge la blocarea cozilor de prioritate mica. Algoritmul mai e cunoscut sub numele de static priority queueing (SPS) sau simple priority queueing Se poate folosi o combinatie de SPS cu WFQ: de exemplu SPS cu o coada pt trafic EF, un set de cozi pt trafic AF si o coada pt BE. In cadrul traficului AF se poate face WFQ intre cozile de tip AF.