IGMP | |
---|---|
Nume | Protocolul de management al grupului de internet |
Nivel (conform modelului OSI ) | reţea |
Familie | TCP/IP |
Scopul protocolului | Gestionarea rutei multicast |
Specificație | RFC 3376 |
IGMP ( English Internet Group Management Protocol - protocol for managing Internet groups) este un protocol pentru gestionarea transmisiei de date de grup (multicast) în rețele bazate pe protocolul IP . IGMP este folosit de routere și gazde IP pentru a organiza dispozitivele de rețea în grupuri.
Acest protocol face parte din specificația IP Multicast . IGMP este situat la nivelul rețelei [1] . Este similar în multe privințe cu ICMP pentru unicast . IGMP poate fi folosit pentru a susține streaming video și jocuri online , pentru aceste tipuri de aplicații permite utilizarea mai eficientă a resurselor rețelei. IGMP este vulnerabil la unele atacuri [2] [3] [4] [5] , iar firewall-urile permit de obicei utilizatorului să dezactiveze acest protocol dacă nu este necesar.
IGMP este utilizat numai în rețelele IPv4 , deoarece în IPv6 transmisia de pachete multicast este implementată prin protocolul Multicast Listener Discovery .
O rețea care furnizează servicii multicast (cum ar fi video) folosind IGMP poate avea următoarea arhitectură de bază:
IGMP este utilizat de computerul client și de switch -urile învecinate pentru a conecta clientul și routerul multicast local. Protocolul Protocol Independent Multicast (PIM) este apoi utilizat între routerele locale și la distanță pentru a direcționa traficul multicast de la serverul video către mai mulți clienți multicast.
Potrivit Request for Comments (RFC), un document comunității Internet Engineering Task Force (IETF), există trei versiuni de IGMP. IGMPv1 este definit în RFC 1112 , IGMPv2 în RFC 2236 și IGMPv3 în RFC 3376 .
Principala îmbunătățire a IGMPv3 față de IGMPv2 este suportul pentru filtrarea adresei IP . Cu acest mecanism, o gazdă poate spune de la ce adrese dorește să primească pachete și de la care nu.
Protocolul IGMP este implementat sub formă de părți server și client, prima rulând pe router, a doua - în nodul de rețea care primește trafic multicast. Clientul trimite o notificare despre apartenența la orice grup către routerul local, în acest moment routerul așteaptă notificări și trimite periodic solicitări clienților.
Sistemele de operare ale familiilor BSD , Linux și Windows acceptă partea client a protocolului. Pe un sistem Linux, IGMPv3 a fost adăugat în versiunea de kernel 2.5. Pentru FreeBSD, IGMPv3 a fost adăugat în versiunea 8.0.
Linux folosește demoni pentru a implementa backend-ul IGMP , de exemplu mrouted poate acționa ca un router IGMP. Există, de asemenea, pachete software întregi (cum ar fi XORP ) care vă permit să transformați un computer obișnuit într-un router multicast cu funcții complete.
În OpenBSD , suportul IGMP în nucleu include inițial suport de rutare de bază, în timp ce demonii mrouted și dvmrpd disponibili în sistemul de operare vă permit să rezolvați sarcini mai complexe (de exemplu, tunelarea traficului multicast).
Definit de RFC 3376 .
Solicitările de apartenență sunt trimise de către routere pentru a determina pentru fiecare nod apartenența acestuia la orice grup (starea de membru al grupului) și o listă a surselor de informații de la care acest nod dorește să primească mesaje (starea de recepție). Există trei tipuri de astfel de solicitări:
Octet | 0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | zece | unsprezece | 12 | 13 | paisprezece | cincisprezece | 16 | 17 | optsprezece | 19 | douăzeci | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treizeci | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Tip = 0x11 | Cod Resp Max | Sumă de control | |||||||||||||||||||||||||||||
4-7 | Adresa grupului | |||||||||||||||||||||||||||||||
8-11 | Resv | S | QRV | QQIC | Număr de surse (N) | |||||||||||||||||||||||||||
12-15 | Adresă sursă [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Adresa sursă [N] |
Octet | 0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | zece | unsprezece | 12 | 13 | paisprezece | cincisprezece | 16 | 17 | optsprezece | 19 | douăzeci | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treizeci | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Tip = 0x22 | Rezervat | Sumă de control | |||||||||||||||||||||||||||||
4-7 | Rezervat | Numărul de înregistrare de grup (M) | ||||||||||||||||||||||||||||||
8-11 | Înregistrare grup [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Înregistrare grup [M] |
0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | zece | unsprezece | 12 | 13 | paisprezece | cincisprezece | 16 | 17 | optsprezece | 19 | douăzeci | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | treizeci | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tipul de înregistrare | Linie de date auxiliară | Număr de surse (N) | |||||||||||||||||||||||||||||
adresa multicast | |||||||||||||||||||||||||||||||
Adresă sursă [1] | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Adresa sursă [N] | |||||||||||||||||||||||||||||||
Date auxiliare |
Tip de | Nume | Descriere |
---|---|---|
0x12 | Versiunea 1 Raport privind calitatea de membru | Trebuie să fie acceptat pentru compatibilitate cu versiunile anterioare |
0x16 | Versiunea 2 Raport privind calitatea de membru | |
0x17 | Versiunea 2 Părăsiți grupul | |
0x13 | Protocolul de rutare multicast vector la distanță | Protocol experimental |
TCP /IP pe straturi ale modelului OSI | Protocoale de bază|
---|---|
Fizic | |
canalizat | |
reţea | |
Transport | |
sesiune | |
Reprezentare | |
Aplicat | |
Altele aplicate | |
Lista de porturi TCP și UDP |