IGMP【Internet Group Management Protocol】
概要

マルチキャストとは、同一のデータを複数の宛先に同時に配信する通信方式であり、送信側が受信者ごとに個別にパケットを送る必要がない。IGMPはこのマルチキャストをIPv4上で実現する際に、どのホストがどのグループアドレス(マルチキャストグループ)宛てのデータを受信したいかをルータに伝える役割を持つ。送信元から見れば、グループアドレス宛てに1つのパケットを送るだけで配信が完了する点が利点である。
各ホストはルータに対してグループへの参加報告を送信し、ルータは定期的な問い合わせによって参加状況を確認する。同一ネットワーク内では代表となるルータ(クエリア)が選出され、グループ情報の収集をまとめて担当する。経路上のルータはグループに参加しているホストが存在する方向にのみパケットを複製・転送するため、無関係なネットワークへの不要な転送が避けられる。配信されるデータは主にUDPデータグラムである。
IGMPには複数のバージョンがあり、初期のIGMPv1には離脱の明示的な通知が無く、一定時間応答が無いことをもって脱退と判断していた。IGMPv2では離脱通知が追加され、不要な転送を早期に止められるようになった。さらにIGMPv3では、特定の送信元からのデータのみを受信対象とするソース指定型のマルチキャストに対応し、グループ管理の精度が高められている。
IGMPおよびIPv4マルチキャストは、単一の管理主体が運用する企業内ネットワークやケーブルテレビ、IP放送といった専用の閉域ネットワークで映像のリアルタイム配信などに利用される。一方、インターネット全体では、経路制御の複雑さやルータの対応状況の差、送信元の偽装といったセキュリティ上の懸念から事実上利用することはできない。IPv6ネットワークでは、IGMPに代わってICMPv6を拡張した「MLD」(Multicast Listener Discovery)という機能がグループ管理を担い、近隣探索の仕組みと連携しながら参加情報のやり取りが行われる。