Internet Group Management Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix wikilink
Abisys.bot (discussione | contributi)
m ., typos fixed:{{subst:–}}
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 [[Source_specific_multicastSource specific multicast|Source Specific Multicast (SSM)]], cioè gli host non sono più obbligati a ricevere dall'intero gruppo ma possono selezionare un sottoinsieme di sorgenti da cui ricevere. Il protocollo nella sua versione più recente è definito nell'RFC 3376.
 
== 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 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 ==
Riga 235:
 
* (EN) [https://tools.ietf.org/html/rfc3376 RFC 3376 - Internet Group Management Protocol, Version 3]
<br />
 
{{IPstack}}