Internet Group Management Protocol
L'Internet Group Management Protocol è un protocollo per la gestione dei gruppi multicast. Costituisce il mezzo per un host di informare il router ad esso collegato che un'applicazione che funziona nell'host vuole unirsi a uno specifico gruppo multicast. IGMP opera fra un host e il router ad esso collegato direttamente, per coordinare i router multicast invece è richiesto un altro protocollo, affinché i datagrammi multicast possano essere instradati alle loro destinazioni finali. Questa funzionalità è svolta da algoritmi di instradamento multicast dello strato della rete: PIM, DVMRP, MOSFP.
I messaggi IGMP, la cui spiegazione è indicata a seguire, sono i seguenti:
- Membership query: da router e può essere Generale o Specifico;
- Membership report: da host;
- Leave group: da host.
Il primo messaggio consente di verificare se una macchina della rete è in ascolto su un certo indirizzo multicast (che viene specificato all'interno del pacchetto IGMP) o su un qualsiasi indirizzo multicast (non viene specificato l'indirizzo multicast all'interno del paccheto IGMP). Se nessuna macchina è presente, il router termina la ricerca fino a nuova richiesta.
Il secondo messaggio viene inviato a tutta la rete con un IP broadcast e permette di richiedere il ricevimento del flusso dei dati. Esso corrisponde inoltre alla risposta del membership query del router che chiede se c'è qualcuno in ascolto.
Il terzo permette ad un host di finire la ricezione e lasciare il gruppo senza far capire nulla all'interlocutore. Questo messaggio è opzionale, infatti, tramite un meccanismo soft state, il router può apprendere la disiscrizione dell'host da un certo gruppo multicast, grazie all'invio periodico di messaggi Membership query verso di esso. Se l'host non risponde con un Membership report, il router terminerà l'invio del flusso multicast sull'host.