IGMP

From IT Wiki
Revision as of 16:28, 3 February 2022 by 박달 (talk | contribs)


Internet Group Management Protocol

서브넷(로컬 네트워크) 상의 멀티캐스팅 멤버십 제어(그룹 관리)를 위한 프로토콜

  • 하나의 라우터와 여러 호스트로 구성되는 서브 네트워크(Sub-Network) 상에서
  • 호스트들이 어떤 멀티캐스트 그룹에 속하는 가를 라우터에게 알리기 위한
  • 일종의 그룹 관리용 신호 프로토콜(Signaling Protocol)

통신계층상의 위치

  • IGMP,ICMP 등은 데이터 전송용 프로토콜이 아니고, 네트워크 상에 이벤트 또는 변화를 알리는데 사용되는 제어용 프로토콜임

IGMP의 통신계층 상의 위치.png

동작 개요

  • 멀티캐스트 라우터는, 주기적으로, 서브넷 호스트 그룹들(224.0.0.1 : 멀티캐스트 주소)에게 IGMP Query 메시지를 전송
  • 호스트는, 이러한 Query 요청 메시지에 응답하면서, 자신이 가입하려는 그룹 정보(멀티캐스트 주소)를 IGMP Report 메시지를 통해 라우터에게 알려줌
  • 한편, 호스트는 자체적으로, IGMP Query 메시지(라우터 -> 호스트) 없이도, 먼저 Report 메시지를 라우터에게 전송도 가능

IGMP 메시지 종류

  • Membership Query (라우터 -> 호스트)
    • 그룹 멤버십 조사 (monitoring) : 멤버십 질의 메시지를 보내서 응답을 기다림
    • 일정 횟수 이상 응답이 없거나, 탈퇴 메세지를 주면, 라우터는 해당 호스트를 그룹에서 탈퇴 시킴
  • Membership Report (호스트 -> 라우터)
    • 그룹 가입 (joining): 그룹에 가입하고자 하는 요청을 라우터에 보고
    • 멤버십 연속 (member continuation) : 계속해서 해당 그룹에 남기를 원하는 보고
  • Leave Report (호스트 -> 라우터)
    • 그룹 탈퇴 (leavinig): 더이상 그룹에 남아있지 않고 탈퇴함

IGMP 패킷

IGMP 패킷.jpg

  • IPv4 헤더 내 IGMP 관련
    • 프로토콜 ID : 2  ☞ IANA의 공식 PPP Numbers
    • IGMP의 TTL  : 1
      • 로컬 서브네트워크를 벗어나면 자동 폐기됨
    • IPv4 옵션   : Router Alert 옵션이 사용됨
  • 유형(type) (8 비트) 
    • 0x11 : Membership Query
    • 0x12 : IGMP v1 Membership Report [RFC 1112]
    • 0x16 : IGMP v2 Membership Report [RFC 2236]
    • 0x17 : IGMP v2 Leave Group       [RFC 2236]
    • 0x22 : IGMP v3 Membership Report [RFC 3376]

IGMP 버전

  • IGMPv1 : Membership Query, Membership Report [RFC 1112]
  • IGMPv2 : Membership Query, Membership Report, Leave Report [RFC 2236]
    • IGMPv1에 그룹 탈퇴(Leave Report) 기능 추가
    • 또한, 그룹 탈퇴를 좀더 확인하기 위한 Group Specific Query 메세지도 추가됨
  • IGMPv3 : Membership Query, Membership Report [RFC 3376]
    • SSM(Source-specific Multicast) 기능 추가
    • source filter 모드
      • include 모드 : 명시한 모든 source list를 포함
      • exclude 모드 : 명시한 source list를 제외한 기타 모든 source들을 포함
      • include null : 어떠한 source에서 입력된 해당 그룹에 대해 수신 안함
      • exclude null : 모든 source에서 입력된 해당 그룹에 대해 join

기타 기능

  • IGMP Snooping
    • IGMP Snooping은 라우터와 호스트 사이에 있는 스위치가 IGMP 메세지들을 들을 수 있게 하는 기능
  • IGMP Querier Election
    • 동일 LAN에 여러 멀티캐스트 라우터가 있으면, IPv4 주소 중 가장 낮은 주소를 갖는 라우터가 Querier 역할을 집중하게 함

관련 표준

  • RFC 1112 (IGMP v1, Host extensions for IP Multicasting)
  • RFC 2236 (IGMP v2, Internet Group Management Protocol, Version 2)
  • RFC 3376 (IGMP v3, Internet Group Management Protocol, Version 3)