UniTO/anno2/YearI/FirstSem/CR/lesson14-21112017.md

89 lines
7.3 KiB
Markdown
Raw Normal View History

2018-11-22 13:09:11 +01:00
# Multiplazione
La multiplazione e' la condivisione di risorse tra utenti che usano le risorse stesse. Ha moltissime sfaccettature, che possono essere viste come **dimensioni**.
* **Granularita' del traffico utente**: **pacchetto**, **chiamata**, o **burst** *intermedio* (gruppo di pacchetti trattati come unita' singola.
* **Non disponibilita' della risorsa**: **blocco** (perdita), **accomodamento**.
* ** Tipo di multiplazione**: **garantita**, su **richiesta** (best effort), prenotazione statistica *intermedio* (garanzia su una probabilita' / percentuale)
Altre dimensioni possono includere **granularita' temporale**, oppure se la multiplazione e' condivisa tra utenti o tra una classe.
Due casi verranno studiati: **Multiplazione in Internet** (livello di pacchetto) e **Multiplazione nella rete telefonica** (livello di chiamata / canale)
Nota: Spesso questi studi sono riferiti a QoS sulle reti, che potrebbero non essere essenziali su WAN ma su molte reti locali lo sono.
## Multiplazione in Internet
A livello di pacchetto, la multiplazione e' caratterizzata dai buffer dei router (spesso FIFO) che devono adottare una politica per scegliere quali pacchetti trasmettere. Il problema e' quindi di **schedulazione (scheduling)**.
### Schedulazione di pacchetti
* FIFO: I primi pacchetti che arrivano sono trasmessi, con **drop-tail** (che scarta i pacchetti arrivati per ultimi).
* RED: vedi note precedenti.
* **Priorita' secca**: trasmissione del pacchetto in attesa nella coda, dando precedenza a quelli con **priorita' piu' alta**. *(slides per schemi e rappresentazione grafica)** Un esempio pratico e' la priorita' ai pedoni su un incrocio. Un problema di questo approccio e' lo starving dei pacchetti a bassa priorita', se i pacchetti con priorita' alta continuano ad arrivare.
* **Round robin**: come per la priorita' secca, divido i pacchetti in classi. Lo scheduler visita ciclicamente le code delle classi (che in questo caso sono trattate come separate), con il seguente approccio. Se un pacchetto e' pronto per la trasmissione, lo trasmetto e cambio coda, altrimenti salto alla coda successiva. Facendo cosi' solo un pacchetto per ogni coda e' servito. Un vantaggio e' che non distrugge o limita le risorse a disposizione dei pacchetti di *bassa priorita'*. Il limite di RR e' che uno schema di questo tipo tratta tutte le classi in maniera equa, riducendo le risorse in base al numero di classi *(k classi, C capacita': capacita' per ogni classe e' C/k)*
* **Weighted Fair Queuing** (WFQ): equivalente del *generalized processor sharing*, e' una generalizzazione del RR in cui le **classi hanno un peso**. Facendo cosi' (supponendo che peso piu' alto == servizio migliore) assegno a classi diverse risorse diverse in base alla loro priorita' (importanza). Questo permette di ripartire la banda tra varie classi **senza limitarne nessuna**, grazie al funzionamento stile RR che garantisce un servizio a ogni classe.
*Nota: in SO si tratta spesso il caso della apprehension, in cui il lavoro viene sospeso se arriva un lavoro a priorita' piu' alta. Questo in Internet non si fa, perche' non ha senso interrompere una trasmissione di pacchetti.*
*Nota II: Nella descrizione non si tiene conto della dimensione variabile dei pacchetti in Internet, che hanno (circa) dimensione massima di 1500 Byte e dimensione minima di 40 Byte (header livello 3 e 4).*
### Policing (admission control)
Regole implementate in rete a pacchetto di modo da limitare il traffico in ingresso, affinche' questo non superi i parametri dichiarati.
Criteri usati:
* **Tasso medio** (di lungo periodo): quanti pacchetti posso trasmettere nell'unita' di tempo (mediando su un lungo intervallo). Qui la questione cruciale e' la lunghezza dell'intervallo su cui si media: 100 pacchetti al secondo o 6000 al minuto hanno lo stesso tasso medio.
* **Tasso di picco**, che considera il numero di pacchetti trasmessi in un picco di traffico
* **Max Burst size**, che limita il numero massimo di pacchetti consecutivi ammissibili, senza pause in mezzo).
#### Meccanismi di policing
* **Token bucketi**: limita traffico in ingresso a specifici Burst Size e AVG rate. La tecnica utilizzata e' un *secchio bucato* che fa *cadere token*, i quali permettono di venire trasmessi al network. Il secchio e' rifornito a rate costante *r* e puo' contenere al piu' *B* tokens. I pacchetti fisici che arrivano dagli utenti devono **aspettare il token** per venire inviati. In questo modo, regolando i parametri di `r` e `B` posso effettuare del policing sulla rete, dato che:
```
su un intervallo di lunghezza t:
#PacchettiAmmessi <= r*t + B
```
Avere dei *bounds* certi (deterministici) permesse di fornire garanzie dettagliate. In combinazione con il WFQ scheduling, questo permette di **ottenere un upper bound deterministico certo sul ritardo massimo subito da un pacchetto**, garantendo il QoS.
##### Combinare WFQ e Token Bucket
Per combinare le due tecniche, e' sufficiente inserire un Token Bucket per ogni coda WFQ. Ogni bucket e' rifornito a rate `r[i]` e ha dimensione `B[i]`, regolata nella seguente maniera:
* Ho un *per-flow rate* `R`, e considero la bucket size `b` e il token rate `r`. Avro' che il ritardo massimo (delay) massimo e' `Dmax=b/R`.
### Applicazioni di Multiplazione e QoS in Internet
Le reti locali / private sono quelle in cui il QoS e' trattato in maniera specifica, spesso utilizzando VPN per garantire certi standard di QoS.
## Multiplazione in Rete Telefonica
Commutazione e Multiplazione di **chiamate** invece che pacchetti, con un sistema di **blocco** se la risorsa non e' disponibile, e multiplazione **su richiesta**.
### Struttura della rete telefonica
3 livelli gerarchici:
* **Nucleo** ad ampia scala geografica (Wide Area Core)
* **rete telefonica distrettuale**, come i Local Exchange carrier (LEC)
* **Centrale Telefonica**.
Le reti telefonice sono **completamente connesse**, dove il massimo numero di *hop* e' 2 (non c'e' bisogno di instradamenti piu' complessi). Infatti, se i due nodi (chiamante/chiamato) sono all'interno della stessa LEC, e' sufficiente 1 hop, altrimenti 2 per l'nioltro al nucleo.
### Caratteristiche notevoli dell'instradamento in rete tel.
Il comportamento di una rete telefonica e' **prevedibile**, permettendo anche di calcolare il carico sulla rete nella centrale telefonica. Per fare cio', e' sufficiente utilizzare **misure del traffico passato**, per determinare ore del giorno e periodi in cui i percorsi sono provati.
### Dynamic, Non-Hyerarchical Routing (DNHR)
Problema: l'utilizzo di 2 hop (richiedendo il doppio delle risorse di 1 hop) avviene piu' frequentemente in situazioni di sovraccarico della rete, perche' le chiamate a 2 hop **bloccano due chiamate a singolo hop**. Per risolvere questo problema, si riserva spazio sul canale per chiamate a 2 hop.
*(vedi slides)*
## Multiplazione Burst-level
Usata nella rete cellulare, basata sull'idea che **si trasmette traffico solo quando si rileva un'attivita'**. E' il caso della soppressione del silenzio nei cellulari, che causa la trasmissione della chiamata solo quando l'utente parla *(talkspurts)*.
Questa e' la causa della sensazione che si ha quando si parla al telefono e la rete sembra morta, mentre in realta' non sta rilevando una voce parlante ma solo il rumore di fondo e quindi non sta trasmettendo. Attualmente si mappa il rumore di fondo e lo si trasmette, di modo che chi parla non abbia la sensazione di *parlare con un muro*