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