Multimedia Internet Applications

Transcript

Multimedia Internet Applications
Multimedia Internet Applications∗
Daniele Iamartino
Anno scolastico 2012/2013
Lezione 3 - (Seconda parte del corso)
In questa seconda parte vedremo applicazioni, mentre nella prima parte vederemo architetture di rete.
Nella parte di applicazione ci occuperemo di quello che è chiamato control plane (cioè signaling). È la parte della rete che
verica il controlo della connessione.
Nella parte applicativa distinguiamo tra:
ˆ
User plane:
ˆ
Applications
Control plane
Management plane
Però oggi iniziamo con problemi a livello di rete a basso livello.
Per prima cosa vedremo il passaggio tra una rete basata su doppini in rame e una rete basata su bra.
Le prime due lezioni di questa seconda parte saranno riguardo alle NGN:
Next Generation Networks .
In alcuni paesi è iniziata la migrazione, in altri si è a metà, in altri è già diusa.
Il principale problema è il costo, anche con aiuti governativi non si riesce a sostituire tutto il rame con bra in poco tempo.
Quindi questo processo richiederà sicuramente ancora molto tempo.
Com'è formata una rete ad accesso in rame
Stiamo parlando di una
access network
e
rete di accesso (access network ).
backbone network.
Ci sono diversi livelli gerarchici di reti, principalmente divise in
La rete di accesso è quella che collega l'utente nale alla rete dell'operatore.
La rete di
accesso è la più vasta. Quindi è molto più facile fare la migrazione alla bra per la rete di backbone, che è la meno vasta.
Come è strutturata la rete solitamente?
ˆ Backbone
ˆ
Un
dell'ISP
Central Oce dell'ISP (in italiano chiamato SGU)
Abbiamo circa 700
central oce
in Italia.
Solitamente il central oce è collegato al backbone tramite una rete in bra.
∗ Quest'opera
è sotto licenza Creative Commons Attribuzione - Condividi allo stesso modo 2.5 Italia License.
1
Spesso nelle grandi città il costo del posto sico dove mettere il
risparmiare lo spazio, eventualmente accorpando con l'
ˆ Exchange, in italiano chiamati Stadio
SL.
central oce
è abbastanza critico.
Si cerca di
di Linea (SL), sono altri edici che contengono una serie di elementi di rete che
central oce (in rame o bra a seconda del livello di sviluppo della rete). L'elemento principale
è il DSLAM (Digital Subscriber Line Access Multiplexer ). Questo DSLAM risuddivide a sua volta
si collegano ad un unico
nello stadio di linea
la rete. Il DSLAM ha poi una serie di collegamenti in rame con un altro dispositivo (SDF). In italia ci sono circa 10'000
dslam c'è prima l'ODF (Optical Distribution Frame ), una matrice di collegamenti in bra.
MDF (Main Distribution Frame ), che è invece una matrice di collegamenti in rame.
SL. Insieme al
c'è il
Quindi nello
stadio di linea
c'è: ODF
Service Distribution Frame ),
ˆ SDF
(
→
DSLAM
in italiano →
armadio E dopo il
dslam
MDF
o chiostrino .
Sono quei dispositivi che vediamo per strada.
Essi si collegano con il DSLAM in rame e le abitazioni. Questi elementi di rete sono
passivi!
È semplicemente una matrice
di collegamenti che mappa un cavo verso l'abitazione verso un cavo verso il DSLAM. Quindi non eettua multiplexing. È
comodo perché permette di cambiare facilmente i collegamenti verso le abitazioni. In Italia ce ne sono circa 150'000.
ˆ DF
Distribution Frame ):
(
È un dispositivo presente solitamente solo in alcuni grossi edici, è sostanzialmente uguale
all'SDF e serve a gestire i collegamenti del palazzo. In Italia ce ne sono circa 1,5 milioni.
I segmenti di rete sono chiamati in questo modo:
ˆ Rete di giunzione
junction network):
(
ˆ Rete di distribuzione primaria
il segmento che collega il
central oce
primary distribution network):
(
al
backbone.
il segmento che collega il central oce all'armadio
(solitamente tra 200 e 3000 metri, a seconda del tipo di zona montuosa o meno).
ˆ Rete di distribuzione secondaria
secondary distribution network):
(
il segmento che collega l'armadio all'abitazione
(solitamente tra 100 e 700 metri).
Solitamente l'unica cosa che vediamo di tutta questa rete è l'SDF (l'armadio). Tutto il resto della rete è sottoterra o all'interno
di edici.
I collegamenti in rame sono dei collegamenti in rame ad alta capacità. Sono dei grossi cavi che contengono tantissimi sottocavi.
Solitamente questi cavi sono pressurizzati, cioè sono riempiti di gas. Se qualcosa buca i cavi c'è un sensore che si accorge
della pressione e viene inviata una squadra tecnica per dei controlli.
In Italia la lunghezza media dei collegamenti in rame è pù bassa che negli altri paesi.
Tipico caso di ADSL
Con l'ADSL classica abbiamo qualche Mbit/s di downstream e ~100kB/s di upstream. Abbiamo più capacità in downstream
rispetto a capacità in upstream perché è una linea asimmetrica.
Era una buona soluzione no a 15 anni fa probabilmente, quando il web browsing era il servizio principale (ed era ancora il
web 1.0).
Però adesso siamo nel web 2.0 o web 3.0, dove abbiamo applicazioni p2p. Più di metà del traco di internet è generato
da applicazioni p2p, quindi serve anche traco upstream.
Nei sistemi p2p gli utenti che riescono a condividere con più persone salgono all'interno della classica.
Quindi non è buono per gli utenti nali perché non abbiamo buona capacità di upstream quanto vorremmo, ed è male anche
per l'ISP perché hanno un grosso livello di traco pagato con una taria at.
Molti operatori hanno osservato che la percentuale di guadagni provenienti dai contratti telefonici ha iniziato a scendere
rispetto ai guadagni per le connessioni Internet.
Nel 2008 la telecom inglese ha visto scendere sotto il 50% i guadagni dei
contratti telefonici rispetto ai guadagni per connettività Internet.
Inoltre gli operatori hanno anche osservato che il loro servizio dominante (la telefonia) è diventato quello con meno traco
all'interno delle loro reti, arrivando a pochi punti percentuali rispetto all'intero traco.
ˆ
Abbiamo poca banda per avere
video streaming
ˆ
Abbiamo poca banda per avere
servizi p2p
Quindi servono reti di nuova generazione.
2
Next Generation Access Network
Il nostro scopo è di sostituire il collegamento no a casa dell'utente con un collegamento in bra ottica.
I vari modi per ottenere una rete di nuova generazione sono diversi:
ˆ
ˆ
ˆ
ˆ
Fiber to the Exchange (FTTE )
Fiber to the Cabinet (FTT C)
Fiber to the Building (FTT B)
Fiber to the Home (FTT H)
Ovviamente abbiamo un trade-o in base alla scelta che facciamo. L'ultima è la più costosa ma anche la migliore, la prima è la
più economica ma anche la peggiore (in termini di velocità).
Fiber to the Exchange (FTTE)
È la soluzione già adottata in Italia e in molti altri pesi per raggiungere le velocità classiche dell'ADSL moderna.
Si tratta di far arrivare la bra ottica dal
central oce
allo
stadio di linea.
Quindi insieme al dislam ci dovrà essere un
qualche dispositivo per la conversione ottica/elettrica. Nei vecchi sistemi italiani lo
central oce
tramite il protocollo ATM (o Ethernet in alcuni casi). Dal
dislam
stadio di linea
e il
dislam
sono collegati al
verso la rete dell'utente si riesce poi ad utilizzare
tecnologie tipo ADSL, ADSL2 o ADSL2+. Per connessioni con collegamenti inferiori ai 400 metri è possibile anche utilizzare
VDSL2 (che arriva a velocità molto elevate).
Fiber to the Cabinet (FTTC)
Abbiamo il vantaggio di poter andare più veloce perché il collegamento tra cabinet e casa resta in bra ma è molto più corto del
collegamento tra cabinet e central oce (che invece è in bra). Possiamo arrivare ad utilizzare collegamenti VDSL con 50Mb/s
di download e 10 Mb/s di upload.
Abbiamo il problema che al cabinet arriva un segnale ottico e deve uscire un segnale elettrico. Serve un adattatore nel cabinet,
non è più una matrice di collegamenti.
Quindi il cabinet diventa un dispositivo attivo! Quindi serve anche energia al cabinet! Il cabinet diventa più grande, bisogna
chiedere dei permessi.. Diventa complicato aumentare le dimensioni del cabinet.
In questo caso con VDSL2 si riesce a raggiungere 50 Mbps in download e 10 Mbps in upload.
Come fa un nuovo ISP a entrare nel mercato?
Solitamente le leggi di molti stati obbligano il provider di linea princi-
pale a permettere ad altri ISP di usare la rete di accesso (sotto pagamento ssato dall'autorità per la competizione nelle
telecomunicazioni).
L'ISP dominante si chiama
inconbent, quelli secondari si chiamano operatori OLO.
Quindi può succedere che all'interno dello stesso cabinet sia presente hardware di più operatori.
diventare ancora più grande.
3
Quindi il cabinet deve
Fiber To The Building (FTTB)
Abbiamo un collegamento ottico dal central oce no al distribution frame dell'edicio, non passiamo per nessun cabinet. Quindi
possiamo rimuovere i cabinet. Però poi dal distribution frame al collegamento domestico c'è un breve collegamento in rame. Nel
distribution frame c'è un convertitore ottico-elettrico.
Sfruttando VDSL2 sul distribution frame possiamo raggiungere anche i 100Mbps.
Il problema è che dobbiamo scavare diversi chilometri nelle strade per posare la bra. Non abbiamo il costo dei cabinet ma
abbiamo il costo degli scavi.
Fiber To The Home (FTTH)
È il metodo migliore di tutti, la terminazione ottica arriva all'interno dell'appartamento. Nell'interno o l'esterno dell'edicio, nel
distribution frame abbiamo una matrice di collegamenti. Abbiamo una rete di accesso completamente in bra.
Inoltre possiamo avere collegamenti simmetrici, possiamo arrivare no a 1 Gbps di banda
simmetrica.
Abbiamo lo stesso problema di FTTB e dobbiamo anche arrivare all'interno degli appartamenti.
È uguale mettere il distribution frame dentro o fuori l'edicio?
ˆ
Se lo mettiamo dentro l'edicio bisogna anche bucare un muro e portare il cavo all'interno di qualche locale all'interno
dell'edicio.
ˆ
Questo può essere un problema perché spesso il punto d'ingresso più semplice è la porta o il cancello d'ingresso.
Se lo lasciamo all'esterno ci potrebbero essere meno problemi.
Il tratto tra l'esterno dell'abitazione e l'interno è chiamato
tratto di adduzione.
A volte si possono sfruttare i buchi presenti per i tubi del gas, acqua, elettricità.
A volte dal distribution frame dell'edicio si fa partire un cavo per ogni piano, dove poi c'è un collegamento a stella, chiamato
straccietto
che collega più appartamenti.
La terminazione ottica che arriva all'utente è chiamata anche
ONU (Optical Network Unit ).
Arriva solitamente 1 bra per utente da OLT (Optical Line Termination, dove c'è il central oce) no all'ONU.
Per utilizzare la bra possiamo avere:
ˆ PTP
(
Point-To-Point Systems ):
bra ottica dedicata che utilizza Fast Ethernet o Gigabit Ethernet dall'ONU no al
central oce dell'ISP.
Passive Optical Network ):
ˆ PON
(
Una unica bra viene condivisa tra più utenti che accedono alla rete (abbiamo visto
l'esempio del piano). Vediamo di seguito alcune tecniche per realizzare questa soluzione.
Elementi delle reti di accesso di nuova generazione (NGAN)
ˆ OLT
(
ˆ ONU
Optical Line Termination ):
Optical Network Unit ):
(
È il dispositivo terminale che può essere posto nell' SL o nel
central oce.
É il dispositivo lato utente che eettua la conversione tra segnale ottico e segnale elettrico.
È posto il più vicino possibile all'utente. Più ONU possono essere collegati ad un unico OLT.
Nel caso di FTTC si trova all'interno del cabinet
Nel caso di FTTB si trova nel distribution frame dell'edicio
Optical Network Termination ):
ˆ ONT
(
ˆ ODF
(
Optical Distribution Frame ):
Nel caso di FTTH è la terminazione in bra che arriva a casa dell'utente.
È un dispositivo che sostituisce l'MDF all'interno degli edici dello
(SL).
4
stadio di linea
In alcuni casi quando si eettua un collegamento all'utente può arrivare una sola bra. Questo signica che per inviare e ricevere
si utilizzano due lunghezze d'onda diverse. Si divide il canale con WDMA.
Però di solito il collegamento OLT-ONU utilizza due bre distinte. In altri casi ancora si tiene una bra aggiuntiva ma spenta
(spesso per questioni legate all'atto della linea ad altri operatori.
I
sistemi punto-punto (PTP systems) sono quei sistemi dove c'è una connessione ottica dedicata tra OLT e ONU (oppure
ONT). Utilizza collegamenti Fast Ethernet (100 Mbps) o Gigabit Ethernet (1 Gbps)
Solitamente la rete di accesso ha una topologia a stella, comune anche alle reti in rame.
Essendo la linea completamente dedicata per l'utente si raggiungono le prestazioni massime. Però tutta questa bra ha un
costo non indierente.
Sistemi punto-punto
Caso (FTTC) Fiber To The Cabinet
La bra arriva dal
central oce oppure dallo stadio di linea, no al cabinet.
cabinet c'è l'ONU dove si intercollegano bra e rame.
In questo caso nel
Caso (FTTB) Fiber To The Building
In questo caso la bra ottica arriva no al
distribution frame
Il dispositivo ONU in questo caso è posto all'interno del
al'interno dell'edicio.
distribution frame.
Caso (FTTH) Fiber To The Home
È il caso in cui la bra arriva no all'interno degli apparamenti.
Le terminazioni ottiche sono poste ad ogni piano dell'edicio.
5
Se l'edicio è molto distante dallo stadio di linea o central oce può essere necessario l'utilizzo di due bre per raggiungere
la velocità di 1Gbps o 10Gbps.
POM - Passive Optical Network
Nelle reti di tipo POM si utilizzano solo dispositivi passivi tra l'OLT (all'interno del
central oce o stadio di linea ) e l'ONU/ONT.
In questo caso la capacità della bra ottica è condivisa tra più utenti.
I dispositivi passivi possono essere
splitters , dispositivi che sudidvidono la banda per più utenti. Cioè eettua il multiplexing
del segnale da più bre su una bra unica.
Uno splitter è caratterizzato da:
ˆ
Split ratio:
(1 : n)
Il valore di
n
dove
n
è il numero di bre ottiche in uscita (in direzione downlink)
può variare tra valori tipici di 32,64,128.
Il segnale in ingresso allo splitter (in direzione di downlink) viene ritrasmesso su tutte le
La
privacy
n
bre di uscita.
dei dati in questo caso è un problema!
In gura vediamo un esempio di utilizzo di splitter in una architettura FTTB:
Questi splitter vengono solitamente posti all'interno di cabinet sotterranei.
Lo splitting può essere eettuato più volte, come in gura sopra.
Lo scopo del secondo splitter è quello di posare meno bre nell'ultimo tratto.
Architettura PON nel caso FTTH
In questo caso di solito gli splitters si mettono all'interno del
Quindi si raggiunge alla ne un multiplex di
cabinet
e nel
distribution frame dell'edicio.
distribution frame sono (1 : 8) o (1 : 32)
(1 : 2) o (1 : 4), mentre quelli
valore (1 : 16) no a (1 : 128)
Gli splitters stradali in questo caso sono di solito
TDM-PON
Time Division Multiplexing PONs utilizzano due diverse lunghezze d'onda per uplink e downlink. L'OLT all'interno del
oce
slots e ogni ramo di collegamento ONU-ONT (user-end) ha un time-slot dedicato.
Per evitare collisioni viene trasmesso un segnale di sincronizzazione dall'ONT.
Due standard che sono stati creati per le TDM-PONs sono:
ˆ
central
applica le procedure per l'accesso al mezzo condiviso. L'OLT applica una divisione di tempo: il tempo viene suddiviso in
ITU G.984 Gigabit-capable-PON (
GPON)
1480 nm - 1500 nm per il downlink
6
ˆ
1260 nm - 1360 nm per l'uplink
Possiamo arrivare no a circa 2.5 Gbps in downstream e 1.25 Gbps in upstream
Il rapporto di splitting massimo è 1:128
La lunghezza massima del collegamento può superare i 20 km
GPON può trasportare ATM o Ethernet tramite incapsulamento
802.3ah Ethernet-PON (
Trasporta frame Ethernet nativi e utilizza una lunghezza d'onda
*
*
EPON)
1490 nm per downstream
1310 nm per upstream
Si raggiungono 1.25 Gbps simmetrici di velocità
Un singolo collegamento EPON può raggiungere no a 32 utenti con una distanza massima di 20 km
Per aumentare la capacità delle reti di accesso ottiche condivise è possibile utilizzare la divisione del canale a lunghezza d'onda
(WDMA).
ˆ Coarse WDM (CWDM)
ˆ Dense WDM (DWDM)
si raggiungono no a 18 lunghezze d'onda dierenti.
permette no a 162 lunghezze d'onda dierenti.
Dispositivi per reti WDM-PON
Il dispositivo fondamentale per creare un collegamento WDM-PON è la
Arrayed Waveguide Grating (AWG).
Si tratta di un dispositivo passivo che suddivide diverse lunghezze d'onda provenienti da una bra in dierenti bre.
È un dispositivo
Per collegare
n
bidirezionale.
utenti sono necessarie
2n
lunghezze d'onda, una per l'uplink e una per downlink per ogni utente.
Utilizzando bre basate su WDM-PON si può condividere la stessa bra tra più operatori.
7
Situazione attuale delle reti NGAN
ˆ
Denizione di
La raccomandazione ITU-T I.113 denisce la banda larga come un collegamento con velocità superiore a quella
di ISDN (Integrated Services Digital Network) a 1.5 o 2.0 Mbit/s
La FCC denisce
*
*
ˆ
banda larga:
Broadband: 200 kbit/s in una direzione
Advanced broadband: almeno 200 kbit/s in entrambe le direzioni
La commissione europea denisce la banda larga come: capacità di downstream superiore a 144 kbit/s
Denizione di
Ultra Large Bandwidth (ULB):
È denita come il la banda
di picco superiore a 30 Mbit/s nella direzione di downstream, per un singolo utente.
La vera capacità della linea (non di picco) può essere inferiore a causa delle policy per la concentrazione e shaping del
traco adottate dall'ISP.
La ULB è denita in base alla capacità teorica della linea, poi bisogna vedere le scelte dell'ISP
Sviluppo nei vari paesi
ˆ
In
Giappone:
ˆ
In
Le soluzioni FTTH stanno aumentando, mentre diminuiscono quelle ADSL
America:
Le soluzioni FTTH stanno aumentando con un tasso di crescita molto elevato
Ultra Large Bandwidth
Una strategia per lo sviluppo di una rete NGAN deve tenere conto di vari problemi economici.
ˆ
Gli investimenti richiesti per la rete NGAN, daranno realmente un miglioramento nei servizi forniti all'utente? Se sì, è
conveniente sviluppare una rete NGAN?
ˆ
Nel caso delle utenze domestiche, si avranno dei miglioramenti tali da portare l'utente a spendere maggiormente? Solo un
sottoinsieme della popolazione sarà interessato a pagare maggiormente per i servizi.
ˆ
NGAN aumenterà anche la velocità dei collegamenti P2P, quindi parte degli utenti potrebbe essere interessata per questo
motivo. Infatti nei sistemi P2P il ranking dell'utente dipende soprattutto dalla capacità di acesso alla rete dell'utente!
ˆ
Quindi, è probabile che un aumento di velocità nei collegamenti crei nuova richiesta del servizio, in base al principio nuove
strade creno nuovo traco.
ˆ
Inoltre gli utenti SOHO (
Small Oce Home Oce ) e SME (Small Medium Enterprise ) saranno potenzialmente interessati
a migliorare i propri servizi.
8
Lo sviluppo delle reti NGAN
Tutte le varie soluzioni FTTx (FTTE,FTTC,...) richiedono infrastrutture costose.
La migrazione a una archiettura 100% FTTH richiede costi superiori a FTCC e FTTB ovviamente.
devono cercare un qualche tipo di
tradeo
Quindi gli operatori
tra performance e costi.
In alcuni paesi comunuque, tipo in Italia, la dierenza tra una migrazione FTTC/FTTB e FTTH non è così alta.
Questo dipende dallo stato attuale della rete di distribuzione, dalla popolazione, dalla struttura geograca e territorio
nazionale.
ˆ
FTTH può richiedere no a 5 volte costi maggiori rispetto a FTTC
ˆ
FTTH PTP può richiedere il 10% in più di investimento rispetto a FTTH PON.
ˆ
Le principali spese sono: cablaggio e scavi nelle strade.
ˆ
Un problema importante è replicare l'infrastruttura per permettere la condivisione dei mezzi sici da parte di più operatori.
Questo è particolarmente vantaggioso nelle aree densamente popolate.
La gura sopra mostra i dati relativi allo sviluppo di NGAN in UK per collegare tutta la popolazione (comparando
FTTC/VDSL, FTTH/GPON, FTTH/PTP).
ˆ
FTTH/PTP ore performance migliori ma costi più elevati
ˆ
FTTH costa circa 5 volte di più di FTTC
ˆ
FTTH/PTP costa circa il 15% rispetto a FTTH/GPON
ˆ
Notiamo anche come i costi ssi (per costruire l'infrastruttura) sono molto più alti dei costi variabili (che sono invece i
costi per attivare la connessione dell'utente).
ˆ
Una strategia comune degli
Incumbent Operators
(gli operatori leader di mercato in un paese), è quella di costruire una
infrastruttura FTTC come passo di transizione verso FTTH.
Sviluppo di NGAN in Italia
In Italia le soluzioni VDSL sono relativamente convenienti poiché la distanza dallo stadio di linea non è solitamente molto alta.
In Italia inoltre il 60% della popolazione vive in appartamenti in aree densamente popolate (mentre in UK solo il 15%!). Le
due situazioni sono abbastanza diverse perché i costi di sviluppo per le aree urbane densamente popolate sono più bassi.
Sviluppo di NGAN e digital divide
ˆ
Il costo per utente crasce appena passiamo dagli utenti che vivono in aree metropolitane a utenti che vivono in aree rurali.
ˆ
Il costo per utente è sso per il 60% della popolazione che vive in aree metropolitane, per il restante 20-30% i costi
salgono per raggiungere le aree rurali.
ˆ
Coprire il 100% della popolazione potrebbe non essere conveniente. Questo genererà però un nuovo
digital divide
tra gli
utenti ULB e gli utenti con normale accesso LB.
ˆ
Ci si aspetta che questo nuovo
digital divide
possa essere risolto solo con fondi governativi, basati sull'idea di garantire
uguale accesso a tutti.
Per esempio:
ˆ UK:
Banda larga standard a tutti gli utenti entro la ne del 2012
9
Accesso ULB al 90% degli utenti entro il 2017
ˆ Francia
Banda larga a 512 kbit/s a tutti gli utenti entro la ne del 2012
Servizi consegnati tramite una rete NGAN
La migrazione tecnologica dalle reti attuali alle reti NGAN richiede un adattamento dei servizi che attualmente vengono forniti
tramite una rete classica in rame.
I servizi possono essere emulati/simulati o sostituiti.
Partiamo classicando i tipi di servizi che ci interessano:
ˆ
Intermediate services : Servizi utilizzati internamente da un operatore o da più operatori.
Un esempio classico di questo è l'insieme di servizi per il collegamento delle antenne radiomobili (GSM/UMTS/LTE)
al core della rete.
Questo tipo di collegamento è chiamato backhauling connection .
Il problema di questi collegamenti non è la mi-
grazione da rame a bra. Il problema è che questi collegamenti lavorano su linee E1 (E1 è un segnale che lavora a
2.048 Mbps su rame o bra). Questi segnali E1 è un segnale molto piccolo in banda e che deve essere precisamente
sincronizzato.
Inoltre questa linea non trasmette pacchetti ma stream di bit.
Il problema è che se convertiamo la
trasmissione da uno stream di bit in pacchetti IP perdiamo la sincronia (che viene sfruttata per diverse operazioni).
ˆ
Wholesale services :
da operatori per altri operatori. Tra questi servizi c'è
nelle infrastrutture di altri) e
ˆ
unbundling.
colocation
(far ospitare dei propri apparati
Retail services : Sono i servizi per gli utenti nali.
Intermediate services
Un tipico esempio di questi servizi, come abbiamo già detto, è il collegamento di antenne radiomobili (GSM/UMTS/LTE) al
core della rete.
In questo esempio specico la tecnologia
è di utilizzare
Syncronous Ethernet.
pseudowire potrebbe essere utilizzata come soluzione al problema.
Un'altra possibilità
Tutt'oggi gli operatori hanno questo problema e una delle soluzioni è di tenere un collegamento in bra ottica aancato da
una linea E1 utilizzata unicamente per il sincronismo.
Un'altra soluzione al problema è di utilizzare dei ricevitori GPS per il sincronismo, però il sistema GPS è sotto il controllo
del dipartimento della difesa americano, che può spegnerlo in qualunque momento.
Wholesale services
Un servizio di tipo
wholesale
può essere all'interno di tre categorie principali:
ˆ Bitstream access:
Da un punto di vista tecnico i servizi bitstream non generano problemi, il NGAN può orire accesso a larga banda
customizzabile. Solitamente per gli utenti business.
La qualità del servizio (QoS) può essere dierenziata almeno per i livello di priorità, per esempio con 802.1p
Orire diverse QoS tramite NGAN permette di condividere l'infrastruttura in modo intelligente per più applicazioni.
ˆ Wholesale Line Rental
Il servizio classico di atto di una linea può essere sostituito con una condivisione basata su trasmissione a pacchetti.
Abbiamo anche qua però il problema di gestire il sincronismo
ˆ Individual Line Rental
ˆ Unbundling
e
colocation
Solo i grossi operatori possono sostenere gli investimenti necessari per passare ad una rete NGAN. Permettere che
anche i piccoli operatori possano competere è un problema.
incumbent, la migrazione a NGAN porta alla rimozione dei local exchange oces (stadio di linea). Il
colocation delle apparecchiature dei concorrenti,
per implementare unbundling del Local Loop (ULL).
Per l'operatore
problema è che queste strutture sono massicciamente utilizzate per la
In alcuni paesi come soluzione si lascia un po' di tempo (~5 anni) agli operatori per accordarsi su cosa fare.
Un operatore in
colocation
può trasferire gli
unbundling
all'interno degli armadi stradali (solo nel caso FTTC).
10
in altre locazioni oppure può realizzare dei
sub-loop unbundle
Reti di accesso metropolitane e rete di backbone
NGAN è riferito soltanto alla parte di accesso alla rete, in realtà il componente centrale della rete dell'operatore è costituito
dalla rete backbone nazionali o metropolitane.
Un possibile (non l'unica) soluzione architetturale è quella di operare a livello IP nella rete di accesso e backbone, mentre a
livello Ethernet nella rete metropolitana, come mostrato in gura:
La dierenziazione della qualità del servizio è una questione abbastanza critica in questo caso.
VLANs IEEE 802.11q oppure IEEE 802.1ad
ˆ
Nelle reti metropolitane il QoS può essere realizzato utilizzando più
ˆ
IEEE 802.1q dierenzia la priorità all'interno delle VLAN tramite un campo di priorità inserito nel frame Ethernet. IEEE
802.1p è la reference che specica il signicato dei bit di priorità nel campo priorità di 802.1q
ˆ
Utilizzando 802.1q è possibile denire no a 4096 VLAN dierenti
ˆ
Con IEEE 802.1ad è possibile denire delle VLAN 802.1Q stacked, cioè delle VLAN all'interno di una singola VLAN.
Con questo metodo si può arrivare no a 16'777'216 VLAN.
ˆ
La divisione delle VLAN potrebbe non essere così semplice. L'operatore potrebbe decidere di utilizzare alcune VLAN per
operazioni di servizio: distizione tra
ˆ
Customer VLANs (C-VLAN) e Service VLANs (S-VLAN).
Nelle reti metropolitane è spesso utilizato anche
MPLS (MultiProtocol Label Switching )
Un interessante feature di MPLS è la gestione del multicasting, che evita di replicare dei ussi identici. È utile per la
distribuzione di contenuti audio/video.
Per contrasto, nelle reti basate su VLAN Ethernet si replicano per forza tutti i ussi anche identici.
Servizi multimediali IP nelle reti NGN
ETSI (European Telecommunications Standards Institute ) ha creato un gruppo di lavoro chiamato TISPAN (Telecommunications and Internet converged Services and Protocols for Advanced Networking ) ha già denito diversi standard per le reti NGN.
Una parte rilevante di questi standard copre i problemi relativi all'interconnessioni di diverse reti NGN di diversi operatori.
I requisiti ad alto livello sono:
ˆ
Il QoS deve essere negoziato sia al momento di instaurazione della connessione, sia quando la connessione è già stabilita.
ˆ
La negoziazione del QoS deve essere abilitata anche nel caso di
ˆ
Le sessioni multimediali IP devono supportare un vasto tipo di codecs audio e video.
ˆ
I servizi multimediali IP devono, il più possibile, essere forniti a una varietà di tecnologie di accesso (UTRAN, WiMAX,
...)
11
roaming
tra diversi operatori.
Questa gura mostra la suddivisione logica tra i livelli di servizio e i livello di trasporto nelle NGN:
ˆ NGN Access Network Provider (NANP):
concentra il traco proveniente da più linee attraverso uno o più NGN
Connectivity Providers.
ˆ NGN Connectivity Provider (NCP):
fornisce la connettività al NGN Core Network Provider.
ˆ NGN Core Network Provider (NCNP):
aggrega il traco proveniente dai nodi estermi di diverse reti di accesso,
verso diverse reti esterne.
ˆ NGN Service Provider (NSP):
Si occupa dei servizi necessari al trasporto sulla NGN: autenticazione, service control,
management, pagamenti. Nel caso dei servizi IPTV si occupa anche dei diritti d'autore (DRM).
Due operatori NGN interconnessi orono dei servizi
collegamenti
end-to-end
end-to-end.
La qualità del servizio deve essere garantita anche per
tramite cooperazione tra gli operatori. Un esempio è Carrier-grade VoIP services.
TISPAN identica la emulazione/sostituzione dei servizi PSTN/ISDN come punto chiave.
Con l'emulazione del servizio, un nuovo servizio è fornito tramite NGN con le stesse caratteristiche del vecchio servizio.
Per sostituzione si intende che alcune caratteristiche del servizio potrebbero cambiare.
Requisiti base per i servizi classici PSTN/ISDN
ˆ
Gestione della numerazione preservata
ˆ
Intercettazioni legali devono essere garantite
ˆ
I servizi di emergenza devono essere garantiti
ˆ
Il servizio
Malicious Call Identication
ˆ
Il servizio
Anonymous Call Rejection
ˆ
L'interoperabilità con il vecchio sistema deve essere garantita
(MCID) deve essere garantito
(ACR) deve essere garantito
Ci sono due categorie base in cui viene suddiviso il sistema telefonico:
ˆ
Servizi telefonici pubblici (PATS): È il servizio per mappare il servizio classico PSTN/ISDN e ha più stretti requisiti rispetto
a ECS
ˆ
Electronic Communication Service, ECS
L'emulazione del servizio classico PSTN/ISDN è solitamente chiamato
ToIP
(Telephony over IP), per distinguerlo da servizi
ECS come VoIN (Voice over Internet).
ˆ
Nel servizio VoIN, solitamente gli operatori non controllano il servizio e non garantiscono QoS.
ˆ
Tipicamente i servizi VoIN sono la telefonia P2P come Skype o altri.
ˆ
Il servizio VoIN In&Out permette agli utenti di interconnettersi tramite reti esterne come PSTN/PLMN
12
Chiamate a PSTN e PLMN
Servizi addizionali (chiamate di emergenza, portabiltà numero, ...)
VoIN P2P
no
no
VoIN In&Out
sì
sì (ma non completamente)
ToIP
sì
sì
Interconnessione di reti NGN
La interconnessione tra NGN è denita dallo standard ETSI/TISPAN di cui abbiamo già parlato.
In base a questi standard, l'interconnessione può essere eettuata mediante:
ˆ
Service-Oriented Interconnection (SoIx)
ˆ
Connectivity-Oriented Interconnection (CoIx)
SoIx opera a livello a livello service, mentre CoIx
ˆ SoIx
è la interconnessione sica e logica tra due diversi domini di due diversi operatori NGN. Permette agli operatori di
orire dei servizi con QoS
ˆ CoIx
opera a livello di trasporto.
end-to-end.
opera invece a livello IP, senza considerare QoS in stile
end-to-end.
Può garantire solo requisiti di servizio a livello
IP.
Funzionalità di interconnessione
ˆ
Riguardo alla interconnessione di diversi sistemi ToIP la funzione
nessione tra diversi protocolli come SIP (
ˆ
La
Border Gateway Function
BGF)
(
InterWorking Function
(
IWF) permette l'intercon-
Session Initiation Protocol ) e ISUP (Integrated Services User Part )
separa i due domini amministrativi permettendo QoS, sicurezza, tracciamento
delle chiamate, log del traco.
ˆ
La funzione di
Resource and Admission Control Subsystem (RACS) controlla l'utilizzo di risorse a livello IP ed è
resposabile del QoS a livello IP.
13
La interconnessione di tipo CoIx permette agli operatori di fornire ai propri clienti la connettività necessaria per raggiungere
le reti esterne.
Un esempio di interconnessione CoIx tipico è il peering IP.
Interconnection service
Denizione
Termination
Richieste di servizio originate
Terminazione telefonica,
dal lato OLO/SP e terminate a clienti
video streaming, sistemi di
dell'operatore interconnesso
messaggistica
Collection
Esempi di applicazione
Le richieste di servizio da parte degli
Comunicazione con numeri
utenti sono inoltrate all'OLO/SP
non geograci,carrier-selection e
N.A.
N.A.
carrier-preselection
Transit
Le richieste di servizio da parte dell'
Transito della telefonia
OLO/SP sono inoltrate nella rete
e video telefonia
IP transit
Traco IP dell'OLO/SP inoltrato sulla
Access
Il traco IP dei clienti è inoltrato
IP transport
rete dell'operatore interconnesso
all'OLO/SP
N.A.
N.A.
Traco IP dell'OLO/SP tra due punti
remoti che transitano sulla rete
dell'operatore interconnesso
14
N.A.
Transito IP verso
domini di peering
Bitstream,
Linee in atto
Linee in atto
N.A.
Interconnessioni
VPN
Requisiti SoIx
ˆ Requisiti per il signaling:
ˆ Requisiti per i codecs:
Interoperabilità del signaling e identicazione del servizio
Un insieme di codecs devono essere supportati, almeno G.711,AMR, G.729A, EVCR. La selezione
automatica dei codecs deve essere abilitata. Deve essere possibile per il sistema utilizzare il codec a più bassa qualità
ˆ Codecs video:
H.263 e H.264
ˆ Routing:
Il routing basato sul servizio deve essere supportato
ˆ Security:
Intercettazioni legali, autorizzazione, autenticazione, access control, integrità dei dati, privacy
ˆ Billing e accounting:
ˆ QoS & SLA:
Charing Data Record CDR)
Logs, report del traco, generazione conti e controllo consumi (
Prenotazione di risorse per sessioni QoS
ˆ Connection Admission Control
Multimedia Streaming
Per
Media Streaming
si intende la distribuzione di contenuti audio/video, solitamente sincronizzati.
La funzionalità base del media streaming è che il contenuto viene utilizzato
mentre è trasferito sulla rete,
invece di
scaricare e poi riprodurre in un secondo momento. Questa è la principale dierenza tra i normali servizi di le sharing e il media
streaming.
Codecs
I codecs audio e video svolgono un ruolo importante nel media streaming.
ˆ
Alcuni codecs forniscono solo una velocità di trasmissione, con
layered codecs e i multi-description codecs è possibile scegliere
diverse velocità di trasmissione che corrispondono solitamente a diverse qualità dei contenuti audio/video.
layered suddividono uno stream in un insieme di substreams separati chiamati layers .
ˆ
I codecs di tipo
ˆ
L'utente deve essere in grado di ricevere almeno il layer più basso per poter iniziare la riproduzione
ˆ
Aggiungere layer sopra a quello base aumenta la qualità, se l'utente ha la banda necessaria per scaricarli.
ˆ
I codecs
ˆ
Lo svantaggio è che a parità di qualità, i codecs layered consumano più banda.
layered
sono quindi migliori perchè il contenuto multimediale si può adattare alle risorse dell'utente.
15
Costi per la comunicazione
ˆ
I costi per il trasporto di contenuti multimediali a livello di provider sono un problema da tenere in considerazione
ˆ
I costi possono essere molto variabili. Un'idea ragionevole è che la trasmissione di un lm medio compresso con MPEG2 a
5Mbit/s non deve costare più di 1$.
ˆ
ˆ
Per ridurre i costi del trasporto possono essere adottate una serie di soluzioni, tra cui il
Anche il
caching.
multicast è una soluzione eciente, anche se non viene spesso utilizzata dai providers a causa della dicoltà di
gestione. Spesso è più comodo sfruttare MPLS per fare multicasting.
Media Streaming
Un servizio per la distribuzione di contenuti multimediali può utilizzare una tecnologia di trasporto seguendo due stili:
ˆ Pull:
L'utente sceglie e richiede esplicitamente un contenuto specico.
ˆ Push:
I contenuti sono forniti, tramite un canale di distribuzione, in base ad una certa pianicazione
Un altro modo per caratterizzare i servizi di media streaming è tramite la loro dipendenza dal ritardo:
ˆ Live events:
Per esempio una partita di calcio, richiede di riuscire a garantire un ritardo massimo dello stream nell'ordine
di 1 secondo.
ˆ Eventi non live:
Ad esempio un lm. Il ritardo anche di qualche secondo è ammesso.
Playout buer
Nel client dell'utente nale, una parte del contenuto multimediale viene accumulato in un buer di playout prima di essere
riprodotto.
ˆ
Il buer di playout compensa la variazione di velocità della rete.
ˆ
Maggiore è la dimensione del buer, minore diventa la frequenza dei buer underows, che degradano la qualità video.
ˆ
Tuttavia, più aumentiamo la dimensione del buer, più aumentiamo il delay complessivo dello stream e il delay iniziale di
riproduzione.
ˆ
Quindi è necessario trovare un tradeo sulla dimensione di questo buer. Questo tradeo varia solitamente a seconda del
tipo di contenuto (push/pull, live/non live).
Streaming unicast
Unicast streaming signica la trasmissione di un contenuto multimediale con un approccio classico
Almeno
fatto
due ussi
signaling
client-server.
vengono stabiliti tra il client e il server. In uno viene inviato il contenuto multimediale, nell'altro viene
per scambiare dei
feedback
sulla qualità.
Per aumentare le performance è possibile mettere dei server periferici (dei proxy) e poi distribuire i contenuti dai proxy verso
Content Delivery Network ).
l'utente nale. Questo è quello che fanno sostanzialmente i CDN (
16
La distribuzione dei contenuti verso i proxy è solitamente fatta tramite ftp o ftps.
Streaming Multicast
Il
multicasting
ˆ
Il
è un modo molto eciacie per distribuire lo stesso contenuto a più utenti senza replicare i ussi.
problema
basilare è che IP fornisce solo delle primitive per capacità di multicasting, insucienti per fornire una
distribuzione scalabile dei contenuti.
ˆ
Tecnologie come MPLS sono piuttosto ecaci per implementare il multicasting a livello superiore, aggregando i ussi
identici.
ˆ
Nei sistemi P2P il multicasting è eettuato a livello di overlay, a livello 7.
Real Time Streaming Protocol
Real Time Streaming Protocol (RTSP) è un protocollo client-server per la distribuzione di contenuti multimediali su reti IP.
RTSP è stato inizialmente sviluppato da Progressive Networks, Netscape Communications e Columbia University in modo
congiunto.
RTSP può interoperare con popolari protocolli media-related di Internet:
ˆ
Real Time Protocol (RTP) e Real Time Control Protocol (RTCP)
ˆ
ReSerVation Protocol (RSVP)
ˆ
HyperText Transfer Protocol (HTTP)
ˆ
Session Description Protocol (SDP)
RTSP fornisce all'utente una serie di comandi per controllare la riproduzione di un video:
ˆ Start
ˆ Pause
ˆ Jump
ˆ Fast forward
ˆ Fast reverse
Solitamente lato server abbiamo un media server e un web server dove l'utente può scegliere il contenuto da riprodurre. L'utente
tramite HTTP può ottenere l'
SDP (Session Description Protocol ) la descrizione della sessione.
17
Esempio: Comunicazione con il webserver
GET / Mission_to_Mars . sdp HTTP /1.1
Host : www . movieinfo . com
Accept : application / sdp
HTTP /1.1 200 OK
Content - Type : application / sdp
V =0
O =2890844526 2890842807 IN IP4 192.16.24.202
S = RTSP session
M = audio 0 RTP / AVP 0
A = control : rtsp :// audio . source . com / Mission_to_Mars / audio
M = video 0 RTP / AVP 32
A = control : rstp :// video . source . com / Mission_to_Mars / video
Esempio RTSP: Setup audio/video server
// client to audio server
SETUP rtsp :// audio . source . com / Mission_to_Mars / audio RTSP /1.0
CSeq :1
Transport : RTP / AVP / UDP ; unicast ; client_port =3056 -3057
// audio server to client
RTSP /1.0 200 OK
CSeq :1
Session : 12345678
Transport : RTP / AVP / UDP ; unicast ; client_port =3056 -3057; server_port =5000 -5001
// client to video server
SETUP rtsp :// video . source . com / Mission_to_Mars / video RTSP /1.0
CSeq :1 Transport : RTP / AVP / UDP ; unicast ; client_port =3058 -3059
// video server to client
RTSP /1.0 200 OK
CSeq :1
Session : 23456789
Transport : RTP / AVP / UDP ; unicast ; client_port =3058 -3059; server_port =5002 -5003
Esempio RTSP: Play media
// play instructions to servers
PLAY rtsp :// video . source . com / Mission_to_Mars / video RTSP /1.0
CSeq :2
Session : 23456789 # range : smte =0:10:00 18
RTSP /1.0 200 OK
CSeq :2
Session : 23456789 # range : smte =0:10:00 RTP - info : url = rstp :// video . source . com / Mission_to_Mars / video ; seq =123122322; rtptime =78712811
PLAY rtsp :// audio . source . com / Mission_to_Mars / audio . it RTSP /1.0
CSeq :2
Session : 12345678 # range : smte =0:10:00 RTSP /1.0 200 OK
CSeq :2
Session : 12345678 # range : smte =0:10:00 RTP - info : url = rstp :// audio . source . com / Mission_to_Mars / audio . it ; seq =876655; rtptime =10325465
Sistemi per
Negli anni 90' il
a banda larga.
Real Time Streaming
Video on Demand
era considerato una delle applicazioni più interessanti e con più successo per i collegamenti
La previsione fu errata perché il problema di stabilire un servizio di
video on demand
ha diversi problemi di
business (non tecnologici).
Infatti fornire
video on demand
è molto costoso ed è dicile formare un modello di business dove i costi sono compensati dai
guadagni ottenuti dai soldi che l'utente ha intenzione di spendere per un servizio del genere.
Dagli anni 90' in poi ci sono stati diversi sviluppi in vari campi:
ˆ
Sviluppo di nuovi codecs a basso rate
ˆ
Server video più ecienti e più scalabili
ˆ
Accesso a banda larga per più utenti
Multimedia Servers
I server video multimediali devono memorizzare un grosso contenuto di dati, quindi è necessaria una grossa capacità di storage,
nell'ordine dei diversi
terabytes.
I server devono anche avere un accesso a banda molto larga per poter ricevere le richieste da parte di moltissimi utenti.
ˆ
L'ecienza sui costi per lo storage è un problema
ˆ
Le tecniche più comuni sono architetture di storage gerarchico, dove i contenuti ad alto rate sono memorizzati su dischi
ottici o nastri, mentre gli hard disk e gli array di dischi vengono utilizzati per i contenuti richiesti da molti utenti. In questo
caso lo
striping
è una tecnica adottata comunemente.
RAID
Signica
Redundant Array of Inexpensive Disks, è una architettura di storage eciente dal punto di vista dei costi.
Un grosso numero di dischi a basso costo è utilizzato per raggiungere una quantità di spazio superiore.
Gli
stripes (chunk dello stesso media) sono salvati su dischi diversi.
Si riesce a distribuire i contenuti visualizzati da molti utenti ed evitare i colli di bottiglia su un unico disco.
19
La
long tail
Long Tail
dei contenuti
è un termine che indica il fatto che alcuni produttori di contenuti multimediali sici hanno pochi prodotti e molte
vendite, mentre i rivenditori di contenuti digitali hanno solitamente tantissimi prodotti ma pochissime vendite (vedi gura).
Il modello di distribuzione basato sul web permette ai distributori di creare un catalogo innito di contenuti, in contrasto
con (ad esempio), un negozio di DVD dove lo spazio sico è un problema.
Un altro esempio è l'evoluzione del mercato dei libri con l'avvento della vendita online.
YouTube
YouTube è il tipico esempio di un distributore
long-tailed
di contenuti digitali. YouTube fornisce sia contenuti ad alto che a
basso bitrate. Il numero di contenuti forniti è virtualmente innito. YouTube inoltre fornisce dei contenuti caricati dagli utenti,
un business che non si può raggiungere con la vendita classica di contenuti multimediali.
Peer-To-Peer Systems
Caratteristiche dei sistemi P2P
ˆ Vantaggi
Sono basati sua una infrastruttura di rete che non è centralizzata, i vari peer comunicano tra di loro invece che con
un server centrale. Questo permette di scalare il sistema a milioni di utenti senza problemi sull'infrastruttura.
Permettono una migliore gestione della banda disponibile, che non è possibile con il modello
client/server
che genera
rallentamenti all'aumentare dei clients.
Non c'è necessità di amministrare il sistema. Il sistema di autoregola. È un sistema tollerante ai guasti perché nessun
nodo è indispensabile al funzionamento dell'architettura.
ˆ Svantaggi
Non è sempre facile eettuare l'operazione di ricerca, quindi bisogna sempre sviluppare sistemi di ricerca leggermente
complessi nelle reti P2P
La diusione del materiale DRM, coperto da copyright è un problema.
La banda disponibile in upload per i peers può essere il collo di bottiglia del sistema.
ˆ Caratteristiche
I sistemi P2P sono suddivisi in un
Solitamente l'
underlay
overlay e un underlay .
è Internet e la rete di
overlay
è creata dal sistema che si occupa di collegare tra di loro vari
peer.
Nella rete di
overlay
possiamo quindi costruire delle topologie di rete complesse, anche ad albero per esempio.
Si può implementare il
multicast a livello di overlay.
I sistemi P2P spesso utilizzano le
Distributed Hash Table (DHT) per associare i contenuti ai peer.
20
Distributed Hash Tables
È un sistema che implementa un servizio simile ad una tabella di hash, che è però suddivisa tra vari nodi di una rete.
La
suddivisione è strutturata in modo che se viene a mancare uno dei membri della rete, la perdita di informazione è minima.
I componenti di una DHT sono:
ˆ
Keyspace : Ad esempio l'insieme delle stringhe md5 da 128bit di hash (32 caratteri hex)
ˆ Schema di partizionamento del keyspace:
ˆ Rete di
overlay :
suddivide le proprietà delle varie parti del
keyspace
tra i vari nodi.
connette i nodi tra di loro, permettendo di trovare i proprietari delle varie parti di chiavi.
La DHT è composta da un insieme di coppie
(chiave, valore)
o
(key, value).
Ad ogni nodo vengono assegnate alcune chiavi. Il
nodo è responsabile di mantenere il valore associato a quelle chiavi.
Ci sono varie implementazioni, tra cui ad esempio
Chord, CAN, Tapestry
e
Pastry.
Noi analizzeremo
Chord come esempio.
Chord
È una implementazione di un sistema a DHT sviluppata nel 2001 insieme ad altri famosi sistemi DHT.
Chord sostanzilmente supporta una sola funzione:
ˆ
Tiene delle coppie
data una chiave, mappa la chiave su un nodo.
(key, value) , implementa una grossa tabella di coppie.
Questa tabella non è centralizzata ma è distribuita
tra i peer del sistema peer-to-peer.
ˆ
Il sistema ha un algoritmo per assegnare ai nodi (peers) le chiavi per le quali sono responsabili (un piccolo sottoinsieme).
ˆ
Trovare una risorsa signica trovare
un nodo responsabile
chiave.
per quella risorsa. Le risorse sono identicate dall'hash di
qualche testo che le identica. Questa è la
ˆ
Una caratteristica fondamentale di Chord è che quando cerchiamo una chiave, non troviamo il valore ma il nodo responsabile
per essa.
ˆ
I
valori
sono invece gli identicatori dei peer responsabili per una certa chiave. Quindi l'hash dell'indirizzo IP o di altre
informazioni sulla rete di
ˆ
overlay.
Assumiamo di avere un hash di
m
bits, allora abbiamo
2m
nodi. Abbiamo un evidente problema di collissioni: due cose
diverse che diventano lo stesso hash. Questo problema è abbastanza improbabile comunque.
Solitamente rappresentiamo questi
2m nodi in un cerchio che rappresenta l'intero spazio
All'interno di questo spazio sono presenti i vari nodi distribuiti in modo uniforme.
Il cerchio può contenere ID/chiavi da
0
a
2m − 1.
21
di hashing coperto dalla nostra funzione.
Consistenza delle chiavi
Abbiamo un problema di
consistenza perché quando allochiamo gli hash dei nomi dobbiamo tentare di occupare con probabilità
uniforme tutte le parti dello spazio di hashing:
ˆ
SHA-1
L'algoritmo
consistent hashing .
è quello utilizzato in questo caso per realizzare la funzione di hashing (SHA-1 utilizza 160 bits di
digest).
ˆ
L'idea di chord è che ogni peer è responsabile per una quantità di chiavi equivalente alla quantità di spazio di hashing tra
lui e il peer seguente all'interno della circonferenza che rappresenta lo spazio di hashing.
ˆ
Se l'algoritmo di hash non è consistente avremo anche un problema di load balancing, perchè alcuni peers sono carichi di
lavoro rispetto ad altri.
ˆ
Il fatto di avere
consistent hashing
è anche una caratteristica importante per riuscire a gestire le azioni di join e leave dalla
rete senza grossi problemi.
ˆ
Poiché la tabella di routing è distribuita, un modo può risolvere la funzione di hash comunicando con pochi altri nodi.
Altre caratteristiche
ˆ
Il fatto che un host contenga la tabella di certe chiavi non signica che lui contiene quei contenuti, signica solo che sa chi
li possiede (il valore nella coppia che ha in tabella).
ˆ
Quando devo fare una query la faccio ad un vicino, se lui non lo sa, sarà lui a girare la richiesta ad altri peers.
Se la rete contiene
N
nodi, la query per una risorsa ha una complessità di
O (log (N )),
Allo stesso tempo ogni nodo deve tenere in memoria le informazioni di solo altri
quindi chord è molto eciente.
O (log (N ))
nodi.
Quindi le feature di chord sono:
ˆ Load balancing:
perchè consistent hashing
ˆ Decentralizzazione completa:
ˆ Scalabilità:
ˆ
nessun nodo è più importante degli altri
possiamo arrivare no a milioni di nodi e il costo di una ricerca è di complessità logaritmica.
Lo spazio delle chiavi è piatto,
ˆ Disponibilità
non c'è gerarchia.
Non ci sono limitazion sulla struttura delle chiavi da cercare.
(Availability): Chord aggiorna automaticamente le sue tabelle per includere i nuovi nodo entrati nella rete,
così come i nodi che sono usciti dalla rete. Assumendo i
failure
possibili si riesce sempre a trovare un nodo responsabile
per una chiave.
Solitamente l'applicazione p2p tipo
ˆ
Una
chord
tabella di chiavi e valori
contiene al suo interno vari componenti:
che associano i computer responsabili per un certo hash.
Questa tabella deve essere
strutturata in modo che quando arriva una query sia consultata e sia data una risposta.
risorse, i contenuti che l'host condivide (che devono essere indicizzati da altri sistemi).
ˆ
C'è poi una sezione di
ˆ
Ci deve poi essere un sistema per
costruire delle queries.
Ovviamente deve avere qualche parametro di sistema che
descrive dov'è il computer (il suo indirizzo) E quali computer deve interrogare per construire una richiesta. Quindi il
computer ha informazioni riguardo ad altri
Vediamo un
pochi
nodi (log
(N ))
esempio di rete chord:
ˆ m=3
ˆ 2m = 8
peers sul cerchio di hash
Assegnamo delle chiavi ai nodi. La chiave
k
Se ci sono
N
ridistribuzione di
ˆ
K
nodi e
O
K
N
value )
è assegnata al primo nodo il cui hash (
circonferenza di hash. Questo nodo ha un nome, si chiama
successor (k),
chiavi, ogni nodo è responsabile di
segue il valore delle chiave
cioè il nodo successore di
k
sulla
k.
K
N chiavi. Quindi quando un nodo lascia la rete è necessario una
chiavi.
Se gli identicatori sono rapresentati nel cerchio di hashing con numeri da 0 a
nodo in senso orario da
k.
22
2m − 1,
allora il
successor (k)
è il primo
Key location
Assumiamo che la nostra rete utilizzi
m
bits per gli identicatori di chiavi e nodi.
Per trovare le chiavi, ogni nodo mantiene la di overlay routing table. Questa tabella ha
m
nger table , cioè la tabella di host da contattare per le richieste. È una sorta
righe (O (log
(N )) = O (log (2m )) = O (m)),
quindi in questo esempio
3
host.
Finger table
È una tabella di
m
entries, numerate
La tabella del nodo
k
1
1≤k≤m
interval
successor
[nger[k].start, nger[k+1].start)
successor (n.f inger [k] .start)
...
...
...
...
...
...
...
Il
k
che contiene gli indirizzi di alcuni nodi della rete.
è strutturata come segue:
start
n + 2k−1 mod 2m
2
Nota:
n
nella tabella
non è una chiave, è solo un indice della riga della tabella, uno stupido contatore.
Quindi riassumendo la tabella contiene
k
righe da 1 a
m,
ogni riga indica un nodo successivo, chiamato start , il cui hash è:
f inger[k].start = n + 2k−1 mod 2m
Questo nodo è responsabile dell'intervallo di chiavi:
[f inger[k].start,
f inger[k + 1].start)
Nota: k + 1 può essere superiore a m, tanto poi il modulo lo sistema.
I nodi nella tabella sono tutti:
startN ode ≥ n.f inger[k].start
Il successore del nodo
start
di ogni riga è calcolato come:
f inger [k] .successor = successor (f inger [k] .start)
Cioè si va a prendere il successore del nodo
start
della riga, quindi bisogna vedere quali nodi sono attivi. Se il nodo
start
della riga è attivo, il successore è lui, altrimenti è il nodo attivo seguente in senso orario.
Il predecessore (che funziona da puntatore in senso anti-orario) può essere utile quando dobbiamo riorganizzare il cerchio
perché un nuovo nodo entra o esce dal sistema.
Il join e leave sono un problema serio per i sistemi p2p perché dobbiamo essere in grado di riorganizzare la rete per aggiungere
il nodo. Specialmente nei sistemi p2p2 di video streaming, le leaves sono il problema principale di degradazione della qualità
video.
Proviamo a disegnare nel caso dell'esempio precedente:
23
Notiamo che:
ˆ
La
nger table
è molto compatta rispetto alla rete e lista solo pochi nodi
ˆ
La
nger table
di solito non contiene abbastanza informazioni per determinare il successore di una chiave arbitraria.
Per esempio nella gura sopra vediamo che il nodo
. Questo perché il
successor (1)
n=3
non conosce il successore della chiave
non compare nella tabella. Allora
come facciamo?
k = 1 (successor (1))
Scalable key location
Cosa succede quando un nodo n non conosce il successore di una chiave k ?
ˆ
Se
n
può trovare un nodo il cui identicatore è più vicino a
k,
quel nodo saprà di più riguardo a
k
di quanto non ne sappia
n.
ˆ
Quindi
n
cerca nella sua
del nodo più vicino a
k
nger table
un nodo
j
il cui identicatore precede immediatamente
k
e chiede a
j
l'identicatore
che conosce. Quindi è una sorta di ricerca per passaparola.
Esempio:
ˆ
Il nodo
ˆ
Nella
n=3
vuole trovare il successore per l'identicatore
1.
nger table, il nodo 3 vede che l'identicatore 1 ricade nell'intervallo [7, 3), cioè l'intervallo della terza riga della sua
nger table (3.f inger[3].interval).
ˆ
Allora il nodo 3 controlla il successore dell'intervallo dell'ultima riga, che è
non è il successore dell'identicatore
quale sia il successore del nodo
ˆ
Il nodo
nodo
ˆ
1
0
1 perché lo precede!
1.
riceve il mesaggio, controlla la sua
al nodo
3
0 (3.f inger[3].successor = 0). Però il nodo 0
3 manderà un messaggio al nodo 0 chiedendo
Allora il nostro nodo
nger table
e vede che il successore della chiave1 è il nodo
1,
quindi ritorna il
che gli aveva chiesto.
Quindi da ora in poi, dato che il nodo
direttamente per le query.
3
ha scoperto chi è il nodo responsabile per quella risorsa, lo può contattare
Se il nodo interrogato non ha sicamente la risorsa, può rispondere con l 'indirizzo di chi
possiede la risorsa.
Poiché i puntatori della
nger table
raddoppiano sempre le distanze attorno al cerchio, ad ogni iterazione si dimezza la distanza
dalla destinazione.
Da questa intuizione nasce un teorema dimostrabile che aerma:
Con alta probabilità, il numero di nodi da contattare per trovare un successore in una rete di
24
N
nodi è
O (log (N )).
Join e leaves
È la parte veramente dicile di Chord e di tutti i sistemi di sistribuzione p2p basati su DHT. Il problema principale è che questo
cerchio può arrivare a trovarsi in una situazione di
inconsistenza.
Il problema è ancora pià grave quando siamo su un sistema
real-time come un sistema di distribuzione video p2p, dove non possiamo perdere troppo tempo in riallocazioni.
In ogni caso i
join e laves
implicano la ridistribuzione di chiavi tra i peer della rete. In particolare sono richiesti
O
messaggi e solo una frazione di
ˆ
Quando un nodo
n entra
1
N
chiavi vengono spostate in una nuova locazione.
nella rete, alcune chiavi che erano prima assegnate al successore di
Devono essere preservati due
*
*
n,
diventano ora chiavi di
n.
invarianti :
Il successore di ogni nodo deve essere mantenuto
Per ogni chiave
k,
il nodo
successor (k)
Per mantenere i lookup veloci la
è responsabile per
nger table
k.
deve essere sempre corretta.
Per ristibilire gli invarianti di Chord servono, come abbiamo già visto,
n lascia
O log 2 (N )
ˆ
Quando un nodo
ˆ
Per semplicare i meccanismi di join e leave, ogni nodo di Chord mangiene un
pointer
O log 2 (N )
messaggi scambiati.
la rete, tutte le chiavi assegnate a lui vengono riassegnate al successore di
n.
Questo
predecessor
contiene l'identicatore Chord e indirizzo IP del predecessore immediato di quel nodo in questione.
predecessor pointer.
Può essere
utilizzato per spostarsi in modo anti-orario intorno al cerchio degli identicatori.
Join
Per preservare gli invarianti detti prima, Chord deve fare 3 operazioni quando un nodo
1. Inizializzare il
predecessor e nger table
2. Aggiornare le
nger tables e predecessors
del nodo
dei nodi esistenti, per noticare l'aggiunta di
Si asume che il nuovo nodo scopre l'identità di un nodo
Il nodo
n
utilizza il nodo
Aggiornare le
Il nodo
n
n
nger tables
entra nella rete:
n
3. Noticare il software ad alto livello che ora può trasmettere lo stato dei
0
n
n0
values
n
nella rete.
che possiede.
già esistente in Chord tramite
qualche meccanismo esterno.
per inizializzare il suo stato e aggiungersi alla rete Chord esistente, nelle tre fasi viste.
dei nodi già esistenti
avrà bisogno di entrare nelle
nger tables
di alcuni nodi già esistenti.
Riprendiamo l'esempio di prima. Immaginiamo che il nodo
Diventa inoltre il primo e il secondo
successor
del nodo
n=6
3.
25
entra nella rete e diventa il terzo
successor
nei nodi
0
e
1.
Stabilizzazione
ˆ
Quando entrano dei nuovi nodi nella rete, possono creare temporaneamente inconsistenza in un'area dell'anello di Chord.
Un lookup in corso prima che il sistema si sia stabilizzato può mostrare tre comportamenti diversi.
Il caso più comune è che le entries della
successore corretto in
O (log (N ))
nger table
coinvolte nel lookup siano corrette e quindi viene trovato il
passi.
Un altro csao è che i puntatori al successore siano corretti, ma le
nger tables
non sono accurate. Questo causa dei
lookup corretti ma più lenti
Un terzo caso è quello in cui i nodi della regione hanno dei
successor
pointers errati, o le chiavi non sono ancora state
migrate al nuovo nodo. In questo caso il lookup può fallire.
ˆ
Il software di alto livello che utilizza chord noterà questo problema e ha l'opzione di ritentare dopo un certo periodo di
tempo.
Attacco
Eclipse
In un attacco
a Chord
Eclipse,
un insieme di nodi malevoli possono essere sfruttati per interporsi tra tutti gli altri.
Se l'attacco ha
successo è possibile porsi nel mezzo della maggior parte o tutte le comunicazioni da e verso la vittima.
Inoltre dando delle informazioni errate sui vicini durante normali operazioni di mantenimento della rete di overlay, un numero
modesto di nodi malevoli può eclissare un grosso numero di vittime.
P2P Video streaming
Le funzionalità principali dei sistemi di streaming video P2P sono principalmente nove:
1. Distribuzione dei contenuti
2. Costruzione della topologia di overlay
3. Tipo di topologia
4. Sorgenti
5. Coordinamento e startup
6. Join
7. Leave
8. Performance
9. Cryptography
26
Requisiti tecnologici per il P2P Video streaming
ˆ
È necessario accesso a Internet a banda larga, quindi almeno servizio ADSL o superiore
ˆ
Servono dei computer degli utenti che siano di potenza-medio bassa
Riguardo all'
ˆ
ˆ
ADSL:
Le tecnologie ADSL utilizzano doppini in rame per fornire connettività IP agli utenti
La velocità di trasmissione dipende, tra le altre cose, dalla
qualità del doppino,
interferenza
dall'
e dalla
lunghezza
del cavo.
ˆ
I doppini in rame tradizionale possono fornire velocità soddisfacienti se non sono eccessivamente lunghi. Un cavo lungo
meno di 3Km è adatto.
ˆ
In italia la lunghezza media dei doppini in rame è più bassa che in altri paese europei, quindi c'è un vantaggio per la
tecnologia ADSL.
I sistemi
P2P:
I sistemi P2P non adottano la classica architettura
client-server di tante applicazioni distribuite.
peer e può agire sia come server, sia come client.
Nei sistemi P2P ogni nodo che partecipa viene riferito come
Pro e contro dei sistemi P2P
Pro
ˆ
ˆ
Permettono agli utenti di raggiunere un elevatissimo numero di contenuti, memorizzati nei computer dei
Possono scalare e raggiungere dimensioni molto elevate senza problemi di performance.
peers.
I sistemi classici
client-server
hanno invece sempre problemi a scalare (ed è necessaria amministrazione di rete per farlo).
ˆ
I protocolli P2P non hanno bisogno di coordinamento da parte di un amministratore, si
auto-gestiscono.
Contro
ˆ
I sistemi P2P possono essere attaccati facilmente e come conseguenza la loro performance può peggiorare pesantamente.
ˆ
Un problema grave di performance è la banda di upload dei
peers.
Pensiamo ad un esempio classico di un peer su ADSL con 10Mb/s in download e 1Mb/s in upload.
27
Anche se un singolo nodo ha una capacità in download di 10 Mb/s, poi se lo stream arriva da un altro nodo su ADSL,
quest'ultimo non potrà trasmettere a più di 1Mb/s in upload, tagliando quindi la capacità in ricezione del primo a
1Mb/s.
Poi dobbiamo anche ricordare che un singolo nodo da upload su tanti altri nodi, quindi quel 1Mb/s deve essere
suddiviso più volte per tanti peers!
ˆ
Il problema dei contenuti protetti da diritto d'autore è serio.
Possono nascere problemi levali se i
peers
distribuiscono
materiale protetto da copyright.
1 - Distribuzione dei contenuti multimediali
ˆ
Overlay
end-to-end :
peer
Ogni
scambia contenuti e costribuisce anche alla gestione della topologia di
overlay.
Tutti i nodi hanno lo stesso
ruolo nel sistema P2P
ˆ
Overlay
proxy-based :
Il sistema P2P implementa una gerarchia, in modo che solo alcuni nodi selezioni fanno routing dei contenuti al
multicast nodes.
backbone per la rete di overlay che viene suddivisa in due layers:
* Peers che mandano e ricevono contenuti dal backbone
* Peers che non scambiano direttamente contenuti con il backbone.
nale. Questi nodi che fanno routing sono chiamati
In questo modo i
multicast nodes
peer
formano un
Nel confronto delle due tecniche vediamo che:
ˆ
proxy-based si semplica la gestione della topologia di overlay (solo il backbone ha una topologia mesh, mentre
backbone parte una topologia ad albero o stella per raggiungere i peers.
Nei sistemi
da ogni rete
ˆ
I nodi di
multicast
possono essere
peers
che sono stati promossi dal sistema, ad esempio nodi con particolare potenza di
calcolo e banda.
ˆ
Nei sistemi
end-to-end
invece i peers hanno bisogno di scambiare tante informazioni per mantenere consistenza nella
topologia per la rete di overlay.
ˆ
I sistemi
end-to-end
sono anche chiamati
overlay sono anche chiamati
overlay multicast .
application level multicast
(
ALM),
mentre gli overlay
proxy-based
2 - Costruzione della topologia di rete
ˆ Diretta:
Quando un peer entra nel sistema è immediamente assegnato ad un peer genitore al quale deve collegarsi. Questa
è la strategia tipica implementata in topologie ad albero e foresta.
ˆ Indiretta, mesh:
o più
peers
Quando un peer entra nel sistema, c'è una fase di
in modo
ˆ Indiretta, clusters gerarchici:
subset
dei
peers
signaling
mesh . Il peer può comunicare con più peer diversi.
I
peers
iniziale, con la quale viene collegato ad uno
vengono divisi in livelli gerarchici e sono anche raggruppati in clusters. Solo un
in un cluster ha la possibilità di comunicare direttamente con i
topologia di overlay
inter-cluster
e
intra-cluster
albero.
3 - Topologie di rete
Le tipologie di rete P2P sono sostanzialmente tre:
ˆ
Albero singolo
ˆ
Foresta: alberi multipli con lo stesso nodo radice
ˆ
Generica (rete
peers
in un altro cluster.
deve essere creata. In alcuni casi pratici, la topologia
mesh )
28
Quindi una
inter-cluster
è un
Topologia ad albero con costruzione indiretta,
cluster-based
ˆ
Il nodo radice manda il contenuto a tutti i membri del suo
ˆ
Un
peer
che riceve il contenuto lo ridistribuisce a tutti i compagni del
compagno di
ˆ
cluster.
cluster.
Quindi in ogni cluster solo un
peer
cluster,
se non ha già ricevuto il contenuto da un
distribuisce il contenuto ai compagni dello stesso
In gura vediam un cluster a 3 livelli.
29
cluster.
Topologia ad albero con costruzione indiretta basata su rete
mesh
In questo tipo di sistema viene costruita una topologia di mesh basilare.
ˆ
In questa topologia i percorsi per raggiungere la sorgente di un contenuto possono essere calcolati. Ad esempio con un
classico algoritmo di routing
ˆ
distance-vector
Un peer tiene una tabella dei percorsi minimi per raggiungere tutti gli altri peers, insieme ad una misura convenzionale
del corso di ogni percorso (per esempio la lunghezza del percorso in numeri di hop).
ˆ
Delle tabelle vengono continuamente aggiornate dalle comunicazione di signalling tra i peers.
ˆ
Per la distribuzione di un contenuto, la sorgente calcolare un albero di multicast sopra la topologia di mesh basilare.
ˆ
La metrica elementare per misurare il costo del percorso è il numero di hops. Possono essere implementate metriche più
complesse.
Topologia a foresta
Una topologia a foresta è costituita da un numero (≥
ˆ
1)
di alberi, che condividono la stessa sorgente.
È una topologia più adabile dell'albero semplice: se un
peer
lascia la rete un singolo albero si scollega. Nella topologia a
foresta invece la distribuzione globale può essere disponibile (almeno parzialmente) anche se un peer lascia la rete (in una
topologia a foresta
ˆ
i percorsi sono ridondanti).
Questa proprietà della topologia a foresta è chiamata
tree diversity .
Gli alberi con bassa profondità e alta biforcazione sono preferiti perché il ritardo è minore rispetto agli alberi profondi e
con poche biforcazioni.
peers
ˆ
D'altro canto però possiamo aumentare le biforcazioni se la capacità di upload dei
ˆ
Le topologie a foresta possono essere utilizzate per distriubire multimedia streaming in modo P2P:
è alta.
sotto-stream (questo può essere fatto se lo stream è coded
multiple description coder )
Ogni sotto-stream è assegnato ad un albero diverso
Lo stream può essere diviso in
con un
multi-layered coder
o un
In questo modo anche se un albero si scollega perchè un peer lascia la rete, gli altri continuano a ricevere gli altri
sottostream.
30
Topologia mesh
ˆ
Un peer deve svolgere due attività basilari:
ˆ
Fare
signaling
con altri
peers
per stabiliare e mantenere la rete
mesh .
Scambiare contenuti
Nel caso dei sistemi di video streaming P2P, assumiamo che uno stream sia diviso in segmenti (chiamati
chunks ).
I peers
scambiano i segmenti.
ˆ
Una dimensione massima tipica di un segmento è circa 10 KBytes.
ˆ
Ogni peer mantiene una lista dei segmenti che ha ricevuto (la
ˆ
Tramite
signaling con i peers vicini (nella
peers vicini già hanno.
Buer Map, BM)
rete di overlay mesh), ogni peer mantiene anche la
mCache,
una tabella di
segmenti che i
ˆ
La
Buer Map
è una lista di segmenti che il
peer
ha. Questa lista è tempo-limitata (comprende un intervallo di tempo
limitato). Essa contiene i seguenti parametri:
Oset : È l'indice del primo segmento (solitamente 2-4 Bytes)
La lunghezza del buer map
Un vettore di ags binari per indicare la disponibilità di ogni segmento nell'intervallo di tempo limitato
ˆ
Per esempio, se un segmento contiene 1 secondodi contenuto, la BM può contenere informazioni riguardo a 120 segmenti
(2 minuti). Per ogni secondo nell'intervallo di tempo, un ag binario indica che il corrispondente contenuto è disponibile.
ˆ
Tremite la sua BM, un
peer
può determinare di quale segmento ha bisogno. Per determinare i
ottenere il segmento mancante, un
suoi
La rete
peers
peer
deve anche avere le BM di un certo numero di
peers
peers da contattare per
peers ), solitamente i
(partner
vicini nella rete di overlay.
Quando questa informazione è disponibile, il
peer
I BM dei nodi partner sono ottenuti tramite
signaling.
peers.
DONet/Coolstreaming
esegue un algoritmo di scheduling, per schedulare richieste ad altri
adotta un algoritmo di scheduling euristico:
ˆ
Per ogni segmento mancante, il peer esamina il BM dei suoi nodi partner e conta il numero dei fornitori possibili.
ˆ
Le richieste vengono schedulate partendo dal segmento con il più basso numero di fornitori, poi per il secondo con meno
fornitori e così via...
ˆ
Chiaramente questo algoritmo di scheduling migliora la adabilità. Se più di 1 segmento è richoiesto dallo stesso fornitore,
viene fatto con una richiesta singola.
La costruzione della
mcache
è critica. I peers scambiano messaggi di refresh specicando:
ˆ
Numero di sequenza dei segmenti disponibili
ˆ
Identicatore del peer nel sistema
ˆ
Numero di partners del peer
ˆ
TTL (Time To Live: tempo di vita rimanente del segmento)
Quando un peer riceve un messaggio di refersh, aggiorna la sua mCache. Ogni peer, periodciamente controlla per altri partners,
se decide che non ha abbastanza parners.
Un peer può anche misurare la qualità di un partner osservando quanti segmenti riesce a scambiare con successo con esso.
ˆ
Il
numero di partners voluti dal peer
è un parametro critico del sistema.
Se abbiamo tanti partners abbiamo maggiore adabilità
Tuttavia con tanti partners aumentiamo parecchio il traco di
Quindi un valore ottimo di
M
signaling
esiste. Da un punto di vista pratico è stato concluso che un numero di partners tra 2
e 5 è una scelta ragionevole.
ˆ
In
Coolstreaming, il traco di overhead aggiunge circa l'1% dal traco totale.
Le topologie di rete mesh ragiscono meglio alla perdita di un nodo rispetto alle topologie a foresta.
31
Procedure di Join
peer
ˆ
Nelle topologie a foresta con costruzione diretta, il sistema deve assegnare un genitore ad ogni
ˆ
In topologie più complesse, il sistema deve assegnare al peer un insieme di genitori (nel caso della topologia a
un numero di pertners (nel caso della topologia
ˆ
Nei sistemi basati su alberi, il nuovo
peer
mesh).
foresta)
o
diverta una foglia dell'albero. In seguito può essere promosso e avvicinarsi alla
radice dell'albero.
Join in COOPNET
ˆ
Nel caso di una costruzione
diretta
della topologia di overlay, il nuovo peer deve essere connesso ad esattamente un
peer
genitore.
ˆ
Ci sarà un server dedicato a raccogliere le
ˆ
Nel caso della rete
Il nuovo
peer
coopnet
join requests
e redirigere il
peer
verso un potenziale nodo padre
(che è una rete a foresta):
contatta il server. Il peer può anche fare una richiesta per uno specico contenuto e dare informazioni
tipo la sua banda di upload/download.
Il server risponde al
peer
con una lista di altri
peers
da contattare per ottenere il contenuto.
Leave
Il processo di leave è invocato quando un peer lascia il sistema o c'è un problema di connettività con quel peer. In una topologia
ad albero, tutti i gli di un peer che lascia la rete
vengono scollegati.
Il sistema deve fornire un nuovo genitore per i
peers
orfani.
ˆ
Failure detection : Il sistema deve implementare delle procedure per capire il prima possibile quando un nodo ha lasciato
la rete (perché il nodo potrebbe anche non inviare una notica esplicita):
keep-alive : I nodi scambiano periodicamente dei messaggi di keep-alive
Packet loss monitoring (come fatto in CoopNet): I nodi gli monitorano la percentuale di pacchetti persi.
percentuale cresce sopra una certa soglia, il nodo padre è dichiarato morto.
32
Se questa
Alcuni sistemi di P2P video streaming
Nome
Distribuzione
vidTorrent
CoolStreaming
CoopNet
GridMedia
Narada
Nice
Overcast
PPLive
Scattercast
SplitStream
Zig-zag
PeerCast
end-to-end
end-to-end
Costruzione Topologia
Topologia
Sorgenti
Mesh indiretta
Foresta
1
Mesh indiretta
Mesh
1
Server centrale
end-to-end
end-to-end
proxy-based
proxy-based
end-to-end
proxy-based
end-to-end
proxy-based
end-to-end
Diretta
Foresta
1
Mesh indiretta
Mesh
1
Mesh indiretta
Albero
1
Cluster Gerarchico
Albero
1
Diretta
Albero
1
Mesh indiretta
Mesh
1
Mesh indiretta
Albero
≥1
Mesh indiretta
Foresta
1
Cluster Gerarchico
Albero
1
Diretta
Albero
1
Failure Detection
keep-alive
keep-alive
packet loss monitoring
keep-alive
keep-alive
keep-alive
keep-alive
keep-alive
keep-alive
keep-alive
keep-alive
VidTorrent
Implementa una topologia a foresta dove ogni albero trasposta un diverso
sotto-stream.
peer, per ricevere lo stream completo, deve essere inserito in tutti i sotoalberi.
ˆ
Un
ˆ
Gli alberi vengono costruiti in modo che i
ˆ
L'associazione padre-glio dei
peers
peers
con più larga capacità di trasmissione siano vicini alla radice dell'albero.
viene fatta stimando la banda di comunicazione e il
round trip delay
tra i due nodi.
Join
La procedura di join deve essere eettuata per ogni sotto-albero.
peer
ˆ
Il nuovo
ˆ
Il
ˆ
Il nuovo
peer
contatta questi
peers.
ˆ
Il nuovo
peer
manda a questi
peers
nodo
deve contattare un nodo noto di
nel sistema
di incontro funzionaerà da server e risponderà con una lista di
è accettabile, il
ˆ
randez-vous
peer
Nelle risposte può trovare altri
peers
da contattare.
peers.
trovati due pacchetti per stimare la banda e il ritardo. Se il risultato della misurazione
contattato invia al nuovo peer un
acceptation ticket.
Il nuovo peer sceglie tra i vari ticket quello con il ritardo più basso.
33
Leave
Quando un albero viene scollegato, i peer isolati contattano il punto di
La procedura è molto simile alla prodecura di
join
randez-vous
di un nuovo nodo.
34
per ottenere un nuovo genitore.
Suddividere uno stream in sotto-stream
VidTorrent può dividere uno stream in sotto-stream. La divisione è gerarchica: frame, sottoframe e segmenti.
Questa struttura dello stream può essere utilizzata per encoding scalabili.
ˆ
Lo stream viene diviso in
ˆ
I segmenti sono costruiti in modo che il segmento S0 contenga tuti i subframes 0 dei primi
ˆ
Il segmento S1 contiene tutti i subframes 1 dei primi
ˆ
Se
m
frames. Ogni frame è diviso in
k = 3 allora ogni segmento contiene 3 subframes
k frames sono richiesti 4 segmenti.
k
n
subframes.
k
frames.
frames, etc...
e se il numero di subframes per frame è
n = 4,
i primi
ˆ
Il quinto segmento S4, contiene tutti i subframe 0 dei frames da 3 a 5 e oltre
Substreams
ˆ
I segmenti sono assegnati in modo ciclico ai substreams.
ˆ
Un substream è una sequenza di segmenti trasmessa su un dato albero
ˆ
Ogni albero trasporta un substream diverso.
Diversity
ˆ
Un substream può coincidere con una descrizione o può essere parte di una descrizione.
ˆ
Una descrizione può essere distribuita ai
ˆ
Nel primo caso (d
ˆ
Se
ˆ
I segmenti sono assegnati in modo ciclico ai substreams
d > 1,
= 1),
peers
c'è una mappatura
la descrizione è trasportata da
d
tramite un singolo albero o alberi multipli (d alberi)
uno-ad-uno
tra gli alberi e la descrizione.
alberi
35
allora per trasmettere
Il client
CDOWN
ˆ
I subframes sonoricevuti alla velocità di downstream
ˆ
I subframes sono inviati al componenti di overlay del client e sono riassemblati in segmenti
36
ˆ
I segmenti completi sono inviati ad altri peers
ˆ
Naturalmente, se il client deve distribuire il contenuto a
M
partners, dovrà inviare
Performance di VidTorrent
ˆ
Accesso simmetrico:
Cdown = 7M bit/s, Cup = 7M bit/s
ˆ
Accesso asimettrico:
Cdown = 7M bit/s, Cup = 1M bit/s
ˆ
875 kbit/s di traccia video, 4 descriptions
ˆ
4 alberi, diversity 1
ˆ
1 segmento ha 20 frames e trasporta 0.8 secondi
ˆ N = 250
ˆ
utenti (media)
Tempo medio di visione degli utenti: 15 minuti
ˆ Trejoin = 100s
(tempo tra node failure e identicazione del nuovo parent)
ˆ
Profondità del buer di playout: 5 segmenti (4 secondi)
ˆ
Le curve rilevanti sono in legenda:
Percentuale di frames ricevuti nel tempo:
37
M
copie del contenuto.
Il ritardo visto come funzione del tempo medio di presenza dei peers
Percentuale di frames ricevuti nel tempo come funzione del tempo di rejoin
Analisi delle performance e tecniche di ottimizzazione nei
sistemi di video streaming P2P
Come abbiamo visto, le reti P2P sono una buona soluzione per distribuire un certo contenuto multimediale ad un grosso numero
di utenti. Non sono inoltre necessari investimenti da parte dei gestori di rete per realizzarlo. La distribuzione del contenuto si
basa sull'utilizzo di risorse di tanti utenti.
La distribuzione di un video stream in
ˆ
Bassi ritardi di playback
ˆ
Pochi frame persi
real-time
impone comunque dei requisiti di performance piuttosto stringenti:
Abbiamo visto che ci sono diverse topologie: albero, foresta, mesh.
L'analisi delle performance dei sistemi P2P si concentra su 3 caratteristiche:
ˆ
trace analysis
dei sistemi funzionanti oppure sviluppo e studio di prototipi in specici
38
test beds.
ˆ
ˆ
analytical studies
simulation
La maggior parte degli studi presenti sono focalizzati sulla analisi di sistemi completi, così come sono, senza investigare sull'impatti
delle performance nella modica dei loro parametri operativi.
ˆ
In questo studio ci focalizzeremo su sistemi di P2P video streaming con topologia ad albero o foresta.
ˆ
Analizziamo l'impatto di due tecniche di ottimizzazione che hanno lo scopo di ridurre gli eetti negativi sugli utenti
nearly-permanent nodes : dei peer speciali che hanno una frequenza di abbandono della rete più bassa rispetto agli
altri.
ˆ
rewarding : posizionare dei peers con alta disponibilità di banda nei livelli più alti degli alberi.
L'analisi delle performance utilizza un modello simulativo a grana ne
Il modello utilizzato è ispirato a VidTorrent, un sistema di video P2P ad albero sviluppato al MIT. Tuttavia questo modello è
più generale e ha diverse caratteristiche:
un solo generatore dei contenuti da distribuire
ˆ
C'è
ˆ
La struttura della distribuzione è ad
ˆ
albero o foresta
A livello applicativo, nella rete di overlay p2p, il contenuto è organizzato in
segments .
frame
ˆ
Un singolo
ˆ
Gli utenti possono fare
può essere suddiviso in un numero sso (≥
join e leave
1)
di
sub-frames
chunks
dei frame video che chiamiamo
di lunghezza variabile.
del sistema in modo dinamico, anche durante la distribuzione di un video.
Quindi le caratteristiche dello stream sono:
ˆ
Il video stream è una sequenza di
ˆ
Per ogni frame:
ˆ
Tempo di inizio:
Tempo di ne:
frames ordinati
fi
con
i = 1, 2, ..., m
fi .start
fi .end
Ogni frame è suddiviso in
m
n
sub-frames :
Un sub-frame rappresenta una parte dell'intero frame.
Description Coding (MDC)
Subframe
sfij → frame
numero
sfij .length
[byte]
Lunghezza:
i sub-frame
oset
Per esempio solo una singola descrizione in un
j = 1, 2, ..., n
39
Multiple
chunks
k sub-frames
ˆ
A livello applicativo, i
ˆ
Un segmento
ˆ
Il contenuto video è distribuito a tutti i peers tramite un insieme di
si
di
è assemblato raggruppando i
sono organizzati in segmenti.
sub-frames
che hanno lo stesso
q
oset
in frames consecutivi.
alberi indipendenti.
ˆ La sorgente:
Fornisce lo stream video
È posizionata alla radice di ogni albero
Invia sequenzialmente i segmenti ai propri gli con un intervallo di tempo determinato dai tempi di inizio e ne dei
frames.
ˆ
Ha una quantità limitata di banda
Solo i segmenti composti da
sub-frames
Sup
bits s
con lo stesso
j-esimo sub-frame
oset vengono inoltrati allo stesso albero.
Ruolo dei peers
Ogni client della rete P2P è chiamato
peer .
ˆ
Per poter ricevere il contenuto video, un peer
ˆ
Un peer non deve essere parte di tutti gli alberi
ˆ
Tutti i peer, per ogni albero, ricevono segmenti dai genitori e li inviano ai gli.
ˆ
Un peer può essere posizionato in diverse posizioni in diversi alberi e i diversi alberi possono avere diverse topologie.
pi
deve essere nodo di un albero che trasporta il contenuto.
Operazioni dei peers
Ci riferiamo alla banda di accesso del peer
pi
con
pi .CU p
e
pi .CDown.
Ogni peer è dotato di un buer di ricezione e di un buer di trasmissione.
Ogni peer fa una serie di
azioni:
ˆ
La coda di download è scaricata ad un rate regolare determinato da
ˆ
Tutti i
sub-frames
pi .Cdown
ricevuti dalla coda di download vengono memorizzati nel buer di
40
playout.
ˆ
Appena tutti i
sub-frames
che formano un unico segmento vengono ricevuti, il segmento è inviato ad ognuno dei gli.
Questi pacchetti vengono inviati tramite il link di upload
ˆ
I
frame
memorizzati nel buer di playout sono poi estratti dal player dell'utente a rate costante per il video stream.
Buer di playout
È responsabile del riassemblamento dello stream video (i segmenti sono trasportati suddivisi in vari pacchetti come abbiamo
visto).
segments.
ˆ
Il playout buer è di lunghezza nita
ˆ
Quando un
ˆ
Quando tutti i frames di un segmento sono stati letti dal player, viene liberata una posizione dal buer di playback
ˆ
Un
peer
sub-frame
P BLength
misurata in
viene ricevuto, viene posizionato nella corretta posizione del playout buer.
inizia a riprodurre lo stream video appena la
playback treshold P BT h, misurata in secondi, viene raggiunta.
Dinamicità dei peers
ˆ
I peers possono entrare e lasciare la rete in modo dinamico.
ˆ
Il sistema, in uno stato pronto, ha un numero
ˆ
Il tempo speso da un
ˆ
Le operazioni di
join
peer
N
di
peers
attivi simultaneamente.
nel sistema è distribuito in modo esponenziale con media
sono eventi
poisson
indipendenti con un rate totale medio di
1
µ
joins
pari a
Λ,
di modo che
N=
Λ
µ
Standard join
Quando un peer vuole unirsi alla rete, deve diventare parte di uno degli alberi di distribuzione.
In particolare, il
peer pi :
sub-frames
ˆ
A seconda della sua banda di download libera viene calcolato il numero massimo di
ˆ
I
ˆ
Per ogni albero, il genitore viene scelto casualmente tra i peers di livello più alto nell'albero (vicino alla sorgente) con
sub-frame osets
vengono scelti casualmente. Per ognuno di essi il
peer
per ogni frame da ricevere
seleziona un genitore nell'albero di quell'
oset.
banda di upload libera suciente.
ˆ
Dopo un intervallo di tempo
tJoin ,
il nuovo nodo inizia a ricevere i
sub-streams dai suoi nuovi genitori.
peer.
di tempo modella il tempo necessario ad identicare e selezionare un nuovo
41
Questo intervallo
Join ottimizzata
I nuovi peers vengono posizionati nelle posizioni più alte degli alberi, facendo in modo che nessun peer con banda di upload
bassa sia nei livelli più alti.
Il nuovo peer può sostituire uno esistente con banda di upload minore.
I nodi iniziano a ricevere il
sub-stream
dai loro nuovi parenti dopo un intervallo di tempo
trejoin_rew
Leave standard
Un
peer
può abbandonare la rete in modo inaspettato e senza avvertimento. Nel caso in cui ciò accada, i gli e tutti discendenti
dello stesso albero, cessano di ricevere lo stream.
ˆ
Dopo un intervallo di tempo
tRejoin ,
peers
orfani iniziano la procedura di join per ogni
sub-stream
che non ricevono più.
Questo intervallo di tempo può rappresentare, per esempio, il tempo richiesto da un meccanismo di
per l'identicazione della
i
leave
keep-alive detection
di un genitore.
Solo i gli diretti di un genitore morto tentano il
rejoin
si sono divisi seguono il primo genitore.
42
in nuove posizioni, mentre tutti gli altri membri di alberi che
Leave ottimizzata
In aggiunta alle attività già descritte per la
il
peer
standard leave, ci occupiamo prima di identicare un peer già esistente per rimpiazzare
che ha lasciato il sistema.
Peers nearly-permanent
Nel nostro sistema possiamo inserire dei
ˆ
Sono
peers
che hanno un
peers nearly-permanent
tempo medio di permanenza
caratterizzati dalle caratteristiche seguenti:
pari a
1
µ , che è un ordine di grandezza maggiore rispetto alla
durata dello stream video.
ˆ
Dal nostro punto di vista deve essere superiore al nostro tempo di osservazione della simulazione
Parametri addizionali:
ˆ
Il numero di
peers nearly-permanent : N P ERM
ˆ
Il numero di
peers standard: N − N P ERM
Nel nostro scenario vengono analizzate due situazioni:
1. I
peers nearly-permanent
vengono scelti casualmente all'interno del sistema
2. I
peers nearly-permanent
sono scelti tra quelli con capacità di upload maggiore.
(a) Quindi tutti i
nearly-permanent peers
vanno nelle posizioni più alte dell'albero.
(b) Questo stato può essere beneco perché tende alla formazione di alberi corti e stabili.
Analisi di parametri e indici
ˆ
ˆ
ˆ
peers : N , sono i peers attualmente nella rete
P ERM
Il numero di nearly-permanent peers : N
1
Il tempo medio di permanenza dei peers :
µ , misurato dalla prima join del peer no alla sua leave.
Il
numero medio di
Misuriamo le performance con gli indici seguenti:
ˆ
Playback delay : È denito come il tempo passato tra il momento in cui la sorgente fornisce il contenuto e il momento in
cui il client lo legge dal buer di playout del
ˆ Rapporto tra frame ricevuti e
frames
peer.
sub-frame
nel buer di playout al loro tempo di
Viene calcolato per ogni peer considerando la presenza o assenza di
playback.
43
sub-
Parametri della simulazione
ˆ
È stata utilizzata una traccia reale di una partita di calcio della durata di 36 minuti, encodata con un
Coding
con
9
descriptions per ogni frame (n = 9)
ˆ
Banda media dello stream video:
ˆ
Durata del frame:
ˆ
Ogni
ˆ
Un numero totale di
ˆ
La banda della sorgente
ˆ
La
ˆ
Tempo di Join:
ˆ
Tempo totale di rejoin:
ˆ
Soglia di playback:
ˆ
Tempo di rejoin:
ˆ
Numero di
peers: 50
ˆ
Numero di
nearly-permanent peers : 10
ˆ
Tempo medio di permanenza dei
Multiple Division
943 kbps
33.3 ms
segmento comprende k = 20 sub-frames
q = 9 alberi/sub-streams
SU p
vengono utilizzati.
è scelta in modo che si possano fornire no a
20
sub-streams
contemporaneamente.
lunghezza del buer di playout è stata impostata pari a 133 s (P BLength = 1800)
500 ms
100 s
3.33 s
500 ms
peers : 15 minuti
La banda di accesso di upload e download per i peers che joinano, è stata impostata in base alla seguente distribuzione di
probabilità:
ˆ 50% − CDOW N = 7 M bps, CU P = 1M bps
ˆ 30% − CDOW N = 20 M bps, CU P = 1M bps
ˆ 10% − CDOW N = 8 M bps, CU P = 1M bps
ˆ 10% − CDOW N = 10 M bps, CU P = 10M bps
Lezione 30-4-13
Facciamo un confronto tra topologia mesh e topologia ad albero.
P4P - Proactive Network provider participation for P2P. C'è cooperazione con ISP per ottenere informazioni per ottimizzare.
Qual'è il problema con P2P classico?
Il problema è che il collegamento tra i nodi non ha conoscenza dei collegamenti
sottostanti, potremmo avere anche due nodi collegati tra di loro in un albero che passano tra stati lontani tra loro.
Quindi p4p è un insieme di tecniche e architetture per sfruttare la conoscenza della rete..
[omissis]
C'è un gruppo di lavoro IETF chiamato ALTO (Application Layer Trac Optimization). I sistemi supportati sono:
ˆ
Bittorrent (ma mica non era standard?)
ˆ
Trackerless bittorrent
ˆ
CDN
ˆ
...
C'è un progetto chiamato ono project che ha fatto delle misure usando un plugin nel client bittorrent vuze.
Funzione obiettivo per valutare la qualità di un peer:
Vi,j = α ·
Downloaded bytei,j
maxk∈N
Downloaded Bytei,k
+β·
α+β =1
44
max (1, N HOPmax − N Hopi,j )
(N Hopmax − 1)
Se accettiamo di usare hop distanti abbiamo più banda, se usiamo peer vicini occupiamo meno risorse nella rete ma abbiamo
meno banda (???).
...[big omissis]...
IP Telephone service
Partiremo a vedere dal punto di vista dell'utente nale e poi passeremo a vedere dei sistemi di signaling: H.323 e SIP. Inne
interworking.
vedremo il discorso correlato all'
Codecs
Abbiamo principalmente 3 tipi di codecs:
ˆ
Waveform (alta qualità, alta banda utilizzata)
Sono codecs molto semplici e di alta qualità, che però utilizzano molta banda!
G.711:
*
*
*
Semplicemente campionano i dati che arrivano dal segnale audio.
Il valore di campionamento minimo è 8KHz, poiché il segnale audio ha una banda minima di 4KHz.
Solitamente i campioni sono salvati con una risoluzione di 8 bit per ogni campione, quindi occupiamo 64 Kbit/s.
Dierential Coders
*
ˆ
Si tiene conto solo della dierenza tra i vari campioni
Vocoder (bassa qualità, bassa banda utilizzata)
Implementano un ltro digitale per campionare e riprodurre suoni con le caratteristiche della voce umana.
Il coder identica i parametri del segnale e la
excitation mode
del segnale.
Si tentata di identicare il tipo di suono e in base ad esso eccitare il ltro in modo diverso, ad esempio suddividendo
i segnali in :
*
*
Inne viene trasmesso un pacchetto con una lista di parametri e eccitazioni tenendo conto che anche il ricevitore ha
una
vowel sounds : onde sinusoidali
pulsive sounds : impulsi
reference
per capire a quali suoni corrispondono i dati inviati.
Con questo tipo di
coders
possiamo anche utilizzare pochissima banda (anche solo 5Kbit/s), dove avremo però un po'
di suoni articiali tipo voci robotiche, quindi scapito alla qualità.
ˆ
Hybrid
È un tradeo tra qualità e banda.
Abbiamo un graco per illustrare il tradeo tra qualità e banda:
45
ˆ
La metrica solitamente utilizzata per specicare la qualità del suono è
MOS (Mean Opinion Score), una metrica soggettiva
da 1 a 5:
ˆ
Eccellente: 5
Buono: 4
Medio: 3
Basso: 2
Pessimo: 1
Vediamo alcuni schemi di
ADPCM
Hybrid
GSM
ˆ
coding :
G.726
40 Kbit/s
4.37
G.726
24 Kbit/s
3.52
G.726
16 Kbit/s
2.23
G.711
64 Kbit/s
~4.4
G.728
16 Kbit/s
4.24
G. 729
8 Kbit/s
4.14
06 10 Full Rate
13 Kbit/s
3.75
60 Enanched Full Rate
12.2 Kbit/s
4.30
Sempre supportato
Ricordiamo che nel caso della comunicazione via rete, i valori di MOS sopra espressi si riferiscono ad un trasporto di rete
senza perdite. Quindi in realtà il MOS, nel caso di rete con perdite di pacchetti, è inferiore a quanto sopra scritto.
ˆ
C'è sempre il problema di scegliere quale codec usare, quindi è necessaria una parte di
endpoints e decidere quale codec utilizzare. Di solito almeno
signaling per comunicare tra i due
G.711 è sempre supportato da entrambi gli endpoints.
La qualità è molto importante in una telefonata audio e/o video. Abbiamo metodi per migliorare la qualità delle telefonate IP
dato un certo coder utilizzato.
Abbiamo una serie di tecniche, ad esempio:
Packet Loss Concealment
È utile quando abbiamo ad esempio link wireless tra i due nodi.
In realtà è una tecnica di
interleaving . Cosa signica? Immaginiamo di avere una serie di pacchetti numerati che trasportano
il traco audio: 1,2,3,4,5...
I pacchetti che inviamo non contengono i vari pezzi in ordine, ma sono distribuiti all'interno di pacchetti diversi (vedi gura).
46
In sostanza mescoliamo l'ordine. Perché? Se perdo un pacchetto comunque ho una perdita di informazione, però
di pacchetti sono solitamente correlate,
le perdite
se perdo un pacchetto è molto probabile che perderò anche il successivo.
Se
i pacchetti sono ordinati, questo ha un eetto molto negativo nella qualità percepita dall'utente che sente un lungo silenzio.
Mescolando un po' invece perdiamo pacchetti ma sono separati nel tempo, quindi l'eetto non è così grave. Non abbiamo un
momento di silenzio ma solo dei brevi istanti. Il nostro cervello è in grado di interpolare approssimativamente cosa c'è in un
brevissimo istante di silenzio.
Il problema di questa tecnica è che dobbiamo accumulare pacchetti per farla, quindi
delay!
Parity Encoding
Si utilizzano spesso anche tecniche
FEC (Forward Error Correction) per correggere errori nei pacchetti.
Però richiedono ritardo
e sono complessi, quindi si preferisce evitarli.
Si preferisce il
parity packet .
parity encoding :
si prende un gruppo di
n
pacchetti e si aggiunge in coda un altro pacchetto
n+1
chiamato
Questo pacchetto contiene dei bits che sono il risultato dello XOR dei bit di ogni pacchetto:
bn+1
= b1i ⊕ b2i ⊕ ... ⊕ bni
i
Però con questo metodo possiamo correggere l'errore solo per un pacchetto.
Anche qua aumentiamo banda però non risolviamo del tutto il problema.
Anche in questo caso c'è un tradeo su cosa
utilizzare.
PiggyBackFEC
È una tecnica per risparmiare banda: al posto di trasmettere due pacchetti con i due relativi header, li trasmetto in un pacchetto
unico risparmiando l'overhead dell'header, quindi il pacchetto FEC viene trasportato insieme all'
Redundant Data Transmission (RDT)
Per risolvere gli errori ritrasmetto i dati più volte. Ad esempio:
ˆ
Pacchetto 1: header e dati 1 e 2
ˆ
Pacchetto 2: header e dati 2 e 3
ˆ
Pacchetto 3: header e dati 3 e 4
Se perdiamo ad esempio il pacchetto 2 non abbiamo problemi di perdita informazione!
Il problema è che duplichiamo la banda!
Duplicate Packets
È il metodo più stupido: trasmetto i pacchetti due volte.
Esempio
Ci sono tanti metodi, il problema è riuscire a combinarli in modo eciente!
Ad esempio:
Codec
% perdita
G.729 (Plaw)
5%
Qualità MOS
~3.3
G.729+pFEC
5%
~3.65
47
n-esimo
pacchetto.
Signaling
Siamo nella parte di controllo e non più nella parte di control plane.
ˆ H.323:
ˆ SIP:
ITU-T
Session Initiation Protocol (IETF)
H.323 Architecture
È un protocollo ma denisce anche una architettura di rete, che ora vedremo.
ˆ H.323 Terminal:
un insieme di
Può essere un qualunque tipo di terminale audio/video con funzionalità voce, audio e video. Deve avere
codecs.
48
ˆ H.323 Gatekeeper:
Controlla un sottoinsieme della rete, si occupa di diversi terminali della rete. Solitamente una rete
H.323 è suddivisa in varie
areas/zones controllate ciascuna da un diverso gatekeeper.
Controlla gli accessi alla rete e gestisce i permessi.
Si occupa di far scalare la rete gestendo una sotto-zona.
Può anche fare controllo della banda utilizzata e qualità del servizio.
ˆ H.323 MCU - Multipoint
Controller Unit : Dispositivi utilizzate per fare setup di connessioni multi-punto, ad esempio
conferenze multimediali. Stabilisce quale formato deve essere utilizzato tra i vari partecipanti. Trasmette ai partecipanti
un
capability set, che può anche essere modicato dinamicamente durante la conferenza.
ˆ H.323 Gateways:
Devices di
interconnessione (interworking ) per interconnettere i dispositivi H.323 ad altre reti:
Rete SIP
Un'altra rete H.323
PSTN -
Public Switch Telephone Network
(utilizzano il sistema di signaling
SS7)
GSM
UMTS
...
L'interworking non lavora solo sulle operazioni di signaling, ma anche sui contenuti multimediali! Ad esempio può
succedere che tra due reti ci sia un canale di collegamento che fa da collo di bottiglia. Può quindi succedere che nel
punto di interconnessione bisogna rifare l'operazione di coding.
49
H.323 Protocols
User Plane
Control Plane
Applications
Application Control
Coders
RTP
RTCP
H.255.0
H.255.0
H.245
RAS Signaling
Call Signaling
Control Signaling
UDP
UDP
TCP
IP
IP
...
...
Come vediamo non c'è nessun protocollo H.323 nella parte di User Plane. Questo perché H.323 è un protocollo di signaling!
Non si occupa eettivamente di scambiare i dati tra i due endpoints!
ˆ RAS
sta per
Registration Admission Status . La maggior parte del RAS Signaling è gestito dai gatekeepers.
ˆ Call Signaling
è la parte di signaling svolta principalmente dagli endpoint della connessione.
Registration Admission Status
RAS (
) signaling
Quali sono le funzioni oerte dal RAS signaling? Vediamo le principali:
ˆ Gatekeeper discovery:
Come fa un dispositivo a trovare il proprio
ˆ Registration/Unregistration:
gatekeeper.
Un dispositivo prima di fare qualunque cosa deve registrarsi al
gatekeeper, per annunciare
la propria esistenza.
ˆ Admission:
Una volta che un dispositivo è registrato, non può fare tutto quello che vuole. Quando vuole fare un setup di
una connessione deve chiedere al
ˆ Bandwidth Change:
ˆ Disengage:
Un
gatekeeper
Un device che chiede al
ˆ Resource Availability:
ˆ
gatekeeper.
può richiedere ad un dispositivo di ridurre la banda occupata
gatekeeper
Un device chiede al
di interrompere una connessione
gatekeeper
la quantità di risorse disponibili.
...
Gatekeeper discovery
Come abbiamo visto, senza gatekeeper, un device non può fare niente. Come fare a trovarlo?
ˆ
Può essere congurato manualmente all'interno dei devices. Funziona ma non è una soluzione molto essibile ovviamente.
ˆ
C'è un messaggio chiamato gatekeeper request message (GRQ) che può essere inviato:
50
Ad una lista di indirizzi precongurati, oppure
Ad un gruppo IP di
*
multicast 224.0.1.41:1718 (All-gatekeepers group )
Questo messaggio può arrivare a diversi gatekeepers diversi che possono risponde:
· GRJ - Gatekeeper ReJect message :
· GCF - Gatekeeper Conrmation : Io
No, non posso essere il tuo gatekeeper
sono il tuo gatekeeper!
Endpoint registration
Una volta che un device ha scoperto il suo gatekeeper, deve registrarsi prima di fare qualunque altra cosa.
RRQ (Registration ReQuest ) all'ip del gatekeeper che ha trovato e porta 1719 (porta RAS)
ˆ
L'endpoint invia un messaggio
ˆ
Il gatekeeper risponde al device terminale inviando:
Registration Conrmation con una certa durata temporale, oppure
RRJ (Registration ReJection )
ˆ
Se un dispositivo si vuole de-registrare, può inviare una richiesta
Il gatekeeper risponderà:
* UCF (UnRegister ConFirmation )
* URJ (Unregister ReJection )
URQ (UnRegistration ReQuest ) al gatekeeper
oppure
Notiamo che il gatekeeper può de-registrare un device terminale anche se questo non lo ha richiesto!
51
Admission
È la parte in cui un device terminale chiede ad un gatekeeper se può comunicare con un altro terminale.
ˆ
La richiesta è
ARQ (Admission ReQuest ), che contiene:
Tipo di chiamata (1-1, multiparty)
Lista dei partecipanti
Tipo di media utilizzato (chiamata audio e/o video)
Tipo di call signaling che il terminale vuole utilizzare:
* Direct call signaling: L'endpoint scambia direttamente i messaggi di signaling con la destinazione
* Gatekeeper routed call signaling: L'endpoint comunica con il gatekeeper, che poi si occuperà a sua
volta di
gestire il signaling. In questo modo il gatekeeper ha più controllo su cosa sta succedendo, può ad esempio gestire
meglio la banda.
*
ˆ
Il gatekeeper può forzare una di queste due modalità sopra descritte.
...
Il gatekeeper risponde con
ACF (Admission ConFirmation )
oppure
ARJ (Admission ReJect )
Direct call signaling
Questo è un tipo di segnalazione diretta, che non passa per il gatekeeper.
ˆ
Ammettiamo di avere già fatto signaling RAS da un nodo A per collegarci ad un nodo B come visto sopra.
ˆ
Se abbiamo il permesso di comunicare, possiamo collegarci direttamente a B inviando un messaggio di
sua volta interpellare il suo gatekeeper per sapere se ha il permesso di comunicare con me.
ˆ
Se tutto va bene, B risponderà con un messaggio
connect.
A questo punto del signaling anche i codecs sono già stati negoziati, quindi la comunicazione può cominciare.
Gatekeeper routed signaling
ˆ
A manda il messaggio di connect al gatekeeper, che lo inoltra a B.
ˆ
B verica se può comunicare con A chiedendo al proprio gatekeeper.
ˆ
Se B può comunicare, B invia connect al gatekeeper che inoltra ad A.
52
setup.
B dovrà a
Disengage
Come si interrompe la connessione?
ˆ
Il terminale avvisa il gatekeeper che sta per interrompere una connessione con una
ˆ
Il gatekeeper può rispondere:
Disengage Request (DRQ).
Disengage Conrm : DCF
Disengage Reject : DRJ
Resource Availability
È la funzione utilizzata da una entità per avvisare il gatekeeper di alcune informazioni di stato.
RAI (Resource Availability Information ).
ˆ
Vengono utilizzati dei messaggi
ˆ
Ad esempio il gateway può comunicare con il gatekeeper per comunicare le risorse disponibili.
Il gatekeeper conferma con
RAC (Resource Availability Conrmation ).
Non c'è bisogno di un messaggio di reject in questo caso.
Call signaling
Abbiamo messaggi di:
ˆ Alterting:
Viene utilizzato dall'entità ricevente, per informare che la chiamata ha raggiunto la destinazione e che la
destinazione chiamata sta squillando.
ˆ Call proceeding:
Provisional response,
è una informazione che avvisa di aver ricevuto una richiesta.
Ha lo scopo di
cambiare un timeout che rischierebbe di far cadere la connessione prima che venga stabilita. Questo succederebbe a causa
di grossi ritardi, packet loss o servers carichi.
ˆ Connect
ˆ Progress:
ˆ Setup:
È un'altra provisional response
Lo abbiamo già visto, è un segnale che va da endpoint ad endpoint, a meno di essere veicolato tramite gatekeeper.
È una richiesta per stabilire una connessione con la destinazione. Che tipo di parametri può contenere questa richiesta?
Identicativi dei partners della chiamata (possono essere più di uno)
Parametri che descrivono la connessione (one-to-one, one-to-many, ...)
Descrizione dei canali logici da utilizzare per negoziare il coding dei
vengono negoziati i codecs.
ˆ SetupACK
53
contenuti multimediali. In questa fase
non
ˆ ReleaseComplete:
Un'entità avvisa un'altra entità che sta per rilasciare la chiamata, cioè che farà un disengage RAS
In protocolli di signaling vecchi come SS7 c'era sia release che releasecomplete. Invece qua c'è un messaggio unico.
ˆ Information
ˆ Notify
ˆ Status
ˆ StatusInquiry
ˆ Facility:
Utilizzato per modicare o redirigere una telefonata. È una procedura complessa, vedremo come funziona in un
esempio.
Control Signaling
La funzione principale svolta da questo signaling è la
negoziazione dei formati per tutti i contenuti multimediali presenti
nella connessione.
Il control signaling inizia mentre il call signaling è in corso! Infatti il control signaling può agire da dopo che è stato inviato
il setup message nel
call signaling.
Può anche essere dopo il
connect
message.
Ricordiamoci che il control signaling è sempre tra i due endpoint direttamente. In realtà qua stiamo vedendo il caso di una
comunicazione tra due dispositivi nella stessa rete o tra due zone diverse della stessa rete. Nel caso di device su reti diverse, il
control signaling non sarà più punto-punto.
Riassumendo:
ˆ
A invia
SETUP a B
ˆ
B invia
CALL PROCEEDING ad A
ˆ
B invia
ALERTING ad A
ˆ
B risponde e invia la
ˆ
Utilizzando la tecnica descritta nel messaggio di SETUP, si inizia la fase di control signaling aprendo un altro socket per
CONNECT ad A
scambiare le informazioni sui contenuti multimediali.
Chiamata senza gatekeeper
54
Chiamata con gatekeeper e call signaling diretto
Chiamata con gatekeeper e call signaling routed
L'assunzione qua è che uno dei due gatekeeper fa routing del call signaling e l'altro no
Chiamata con gatekeeper e call signaling routed forzato
GK2 riuta l'ARQ da EP2 perché vuole un routed call signaling. Quindi EP2 invia un messaggio FACILITY a GK1.
55
Logical channels
Tramite il control signaling vengono stabiliti dei canali logici per scambiare i contenuti multimediali.
Per stabilire un canale logico vengono utilizzati i messaggi di:
ˆ Open Logical Channel Message
ˆ Open Logical Channel Ack
Poi c'è anche una procedura di
Capabilities Exchange
, tramite la quale i due terminali scambiano informazioni riguardo ai
codecs supportati e quali devono essere utilizzati.
56
SIP (Session Initiation Protocol)
È un protocollo di signaling standardizzato dalla IETF. Viene utilizzato insieme ad altri protocolli come ad esempio:
SDP)
ˆ
Session Description Protocol (
ˆ
Real Time Streaming Protocol (
ˆ
Session Announcement Protocol (
SIP si occupa del
RTSP)
SAP)
setup, tear down e management delle sessioni IP multimediali.
SIP utilizza solitamente RTP come protocollo (livello 4) di trasporto per gli streams multimediali.
Per la parte di signaling di SIP viene utilizzato un canale di comunicazione logico separato, diverso dai canali logici utilizzati
per il trasporto dei contenuti multimediali.
Infrastruttura
SIP ha due tipi di entità:
ˆ Client:
chiamato anche
User Agent Client , girano sui terminali degli utenti. È una applicazione il cui scopo principale
è quello di fare richieste SIP.
ˆ Server:
È una applicazione che gira su qualunque dispositivo. Si occupa di stabilire connessioni e rispondere alle richieste
dei clients. Ci sono svariati tipi di server:
Proxy Server
Redirect Server
Registrar Server
User Agent Server
Solitamente i primi 3 servers elencati sono processi del server (chiamato ancora
Proxy Server ),
sull'host dell'utente.
In un sistema SIP devono essere presenti almeno due entità:
user agent client e un user agent server.
57
mentre l'ultimo gira
Proxy (redirect) server
In questo esempio vediamo come un host ([email protected]) contatta un proxy server per contattare Luca e il proxy server
invia una richiesta a Luca e re-inoltra la risposta a marco.
Questo è uno dei modi in cui i
ˆ
proxy server
funzionano, implementando un
redirect server .
Di seguito vediamo un altro esempio:
In questo esempio vediamo come il
proxy server
avvisa il chiamante che è necessario contattare direttamente il dispositivo
terminale ad un certo indirizzo (senza passare ancora per il proxy), invece di fare il redirect in modo trasparente.
Come vediamo rispetto a H.323, il protocollo è molto più libero, senza troppi approcci burocratici...
Applicazioni SIP (esempi)
ˆ
Find-me-follow-me : Quello che abbiamo visto prima è un tipo di protocollo nd-me-follow-me, cioè avvisa dove trovare
un certo terminale (che può spostarsi)
È infatti anche possibile specicare su questi
proxy server
degli orari in base al quale dare delle risposte separate. Ad
esempio durante gli orari lavorativi della settimana il destinatario potrebbe essere ad un certo indirizzo (lavorativo),
mentre la sera e nel weekend potrebbe essere ad un altro indirizzo (di casa).
58
Il vantaggio è che spesso questi servizi sono congurabili da interfacce web.
C'è la possibilità di congurare il sistema in modo da far suonare contemporaneamente diversi terminali, o ottenere
una lista di terminali.
ˆ
ˆ
Interactive Voice Response (IVR): Segreteria telefonica
Click-to-dial : È una pagina web da cui è possibile chiamare direttamente l'utente cliccando semplicemente su un link che
contiene il suo indirizzo
ˆ
Contact-Manager : È un servizio di rubrica centralizzata, permette di localizzare un utente in modo indipendente dalla
posizione geograca.
User Agent Server
È il server che è solitamente presente sui terminali utente, che contengono comunque anche lo
user agent client.
Vengono utilizzati
per inviare richieste di signaling e riceverne da altri host.
Registrar Server
Questo server si occupa di gestire le richieste REGISTER che sono utilizzate dai device SIP per registrarsi nella rete SIP. Dopo
che un device SIP si è registrato, diventa operativo.
Struttura base di una chiamata SIP
ˆ
Il messaggio
INVITE viene utilizzato per avviare la chiamata.
inviato direttamente dallo user agent client del primo host allo
ˆ
L'host che riceve il messaggio
In questo esempio si assume che il messaggio possa essere
user agent server
del secondo host.
INVITE risponde inviando un messaggio RINGING al chiamante, di modo da fargli sapere
che il telefono del chiamato ha iniziato a squillare.
ˆ
Quando il chiamato risponde, viene inviato il messaggio
OK
per avvisare il chiamante che il chiamato ha risposto e inizia
la comunicazione
ACK per confermare di aver ricevuto il messaggio OK.
ˆ
Il chiamato risponde con un
ˆ
Quando uno dei due host desidera terminare la chiamata, viene inviato il messaggio
59
BYE , a cui segue la risposta OK.
Caratteristiche di SIP
ˆ
SIP è un protocollo di signaling semplice e essibile
ˆ
I parametri per la negoziazione dei contenuti multimediali sono trasportati nel corpo dei messaggi SIP.
ˆ
Nella gura di seguito vediamo un esempio di chiamata che viene schedulata ad un certo orario, considerando che il
chiamato è occupato no ad una certa ora.
I messaggi SIP
Possono essere
richieste o risposte.
Sono strutturati in un formato testuale ASCII simile a HTTP. In questo modo è più semplice analizzare il comportamento
del signaling semplicemente osservando il contenuto dei pacchetti. Questo non potevamo farlo per H.323 perché il formato dei
messaggi era binario. Lo svantaggio è che occupiamo più banda, ma essendo il signaling una operazione breve all'interno di uno
scambio multimediale, non è un problema.
Sintassi dei messaggi:
message = s t a r t −l i n e
* message
header
CLLF
[ messsage
s t a r t −l i n e
body ]
= r e q u e s t −l i n e
||
s t a t u s −l i n e
request-line ) specica il tipo di richiesta e i suoi parametri
ˆ
La riga di richiesta (
ˆ
La riga di stato (
ˆ
Il
ˆ
CL, LF sta ad indicare il solito ˆ
Il
status-line ) invece specica il tipo di risposta e i suoi parametri.
message header
message body
contiene altre informazioni, come ad esempio gli identicatori del sorgente e destinazione.
\r\n
contiene invece informazioni tipo:
Tipo di sessione
Formato dei contenuti multimediali
Altro
60
SIP non standardizza il corpo del messaggio. Nel caso di informazioni sul tipo di contenuti multimediali e altro, la struttura del
messaggio è costituita in base al
Session Description Protocol (SDP).
Il body del messaggio può anche contenere messaggi di altri sistemi di signaling, che è utile per riuscire a realizzare
l'interworking.
ˆ
Le richieste SIP iniziano con la
request-line, che consiste di alcuni token di separati da spazi:
metodo
*
Tipo di richiesta
uri della richiesta
*
Indirizzo destinazione della richiesta
Versione SIP
r e q u e s t −l i n e
ˆ
(SP sta per
= method SP
R e q u e s t −URI SP SIP− V e r s i o n CRLF
SPACE !)
I metodi base sono:
INVITE:
Per stabilire una chiamata, specica gli utenti coinvolti (possono essere più di uno nel caso di una
teleconferenza) e il formato multimediale.
ACK: I messaggi ricevuti sono solitamente confermati con un ACK che si riferisce esplicitamente al messaggio ricevuto.
BYE: Termina una chiamata.
CANCEL: Termina una transazione in corso
REGISTER: Viene utilizzato per registrare un dispositivo presso un certo registrar proxy server
OPTIONS
Esempio: un numero, device multipli
ˆ
In questo esempio Luca è registrato con indirizzi SIP multipli presso il registrar.
ˆ
Anna chiama Luca inviando un INVITE. Il proxy SIP inoltra il messaggio INVITE ad entrambi i dispositivi registrati da
Luca. Uno dei due dispositivi accetterà la chiamata inviando OK al proxy SIP che lo inoltra al chiamante (Anna).
61
ˆ
Il proxy SIP annulla la chiamata verso l'altro dispositivo
Riferimenti
slides del corso 089043 Multimedia Internet
Paolo Giacomazzi (http://home.deib.polimi.it/giacomaz/)
L'intero materiale qui presentato è basato su appunti e
presso il
Politecnico di Milano
dal prof.
62
(A.A 2012/2013) tenuto