RETI INTERNET MULTIMEDIALI
Multicast
MULTICAST
Introduzione
Multicasting
Nuove applicazioni possono
richiedere l’uso di
collegamenti di tipo puntomultipunto
 audio e video streaming
in broadcast
 giochi in rete (Quake),
etc.
Il multicasting può essere
implementato direttamente
dalla sorgente anche su una
rete che supporta solo
unicast
Multicasting
Nel caso in cui la rete supporti il
multicast è possibile inviare un
solo pacchetto.
 Ethernet supporta il Multicast
In Internet, poiché un gruppo
Multicast può estendersi su
molte reti fisiche, è necessario
che alcuni nodi della rete
svolgano un ruolo attivo (router
in rosso nella figura)
Funzionalità richieste
 Definizione del gruppo di
destinatari
 Indirizzamento
 Definizione dell’albero di routing
Multicasting
La trasmissione di pacchetti IP multicast da parte dei
nodi sorgente è del tutto simile alla trasmissione dei
pacchetti IP unicast
 Solo l’indirizzo cambia rispetto alla trasmissione unicast
Il recapito dei pacchetti IP multicast invece è molto
diverso rispetto ai pacchetti unicast
 Unicast: il protocollo di routing deve individuare solo un
percorso verso una specifica destinazione (rete o host)
 Multicast: il protocollo deve individuare un’insieme di
percorsi (possibilmente non disgiunti) per raggiungere tutti
gli hosts che vogliono ricevere uno specifico flusso di
informazioni
Multicasting
I dispositivi che si occupano dell’inoltro dei
pacchetti multicast sono chiamati mrouter
(Multicast Router)
L’algoritmo che implementa la funzionalità dei
multicast router è integrata in un normale router
e deve essere abilitata
 Il kernel linux supporta il multicast routing ma deve
essere configurato
L’algoritmo di inoltro è diverso rispetto a quello
utilizzato per pacchetti unicast
Indirizzi Multicast
Per identificare un gruppo di ricevitori non è efficiente
usare l’insieme dei loro indirizzi IP
IP definisce la classe di indirizzi D per applicazioni
multicast (utilizzabili solo come indirizzi destinazione,
non come sorgente)
 Formato indirizzo IP di classe D
1110
Group Identifier (28 bit)
da 224.0.0.0 a 239.255.255.255
Esistono due tipologie di indirizzi multicast
 Indirizzi noti: per servizi su Internet (routing)
 Gruppi multicast transitori: rimossi quando non vi sono più
membri associati al gruppo
Indirizzi Multicast
Alcuni indirizzi multicast hanno un significato
particolare
L'indirizzo 224.0.0.0 è riservato e non viene assegnato
a nessun gruppo
L’indirizzo 224.0.0.1 è assegnato permanentemente al
gruppo composto da tutti i sistemi (router e host)
L’indirizzo 224.0.0.2 è assegnato permanentemente al
gruppo composto da tutti i router
Gli indirizzi restanti fino a 224.0.0.255 sono limitati
all’uso su una singola rete (il pacchetto non deve
essere inoltrato dai router che lo ricevono)
Non esiste l'indirizzo globale di tutti gli host connessi
ad Internet
Indirizzi Multicast
Gli indirizzi IP multicast vengono trasformati in
indirizzi multicast di livello data-link
 Si ottimizza il processo di ricezione, perché il multicast
MAC è filtrato direttamente dall’hardware della scheda di
rete
Ethernet fornisce un meccanismo di trasmissione
multicast
 Il bit meno significativo dell’ottetto più significativo è usato
per distinguere indirizzi unicat (0) da indirizzi multicast (1)
01-5E-00-00-00-01
Indirizzi Multicast
Per tradurre un indirizzo IP multicast in un indirizzo Ethernet
multicast si copiano i 23 bit meno significativi dell’indirizzo IP
nei 23 bit meno significativi dell’indirizzo Ethernet che inizia
con 01-00-5E
1110
x27 x26 x25 x24 x23
01-00-5E
x22 x21 x20 x19 … x2 x1 x0
0x22 x21 x20 x19 … x2 x1 x0
Problemi della traduzione:
 Lo spazio di indirizzamento IP dedicato al multicast è esteso su 28 bit
 Solo 23 dei 28 bit vengono utilizzati nella traduzione
 Più indirizzi IP possono essere tradotti nello stesso indirizzo IP. In
