Reti II Stefano Leonardi IP Multicast Reti II Stefano Leonardi IP Multicast
La trasmissione Multicast Generalizzazione di Broadcast: Multicast diretto a tutti Unicast: Multicast diretto ad un singolo Broadcast implementato sulle reti locali a livello hardware: Un solo pacchetto diretto sul bus Indirizzo riservato alla trasmissione broadcast (48 1 in Ethernet) NIC riceve i pacchetti diretti al proprio indirizzo locale o all’indirizzo broadcast Multicast Inter-rete: I pacchetti devono essere inviati attraverso molti collegamenti intermedi finchè non raggiungono la destinazione Eccessivamente dispendioso trasmettere verso tutte le reti e poi inviare in broadcast sulle reti locali TCP/IP utilizza la trasmissione Unicast e la traduzione ARP IP Multicast
Multicast Hardware Più indirizzi di Multicast disponibili NIC predisposte per accettare i pacchetti indirizzati ai gruppi di multicast di cui si fa parte Tale schema può comunque essere inefficiente: Due segmenti LAN collegati da un bridge Il bridge deve comunque trasmettere un pacchetto indirizzato ad un indirizzo multicast all’altro segmento LAN Questo può essere evitato se la comunicazione è tra entità sullo stesso segmento IP Multicast
Multicast in Ethernet Determinato dal bit di ordine basso dell’ottetto di ordine alto Example in dotted decimal: 01.00.00.00.00.0016 Remaining bits specify a multicast group Il driver di rete accetta i pacchetti indirizzati all’indirizzo multicast configurato manualmente IP Multicast
Multicast IP Permette la trasmissione verso un sottinsieme che si può estendere a reti fisiche arbitrarie nell’Inter-rete Caratteristiche del Multicast IP: Indirizzo di gruppo: ogni gruppo multicast è assegnato con un unico indirizzo di classe D Fino a 228 gruppi multicast simultanei Appartenenza dinamica ai gruppi: un host può unirsi e lasciare un gruppo dinamicamente Utilizza la trasmeissione multicast hardware quando è disponibile. Altrimenti utilizza la trasmissione broadcast o unicast Inoltro sulle Inter-reti: Per inoltrare i pacchetti a più reti fisiche è necessario avere routers con funzionalità multicast da aggiungere alle finzionalità normali Semantica di consegna Best-effort,così comne per IP Il mittente non deve essere necessairmanete un membro del gruppo di multicast IP Multicast
Requisiti per Multicast IP Schema di Indirizzamento Multicast globale consistente con l’autonomia locale nell’assegnazione degli indirizzi Meccanismo di consegna e notificazione Notifica ai router dei gruppi di multicast di cui fanno parte gli host locali Consegna dei pacchetti sugli host locali, possibilmente attraverso multicast hardware Strumenti efficienti di inoltro sull’Inter-rete Selezione del percorso più breve Scartare percorsi che non portano ad host del gruppo Permettere la modifica dinamica dei gruppi di multicast IP Multicast
Indirizzi Multicast IP Indirizzi di classe D: Permanenti, dedicati al mantenimento delle infrastrutture Internet, come l’instradamento multicast Transitorio, eliminati quando i gruppi corrispondenti non contengono host Da 224.0.0.0 a 239.255.255.255 224.0.0.0 riservato e mai usato – 224.0.0.1 è ‘‘all systems’’, router e host su una rete – 224.0.0.3 è ‘‘all routers’’, router su una rete – Indirizzi fino a 224.0.0.255 usati per protocolli di Multicast Routing IP Multicast
Indirizzi multicast riservati IP Multicast
Indirizzi multicast riservati (cont.) IP Multicast
Traduzione di Multicast IP in Multicast Ethernet Disponi i 23 bit meno significativi dell’indirizzo IP multicast nei 23 bit meno significativi dell’indirizzo multicast Ethernet: 01.00.5E.00.00.0016 Example: L’indirizzo IP multicast 224.0.0.2 diventa l’indirizzo Ethernet multicast address: 01.00.5E.00.00.0216 Non vi è corrispondenza univoca in quanto i gruppi multicast sono contraddistinti da 28 bit Un host può quindi ricevere datagram multicast a lui non indirizzati Probabilità di interferenza bassa Utile avere l’indirizzo IP all’interno dell’indirizzo Ethernet IP Multicast
Trasmissione dei datagram Multicast Gli host non installano alcun software per il multicast routing Gli host usano l’hardware multicast per trasmettere multicast datagrams Se un multicast router è presente sulla rete Il router multicast riceve il datagram Il router multicast usa l’indirizzo di destinazione per determinare l’instradamento I router ascoltano tutte le trasmissioni multicast IP ed instradano il traffico multicast che ricevono IP Multicast
Intervallo di multicast Un gruppo può essere limitato ad una Rete fisica Organizzazione Intervallo di propagazione di un indirizzo multicast è l’insieme di reti a cui è diretto TTL controlla l’ambito un datagram multicast: TTL=1 per multicast di controllo intra-rete TTL=0 per multicast tra processi sullo stesso host Controllo amministrativo: utilizzo di indirizzi riservati per ambito locale IP Multicast
Participazione ai gruppi multicast Un host può partecipare in tre modalità diverse ad un gruppo multicast: 0. Né inviare né ricevere Inviare ma non ricevere Inviare e ricevere Programma applicativo deve specificare l’indirizzo multicast come indirizzo di destinazione Software di interfaccia di rete deve tradurre l’indirizzo IP in indirizzo multicast hardware corrispondente, oppure inviare in trasmissione broadcast IP Multicast
Ricezione datagram multicast API per consentire a programmi applicativi di dichiarare che desiderano unirsi ad un gruppo di multicast o lasciarlo Più programmi su un host si possono unire ad un gruppo Difficoltà: Gli host si uniscono a gruppi multicast IP su specifiche reti Mantenere informazioni sull’adesione ai gruppi di multicast per le diverse reti a cui è collegato IP Multicast
IGMP (Internet Group Management Protocol) I router devono propagare l’informazione sulla partecipazione degli host ai gruppi multicast Occorre prima determinare quali host della rete locale aderiscono al gruppo IGMP permette la comunicazione tra host e router multicast Host che si unisce al gruppo invia messaggio IGMP all’indirizzo multicast dello stesso per dichiarare la propria appartenenza Router locali ricevono il messaggio e lo propagano ad altri router multicast attraverso l’inter-rete 2. Il router multicast locale verifica periodicamente l’appartenenza di host locali al gruppo. Se nessun host locale vi appartiene interrompe il loro annuncio agli altri router multicast IP Multicast
Implementazione di IGMP Limitare il traffico di controllo IGMP La comunicazione tra router e host multicast usa il multicast hardware. Permette di escludere gli host non interessati a multicast. Uso di indirizzo “all routers” e “all host” Un singolo messaggio interroga gli host sull’appartenenza degli host a tutti i gruppi piuttosto che ogni gruppo singolarmente Default polling rate is every 125 seconds Se più router multicast sono attivi sulla stessa rete, uno è selezionato per interrogare gli host Gli host attendono un tempi scelto casialmente in un certo intervallo per eveitare risposte simultanee. Gli host ascoltano le altre risposte ed eliminano risposte non necessaria. Un host appartenente al gruppo è sufficiente per includere la rete nel gruppo multicast IP Multicast
Transizione di stato di IGMP Tabella memorizza l’informazione di appartenenza ai gruppi Host appartiene ad un gruppo multicast se almeno un programma applicativo appartiene al gruppo Attività IGMP per un singolo gruppo: IP Multicast
Messaggi IGMP Messaggi di 8 byte Tipo del messaggio: IP Multicast
Instradamento Multicast Propagazione informazione di appartenenza ai gruppi Inoltro datagram multicast su reti diverse Nessuno standard definito IP Multicast
Instradamento Multicast Difficoltà: Modifiche nella struttura dei gruppi impogono modifiche nell’instradamento L’instradamento dipende dalla posizione del mittente e non solo dall’indirizzo multicast di destinazione L’invio è anche permesso a host che non appartengono al gruppo L’inoltro può attraversare reti che non hanno alcun host appartenente al gruppo Sono necessarie informazioni aggiuntive rispetto all’indirizzo di destinazione IP Multicast
Paradigmi per l’instradamento Multicast Due approcci di base Flood-and-prune – Invia una copia del datagram a tutte le reti – Interrompi l’inoltro quando è assodato che nessun partecipante si trova oltre un certo punto 2. Multicast trees – Router interagiscono per formare un “albero” che raggiunge tutte le reti del gruppo – Copia del datagram attraversa tutti i rami dell’albero IP Multicast
Reverse Path Forwarding Router ha disponibile un instradamento ottimale unicast Se il datagram è arrivato dall’interfaccia sul cammino ottimo verso l’indirizzo sorgente -- allora inoltra su tutte le altre interfacce -- altrimenti scarta la copia Garantisce l’inoltro di almeno una copia ad ogni host del gruppo Trasmette copie anche a membri non del gruppo IP Multicast
Truncated Reverse Path Forwarding Non inoltra ai percorsi che non raggiungono membri del gruppo di multicast Occorre una tabella che indichi l’insieme dei gruppi di multicast raggiungibili da ogni interfaccia di rete Se RPF ammette l’inoltro della copia del datagram, un ulteriore controllo è eseguito per ogni interfaccia IP Multicast
TRPF – ricezione multipla Host A invia un datagram Host B riceve copia sia da R3 che da R4 IP Multicast
Alberi di Multicast Rappresentare in un albero tutti i percorsi che portano da una sorgente a tutti i membri di un gruppo di multicast Il router multicast sorgente è la radice dell’albero I router multicast corrispondono ai nodi Una rete che connette due router corrisponde ad un lato dell’albero Ultimo router su ciascuno dei percorsi dalla radice è detto router foglia. Reti raggiungibili da un solo router sono dette reti foglia A sorgenti diverse corrispondono diversi alberi di inoltro IP Multicast
Instradamento Multicast Ciascuna voce della tabella di Multicast è identificata da una coppia (gruppo multicast, sorgente) Sorgenti discriminate sulla base della rete di appartenenza piuttosto che sulla base dell’host Le tabelle possono avere dimensione pari a (# reti x # gruppi multicast) maggiore della dimensione dell’instradamento tradizionale IP Multicast
Instradamento Multicast L’instradamento multicast richiede la propagazione attraverso l’inter-rete delle informazioni di appartenenza ai gruppi Le tabelle di instradamento devono essere modificate quando nuovi host abbandonano o si uniscono gruppi di multicast Se l’informazione si propaga con ritardo le decisioni possono essere non ottimali Se gli aggiornamenti vengono propagati continuamente, si può generare un traffico eccessivo di controllo Occorre un compromesso tra le due esigenze IP Multicast
Esempi di protocolli di instradamento Multicast Reverse Path Multicasting (RPM) Distance-Vector Multicast Routing Protocol (DVMRP) Core-Based Trees (CBT) Protocol Independent Multicast - Dense Mode (PIM-DM) Protocol Independent Multicast - Sparse Mode (PIM-SM) IP Multicast
Rverse Path Multicasting Basato su Reverse Path Forwarding Invia copia del datagram su tutte le reti dell’inter-rete Contemporaneamente raccoglie informazioni dal basso verso l’alto sui percorsi che non portano a membri del gruppo Modello guidato dai dati: le informazioni sull’appartenenza di host sulla rete al gruppo viene inviata ad un router solo quando si ricevono dati da quel router IP Multicast
Rverse Path Multicasting Host comunicano appartenenza al gruppo al router multicast locale attraverso IGMP Inizialmente il datagram viene inviato a tutti i router multicast dell’inter-rete I router connessi alle reti foglia inoltrano il datagram se vi sono host del gruppo I router connessi alle reti foglia che non ricevono alcun messaggio di appartenenza inviano un messaggio di sganciamento al router verso la radice Un router diffonde l’informazione finchè non ottiene informazioni sufficienti a potare il percorso Se un host si unisce successivamente, un messaggio di aggancio viene inviato sul cammino verso la radice IP Multicast
Distance-Vector Multicast Routing Protocol (DVMRP) Estensione multicast di Distance Vector Implementa una strategia guidata dai dati Router scambiano le informazioni su appartenenza ai gruppi e instradamento Per ogni coppia (gruppo, sorgente) i router creano un albero di inoltro I router inviano una copia dei datagram ai collegamenti che corrispondono all’albero di inoltro Definisce una forma estesa di IGMP che consente ai router di aderire ai gruppi di multicast ed interrogare altri router Messaggi IGMP trasportano informazioni di instradamento e metriche dei costi IP Multicast
Implementazione di DVMRP – Mrouted (Unix) Propagazione dell’Instradamento: Ad ogni entry (sorgente, gruppo) della tabella corrisponde un insieme di interfacce su cui inviare il datagram. Cooperazione con il software standard di instradamento File di configurazione specifica quali gruppi è consentito annunciare su ogni interfaccia Per ogni instradamento: Misura: permette di assegnare un costo al percorso Soglia: datagrams con TTL inferiore scartati IP Multicast
Incapsulamento Tunneling: non tutti i router sono abilitati all’instradamento multicast. Invio attraverso router intermedi che non partecipano all’instradamento multicast Permette di simulare una topologia virtuale ad albero IP Multicast
Incapsulamento - IP dentro IP Multicast routers stabiliscono accordo sull’inoltro di datagram Mrouted incapsula datagram multicast in un datagram tradizionale diretto al router multicast attraverso il tunnel Estrae il datagram multicast quando riceve un datagram da un multicast router TTL multicast viene decrementato per ogni salto logico IP Multicast
Internet Multicast Backbone I tunnel multicast formano il backbone multicast I datagram multicast vengono propagati agli altri router multicast del MBONE Router multicast connesse da reti punto-punto virtuali o fisiche I tunnel sono considerati come singoli collegamenti nell’instradamento multicast Ad ogni tunnel è asociato un costo di collegamento DVMRP calcola l’instradamento unicast includendo i tunnel IP Multicast
Scalabilità di DVMRP Ogni gruppo deve memorizzare le informazioni riguardanti le coppie (sorgente, gruppo) e le informazioni per l’aggancio Il protocollo diffonde inizialmente il traffico su tutte le reti finchè le informazioni di appartenenza non sono propagate DV implica una propagazione lenta delle informazioni DVMRP non può gestire reti con un grande numero di router Proposte alternative: CBT - Core Bsed Trees PIM – Protocol Indipendent Multicast MOSPF IP Multicast
Core Based Trees Orientato alle richieste - non utilizza la trasmissione multicast Consentono di condividere lo stesso albero di inoltro per più sorgenti quando possibile CBT non inoltra su un percorso finchè non ha ricevuto informazioni positive Il router propaga le informazioni sull’adesione ricevute tramite IGMP da host locali Le informazioni vengono propagate tramite l’albero di inoltro multicast A chi inviare le informazioni? Come costruire l’albero di Multicast? IP Multicast
Alberi CBT Inter-rete divisa in regioni Un router del nucleo scelto in ogni regione Gli altri router della regione devono conoscere il nucleo della regione Un albero di Multicast condiviso è usato in ogni regione Quando un host si unisce ad un gruppo, una richiesta di joining CBT viene trasmessa in unicast al router del nucleo Quando un router R dell’albero condiviso viene raggiunto dalla richiesta di joining, questo restuisce una conferma di ricezione, passa la richiesta al nodo padre, ed inizia ad inoltrare il traffico del gruppo Il messaggio di conferma permette ai router intermedi di configurare le tabelle di instradamento Messaggi di ECHO CBT permettono di verificare se una connessione tra due router è guasta e di riconnettere l’albero IP Multicast
Protocol Indipendent Multcast - PIM Versione Densa, PIM - DM: Ambiente LAN in cui quasi tutte le reti sono parte del gruppo di Multicast Versione Sparsa, PIM - SM: Host di un numero piccolo di reti sono parte del gruppo di Multicast IP Multicast
PIM - DM Strategia guidata dai dati simile a DVMRP Usa inizialmente RPF per diffondere i dati ed interrompe l’invio solo quando riceve richieste di sganciamento Non calcola i percorsi più brevi usando un protocollo unicast tradizionale Il router esegue un loro protocollo di instradamento per calcolare i percorsi IP Multicast
PIM - SM Simile nello spirito a CBT. Guidato dalle richieste Identifica un nodo RP (Rendez-vous Point) Richieste di join inviate a RP Nodi dell’albero sul cammino rispondono così estendendo l’albero di inoltro per il gruppo PIM – SM permette di riconfigurare l’albero in modo dinamico usando più punti RP Quando un punto RP si guasta, l’albero si riconfigura automaticamente intorno ad un altro RP IP Multicast
Ottimizzazione PIM - SM Le trasmissioni da qualsiasi sorgente a qualsiasi destinazione passano attraverso il RP Permette di muoversi dinamicamente su un Shortest Path Tree dalla sorgente se il traffico supera una specifica soglia Occorre che i router cooperino nella costruzione di un albero ottimo. I router possono far parte di alberi diversi di multicast, e quindi devono distinguere tra le due tipologie di traffico IP Multicast
Multicast - OSPF Protocolli visti finora utilizzano le informazioni dedotta dall’instradamento unicast tradizionale MOSPF usa la conoscenza della topologia per calcolare l’albero di inoltro per ciacuna sorgente Schema guidato dalle richieste (meno traffico ma occorre gestire la partecipazione ai gruppi) Le informazioni relative ai gruppi sono inviate a tutti i router. Gli alberi di multicast sono così calcolati per ogni sorgente Occorre mantenere la coerenza delle informazioni OSPF Multicast Area Broder Router (MABR) diffondono le informazioni sui gruppi all’esterno della regione Ogni area definisce un destinatario multicast standard che riceve il traffico multicast per l’area MABR comunicano solo ai router della dorsale IP Multicast
Multicast affidabile Trasmissione affidabile ed ordinata in ambito multicast Occorre gestire la proliferazione degli ACK da parte di tutti i receiver Vengono definiti dei punti di conferma della ricezione lungo l’albero di multicast Mantengono uno copia cache del datagram Collezionano le conferme di ricezioni dagli host e dai router nella parte sottostante dell’albero Inviano la copia cache se richiesta una ritrasmissione Tutti i datagram devono avere un ordinamento sequenziale IP Multicast
Gestione degli ACK Gli host inviano NACK piuttosto che ACK Il primo punto di conferma attraversato dal NACK ritrasmette il pacchetto Se mancassero i punti di conferma, anche uno schema basato su NACK e’ destinato ad invadere la rete di richieste di ritrasmissione Punti di conferma definiti manualmente Il multicast affidabile si adatta meglio a gruppi che rimangono stabili nel tempo In alternativa si può utilizzare ridondanza o codici a correzione di errore IP Multicast