PROTOCOLLI
MULTICAST
Dario Maggiorini
[email protected]
MULTICAST
Nuovo modello di comunicazione
Trasmissione di dati punto-multipunto
Definisce gruppi dinamici
Nuove tipologie di
comunicazione
Diffusione dati “pubblici”
Video broadcasting
Radio su Internet
Teleconferenza
Comunicazione punto-multipunto
Molti … ma non tutti
Gruppi dinamici
Si introduce la nozione di “gruppo multicast”
E’ possibile aggiungersi o togliersi in
qualunque momento dal gruppo
Questa dinamicita’ permette di continuare ad
operare anche con interruzioni del servizio di
rete
Cosa deve fare un protocollo
multicast
Costruire un albero di distribuzione dei dati
(routing)
Garantire l’arrivo delle informazioni a
destinazione
Gestire i gruppi
Livelli ISO-OSI
per il multicast
network
3
IP multicast
data link
2
LAN multicast
physical link
1
link layer multicast
Tecnologie di rete e multicast
nativo
Alcune tecnologie supportano multicast in
maniera nativa
Ethernet
Altre invece non lo supportano affatto
Token ring
FDDI
Altre ancora hanno bisogno di supporti esterni
ATM
Diventa compito del livello di routing
multicast mascherare queste situazioni in
maniera trasparente
ethernet
token
ring
ATM
Multicast
Server
Multicast routing
Vuol dire costruire l’albero piu’ “conveniente” per
la distribuzione dei dati nella rete data la sorgente
e i destinatari da raggiungere
Esistono algoritmi specializzati
Shortest path
Minimum cost
Constrained tree
Multicast routing
Shortest path tree
Distant vector
Link state
Minimum cost tree
Minimum spanning tree
Minimum steiner tree
Constrained tree
Multicast routing
Altre cose di cui tenere conto
La topologia di rete
La distribuzione geografica degli utenti (tutti)
La densita’ degli utenti sul “territorio”
La tecnologia di rete e la distribuzione degli
utenti influenzano pesantemente le strategie
utilizzate per la sua costruzione
?
Disposizione degli utenti e tecniche di
distribuzione dei dati
Individuiamo due tecniche
Data replication
su un punto di distribuzione “replico” i dati e
mando un pacchetto separato ad ogni destinatario
Flooding
mando pacchetti broadcast per servire tutti gli
utenti in “un colpo solo”
IP multicast
Si definisce una classe di indirizzi virtuali
detta “classe D”
Ad ogni indirizzo in classe D corrisponde
un multicast group
E’ compito di chi riceve richiedere
l’iscrizione ad un gruppo
Il managing dei gruppi e degli alberi viene
fatto con un protocollo esterno: IGMP
Indirizzi in classe D
Contengono il valore 1110 in corrispondenza
dei 4 bit piu’ significativi
1110 0000 0000 0000 0000 0000 0000 0000
1110 1111 1111 1111 1111 1111 1111 1111
Distribuzione locale di
IP multicast
Ci si appogga su frame Ethernet
E’ possibile utilizzare questi ultimi sia in
modalita’ broadcast the multicast
IP multicast e ethernet multicast
Occorre mappare un indirizzo in classe D su di un
indirizzo MAC multicast.
Questo pero’ non e’ possibile, dato il range dei
multicast MAC
01:00:5e:00:00:00
01:00:5e:07:ff:ff
IP multicast e Ethernet multicast
Si e’ scelto allora di mappare solo un sottoinsieme di indirizzi
IP
1110 xxxx
x
yyy yyyy
yyyy yyyy
yyyy yyyy
0000 0000
0101 1110
0
yyy yyyy
yyyy yyyy
yyyy yyyy
MAC
0000 0001
E’ compito del modulo software che gestisce IP filtrare
pacchetti destinati alle sottoreti “duplicate”
IP multicast
distribuzione su piu’ sottoreti
L’albero di distribuzione viene creato attraverso
un algoritmo chiamato reverse path forwarding
(RPF)
La distribuzione su ogni singola sottorete viene
fatta secondo criteri locali.
Nel caso di Ethernet multicast sono i vari router
che si occupano di riassegnare gli accoppiamenti
di indirizzi MAC-IP
Reverse path forwarding
Si punta a costruire un albero dove la distanza in
termini di hop tra sorgente e destinazione sia
minima
Per fare questo si ricorre al flooding e lo si limita
applicando la seguente regola su ogni router
se un pacchetto viene ricevuto su di una interfaccia
che il router utilizza per mandare pacchetti a chi
spedisce, solo allora il pacchetto verra’ ridistribuito
sulle tutte altre interfacce, altrimenti verra’ scartato
Reverse path forwarding
Utilizza le informazioni di routing unicast gia’
note
Costruisce un nuovo albero ad ogni pacchetto (si
adatta alle interruzioni di rete)
Non tiene in considerazione i gruppi, questo lo
rende piu’ un algoritmo per la costruzione di un
“broadcast tree”
IGMP
Internet Group Management Protocol
E’ un protocollo di contrattazione usato tra un host
ed il suo router
Un host informa il router di voler far parte di un
certo multicast group
Il router memorizza solo informazioni locali alla
sua sottorete
In tale modo il router diventa responsabile del
gruppo all’interno della sottorete
IGMP
Il router manda periodicamente dei broadcast sulla
rete IGMP Host-membership Query
Se ci sono host iscritti ad un qualsiasi gruppo
questi aspettano un tempo casuale e poi mandano
un messaggio IGMP Host-membership Report al
loro gruppo
IGMP
Questo ha due finalita’:
Il router (che e’ iscritto a tutti i gruppi) sa che ci sono
degli iscritti a un certo gruppo
Gli altri host appartenenti allo stesso gruppo resettano i
loro timer riducendo il carico di rete
Truncated broadcasting
Utilizza le informazioni di raccolte da IGMP e
migliora le prestazioni di RPF introducendo la
nozione di gruppo nel flooding controllato
Un pacchetto viene trasmesso su di una
sottorete se e solo se vi sono host appartenenti
a quel gruppo
Algoritmi di routing a livello di rete
Distance vector Multicast Routing Protocol
(DVMRP)
Hierarchical DVMRP (H-DVMRP)
Multicast Open Shortest Path First (MOSPF)
Protocol Independent Multicast (PIM)
Hierarchical PIM (H-PIM)
Core-Based Tree (CBT)
Ordered CBT (OCBT)
Border Gateway Multicast Protocol (BGMP)
Multicast Backbone of the Internet (MBONE)
DVMRP
Distance Vector Multicast Routing Protocol
Si basa sul concetto di “distance vector” come il
RIP (Routing Information Protocol)
Implementa truncated broadcasting utilizzando un
meccanismo detto pruning
DVMRP
Siccome ogni router ha informazioni sulle
appartenenze ai vari gruppi e’ in grado di
determinare se un pacchetto in arrivo e’ utile o meno
alla sua sottorete
Se non ci sono iscrizioni al gruppo indicato viene
mandato un messaggio prune ai router limitrofi
Tale messaggio non viene mandato sull’interfaccia
corrispondente al percorso verso la sorgente, a meno
che lo stesso messaggio non venga ricevuto su tutte
le altre interfacce
PIM
Protocol Independent Multicast
E’ in grado di funzionare utilizzando un qualunque
protocollo di routing unicast come supporto
Puo’ essere utilizzato per routing sia inter-domain
che extra-domain
Se usato come extra-domain allora riesce ad
interoperare con qualsiasi altro protocollo usato
inter-domain
PIM
Distingue tra nodi a sola ricezione e nodi a solo
invio
Prevede due modalita’ di funzionamento:
Sparse Mode (PIM-SM)
Dense Mode (PIM-DM)
PIM: DM e SM
DM: progettato ed ottimizzato per reti densamente
popolate da utenti di un certo gruppo, viene fatto
uso di flooding
SM: progettato per reti scarsamente popolate, si
utilizza data-replication
La modalita’ di funzionamento e’ impostata al
setup della rete, non esistono ancora metodi per
passare dinamicamente da una all’altra
PIM – elementi costitutivi
Randezvous point (RP)
E’ il punto di ingresso all’albero di distribuzione, sia per
iscriversi a un gruppo che per inviare dati
E’ relativo a uno specifico gruppo multicast
Esiste solo in SM
Ridistribuisce i dati tramite un albero monodirezionale
Designed router (DR)
E’ il router direttamente connesso con l’host che invia dati
Generalmente, e’ comune a tutta la sottorete
PIM – elementi costitutivi
Last Hop Router (LHR)
Il router direttamente connesso con l’host che riceve i
dati
Si occupa della distribuzione multicast sulla sottorete di
destinazione
In generale per le LAN DR coincide con LHR, ma
questo non e’ necessariamente sempre vero
Boot Strap Router (BSR)
Il router rsponsabile della creazione dei DR e dei RP
PIM – elementi costitutivi
BSR
s1
r0
multicast
DR1
LHR1
s2
r1
DR2
RP
s3
r2
LHR2
DR3
r3
s4
LHR3
DR4
r4
s5
unicast
r6
r5
PIM - creazione dell’albero
Lato ricevente
Un host notifica al suo DR che intende partecipare
a un certo gruppo
Il DR rintraccia il RP opportuno per quel gruppo
Il DR manda un messaggio di Join al RP
Il percorso effettuato dal messaggio di join nei
router intermedi determina il ramo dell’albero di
distribuzione dal RP alla sottorete (LHR) di cui fa
parte l’host che si e’ iscritto
PIM - creazione dell’albero
lato sorgente
Un host notifica al suo DR che intende partecipare
a un certo gruppo
Il DR rintraccia il RP opportuno per quel gruppo
Il DR forwarda il messaggio di Register dell’host
al RP
Il RP riceve il messaggio e valuta se esiste gia’ un
albero di distribuzione per il gruppo a cui fa
riferimento l’host che vuole trasmettere
PIM - creazione dell’albero
lato sorgente
Se tale albero non esiste
viene creato un albero avente come radice il RP e come
foglie tutti gli host in ascolto
Viene forwardato su tutto l’albero il pacchetto di
Request
I router per cui il pacchetto transita creano all’interno
delle loro tabelle delle entry di collegamento diretto tra
LHR del ricevente e DR della sorgente
Alla creazione di tale entry i riceventi mandano un
messaggio di Join verso la sorgente
Il risultato di questo e’ la “trasformazione” dell’albero
avente radice il RP con un albero a cammino minimo
tra il DR e gli LHR
PIM - gestione dell’albero
L’albero di distribuzione di un certo gruppo deve
rimanere stabile anche in caso di:
Cambiamenti della topologia di rete
Cambiamenti di stato di un host improvvisi (crash e
reboot)
Cambiamenti di stato di un router
Timeout
PIM - gestione dell’albero
Per garanire questo PIM basa il suo funzionamento
su stati software sui router
Periodicamente vengono inviati messaggi di Join e
Prune per evitare timeout sulle tabelle
Allo scadere di un timeout un ramo dell’albero che
non si e’ mai “fatto sentire” viene eliminato dalle
tabelle di distribuzione
PIM – distribuzione dei dati
Quando un pacchetto contenente informazioni
arriva ad un router (DR) questo cerca nell’ordine
una delle seguenti corrispondenze all’interno delle
sue tabelle:
Una entry con riferimento alla sorgente e al gruppo
Una entry con riferimento al gruppo e una qualsiasi
sorgente
Una entry con riferimento ad un RP corrispondente
all’indirizzo di destinazione e qualsiasi sorgente e
gruppo
In caso di esito negativo il pacchetto viene scartato
PIM – distribuzione dei dati
In caso di esito positivo
Viene presa in considerazione la entry trovata
Se l’interfaccia dalla quale ci si aspettava i dati
corrisponde con quella da cui effettivamente il
pacchetto e’ arrivato questo viene instradato
sull’interfaccia di uscita in tabella
In caso contrario viene scartato
NOTA: le cose si complicano parecchio se un
pacchetto viene instradato mentre si compie la
transizione di stato dell’albero
PIM – reti ad accesso multiplo
una serie di accorgimenti deve essere presa se
esistono piu’ accessi concorrenti alla rete
Elezione esplicita del DR responsabile per una
sottorete
Un sistema per la determinazione di cammini unici
quando piu’ di un percorso e’ disponibile
Soppressione di messaggi Join e Prune nel caso vi
siano messaggi di controllo duplicati
HPIM
Hierarchical PIM
Viene utilizzato per sopperire a problemi di cui
PIM e’ affetto in caso distribuzione non ottimale
dei RP
Nel caso di utenti molto sparsi il PIM potrebbe
scegliere RP non ottimali
I dati seguono lo stesso percorso dei pacchetti di
controllo, nel caso di percorsi non ottimali tra RP
questo peggiora le performances anche nel
trasferimento dei dati
HPIM
I RP vengono organizzati in una gerarchia
attribuendo ad ognuno un numero (livello).
Piu’ alto il livello e piu’ grande e’ l’area competente
ad un RP
I DR sono considerati essere RP di livello 0
HPIM
Nel momento in cui un host chiede di far parte di un
certo gruppo vi richiesta di Join viene fatta risalire
fino al RP di livello massimo, dopo di che si instaura
tra i RP intermedi un sistema come quello tra DR e
LHR per la creazione di percorso ottimale dei dati
MBone
Multicast Backbone of the Internet
E’ una rete vituale che affronta il problema di
fare multicast su Internet in un momento in cui
non tutti i router installati sono in grado di
supportare multicast
MBone
Vengono costruite delle “isole” periferiche dove
multicast viene supportato con un qualsiasi
protocollo noto
La comunicazione tra le varie isole avviene
attraverso dei collegamenti (tunnel) nei quali viene
fatto circolare multicast IP incapsulato in IP classico
L’accoppiamento piu’ utilizzato e’ multicast IP o
DVMRP per isole piccole e PIM-SM per isole
medio-grandi
MBone
MRouter
isole multicast
Internet
unicast
?
tunnel
backup tunnel
Mbone - MRouter
E’ il punto terminale di un tunnel
Si occupa di decapsulare il protocollo multicast da
IP unicast e distribuirlo sulla rete locale
Puo’ essere realizzato in due modi
Un host su cui gira un software chiamato mrouted
Un apparecchiatura di rete in grado di gestire tunnel di
Mbone tramite software interno
Mbone - topologia
Si compone di un misto di topologie stellari e ad
albero
Le reti cosiddette “regionali” sono collegate da
una ragnatela fitta e caotica di tunnel
Internamente una rete regionale e’ normalmente
organizzata ad albero
All’interno delle reti regionali vi sono delle isole
piu’ piccole delle singole organizzazioni,
tipicamente organizzate con topologia stellare
Scarica

Multimedialita` e protocolli multicast