510 likes | 642 Views
PROTOCOLLI MULTICAST. Dario Maggiorini dario@dsi.unimi.it. 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.
E N D
PROTOCOLLIMULTICAST Dario Maggiorini dario@dsi.unimi.it
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
network 3 IP multicast data link 2 LAN multicast physical link 1 link layer multicast Livelli ISO-OSIper il 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 routingAltre 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 datiIndividuiamo 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
1110 1110 0000 1110 1111 0000 0000 1111 1111 0000 0000 1111 1111 0000 0000 1111 1111 1110 Indirizzi in classe D Contengono il valore 1110 in corrispondenza dei 4 bit piu’ significativi
Distribuzione locale di IP multicast • Ci si appogga su frame Ethernet • E’ possibile utilizzare questi ultimi sia in modalita’ broadcast the multicast
01:00:5e:00:00:00 01:00:5e:07:ff:ff 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
1110 xxxx x yyy yyyy yyy yyyy yyyy yyyy yyyy yyyy yyyy yyyy yyyy yyyy 0 0000 0001 0000 0000 0101 1110 IP multicast e Ethernet multicast Si e’ scelto allora di mappare solo un sottoinsieme di indirizzi IP MAC E’ compito del modulo software che gestisce IP filtrare pacchetti destinati alle sottoreti “duplicate”
IP multicastdistribuzione 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”
IGMPInternet 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)
DVMRPDistance 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
PIMProtocol 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 r0 multicast s1 DR1 LHR1 r1 s2 DR2 RP LHR2 r2 s3 DR3 r3 LHR3 s4 DR4 r4 r6 r5 s5 unicast
PIM - creazione dell’alberoLatoricevente • 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’alberolatosorgente • 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’alberolatosorgente • 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 multiplouna 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
HPIMHierarchical 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
MBoneMulticast 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