Vai al contenuto
Reti di Telecomunicazione

Qualità del servizio: secchio di gettoni, DiffServ, MPLS e SDN

Parametri di qualità, secchio di gettoni con dimostrazione dei limiti sul traffico e sul ritardo, discipline di servizio, IntServ e DiffServ, commutazione a etichetta MPLS, reti definite dal software e network slicing.

Internet tratta tutti i pacchetti allo stesso modo, ma non tutti i servizi hanno le stesse esigenze: una telefonata sopporta qualche perdita ma non i ritardi oltre i 150 ms, un trasferimento di file il contrario, il controllo di un robot remoto richiede ritardi piccoli e garantiti. La qualità del servizio (QoS) è l’insieme delle tecniche per dare garanzie diverse a flussi diversi. In questa lezione vediamo il secchio di gettoni con la dimostrazione del limite sul traffico e sul ritardo, le discipline di servizio delle code, le architetture IntServ e DiffServ, la commutazione a etichetta MPLS e le reti definite dal software.

Che cosa si garantisce

I parametri di un flusso sono la banda, il ritardo da estremo a estremo, la sua variabilità (jitter) e la perdita. Il ritardo di propagazione è fisso; quello che si può controllare è il ritardo nelle code (lezione sulle code). Per dare garanzie bisogna fare due cose: descrivere il traffico che un flusso immetterà, e servire le code in modo da rispettare gli impegni.

Il secchio di gettoni

Un flusso si descrive con un secchio di gettoni (token bucket) di parametri r e b: un secchio di capacità b si riempie di gettoni al ritmo di r gettoni al secondo; ogni byte trasmesso consuma un gettone, e se il secchio è vuoto bisogna aspettare. Il flusso può così mandare raffiche fino a b byte, ma in media non più di r byte al secondo.

Teorema. Il traffico A(t) che esce da un secchio di gettoni in un qualsiasi intervallo di durata t soddisfa

    \[ A(t) \le b + r\,t \]

Dimostrazione. All’inizio dell’intervallo il secchio contiene al massimo b gettoni. Durante l’intervallo ne arrivano al massimo r\,t. Ogni byte trasmesso consuma un gettone, quindi i byte trasmessi non possono superare i gettoni disponibili, b + r\,t. ∎

Curva d'arrivo di un secchio di gettoni e traffico effettivo
La retta rossa b più r t è il massimo traffico che il flusso può immettere in un intervallo di durata t: parte da b, la raffica massima, e cresce con pendenza r. Il traffico cumulativo effettivo (blu), fatto di raffiche e pause, resta sempre sotto la retta.

Teorema. Se un flusso conforme al secchio (r, b) è servito da un collegamento che gli garantisce almeno la velocità R \ge r, il ritardo in coda non supera b/R.

Dimostrazione. Il caso peggiore è una raffica di b byte che arriva tutta insieme a coda vuota: l’ultimo byte deve aspettare che i precedenti siano trasmessi, cioè b/R. Dopo la raffica i dati arrivano al massimo con velocità r \le R, più lentamente di quanto vengono serviti, quindi la coda non può superare quella iniziale. ∎

Lo stesso secchio, posto all’ingresso della rete, serve da sagomatore (che ritarda i pacchetti in eccesso) o da regolatore (che li scarta o li marca come meno importanti).

Le discipline di servizio

  • FIFO: il primo arrivato è il primo servito. Semplice, ma un flusso aggressivo ritarda tutti gli altri.
  • Priorità: più code, e si serve sempre quella a priorità più alta non vuota. Ottima per la voce, ma i flussi a bassa priorità possono restare a digiuno.
  • Accodamento equo pesato (WFQ) e le sue approssimazioni efficienti come il deficit round robin: ogni flusso ha una coda e un peso w_i, e riceve almeno la frazione w_i/\sum w_j della capacità. È ciò che permette di garantire la velocità R del teorema precedente.

Contro il gonfiarsi delle code (bufferbloat) si usano anche le gestioni attive delle code, come CoDel, che scartano o marcano pacchetti prima che la coda sia piena, per segnalare in anticipo la congestione a TCP (lezione su TCP).

IntServ e DiffServ

L’architettura IntServ prenotava le risorse per ogni singolo flusso lungo tutto il percorso: garanzie rigorose, ma ogni router doveva ricordare milioni di flussi, e non ha mai funzionato su larga scala. DiffServ classifica invece i pacchetti al bordo della rete in poche classi, scritte in 6 bit dell’intestazione IP: per esempio “inoltro rapido” (EF) per la voce, “inoltro garantito” (AF) con vari livelli, “al meglio” per il resto. I router interni trattano ogni classe con la propria coda e la propria priorità, senza conoscere i flussi. È ciò che usano oggi gli operatori per separare telefonia, televisione e Internet sulla stessa rete.

MPLS

Nelle reti degli operatori i pacchetti vengono spesso inoltrati non guardando l’indirizzo IP, ma una breve etichetta aggiunta all’ingresso della rete: è la commutazione MPLS (multiprotocol label switching). Ogni router cerca l’etichetta in una piccola tabella, la sostituisce con quella successiva e inoltra il pacchetto lungo un percorso a etichetta stabilito in anticipo. Il vantaggio non è più tanto la velocità quanto il controllo: l’operatore può instradare il traffico su percorsi diversi da quelli minimi per bilanciare il carico (ingegneria del traffico), predisporre percorsi di riserva attivabili in 50 ms, e realizzare reti private virtuali che separano i clienti sulla stessa infrastruttura.

Le reti definite dal software

Nei router tradizionali ogni apparato decide da solo con i protocolli di instradamento. Le reti definite dal software (SDN) separano il piano di controllo, che decide i percorsi, dal piano dei dati, che inoltra i pacchetti: un controllore centrale, un programma che vede tutta la rete, installa nelle tabelle degli apparati le regole di inoltro (con protocolli come OpenFlow). La rete diventa programmabile: si può cambiare il comportamento con il software invece che riconfigurando apparato per apparato. Insieme alla virtualizzazione delle funzioni di rete (NFV), che sostituisce apparati dedicati con programmi su server comuni, è la base delle reti dei centri dati e del nucleo delle reti 5G, dove la stessa infrastruttura fisica si divide in “fette” (network slicing) con garanzie diverse per servizi diversi.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x