Internet Group Management Protocol
From Wikipedia, the free encyclopedia
The Internet Group Management Protocol (IGMP) is a communications protocol used to manage the membership of Internet Protocol multicast groups. IGMP is used by IP hosts and adjacent multicast routers to establish multicast group memberships.
It is an integral part of the IP multicast specification, operating above the network layer, though it doesn't actually act as a transport protocol[1]. It is analogous to ICMP for unicast connections. IGMP can be used for online streaming video and gaming, and allows more efficient use of resources when supporting these types of applications. IGMP does allow some attacks[2] [3] [4] [5], and firewalls commonly allow the user to disable it if not needed.
The Internet Protocol Suite | |
Application Layer | |
---|---|
BGP · DHCP · DNS · FTP · GTP · HTTP · IMAP · IRC · Megaco · MGCP · NNTP · NTP · POP · RIP · RPC · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · Telnet · TLS/SSL · XMPP · (more) | |
Transport Layer | |
TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) | |
Internet Layer | |
IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) | |
Link Layer | |
ARP · RARP · NDP · OSPF · Tunnels (L2TP) · Media Access Control (Ethernet, MPLS, DSL, ISDN, FDDI) · Device Drivers · (more) | |
Contents |
[edit] Architecture
A network designed to deliver a multicast service (like video) using IGMP might use this basic architecture:
IGMP is used both by the client computer and the adjacent network switches to connect the client to a local multicast router. Protocol Independent Multicast (PIM) is then used between the local and remote multicast routers, to direct multicast traffic from the video server to many multicast clients.
[edit] Standards
There are three versions of IGMP, as defined by "Request for Comments" (RFC) documents of the Internet Engineering Task Force (IETF). IGMP v1 is defined by RFC 1112, IGMP v2 is defined by RFC 2236 and IGMP v3 is defined by RFC 3376.
[edit] IGMPv2 packet structure
Defined by RFC 2236
+ | Bits 0 - 7 | 8 - 15 | 16 - 23 | 24 - 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Type | Max Resp Time | Checksum | |||||||||||||||||||||||||||||
32 | Group Address |
[edit] Host and router implementations
The IGMP protocol is implemented as a host side and a router side. A host side reports its membership of a group to its local router, and a router side listens to reports from hosts and periodically sends out queries.The Linux operating system supports IGMP. The Linux kernel at the core of the operating system only implements IGMP as host side, not router side, however a daemon such as mrouted can be used to act as a IGMP Linux router. There are also entire routing suites (such as XORP), which turn an ordinary computer into a full-fledged multicast router.
[edit] See also
[edit] References
- ^ Network Sorcery - IGMP
- ^ Spoofed IGMP report denial of service vulnerability.
- ^ Fragmented IGMP packet may promote "Denial of Service" attack.
- ^ IGMP Security Problem Statement and Requirements.
- ^ Microsoft Security Bulletin MS06-007: Vulnerability in TCP/IP Could Allow Denial of Service (913446).