Tecnologie e servizi di rete/Qualità del servizio

Wikibooks, manuali e libri di testo liberi.
Indice del libro

La qualità del servizio è l'insieme delle tecnologie per tentare[1] di garantire specifici requisiti sul ritardo e sul jitter[2] dei pacchetti per le applicazioni multimediali di rete che generano del traffico anelastico.

Approcci principali

Sono stati proposti tre approcci per la qualità del servizio:

  • servizi integrati (IntServ): richiede cambiamenti fondamentali all'infrastruttura di rete in modo che l'applicazione possa riservare banda end-to-end → nuovo software complesso negli host e nei router;
  • servizi differenziati (DiffServ): richiede meno cambiamenti all'infrastruttura di rete;
  • laissez-faire: chi se ne importa dei ritardi e della qualità del servizio, la rete non sarà mai congestionata → tutta la complessità a livello applicazione.

Principi[modifica]

  1. Marcatura dei pacchetti necessaria per il router per distinguere tra classi diverse; e nuova politica del router per trattare i pacchetti di conseguenza.
  2. Fornire protezione (isolamento) per una classe dalle altre.
  3. Mentre si fornisce isolamento, si desidera utilizzare le risorse in modo il più efficiente possibile.
  4. Il flusso dichiara le proprie necessità con una call admission, quindi la rete può bloccare la chiamata (ad es. segnale occupato) se non è in grado di soddisfare le necessità.

Meccanismi[modifica]

Meccanismi di scheduling dei pacchetti[modifica]

L'obiettivo dei meccanismi di scheduling è gestire le priorità dei pacchetti in arrivo.

Scheduling FIFO[modifica]

È facile da implementare ed efficiente solo se c'è una politica di scarto sofisticata:

  • drop della coda: scarta sempre il pacchetto in arrivo;
  • casuale: scarta un pacchetto a caso nella coda;
  • priorità: scarta il pacchetto con la classe a più bassa priorità.

Scheduling a priorità[modifica]

Per ogni classe è disponibile un buffer, e viene servito sempre il pacchetto con la classe a più alta priorità.

Non garantisce l'isolamento e può introdurre starvation: i pacchetti nei buffer a bassa priorità non vengono mai serviti perché continuano ad arrivare pacchetti ad alta priorità. Inoltre, se temporaneamente la coda ad alta priorità è vuota permettendo di iniziare la trasmissione di un pacchetto nella coda a bassa priorità, ma arriva un pacchetto ad alta priorità subito dopo l'inizio della trasmissione, quest'ultimo dovrà aspettare che la trasmissione finisca, soprattutto se il pacchetto è lungo → vengono introdotti dei ritardi di trasmissione.

Scheduling round robin[modifica]

Effettua ciclicamente la scansione delle code delle classi, servendone una per ogni classe (se disponibile).

Garantisce l'isolamento ed è equa, ma non garantisce la priorità.

Weighted fair queuing[modifica]

Esempio di weighted fair queuing.

Generalizza il round robin combinandolo con lo scheduling a priorità.

Ogni classe riceve una quantità pesata del servizio in ogni ciclo, e la larghezza di banda della classe avente peso è data dalla formula seguente (le code vuote hanno peso nullo):

Tuttavia questa soluzione non è molto scalabile perché la formula, che coinvolge operazioni in virgola mobile, deve essere calcolata per ogni singolo pacchetto.

Meccanismi di policing[modifica]

L'obiettivo dei meccanismi di policing è limitare il traffico in modo che non superi i parametri dichiarati, come:

  • frequenza media (a lungo termine): quanti pacchetti si possono inviare per unità di tempo;
  • frequenza di picco: misurata in pacchetti al minuto;
  • burst size (massimo): massimo numero di pacchetti inviati consecutivamente (senza inattività intervenienti).
Secchiello a gettoni.

Il secchiello a gettoni è la tecnica usata per limitare l'ingresso ad uno specifico burst size e ad una specifica frequenza media:

  • un secchiello può contenere gettoni;
  • i gettoni vengono generati alla frequenza gettoni/s, a meno che il secchiello non sia pieno;
  • su un intervallo di lunghezza , il numero di pacchetti ammesso è minore o uguale a .

IntServ[modifica]

Riservamento delle risorse

Fondamentalmente un host chiede un servizio che richiede alcune risorse (messaggio di path): se la rete è in grado di fornire questo servizio servirà l'utente, altrimenti non lo servirà (messaggio di reservation).
Il riservamento delle risorse è una funzionalità che non è nativa in IP.

Call admission

La sessione in arrivo utilizza il protocollo di segnalazione Resource Reservation Protocol (RSVP) per dichiarare:

  • R-spec: specifica la qualità del servizio richiesta;
  • T-spec: definisce le caratteristiche del traffico.

Il ricevitore, non il mittente, specifica il riservamento delle risorse.

Questa è senza dubbio una soluzione non scalabile. Ha ancora dei problemi importanti, e attualmente non c'è alcuna ragione per implementare meglio IntServ.

DiffServ[modifica]

Differentiated Services (DiffServ) è un'architettura proposta da IETF per la qualità del servizio: sposta la complessità (secchielli e buffer) dal core della rete agli edge router (o host) → più scalabilità.

Architettura[modifica]

L'architettura DiffServ è costituita da due componenti principali che effettuano al gestione del traffico per flusso:

  • edge router: contrassegnano i pacchetti come in-profile (ad alta priorità) o out-profile (a bassa priorità);
  • core router: effettuano il buffering e lo scheduling in base alla marcatura eseguita ai margini, dando preferenza ai pacchetti in-profile.

Marcatura[modifica]

La marcatura viene eseguita dagli edge router nel campo Differentiated Service Code Point (DSCP), che sta nei 6 bit più significativi del campo "Type of Service" nell'intestazione IPv4 e del campo "Priority" nell'intestazione IPv6.

Sarebbe meglio lasciare che la sorgente, a livello applicazione, effettui la marcatura perché solo la sorgente conosce esattamente il tipo di traffico (traffico voce o traffico dati), ma quasi tutti gli utenti dichiarerebbero tutti i pacchetti come ad alta priorità perché non sarebbero onesti → la marcatura va eseguita dai gateway che sono sotto il controllo del provider. Tuttavia alcuni studi hanno rilevato che i router sono in grado di riconoscere correttamente al massimo il 20-30% del traffico, a causa per esempio del traffico criptato → si può semplificare la distinzione per i router connettendo il PC a una porta e il telefono a un'altra porta, così il router può marcare il traffico in base alla porta di ingresso.

PHB[modifica]

Sono stati sviluppati alcuni Per Hop Behaviour (PHB):

  • expedited forwarding: il tasso di partenza dei pacchetti di una classe eguaglia o supera un tasso specificato;
  • assured forwarding: quattro classi di traffico: ognuna garantisce una minima quantità di larghezza di banda e tre partizioni di preferenze di drop.

I PHB specificano i servizi da offrire, non come implementarli.

Note[modifica]

  1. La qualità del servizio si limita a tentare di fare così, perché è impossibile garantire un servizio a commutazione di circuito su una rete a commutazione di pacchetto.
  2. Il jitter è la variabilità dei ritardi dei pacchetti nello stesso flusso di pacchetti.