particolare 25 indirizzi IP corrispondono allo stesso MAC multicast
 E’ necessario eseguire il filtering anche a livello IP
Gruppi
Il multicast si basa sul concetto di host group (RFC
1122)
Ogni host può aderire a o lasciare un host group
dinamicamente
Ogni host group è identificato da un indirizzo di
destinazione di classe D
 I pacchetti vengono creati con IP destinazione uguale a
quello dell’host group
 Ogni router deve inoltrare i pacchttetti sulle reti a lui
connesse se su una di queste esiste un host che è associato
all’host group indicado nell’indirizzo destinazione
Gruppi
Esistono due tipologie di gruppi (associati alle
rispettive tipologie di indirizzi multicast)
 Permanente: ad esso è associato un indirizzo di classe D
ben noto e assegnato a priori
• Esiste anche se non vi sono membri associati
• Esempio: indirizzi multicast utilizzati da alcuni protocolli di routing
(RIP o OSPF) per il loro funzionamento
 Temporaneo: ad esso è assegnato un indirizzo di classe D
dinamicamente
• Esiste solo finche vi sono membri associati al gruppo
• Viene rilasciato nel momento in cui non vi sono più membri
Gruppi
L’uso degli identificativi di gruppo riduce l’overhead, ma pone
problemi:




Come si istituisce un gruppo
Come si aggiungono membri
Come si controlla l’ingresso nel gruppo
Chi conosce l’elenco dei membri
Sono stati definiti diversi protocolli per risolvere tali problemi
Internet Group Management
Protocol (IGMP)
Specifici router nella rete si preoccupano di gestire il servizio
di multicast
Il protocollo IGMP è usato per il colloquio tra gli host e i
multicast router
Ogni host colloquia con il multicast router sulla propria
sottorete per la gestione dell’iscrizione ai gruppi
IGMP Packet v1
0
3
Version
7
Type
15
Unused
32
IGMP Checksum
Group Address
Field
Size
Description
Version
4 bit
Versione del protocollo (posto a 1)
Type
4 bit
Tipo di messaggio
IGMP Checksum
16 bit
Codice di controllo di integrità del messaggio
Group Address
32 bit
Indirizzo multicast del gruppo a cui ci si vuole
associare o che si vuole lasciare
IGMP Packet v2
0
7
Type
15
Max Res. Time
32
IGMP Checksum
Group Address
Field
Size
Description
Type
8 bit
Tipo di messaggio
Maximum Response Time
8 bit
Massimo ritardo (misurato in decimi di secondo)
prima di inviare una report di risposta
IGMP Checksum
16 bit
Codice di controllo di integrità del messaggio
Group Address
32 bit
Indirizzo multicast del gruppo a cui ci si vuole
associare o che si vuole lasciare
Gestione dei gruppi
Periodicamente il router IGMP
manda dei messaggi broadcast
(224.0.0.1, “all systems on this
subnet, hosts and routers”, per
es. una LAN)
Gli host rispondono con l’elenco
dei gruppi in uso da qualche
processo applicativo
IGMP Message types
Sent by
Purpose
membership query: general
router
membership query: specific
router
membership report
host
query multicast groups joined by attached hosts
query if specific multicast group joined by attached
hosts
report host wants to join or is joined to given
multicast group
leave group
host
report leaving given multicast group
Gestione dei gruppi
Gli host rispondono alle query segnalando al multicast
router tutti gli host group a cui appartengono
 Per la risposta si utilizzano gli identificativi dei gruppi
multicast a cui l’host appartiene
Il router abilitato invia periodicamente dei messaggi di
query
 Se dopo un certo numero di tentativi non riceve alcun
report per il determinato gruppo, si assume che non ci
siano più membri
 Se un host ha appena aderito ad un gruppo multicast deve
