IGMP | |
---|---|
namn | Internet Group Management Protocol |
Nivå (enligt OSI-modellen ) | nätverk |
Familj | TCP/IP |
Syftet med protokollet | Multicast Routing Management |
Specifikation | RFC 3376 |
IGMP ( engelsk Internet Group Management Protocol - protokoll för att hantera Internetgrupper) är ett protokoll för att hantera grupp (multicast) dataöverföring i nätverk baserat på IP-protokollet . IGMP används av routrar och IP-värdar för att organisera nätverksenheter i grupper.
Detta protokoll är en del av IP Multicast - specifikationen . IGMP finns på nätverkslagret [1] . Det liknar på många sätt ICMP för unicast . IGMP kan användas för att stödja videoströmning och onlinespel , för dessa typer av applikationer tillåter det användningen av nätverksresurser mer effektivt. IGMP är sårbart för vissa attacker [2] [3] [4] [5] , och brandväggar tillåter vanligtvis användaren att inaktivera detta protokoll om det inte behövs.
IGMP används endast i IPv4 -nätverk , eftersom multicast-paketöverföring i IPv6 implementeras genom Multicast Listener Discovery- protokollet .
Ett nätverk som tillhandahåller multicast-tjänster (som video) som använder IGMP kan ha följande grundläggande arkitektur:
IGMP används av klientdatorn och närliggande switchar för att ansluta klienten och den lokala multicast-routern. Protocol Independent Multicast (PIM)-protokollet används sedan mellan de lokala och avlägsna routrarna för att dirigera multicast-trafik från videoservern till flera multicast-klienter.
Enligt Request for Comments (RFC), ett communitydokument för Internet Engineering Task Force (IETF), finns det tre versioner av IGMP. IGMPv1 definieras i RFC 1112 , IGMPv2 i RFC 2236 och IGMPv3 i RFC 3376 .
Den huvudsakliga förbättringen i IGMPv3 jämfört med IGMPv2 är stöd för IP -adressfiltrering . Med denna mekanism kan en värd avgöra vilka adresser den vill ta emot paket från och vilka den inte vill.
IGMP-protokollet implementeras i form av server- och klientdelar, varav den första körs på routern, den andra - i nätverksnoden som tar emot multicast-trafik. Klienten skickar ett meddelande om att tillhöra någon grupp till den lokala routern, vid denna tidpunkt väntar routern på meddelanden och skickar med jämna mellanrum förfrågningar till klienter.
Operativsystem i familjerna BSD , Linux och Windows stödjer klientsidan av protokollet. På ett Linux-system lades IGMPv3 till i kärnversion 2.5. För FreeBSD lades IGMPv3 till i version 8.0.
Linux använder demoner för att implementera IGMP-backend , till exempel kan mrouted fungera som en IGMP-router. Det finns också hela mjukvarupaket (som XORP ) som låter dig förvandla en vanlig dator till en fullfjädrad multicast-router.
I OpenBSD inkluderar IGMP-stöd i kärnan initialt grundläggande routingstöd, medan demonerna mrouted och dvmrpd som finns tillgängliga i operativsystemet tillåter dig att lösa mer komplexa uppgifter (till exempel tunnling av multicast-trafik).
Definierat av RFC 3376 .
Medlemskapsförfrågningar skickas av routrar för att för varje nod bestämma dess medlemskap i valfri grupper (gruppmedlemskap) och en lista över informationskällor från vilka denna nod vill ta emot meddelanden (mottagningstillstånd). Det finns tre typer av sådana förfrågningar:
Oktett | 0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Typ = 0x11 | Max Resp kod | Kontrollsumma | |||||||||||||||||||||||||||||
4-7 | Gruppadress | |||||||||||||||||||||||||||||||
8-11 | Resv | S | QRV | QQIC | Antal källor (N) | |||||||||||||||||||||||||||
12-15 | Källadress [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Källadress [N] |
Oktett | 0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Typ = 0x22 | Reserverad | Kontrollsumma | |||||||||||||||||||||||||||||
4-7 | Reserverad | Antal gruppposter (M) | ||||||||||||||||||||||||||||||
8-11 | Grupprekord [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Grupppost [M] |
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | tio | elva | 12 | 13 | fjorton | femton | 16 | 17 | arton | 19 | tjugo | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | trettio | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
inspelningstyp | Aux datalinje | Antal källor (N) | |||||||||||||||||||||||||||||
multicast-adress | |||||||||||||||||||||||||||||||
Källadress [1] | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Källadress [N] | |||||||||||||||||||||||||||||||
Hjälpdata |
Sorts | namn | Beskrivning |
---|---|---|
0x12 | Version 1 Medlemsrapport | Måste stödjas för kompatibilitet med tidigare versioner |
0x16 | Version 2 Medlemsrapport | |
0x17 | Version 2 Lämna gruppen | |
0x13 | Distance Vector Multicast Routing Protocol | Experimentellt protokoll |
TCP / IP-protokoll efter lager av OSI-modellen | Grundläggande|
---|---|
Fysisk | |
kanaliserad | |
nätverk | |
Transport | |
session | |
Representation | |
Applicerad | |
Annat ansökt | |
Lista över TCP- och UDP-portar |