Internet Group Management Protocol: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m apostrofo tipografico |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(10 versioni intermedie di 7 utenti non mostrate) | |||
Riga 1:
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 [[multicast|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 [[datagramma|datagrammi]] multicast possano essere [[instradamento|instradati]] alle loro destinazioni finali. Questa funzionalità è svolta da algoritmi di instradamento multicast dello strato della rete: [[Protocol Independent Multicast|PIM]], [[Distance Vector Multicast Routing Protocol|DVMRP]], [[Multicast Open Shortest Path First|MOSPF]].
Il protocollo attualmente è alla terza versione (IGMPv3) che ha introdotto un sostanziale cambiamento rispetto alle versioni precedenti per quanto riguarda il modello del multicast in Internet: infatti ora IGMP è compatibile col modello [[
== 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
* Il primo ottetto è statico e posto a 00000001;
* Il secondo ottetto è statico e posto 00000000;
Riga 14:
Del range di indirizzi quelli realmente disponibili per applicazioni multicast sono in realtà un sottoinsieme:
* 224.0.0.0 è riservato;
*
*
*
Chi vuole annunciare l'inizio di una sessione multicast lo fa tramite Session Directory (SDR) su opportuni server, specificando la data e l'ora d'inizio e il contenuto della trasmissione. Gli host interessati a ricevere la trasmissione multicast attraverso opportuni tool SDR possono ricavare l'indirizzo al quale la/le sorgente/i invieranno il proprio traffico e provvedono a configurarsi per accettare il traffico da quell'indirizzo.
Riga 22:
== Overview protocollo ==
Il funzionamento
== Protocollo lato Host ==
Riga 75:
* ''QQIC (Querier's Query Interval Code)'' è l'intervallo tra invii di General Query, rappresentato come Max Response Code. Dà un'indicazione agli altri router (se ce ne sono) di quando farsi sentire, perché se passato questo tempo non vedono arrivare alcuna query probabilmente è successo qualcosa al DR corrente;
* ''Number Of Sources (N)'' indica il numero di sorgenti in una Group And Source Specific Query;
* ''Source Address [1], ..... , Source Address [N]'' specificano ognuno l'indirizzo unicast IP di una sorgente per il
=== Messaggi scambiati: Report ===
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:
<
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>
== Protocollo lato Router ==
Riga 158:
* {source_record} è un insieme di coppie di valori < source_address, source_timer >, dove source_timer è rinfrescato ogni volta che la sorgente compare in un report.
Il group_timer è stato pensato per permettere al DR del protocollo di routing di tagliare traffico non più desiderato da alcun host quando il filtro corrente è exclude e il timer scade. Infatti exclude fa passare tutto il traffico tranne quello proveniente dalle sorgenti specificate nella lista: se il timer scade significa che nessun host in stato exclude ha provveduto a rinfrescare il proprio stato di ricezione (altrimenti almeno uno avrebbe inviato un report) e quindi con molta probabilità gli host non sono più interessati a ricevere dal gruppo. Allora il DR converte il filtro in include con le sole sorgenti che hanno associato un timer > 0, restringendo la quantità di traffico che viene inoltrata sulla LAN. Se ora anche per le sorgenti rimaste il DR vede scadere il timer, allora può dedurre con certezza che nessuno è più interessato a ricevere dal gruppo e può cancellare il record associato.
=== Struttura filtri Include ed Exclude ===
Riga 226:
|}
L'invio delle query avviene per robustezza Last_Member_Query_Count volte ognuna a distanza Last_Member_Query_Interval. Se per un tempo pari al prodotto tra questi due valori, detto Last_Member_Query_Time, il router non riceve risposta può procedere a eliminare gruppi o sorgenti.
== 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 è
== Collegamenti esterni ==
* (EN) [https://tools.ietf.org/html/rfc3376 RFC 3376 - Internet Group Management Protocol, Version 3]
{{IPstack}}
|