IGMP로 멀티캐스트 그룹 멤버십 관리하기

IGMP의 멀티캐스트 그룹 멤버십 관리 방식과 Query·Report 메시지, 버전별 기능, IGMP 스누핑 및 IPv6 MLD의 관계를 정리한다.

2026-08-14 · 최초 발행 2025-08-10

멀티캐스트 전달 경로를 결정하는 IGMP

IP 멀티캐스트는 하나의 송신자가 관심 있는 여러 수신자에게 데이터를 전달하는 방식이다. 이때 라우터는 어느 네트워크 세그먼트에 해당 그룹의 수신자가 있는지 알아야 한다. IGMP(Internet Group Management Protocol)는 호스트와 인접 멀티캐스트 라우터 사이에서 그 멤버십 정보를 관리한다.

IPv4에서는 독립된 프로토콜로 동작하며 OSI 네트워크 계층, 즉 3계층에 속한다. IPv6에서는 해당 기능이 ICMPv6에 통합되어 MLD(Multicast Listener Discovery)라는 이름으로 구현된다. 수신자가 없는 구간까지 멀티캐스트 트래픽을 보내지 않도록 제어하는 것이 핵심이다.

유니캐스트가 1:1, 브로드캐스트가 1:모두 전달이라면 멀티캐스트는 특정 그룹에 가입한 다수를 대상으로 한다. 따라서 라우터는 그룹에 속한 호스트가 있는 인터페이스만 선택해 패킷을 전달하며, 이 과정이 대역폭 낭비를 줄인다.

Query와 Report로 멤버십을 확인한다

IGMP 메시지는 라우터의 조회와 호스트의 응답을 중심으로 구성된다.

  • 멤버십 조회(Host Membership Query)는 라우터가 호스트에게 멀티캐스트 그룹 가입 여부를 묻는 메시지다. 모든 그룹을 대상으로 하는 일반 조회(General Query), 특정 그룹을 확인하는 그룹별 조회(Group-Specific Query), IGMPv3에서 추가된 그룹 및 소스별 조회(Group-and-Source-Specific Query)가 있다.
  • 멤버십 응답(Host Membership Report)은 호스트가 가입 상태를 알리는 메시지다. Query에 응답할 때뿐 아니라 호스트가 그룹에 새로 가입할 때도 전송하며, 대상 멀티캐스트 그룹 주소를 포함한다.

가입 이후 라우터가 관리하는 과정

호스트가 특정 그룹의 트래픽을 받고 싶으면 Membership Report를 전송한다. 라우터는 이를 바탕으로 멤버십 테이블을 갱신하고, 해당 인터페이스에 멀티캐스트 트래픽을 전달하기 시작한다. IGMPv1과 v2에서는 같은 그룹의 다른 호스트가 보낸 Report를 들은 호스트가 자신의 Report 전송을 억제해 중복 보고를 줄일 수 있다.

멀티캐스트 라우터호스트멀티캐스트 라우터호스트해당 인터페이스로 멀티캐스트 트래픽 전달 시작멀티캐스트 그룹 가입 결정멤버십 보고(Membership Report) 전송멤버십 테이블 업데이트

라우터는 멤버가 계속 존재하는지 확인하기 위해 주기적으로 Query를 보낸다. 일반 Query의 대상 주소는 모든 호스트 멀티캐스트 주소인 224.0.0.1이다. 이를 받은 각 호스트는 타이머를 설정한 뒤 무작위 시간 후 Report로 응답한다.

호스트2호스트1멀티캐스트 라우터호스트2호스트1멀티캐스트 라우터멀티캐스트 주소 224.0.0.1로 전송멤버십 조회(Query) 전송멤버십 조회(Query) 전송멤버십 보고(Report) 응답멤버십 보고(Report) 응답멤버십 테이블 갱신

특정 인터페이스에서 Report가 계속 수신되는 동안 라우터는 그 인터페이스로 트래픽을 보낸다. 그룹별 타이머에서 응답이 사라지면 멤버십은 종료 처리된다.

호스트가 그룹을 떠날 때의 처리 방식은 버전에 따라 다르다. IGMPv2 이상에서는 Leave Group 메시지로 탈퇴 의사를 명시할 수 있다. 라우터는 이를 받은 뒤 그룹별 Query를 보내 다른 수신자가 남아 있는지 확인한다. 응답이 없으면 해당 인터페이스의 멤버십 테이블에서 그룹을 제거하고 트래픽 전달을 중단한다. IGMPv1에는 명시적 탈퇴가 없으므로, 호스트가 Query에 응답하지 않는 방식으로 탈퇴가 처리된다.

멀티캐스트 라우터호스트멀티캐스트 라우터호스트특정 그룹에 대한 멤버 확인멀티캐스트 트래픽 계속 전달해당 인터페이스로 멀티캐스트 트래픽 중단alt[다른 멤버 있음][응답 없음]Leave Group 메시지 전송 (IGMPv2 이상)그룹별 조회 준비그룹별 조회(Group-Specific Query) 전송멤버십 테이블에서 그룹 제거

버전이 확장한 제어 범위

IGMPv1(RFC 1112)은 가입과 Query-Response 방식의 기본 구조를 제공한다. 멤버십 보고와 조회 메시지는 있지만, 명시적으로 그룹을 떠나는 기능은 없다.

IGMPv2(RFC 2236)는 Leave Group 메시지와 그룹별 조회를 추가했다. 이를 통해 명시적 탈퇴를 지원하며, 호스트 응답 시간을 단축하고 네트워크 효율성을 높였다.

IGMPv3(RFC 3376)는 소스 필터링(Source Filtering)을 도입했다. SSM(Source-Specific Multicast)처럼 특정 소스에서 오는 멀티캐스트 데이터만 수신할 수 있고, 그룹 및 소스별 조회도 가능하다. 제어 단위가 세분화되면서 보안과 멀티캐스트 제어 범위가 강화됐다.

멀티미디어와 대규모 배포에서의 사용

IPTV는 다수의 시청자에게 비디오 스트림을 전달하는 대표적인 멀티캐스트 사용 사례다. 사용자가 채널을 바꾸면 IGMP Join과 Leave 메시지가 활용되며, 많은 채널을 네트워크 부하 없이 관리할 수 있다.

IPTV 서버멀티캐스트 라우터지역 라우터 1지역 라우터 2가정 1: 채널1 시청가정 2: 채널2 시청가정 3: 채널1 시청가정 4: 시청 안함

화상 회의 시스템에서도 다수 참여자에게 오디오와 비디오 데이터를 효율적으로 전달하는 데 활용할 수 있다. 참가와 퇴장에 맞춰 IGMP 메시지를 사용함으로써 대역폭을 절약하고 네트워크 효율성을 높인다.

기업 네트워크에서는 다수 컴퓨터에 소프트웨어 업데이트를 동시에 배포할 때 멀티캐스트 그룹을 사용할 수 있다. 같은 데이터를 각 시스템에 개별 전송하지 않고 그룹 단위로 배포해 네트워크 부하를 최소화한다.

스위치가 멀티캐스트 포트를 가려내는 방식

IGMP 스누핑(Snooping)은 스위치가 IGMP 메시지를 관찰해 멀티캐스트 트래픽을 필요한 포트에만 전달하는 기법이다. 스위치의 플러딩(flooding) 동작을 최적화하므로, 특히 대규모 네트워크에서 불필요한 트래픽을 줄이고 멀티캐스트 효율성을 높인다.

IGMP 스누핑IGMP 스누핑트래픽 차단트래픽 차단멀티캐스트 소스라우터스위치포트 1: 멤버포트 2: 멤버포트 3: 비멤버포트 4: 비멤버

IPv6에서는 MLD가 같은 역할을 맡는다

IPv6 환경에서는 IGMP 기능이 ICMPv6의 일부로 통합되고, MLD가 멀티캐스트 리스너를 관리한다. MLDv1은 IGMPv2와, MLDv2는 IGMPv3와 기능적으로 유사하다. 주소 체계는 IPv6에 맞춰 바뀌지만, 수신자가 있는 네트워크 구간에만 멀티캐스트 데이터를 전달한다는 기본 원리는 같다.

IGMP멀티캐스트네트워크라우팅IPv6