inviare immediatamente un report affinché sia in grado il
prima possibile di ricevere i pacchetti indirizzati a quel
gruppo
Gestione dei gruppi
Per limitare l’overhead di segnalazione causato dai
messaggi scambiati periodicamente da multicast router e
hosts sono state implementate diverse ottimizzazioni
Quando un host riceve una query avvia un timer per
ciascun gruppo a cui appartiene:
 ogni timer viene fatto partire da un valore casuale scelto tra 0 e
D secondi
 allo scadere del timer si genera il report relativo
Ogni host resta in ascolto e se sente un report con un
indirizzo multicast corrispondente ad uno dei suoi, non
genera un’altra risposta per quel multicast group (è
indifferente, per un multicast router, sapere che sulla LAN
ci sono 2 piuttosto che N receivers per quel gruppo)
IGMP v2 vs IGMP v1
IGMP v2 estende la IGMP v1, mantentendo la
compatibilità con gli host che hanno tale
versione
Specifica la modalità con cui si elegge il
designated router
 Viene scelto quello con indirizzo IP più basso
sull'interfaccia considerata
 In IGMP v.1 questa procedura viene demandata al
protocollo di routing
Messaggio Group-Specific Query
 Permette ad un router multicast di interrogare un ben
specifico gruppo invece che tutti i gruppi presenti sulla
LAN
IGMP v2 vs IGMP v1
Messaggio Leave-Group
 Accelera le operazioni di eliminazione di un gruppo da una
LAN
 Inviato al gruppo All-Routers da un host che intende
lasciare un certo gruppo multicast, specificando l'indirizzo
del gruppo che si vuole abbandonare
 Quando il router riceve un messaggio di questo tipo inizia
ad inviare una serie di Group-Specific Query verso quel
particolare gruppo di destinazione e se continua a non
ricevere risposta elimina la entry relativa al gruppo
sull'interfaccia interessata
 Velocizza le operazioni di pruning di alberi multicast inutili
MULTICAST
Protocolli di Routing Intra-Domain
Multicast Routing
Come inoltrare i pacchetti di un gruppo?
Scopo dei protocolli di multicast routing
è quello di costruire un albero
(Steiner tree) degli instradamenti
che consenta di inoltrare i pacchetti
senza effettuare dei cicli
I router che non hanno utenti del gruppo
associati possono essere esclusi dall’albero
Il problema è simile a quello che si incontra nei transparent bridge
Steiner Tree problem: trovare l’albero che copre tutte le destinazioni
avente il minimo costo possibile. (NP-Hard)
Constrained Steiner Tree problem: trovare l’albero di costo minimo con
vincoli sul massimo ritardo
Quali alberi
E’ possibile costruire un albero
 che serve a distribuire i pacchetti di tutte le sorgenti (group-shared)
 oppure un albero differente per ognuna delle sorgenti attive (sourcespecific)
Group-shared Tree
Source-Specific Tree
Group-Shared Tree
In linea teorica è possibile cercare l’albero di costo minimo (Problema NPHard)
In realtà gli algoritmi (euristiche) cercano soluzioni sub-ottime
Center-based approach:
 Viene eletto un router “centrale” (nell’esempio sotto, il router E)
 Vengono inviati dei messaggi di “join” in unicast verso il router centrale
 I messaggi tracciano dei rami dell’albero fino a che non raggiungono il centro o
un altro router già associato all’albero
Source-based Trees
La costruzione dei source-based trees è di solito basata sull’albero dei
cammini (unicast) minimi, costruibile dai router in modo analogo a
quanto fatto con il routing unicast
Reverse Path Forwarding (RPF): un router accetta un pacchetto multicast
solo sull’interfaccia sulla quale il router invierebbe un messaggio unicast
verso la sorgente del messaggio multicast ricevuto
• I pacchetti in arrivo sul
cammino minimo verso la
sorgente sono inoltrati
• Tutti gli altri sono scartati
I pacchetti giungono anche
a nodi senza host associati
Source-based Trees: pruning
Il problema dei pacchetti che arrivano a nodi non coinvolti
nel gruppo può essere risolto con la tecnica detta di pruning
I router che non hanno host associati al gruppo possono
inviare dei messaggi di prune risalendo al contrario lungo
l’albero
Problemi:
 Avere informazioni sui router posti
