Passa al contenuto principale

6. Protocollo per i router multicast

Lo scopo di IGMP è consentire a ciascun router multicast di apprendere, per ciascuna delle sue reti direttamente collegate, quali indirizzi multicast hanno ascoltatori su quella rete. IGMPv3 consente inoltre a un router multicast di apprendere quali sorgenti sono di interesse per gli ascoltatori.

6.1. Condizioni per l'elezione del Querier

IGMPv3 concorda con IGMPv2 sul fatto che dovrebbe esserci un solo Querier per rete. Tuttavia, i Querier IGMPv3 e IGMPv2 possono coesistere sulla stessa rete. Il protocollo di elezione è lo stesso di IGMPv2:

  1. Inizialmente, ogni router multicast si avvia come Querier su ciascuna delle sue reti collegate.
  2. Se un router multicast sente un messaggio Query da un router con un indirizzo IP inferiore, deve diventare un Non-Querier su quella rete.
  3. Se un router multicast non ha sentito un messaggio Query da un router con un indirizzo IP inferiore per [Other Querier Present Interval], riprende il ruolo di Querier.

6.2. Azione del Querier alla ricezione di una Query

Quando un Querier riceve un messaggio Query, controlla l'indirizzo IP sorgente della Query.

  1. Se l'indirizzo IP sorgente è inferiore al proprio indirizzo IP, il router diventa un Non-Querier.
  2. Se l'indirizzo IP sorgente è superiore al proprio indirizzo IP, il router continua a essere il Querier.
  3. Se l'indirizzo IP sorgente è uguale al proprio indirizzo IP, la Query viene ignorata (è una riflessione o un loopback).

6.3. Invio di Queries

Il Querier invia periodicamente General Queries per sollecitare informazioni sull'appartenenza. Invia anche Group-Specific o Group-and-Source-Specific Queries quando riceve determinati tipi di State Change Reports.

6.3.1. General Queries

Il Querier invia periodicamente General Queries all'indirizzo multicast all-systems (224.0.0.1). L'[Query Interval] predefinito è di 125 secondi.

Le General Queries sono utilizzate per aggiornare le informazioni sull'appartenenza per tutti i gruppi e le sorgenti.

6.3.2. Group-Specific Queries

Quando il Querier riceve un State Change Report che indica che un sistema ha lasciato un gruppo (ad esempio, un cambiamento di modalità di filtro da EXCLUDE a INCLUDE, o un cambiamento di elenco sorgente che blocca una sorgente), invia una Group-Specific Query all'indirizzo del gruppo.

Questa Query viene utilizzata per determinare se ci sono sistemi rimanenti interessati al gruppo.

6.3.3. Group-and-Source-Specific Queries

Quando il Querier riceve un State Change Report che indica che un sistema non è più interessato a sorgenti specifiche per un gruppo (ad esempio, bloccando sorgenti specifiche), invia una Group-and-Source-Specific Query.

Questa Query viene utilizzata per determinare se ci sono sistemi rimanenti interessati a quelle sorgenti specifiche.

6.4. Ricezione di Reports

I router multicast registrano lo stato di ricezione per ciascun gruppo e sorgente in base ai Reports che ricevono. Lo stato è mantenuto per interfaccia.

6.4.1. Ricezione di Current State Records

Quando un router riceve un Current State Record, aggiorna i suoi timer di gruppo/sorgente.

  • Se il record è MODE_IS_INCLUDE, il router aggiorna i timer per le sorgenti elencate.
  • Se il record è MODE_IS_EXCLUDE, il router aggiorna il timer di gruppo e i timer per le sorgenti escluse (se presenti).

6.4.2. Ricezione di Filter-Mode-Change Records

Quando un router riceve un Filter-Mode-Change Record, aggiorna la modalità di filtro e i timer.

  • CHANGE_TO_INCLUDE_MODE: Il router passa alla modalità INCLUDE se non lo era già, e aggiorna i timer sorgente.
  • CHANGE_TO_EXCLUDE_MODE: Il router passa alla modalità EXCLUDE e aggiorna il timer di gruppo.

6.4.3. Ricezione di Source-List-Change Records

Quando un router riceve un Source-List-Change Record, aggiorna i timer sorgente.

  • ALLOW_NEW_SOURCES: Il router aggiunge le nuove sorgenti al suo elenco e avvia i loro timer.
  • BLOCK_OLD_SOURCES: Il router può interrogare per vedere se altri sistemi hanno ancora bisogno di queste sorgenti prima di rimuoverle.

6.5. Cambio della modalità di filtro del router

La modalità di filtro del router per un gruppo passa tra INCLUDE ed EXCLUDE in base allo stato del timer di gruppo e dei timer sorgente.

  • Se il timer di gruppo è in esecuzione, la modalità di filtro è EXCLUDE.
  • Se il timer di gruppo scade, la modalità di filtro passa a INCLUDE.

6.6. Azione alla ricezione di un messaggio Group Leave (IGMPv2)

Se un router riceve un messaggio IGMPv2 Leave Group, si comporta come se avesse ricevuto un State Change Report che indica un cambiamento alla modalità INCLUDE (abbandonando effettivamente il gruppo) per il gruppo specificato nel messaggio Leave. Ciò consente ai router IGMPv3 di interoperare con gli host IGMPv2.