Internet Group Management Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Felix3 (discussione | contributi)
KSavys (discussione | contributi)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(4 versioni intermedie di 4 utenti non mostrate)
Riga 5:
== Indirizzi di gruppo ==
 
Un indirizzo di gruppo o multicast è un [[indirizzo IP]] di classe D di [[32 bit]] (Ipv4) o multicast di [[128 bit]] (Ipv6). Nel caso Ipv4 i primi 4 bit del primo ottetto sono fissati e corrispondono al pattern 1110 mentre i restanti 28 bit costituiscono il Multicast Group ID, quindi tutti questi indirizzi sono nel range 224.0.0.0 – 239.255.255.255. Il corrispondente Ethernet/MAC Address (48 bit) usa una parte dell'indirizzo multicast IP e si ottiene in questo modo:
* Il primo ottetto è statico e posto a 00000001;
* Il secondo ottetto è statico e posto 00000000;
Riga 22:
== Overview protocollo ==
 
Il funzionamento didel IGMP si basa su un modulo presente negli host e su un modulo presente nei router. Il primo svolge tutte le attività richieste ad un host che partecipa alla sessione multicast: gestione del proprio stato di ricezione, risposta alle query inviate dal Designated Router (DR) per quella LAN, invio triggered di report al DR quando lo stato di ricezione di un'interfaccia cambia per informarlo del nuovo stato di ricezione. Il secondo a bordo di un router IGMP svolge, per ogni gruppo desiderato, funzionalità di gestione e tracciamento dello stato di ricezione degli host della LAN di cui è DR e regola l'inoltro dei pacchetti provenienti dalla struttura di instradamento sulla LAN, se è contemporaneamente DR IGMP e DR per il protocollo di routing usato, altrimenti suggerisce le regole di inoltro al router che è il DR per il protocollo di routing (in genere quindi un router deve avere a bordo sia il modulo per la membership che per il routing).
 
== Protocollo lato Host ==
Riga 128:
Quando un host riceve una query dal DR esegue una routine per schedulare una risposta che tiene conto di eventuali query pendenti (ricevute precedentemente e in attesa di risposta). L'host cerca di condensare in un unico report le varie query pendenti, quando possibile. La seguente procedura (in pseudo-codice) è invocata dall'host:
 
<sourcesyntaxhighlight lang = "C">
delay ← random [0, Max Response Time];
if (General Query AND pending_response R t.c. start_time_R < current_time + delay)
Riga 144:
end if
 
</syntaxhighlight>
</source>
 
== Protocollo lato Router ==
Riga 230:
== Elezione Designated Router IGMP ==
 
Ogni LAN elegge un solo router che ha il compito di inviare periodicamente messaggi di Query agli host e di tracciare il loro stato di membership. Questo router è detto Designated Router o più propriamente ''Querier''. Il meccanismo di elezione è molto semplice: ogni router mantiene un ''Other_Querier_Present'' timer che è rinfrescatoaggiornato ogni volta che riceve una query da un router con indirizzo IP più basso del suo. Il Querier è il router con indirizzo IP più basso; se un altro router riceve una query da esso smette di inviare le proprie. Se un router che precedentemente era Querier non vede più arrivare Query, riprende lui a inviarle subentrando come nuovo Querier. Il fatto che in una LAN i messaggi vengano ricevuti da tutti i router ad essa connessi fa sì che ognuno possa costruirsi progressivamente lo stato di membership completo, così che se il Querier attuale dovesse cadere il nuovo Querier dispone già delle informazioni di stato aggiornate.
 
== Collegamenti esterni ==