a valle (segnalazione opportuna)
 Consentire l’ingresso di nuovi utenti
(messaggi di unprune o timer
sull’informazione di prune)
Reverse Path Forwarding
Quando un router riceve un pacchetto multicast, lo invia
su tutte le altre interfacce a patto che quella da cui è
arrivato sia sul cammino più breve tra il router e la
destinazione
Migliora il Flooding, ma non viene generato alcun albero di
instradamento
 Il pacchetto viene sempre distribuito su tutti i link
 Su alcuni link transitano più copie dello stesso pacchetto
 Bassa efficienza
Funziona solo se la rete è simmetrica (calcola il costo del
reverse path)
I pacchetti vengono inoltrati su un link (collegamento LAN)
anche se non ci sono host associati al gruppo multicast
indicato nella destinazione del pacchetto
Reverse Path Broadcasting
Reverse Path Broadcasting è un evoluzione di
Reverse Path Forwarding, in cui si costruisce un
albero di distribuzione multicast (steiner tree)
per ogni sorgente di traffico
 Protocollo di tipo Source-based Tree
I pacchetti multicast vengono inoltrati solo sui
rami appartenenti allo Steiner Tree
 I paccehtti vengono trasmessi solo sulle interfaccie
che permettono di raggiungere le foglie dello Steiner
Tree
Reverse Path Broadcasting
La costruzione dell’albero di distribuzione richiede che
ogni multicast router conosca la sua posizione
all’interno dell’albero stesso
Vengono utilizzate due tipologie di interfacce di rete:
 Interfaccia padre: interfaccia a distanza minore verso la
sorgente
 Interfaccia figlie: le altre interfacce del router
I pacchetti ricevuti da un’interfaccia padre vengono
sempre accettati ed eventualmente propagato
I pacchetti ricevuti da un’interfaccia figlia vengono
sempre scartati
Reverse Path Broadcasting
L’inoltro dei pacchetti multicast attraverso il meccanismo
di Reverse Path Broadcasting richiede la selezione di una
interfaccia figlia tra le tante che possono essere collegate
su una LAN
Solo il designated router ha diritto di propagare il
pacchetto multicast ricevuto da un’intefaccia padre
sull’intefaccia filglia
Il designated router è quello ha distanza inferiore verso la
sorgente
In caso la distanza abbia costo uguale, viene selezionata
l’interfaccia con IP più basso
Reverse Path Broadcasting ha problemi simili a quelli
introdotti da Reverse Path Forwarding
 Non esegue il pruning
 Si assume la rete simmetrica
Truncated RPB
Gli algoritmi descritti in precedenza lasciano agli host
il compito di filtrare i pacchetti, occupando banda
inutilmente
Truncated RPB aggiunge il pruning allo schema di
Reverse Path Broadcasting
 Gli host devono generare dei report per ottenere la
membership a un gruppo
 L’albero di distribuzione dipende sia dalla sorgente (source
based tree) sia dal gruppo multicast
Il pacchetto multicast non viene propagato sulle LAN a
cui non sono collegati host che appartengono al
gruppo indicato nel pacchetto
 E necessario l’utilizzo di un protocollo di segnalazione tra
router per segnalare la presenza di membri del gruppo
sulla LAN
Reverse Path Multicasting
Il Truncated RPB non impedisce che su rami
intermedi dell’albero di distribuzione vengano
trasmessi pacchetti multicast non inoltrati
sulle LAN dei livelli inferiori
Il protocollo Reverse Path Multicast
implementa il pruning anche sui rami
intermedi dell’albero di distribuzione
 Vengono eliminate intere ramificazioni dell’albero
su cui è inutile trasmettere traffico multicast
(poiché non ci sono host ad esso interessati)
Reverse Path Multicasting
Il primo pacchetto inviato dalla sorgente viene
inoltrato dai multicast router secondo l’algoritmo
Truncated RPB
Quando un pacchetto multicast raggiunge un router i
cui link sono foglie dell’albero di distribuzione, ma
prive di membri associati al gruppo indicato nel
pacchetto, il router invia un messaggio di NoMembership-Report (NMR) al router padre
Se il router padre riceve un messaggio NMR da tutti i
suoi figli, genera un suo messaggio NMR e lo
trasmette al suo router padre
 Il pruning inizia dalle foglie e si propaga verso la radice
