IGMP | |
---|---|
Navn | Internet Group Management Protocol |
Niveau (ifølge OSI-modellen ) | netværk |
Familie | TCP/IP |
Formål med protokollen | Multicast Routing Management |
Specifikation | RFC 3376 |
IGMP ( engelsk Internet Group Management Protocol - protokol til styring af internetgrupper) er en protokol til styring af gruppe (multicast) datatransmission i netværk baseret på IP-protokollen . IGMP bruges af routere og IP-værter til at organisere netværksenheder i grupper.
Denne protokol er en del af IP Multicast - specifikationen . IGMP er placeret på netværkslaget [1] . Det ligner på mange måder ICMP for unicast . IGMP kan bruges til at understøtte videostreaming og onlinespil , for disse typer applikationer tillader det brugen af netværksressourcer mere effektivt. IGMP er sårbar over for nogle angreb [2] [3] [4] [5] , og firewalls tillader normalt brugeren at deaktivere denne protokol, hvis det ikke er nødvendigt.
IGMP bruges kun i IPv4 -netværk , da multicast-pakketransmission i IPv6 implementeres gennem Multicast Listener Discovery -protokollen .
Et netværk, der leverer multicast-tjenester (såsom video) ved hjælp af IGMP, kan have følgende grundlæggende arkitektur:
IGMP bruges af klientcomputeren og tilstødende switches til at forbinde klienten og den lokale multicast-router. Protocol Independent Multicast (PIM)-protokollen bruges derefter mellem de lokale og eksterne routere til at dirigere multicast-trafik fra videoserveren til flere multicast-klienter.
Ifølge Request for Comments (RFC), et Internet Engineering Task Force (IETF) fællesskabsdokument, er der tre versioner af IGMP. IGMPv1 er defineret i RFC 1112 , IGMPv2 i RFC 2236 og IGMPv3 i RFC 3376 .
Den største forbedring i IGMPv3 i forhold til IGMPv2 er understøttelse af IP-adressefiltrering . Med denne mekanisme kan en vært fortælle, hvilke adresser den ønsker at modtage pakker fra, og hvilke den ikke gør.
IGMP-protokollen er implementeret i form af server- og klientdele, hvoraf den første kører på routeren, den anden - i netværksknuden, der modtager multicast-trafik. Klienten sender en meddelelse om at tilhøre en gruppe til den lokale router, på dette tidspunkt venter routeren på meddelelser og sender periodisk anmodninger til klienter.
Operativsystemer i BSD- , Linux- og Windows -familierne understøtter klientsiden af protokollen. På et Linux-system blev IGMPv3 tilføjet i kerneversion 2.5. Til FreeBSD blev IGMPv3 tilføjet i version 8.0.
Linux bruger dæmoner til at implementere IGMP-backend , for eksempel kan mrouted fungere som en IGMP-router. Der er også hele softwarepakker (såsom XORP ), der giver dig mulighed for at forvandle en almindelig computer til en multicast-router med alle funktioner.
I OpenBSD inkluderer IGMP-understøttelse i kernen oprindeligt grundlæggende routing-understøttelse, mens mrouted- og dvmrpd- dæmonerne, der er tilgængelige i OS'et, giver dig mulighed for at løse mere komplekse opgaver (for eksempel tunneling af multicast-trafik).
Defineret af RFC 3376 .
Medlemskabsanmodninger sendes af routere for at bestemme for hver node dens medlemskab i en hvilken som helst gruppe (gruppemedlemsstat) og en liste over informationskilder, hvorfra denne node ønsker at modtage beskeder (modtagelsestilstand). Der er tre typer af sådanne anmodninger:
Oktet | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Type = 0x11 | Max Resp kode | Kontrolsum | |||||||||||||||||||||||||||||
4-7 | Gruppe adresse | |||||||||||||||||||||||||||||||
8-11 | Resv | S | QRV | QQIC | Antal kilder (N) | |||||||||||||||||||||||||||
12-15 | Kildeadresse [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Kildeadresse [N] |
Oktet | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | Type = 0x22 | Reserveret | Kontrolsum | |||||||||||||||||||||||||||||
4-7 | Reserveret | Antal grupperekord (M) | ||||||||||||||||||||||||||||||
8-11 | Gruppepost [1] | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
Gruppepost [M] |
0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
posttype | Aux datalinje | Antal kilder (N) | |||||||||||||||||||||||||||||
multicast-adresse | |||||||||||||||||||||||||||||||
Kildeadresse [1] | |||||||||||||||||||||||||||||||
… | |||||||||||||||||||||||||||||||
Kildeadresse [N] | |||||||||||||||||||||||||||||||
Hjælpedata |
Type | Navn | Beskrivelse |
---|---|---|
0x12 | Version 1 Medlemsrapport | Skal understøttes for kompatibilitet med tidligere versioner |
0x16 | Version 2 Medlemsrapport | |
0x17 | Version 2 Forlad gruppen | |
0x13 | Distance Vector Multicast Routing Protocol | Eksperimentel protokol |
TCP / IP-protokoller efter lag af OSI-modellen | Grundlæggende|
---|---|
Fysisk | |
kanaliseret | |
netværk | |
Transportere | |
session | |
Repræsentation | |
Anvendt | |
Andet anvendt | |
Liste over TCP- og UDP-porte |