Giao thức IGMP phát triển từ giao thức Host Membership Protocol, được mô tả trong tài liệu của Deering. Giao thức IGMP có ba phiên bản verion 1, verion 2,và verion 3. IGMP phát triển từ IGMPv1 (RFC1112) đến IGMPv2 (RFC2236) và đến phiên bản cuối cùng IGMPv3 (RFC3376). Các thông điệp IGMP được gửi bên trong gói tin IP với trường protocol number bằng 2, trong đó trường TTL có giá trị bằng 1. Các gói IGMP chỉ được truyền trong LAN và không được tiếp tục chuyển sang LAN khác do giá trị TTL của nó.
Hai mục đích quan trọng nhất của IGMP là:
Thông báo cho router multicast rằng có một máy muốn nhận multicast traffic của một nhóm cụ thể.
Thông báo cho router rằng một có một máy muốn rời một nhóm multicast (nói cách khác, có một máy không còn quan tâm đến việc nhận multicast traffic nữa). Các router thường dùng IGMP để duy trì thông tin cho từng cổng của router là những nhóm multicast nào router cần phải chuyển và những host nào muốn nhận. Trước khi một host có thể nhận bất kỳ một multicast traffic nào, một ứng dụng multicast phải được cài đặt và chạy trên host đó. Sau khi một host tham gia vào một nhóm, phần mềm sẽ tính toán địa chỉ multicast và sau đó card mạng sẽ bắt đầu lắng nghe địa chỉ
multicast MAC. Trước khi một host hoặc một người dùng muốn tham gia vào một nhóm, người dùng cần phải biết nhóm nào đang tồn tại và làm thế nào để tham gia vào nhóm đó.
Đối với các ứng dụng mức doanh nghiệp, người dùng chỉ cần đơn giản nhấp vào một link trên một trang web hoặc địa chỉ multicast có thể cấu hình trước trên client. Ví dụ, một người dùng có thể được yêu cầu để log vào một máy chủ và xác thực bằng tên và người dùng. Nếu tên người dùng được xác thực, ứng dụng multicast sẽ tự động cài trên PC của người dùng, nghĩa là người dùng đã tham gia vào nhóm multicast. Khi người dùng không còn muốn dùng ứng dụng multicast nữa, người dùng phải rời khỏi nhóm. Ví dụ, người dùng đơn giản chỉ cần đóng ứng dụng multicast để rời khỏi nhóm. Đối với cơ chế
multicast, một người dùng cần phải tìm ra ứng dụng nào họ muốn chạy, địa chỉ multicast
được dùng bởi ứng dụng.
Làm thế nào một router biết được các máy cần nghe multicast traffic? Để nhận multicast traffic từ một nguồn, cả nguồn và các máy nhận đầu tiên phải gia nhập (join) vào một nhóm multicast. Nhóm này được xác định thông qua địa chỉ multicast. Một host có thể
tham gia vào một nhóm multicast bằng cách gửi các yêu cầu đến router gần nhất. Tác vụ
này được thực hiện thông qua giao thức IGMP. IGMPv1 được định nghĩa trong RFC1112 và bản cải tiến của nó, IGMPv2 được định nghĩa trong RFC2236. Khi có vài host muốn tham gia vào nhóm, giao thức PIM sẽ thông báo cho nhau giữa các router và hình thành nên cây multicast giữa các routers. IGMP và ICMP có nhiều điểm tương đồng, cùng chia sẽ một vài chức năng tương tự. IGMP cũng đóng gói trong gói tin IP (protocol number 2), nhưng IGMP giới hạn chỉ trong một kết nối lớp 2. Để đảm bảo router không bao giờ tiếp tục chuyển gói tin đi, trường TTL của IGMP luôn có giá trị bằng 1.