dell’albero di distribuzione
Reverse Path Multicasting
I messaggi di No-Membership-Report (NMR) hanno
una validità limitata
 Quando scadono si utilizza nuovamente il protocollo di
instradamento Truncated RPB
 Periodicamente la rete viene inondata di messaggi
multicast
Quando un nuovo membro si aggiunge a un gruppo, il
router collegato alla LAN invia al router padre un
messaggio Membership-Report
 Il router padre deve attivare istantaneamente il ramo
dell’albero di distribuzione
L’algoritmo di Reverse Path Multicasting ha una
limitata scalabilità a causa della quantità di
informazioni da mantenere in memoria
Link State Multicast Routing
Si basa sull’esistenza di un protocollo di
routing unicast di tipo link state
Ogni router conosce la topologia completa
della rete grazie ai messaggi di routing (Link
State Advertisement ) scambiati con gli altri
dispositivi
 Ogni router può quindi calcolare l’albero di
distribuzione per ogni sorgente e ogni
destinazione potenziale
Link State Multicast Routing
Un nuovo Link State Advertisement (LSA) è
utilizzato per annuciare l’esistenza di un
nuovo membro (host) per uno specifico
gruppo multicast
 Il messaggio LSA viene trasmesso in tutta la rete
attraverso il flooding
 Ogni router che identifica di essere su un albero di
distribuzione per la sorgente e il gruppo multicast
indicati nel LSA, si attiva per trasmettere gli
eventuali pacchetti di quel gruppo
Link State Multicast Routing
A causa della latenza necessaria alla
distribuzione delle informazioni della topologia
di rete e della successiva costruzione degli alberi
di distribuzione Link State Multicasting introduce
un elevato ritardo di trasmissione per il primo
pacchetto della trasmissione multicast
 L’albero di distribuzione viene calcolato solo
nell’istante in cui la sorgente inizia a trasmettere il
primo pacchetto
 Il calcolo dell’albero è necessario al router per
decidere su quali interfacce inoltrare i pacchetti
multicast ricevuti
Link State Multicast Routing
Vantaggi
 Link State Multicast non necessita più di funzionalità di join
e prune esplicite
Svantaggi
 Link State Multicast richiede molte risorse (CPU e
Memoria) per calcolare e memorizzare gli alberi di
distribuzione
Ad ogni sorgente è associato un albero di distribuzione
 Nella tabella di routing deve essere mantenuta una entry
per ogni coppia sorgente-destinazione
 Poiché esistono destinazioni multiple per una sorgente è
necessario memorizzare un entry separata per ognuna
delle destinazioni associate alla sorgente
Core Based Tree
Core Based Tree (CBT) prevede la creazione di
un unico albero di distribuzione multicast per
un gruppo indipendente dalla sorgente che
genera traffico
La creazione dell’albero si basa su un router
principale detto core router
L’albero di distribuzione è gestito attraverso la
tecnica hard-state
 Non è necessario inviare messaggi periodici per
mantenere lo stato attivo nei router
Core Based Tree
La costruzione dell’albero di distribuzione richiede uno
scambio di messaggi tra i router dell’albero di
distribuzione
 Quando un router periferico (leaf router) riconosce che un
host nella sua rete vuole agganciarsi al gruppo di multicast,
invia un messaggio particolare (Join Reques) al core router
 Tutti i router che ricevono questo messaggio marcano
l’interfaccia dalla quale il messaggio arriva come una
interfaccia da usare per il forwarding dei pacchetti
multicast per quel gruppo
 Nel caso in cui il messaggio raggiunga un router che fa già
parte dell’albero (prima di raggiungere il core rotuer) la
segnalazione si ferma, e all’albero precedente viene
aggiunto un nuovo ramo
Core Based Tree
Trasmissione multicast in CBT
 Un membro del gruppo invia semplicemente il pacchetto
in multicast
 Ogni router che riceve un pacchetto lo invia su tutte le
