Generalità
Il routing multicast prevede di inviare un pacchetto o una serie di pacchetti non ad una sola destinazione ma ad un insieme di esse. La sorgente dovrà quindi inviare una sola copia del pacchetto, che verrà copiato su più uscite dai router multicast che esso incontrerà. La difficoltà del multicast sta nell'individuare in ogni momento il gruppo di ascoltatori dinamici, in quanto essi non sono stabili nel tempo. Nel trasferimento unicast, al contrario, la destinazione è o presente ad un indirizzo specifico o assente.
Sono stati messi a punto algoritmi e protocolli per cercare di risolvere i problemi del routing multicast.
Algoritmi di instradamento
I primi algoritmi algoritmi sono stati proposti da Steve Deering nel 1988:
-Selective Flooding, ogni pacchetto viene duplicato su tutte le uscite a parte quella da cui è arrivato. Non tiene conto del fatto che su alcune parti della rete ci potrebbero non essere ascoltatori.
-Reserve Path Forwarding. E' un algoritmo che migliora il flooding, in quanto prevede di inviare i pacchetti su tutte le interfacce, a patto che quella da cui è arrivato il pacchetto sia sul cammino più breve tra il router e la sorgente. Questa tecnica funziona (nel senso che arriva a tutte le destinazioni possibili) solo se la rete è simmetrica, in quanto non si considera il costo tra sorgente e router, ma tra router e sorgente (normalmente sono simili, ma non è detto). In più questo algoritmo non evita la ridondanza delle informazioni su una linea LAN comune a più router.
-Reserve Path Broadcasting (RPB). Questo algoritmo cerca di risolvere la duplicazione del traffico, definendo una sorta di designated router per le LAN. E' quindi previsto un ciriterio di selezione del designated router (l'interfaccia migliore è quella con un costo minore verso la sorgente). Grazie a questo algoritmo i pacchetti arrivano a tutte le foglie una sola volta, ma arrivano a tutti anche se non sono interessati. Per applicare questo algoritmo è necessario utilizzare il distance vector, in quanto con questo protocollo si conoscono tutti i costi dei vicini verso tutte le destinazioni. Anche in questo caso è necessaria una rete simmetrica.
-Truncated Reverse Path Broadcasting (TRPB). E' un evoluzione dell'algoritmo precedente, che prevede il troncamento dei rami su cui non ci sono ascoltatori (receivers). Per effettuare questo filtraggio è necessario un protocollo di segnalazione che comunichi ad ogni router se sono presenti dei receivers su una LAN. Questo algoritmo è attuabile mediante un protocollo per gruppi multicast come IGMP (che prevede l'invio di pacchetti periodici). Questo funziona solo per LAN terminali, ma non per tutte le reti che stanno a monte. Una LAN è terminale (foglia) quando essa non è necessaria per raggiungere altri router, ma solo sorgenti. Per stabilire se una LAN è foglia si guardano i distance vector con split horizon (nel senso che in una LAN di transito tutti i DV che passano nella LAN segnano la sorgente a costo infinito).
-Reverse Path Multicasting. Questo algoritmo supera le limitazioni precedenti avviando una segnalazione che va fino al livello in cui qualche ramo necessita la comunicazione.
-Link state Multicast routing è un ulteriore algoritmo per reti multicast, che però non è stato presentato da Deering. Per questo algoritmo tutti i router propagano nei link state anche i client, segnalati come router virtuali. In questo modo tutti all'interno della rete conoscono quali sono i gruppi multicast e dove sono posizionati. Questo algoritmo però prevede di dover calcolare il percorso migliore ad ogni pacchetto ricevuto verso tutte le destinazioni interessate. Questo porta ad una grande pesantezza nel calcolo del next-hop, in quanto, come detto, le mappe continuano a cambiare. In più l'albero di instradamento dipende dalla sorgente, in modo da non rimandare i pacchetti a chi li ha già ricevuti (Ascolatori*GruppiMulticast = numero alberi di instradamento). Non è un algoritmo scalabile.
-Core-based tree. Siccome la tecnologia non è in grado di fornire il multicast con l'utilizzo di algoritmi standard, viene definito un unico albero di instradamento multicast per ogni gruppo. Questi alberi si basano sul nodo che genera l'albero, detto pivot.
Protocolli di instradamento multicast
-DVMRP, derivato dal RIP che usa gli algoritmi di Deering: è quindi di tipo distance vector. Esistono diverse versioni a seconda dell'algoritmo di Deering utilizzato. Non è più usato, neanche nella rete MBONE (router fisicamente lontani vengono visti come vicini, grazie a tunneling).
-MOSPF, è un OSPF arricchito del link state multicasting routing. Non è più usato per problemi di scalabilità. Vengono definiti il designated router, il rendez-vous point (RP) e il bootstrap router (per coordinare i RP)
-Protocol independent multicast (PIM), è il protocollo utilizzato. Calcola i risultati mediante le informazioni di routing conosciute. Esistono due versioni (non possono interoperare sulla stessa rete):
--SM (Sparse mode, derivato da CBT). Utilizzato in caso di pochi ascoltatori in molto spazio. Viene automatizzato il meccanismo del Core-based tree.
--DM (Dense Mode, che adotta l'algoritmo RPM). E' utile nel caso in cui ci siano molti ascoltatori vicini e non è quindi necessario tagliare molti rami. Fa quindi una sorta di flooding controllato, a meno dei nodi foglia.
Questi protocolli sono utilizzabili solo su un ISP, perchè non esistono protocolli multicast interdomain.
Situazione attuale
Al momento il multicast routing è utilizzato solo per alcuni domini per esigenze specifiche (Internet TV e cose simili). Non sono previste espansioni, in quanto non ci sono gli interessi sulla vendita dei diritti TV (ad esempio). Un altro discorso è invece da fare per il multicast affidabile, in cui è da gestire anche l'ack.
Stanno iniziando a prendere piede le prime soluzioni P2P (Joost, TvANT, Sopcast,…).
| < Prec. | Succ. > |
|---|





