# Tecnologie e servizi di rete/Qualità del servizio

Tecnologie e servizi di rete
Copertina Tutti i moduli · Sviluppo
    CopertinaTecnologie e servizi di rete/Copertina
* WANTecnologie e servizi di rete/WAN
* MPLSTecnologie e servizi di rete/MPLS
* IPv6Tecnologie e servizi di rete/IPv6
* Migrazione a IPv6Tecnologie e servizi di rete/Migrazione a IPv6
* VPNTecnologie e servizi di rete/VPN
* VoIPTecnologie e servizi di rete/VoIP
* Qualità del servizioTecnologie e servizi di rete/Qualità del servizio
* Cenni di sicurezza e crittografiaTecnologie e servizi di rete/Cenni di sicurezza e crittografia
Modifica il sommario
La qualità del servizio è l'insieme delle tecnologie per tentare di garantire specifici requisiti sul ritardo e sul jitter 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

* Marcatura dei pacchetti necessaria per il router per distinguere tra classi diverse; e nuova politica del router per trattare i pacchetti di conseguenza.
* Fornire protezione (isolamento) per una classe dalle altre.
* Mentre si fornisce isolamento, si desidera utilizzare le risorse in modo il più efficiente possibile.
* 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
### Meccanismi di scheduling dei pacchetti

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

#### Scheduling FIFO

È 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à

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

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

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 $R_{i}$ della classe $i$ avente peso $w_{i}$ è data dalla formula seguente (le code vuote hanno peso nullo):
    $R_{i}={\frac {w_{i}}{\sum _{j}w_{j}}}R_{tot}$
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

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).
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 $b$ gettoni;
* i gettoni vengono generati alla frequenza $r$ gettoni/s, a meno che il secchiello non sia pieno;
* su un intervallo di lunghezza $t$, il numero di pacchetti ammesso è minore o uguale a $(rt+b)$.

## IntServ
### 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

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

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

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

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

* ↑ 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.
* ↑ Il jitter è la variabilità dei ritardi dei pacchetti nello stesso flusso di pacchetti.