interfacce appartenenti a quel gruppo di multicast tranne
quella da cui il pacchetto è arrivato
Vantaggi
 L’algoritmo ha una scalabilità migliore di quelli descritti in
precedenza
Svantaggi
 Il core-router è un single point of failure e la sua posizione
influenza le performance dell’algoritmo
 I percorsi non sono ottimizzati (la scelta ottima richiede la
soluzione di un problema NP-Hard)
MULTICAST
Protocolli di Routing Inter-Domain
Distance Vector Multicast Routing
Protocol (DVMRP, RFC 1075)
E’ il più usato protocollo Reverse Path
Forwarding
Usa il Distance Vector per costruire l’albero dei
cammini minimi
Ogni router mantiene una lista di router
dipendenti
Un messaggio di pruning viene inviato solo se
tutti i router in tale lista lo hanno già fatto
E’ previsto un esplicito messaggio di unprune
Le informazioni di pruning hanno un time-out
MOSPF
Estensione multicast di OSPF (protocollo Link
State)
Essendo un protocollo Link State, ogni router
conosce la topologia completa della rete (link
e relativi costi)
I pacchetti multicast vengono trasmessi sui
percorsi più brevi calcolati attraverso lo
shortest path tree
Adatto a bassa densità di gruppi multicast
MOSPF
Il percorso su cui sono instradati i pacchetti
avviene On-Demand
I router intermedi, nel momento in cui si
ricevono il primo pacchetto destinato da una
particolare sorgente verso un certo host group,
creano uno shortest path tree che permette di
instradare il pacchetto lungo i cammini più brevi
verso tutte le direzioni indicate dall'indirizzo
multicast
L’algoritmo di routing deve aver raggiunto la
stabilità (altrimenti i diversi router calcolano
l’albero su informazioni diverse)
Protocol Independent Multicast
Protocol Independent Multicast (PIM) nn
implementa meccanismi per il calcolo dei
cammini minimi
PIM calcola i cammini minimi utilizzando le
informazioni fornite da un protocollo di
routing unicast sottostante (sia esso Links
State o Distance Vector)
PIM può attraversare domini di routing
unicast
Protocol Independent Multicast
Esistono due versioni diverse di PIM
 PIM-SM (PIM - Sparse Mode)
• Derivato da CBT
• Basso numero di stati (altamente scalabile)
• Adatto a reti estese con pochi ricevitori sparsi
 PIM-DM (PIM - Dense Mode)
• Adotta l’algoritmo RPM
• Adatto a reti con ricevitori molto concentrati
PIM-SM e PIM-DM non possono coesistere in
uno stesso dominio di routing multicast
Protocol Independent Multicast
Implicit Join Protocol
 PIM-DM (come DVMRP): in mancanza di indicazioni
esplicite, i pacchetti vengono inoltrati in una certa
rete
 È necessario generare messaggi di “Prune” per
interrompere il traffico multicast
Explicit Join Protocol
 PIM-SM: in mancanza di indicazioni esplicite, i
pacchetti non vengono inoltrati in una certa rete
 È necessario utilizzare messaggi di “Join” per attivare il
traffico multicast
PIM-SM
Protocollo adatto a reti sparse
 Pochi gruppi multicast rispetto al numero di reti
LAN
 Overhead minore rispetto alla versione Dense
Mode
Adattamento del meccanismo CBT
 Si basa sul concetto di albero di distribuzione
Non viene mai utilizzato il flooding per ridurre
l’overhead
 Maggiore ritardo di trasmissione per il primo
pacchetto
PIM-SM
Tre entità principali
 Designated router (DR): si occupa di raccogliere le
richieste degli host
 Rendez-vous point (RP): punto di raccolta dei
pacchetti destinati ad un certo gruppo multicast
(corrisponde al core router dell'algoritmo CBT)
 Bootstrap Router (BSR): si occupa di distribuire a
tutto il dominio PIM-SM l’elenco dei RP
Multicast in Internet
Solo una piccolissima frazione dei ruoter di Internet
sono multicast routers
Cosa succede se nessuno dei router vicini ad un
multicast router ha capacità di multicast?
La tecnica in uso in MBone (Multicast Backbone) è il
tunneling: