# Protocolli e architetture di instradamento/Instradamento multicast2

Protocolli e architetture di instradamento
Copertina Tutti i moduli · Sviluppo
    CopertinaProtocolli e architetture di instradamento/Copertina
* Algoritmi di instradamento
** Inoltro e instradamentoProtocolli e architetture di instradamento/Inoltro e instradamento
** Algoritmi di instradamentoProtocolli e architetture di instradamento/Algoritmi di instradamento
** L'algoritmo Distance VectorProtocolli e architetture di instradamento/L'algoritmo Distance Vector
** L'algoritmo Link StateProtocolli e architetture di instradamento/L'algoritmo Link State
** Instradamento gerarchicoProtocolli e architetture di instradamento/Instradamento gerarchico
** Instradamento inter-dominioProtocolli e architetture di instradamento/Instradamento inter-dominio
** Instradamento multicastProtocolli e architetture di instradamento/Instradamento multicast
* Protocolli di instradamento
** Routing Information ProtocolProtocolli e architetture di instradamento/Routing Information Protocol
** IGRP e EIGRPProtocolli e architetture di instradamento/IGRP e EIGRP
** Open Shortest Path FirstProtocolli e architetture di instradamento/Open Shortest Path First
** Instradamento inter-dominio: peering e transito in InternetProtocolli e architetture di instradamento/Instradamento inter-dominio: peering e transito in Internet
** Border Gateway ProtocolProtocolli e architetture di instradamento/Border Gateway Protocol
** Instradamento IPv6Protocolli e architetture di instradamento/Instradamento IPv6
** Instradamento multicastProtocolli e architetture di instradamento/Instradamento multicast2
** Content Delivery NetworkProtocolli e architetture di instradamento/Content Delivery Network
* Elaborazione di rete
** Cenni sull'architettura degli apparati di reteProtocolli e architetture di instradamento/Cenni sull'architettura degli apparati di rete
** Filtraggio dei pacchetti basato su softwareProtocolli e architetture di instradamento/Filtraggio dei pacchetti basato su software
** Introduzione alle Software-Defined NetworkProtocolli e architetture di instradamento/Introduzione alle Software-Defined Network
Modifica il sommario

## Protocolli di instradamento multicast

* DVMRP: DV (TRPB, RPM), indipendente dal protocollo unicast, albero specifico della sorgente;
* MOSPF: LS, opera sul protocollo OSPF, albero specifico della sorgente;
* PIM-DM: DV (RPM), indipendente dal protocollo unicast, albero specifico della sorgente;
* PIM-SM: CBT, indipendente dal protocollo unicast, ibrido tra albero condiviso e specifico della sorgente;
* BGMP: protocollo di instradamento multicast inter-dominio basato sul BGP.

## DVMRP

Il Distance Vector Multicast Routing Protocol (DVMRP) è stato il primo protocollo di instradamento multicast, ed era usato alle origini in Multicast backbone (Mbone), una rete virtuale nata nel 1992 in ambito IETF che si appoggia per la trasmissione sulla stessa struttura fisica di Internet per fornire agli utenti la possibilità di sfruttare il multicast per le comunicazioni multimediali.
DVMRP è basato sull'algoritmo DV:
* versione 1: adotta il TRPB;
* versione 3: adotta il RPM.
L'istanza di protocollo DVMRP è eseguita in parallelo all'istanza di protocollo unicast: DVMRP ignora le informazioni di instradamento degli altri protocolli, e calcola rotte che possono differire da quelle utilizzate per il traffico unicast.
Usa una metrica basata sul numero di hop, vale a dire il numero di mrouter che parlano DVMRP. In DVMRP possono essere configurati manualmente dei tunnel: il cammino che collega due vicini DVMRP può includere dei router che non supportano DVMRP (o su cui DVMRP è disabilitato):
* local end-point: specifica l'mrouter all'inizio del tunnel;
* remote end-point: specifica l'mrouter all'altra estremità del tunnel;
* metric: specifica la misura del costo del tunnel;
* threshold: specifica il valore minimo del TTL che un pacchetto deve avere per poter essere instradato attraverso il tunnel → permette di definire la visibilità dei pacchetti: i pacchetti che non devono uscire dalla rete aziendale vengono generati con un TTL pari alla threshold.

## MOSPF

Il Multicast OSPF (MOSPF) è un protocollo di instradamento multicast basato sull'algoritmo LS che estende OSPF, permettendo ai singoli router di avere una conoscenza completa della topologia della rete e dei costi relativi ai singoli link.
MOSPF è retrocompatibile con OSPF: i router MOSPF possono essere mischiati con router solo OSPF, anche se i pacchetti multicast sono inoltrati solo tra router MOSPF e i cammini scelti per i pacchetti multicast non passano per i router solo OSPF.
MOSPF aggiunge l'LSA di tipo 6:
* i router interni MOSPF producono LSA di tipo 6 per informare gli altri router nella loro area dei gruppi multicast attivi sulle loro reti;
* gli ABR MOSPF producono LSA di tipo 6 per informare gli altri router nell'area 0 dei gruppi multicast attivi sulle loro aree edge (anche con l'aggregazione).

## PIM

Il Protocol Independent Multicast (PIM) si serve direttamente delle tabelle contenenti le informazioni di instradamento indipendentemente dal protocollo unicast sottostante (DV o LS) che le ha costruite.
Esiste in due versioni, tra loro incompatibili, che affrontano diverse problematiche relative alla spazialità dei ricevitori:
* Dense Mode (DM):
** è adatto per reti piccole (LAN/MAN) con molti ricevitori concentrati;
** non è parco in termini di banda: i pacchetti possono venire inoltrati in zone non interessate al particolare gruppo multicast;
** adotta l'algoritmo RPM basato su DV (come DVMRPv3);
** Implicit Join Protocol: in mancanza di espliciti messaggi di Prune, i pacchetti vengono inoltrati in una certa rete;
** è necessario generare messaggi di Prune per interrompere il traffico multicast (come DVMRP);
* Sparse Mode (SM):
** è adatto per reti estese (WAN) con pochi ricevitori sparsi;
** limita il più possibile l'overhead di banda: non usa mai il flooding;
** è un'evoluzione dell'algoritmo CBT: inizia sempre da un albero condiviso, che diventa un albero specifico della sorgente quando vantaggioso;
** Explicit Join Protocol: in mancanza di espliciti messaggi di Join, i pacchetti non vengono inoltrati in una certa rete (le informazioni di instradamento però vanno a tutti i router, non sono quelli che riceveranno traffico);
** è necessario generare messaggi di Join per attivare il traffico multicast (come MOSPF).

### PIM-SM

PIM-SM gestisce due tipi di alberi di distribuzione:
* RP-Tree (RPT): è l'albero condiviso usato inizialmente per tutti i pacchetti del gruppo multicast, ma non è ottimizzato in base alla sorgente → i primi pacchetti della trasmissione possono essere consegnati in breve tempo ai ricevitori senza dover aspettare il calcolo dell'albero:
** non vengono usati i percorsi minimi;
** il traffico è centralizzato;
** ad ogni gruppo multicast corrisponde un albero;
* Shortest-Path Tree (SPT): è l'albero specifico della sorgente costruito in un secondo momento se i router lo ritengono conveniente (non è obbligatorio):
** vengono usati i percorsi minimi;
** il traffico è distribuito;
** ad ogni coppia (gruppo, sorgente) corrisponde un albero.
PIM-SM definisce tre nodi speciali:
* rendez-vous point (RP): è il core router, eletto in base a una formula algoritmica a partire da un elenco chiamato RP-set, che si occupa di:
** ricevere i messaggi di Join da parte dei DR;
** ricevere le richieste di registrazione da parte delle sorgenti;
** ricevere e inviare ai DR i primi pacchetti di dati multicast trasmessi da una sorgente;
* designated router (DR): è il router, eletto in base al percorso più breve verso il RP (o all'indirizzo IP più alto in caso di parità), che si occupa di:
** ricevere le richieste di iscrizione da parte degli host in una certa LAN;
** inviare il messaggio di Join al RP per unirsi al RPT;
** inviare il messaggio di Join alla sorgente per unirsi al SPT;
** inviare il messaggio di Join periodicamente per adattarsi ai cambiamenti dei gruppi;
* bootstrap router (BSR): è il router, eletto in base al costo amministrativo migliore (o all'indirizzo IP più alto in caso di parità), che si occupa di distribuire l'RP-set a tutto il dominio PIM-SM.

#### Algoritmo
##### RPT

* iscrizione dei DR come ricevitori: ogni DR invia un messaggio di Join al RP;
* registrazione della sorgente come trasmettitore: la sorgente invia una richiesta di registrazione al RP;
* registrazione del RP come ricevitore: il RP invia un messaggio di Join alla sorgente;
* trasmissione lungo il RPT: la sorgente invia in multicast i primi pacchetti di dati, inoltrati dai router intermedi fino al RP;
* propagazione lungo il RPT: il RP propaga in multicast i pacchetti di dati ricevuti, inoltrati dai router intermedi fino ai DR.

##### SPT

* iscrizione dei DR come ricevitori: ogni DR invia un messaggio di Join alla sorgente;
* trasmissione lungo il SPT: la sorgente invia in multicast i pacchetti di dati, inoltrati dai router intermedi a ogni DR (oltre che al RP);
* distacco dal RPT: ogni DR invia un messaggio di Prune al RP;
* unione al SPT: un altro DR invia un messaggio di Join al RP, poi invia un messaggio di Join alla sorgente.