Ch 2. IPv4(4) - 멀티캐스팅


멀티캐스트

  • 동일한 정보를 여러 사람에게 전송시 필요한 몇몇 호스트들에만 메시지를 전달하는 방법
  • 전달받을 호스트의 수만큼 데이터를 패킷을 보유해야하는 유니캐스트에 비하여 멀티캐스트는 하나의 패킷을 전송하여 라우터에서 복사하여 라우터 내 각 호스트들에게 전달하는 방식이므로 대역폭 낭비와 지연 시간을 줄일 수 있음.
  • 멀티캐스트를 지원하지 않는 라우터는 멀티캐스트를 지원하는 라우터 사이에서 유니캐스트와 같이 작동하는 터널링 기법을 사용.

멀티캐스트의 기본 요소

호스트 그룹 정의(multicast group)

  • 멀티캐스트 패킷을 수신하는 호스트들의 집합
  • 각각의 그룹은 멀티캐스트 주소로 구분

그룹 관리(group management protocol)

  • 멀티캐스트 그룹은 필요에 따라 추가, 삭제되는 동적인 구조를 갖는다.
  • 그룹 관리를 위한 새로운 메커니즘으로 IGMP사용

라우팅 경로 설정(multicast routing protocol)

  • 목적지에 도달하기 위한 경로는 다양하게 존재한다.
  • 트리를 구성하여 라우트간 빠른 경로를 탐색한다.

멀티캐스트 주소

  • IPv4 멀티캐스트 주소는 클래스 D 주소를 사용.
  • 사용가능한 범위는 224.0.0.0 ~ 239.555.555.0
  • 특정 IP주소는 예약되어 있음
    • 224.0.0.1 - 로컬 서브넷 안에 있는 모든 시스템
    • 224.0.0.2 - 로컬 서브넷 안에 있는 모든 라우터
    • 224.0.0.5 - OSPF(Open Shortest Path First)를 지원하는 모든 라우터
    • 224.0.0.9 - 모든 RIPv2 라우터

멀티캐스트 주소의 MAC주소 변환

  • 멀티캐스트 MAC 주소의 상위 25비트를 이더넷에서 멀티캐스트 전송을 위해 이미 정해진 코드인 “0000 0001 0000 0000 0101 1110 0”으로 지정.
  • 멀티캐스트 MAC 주소의 나머지 23비트는 멀티캐스트 IP 주소의 뒷부분 23비트를 복사
  • 멀티캐스트 IP 주소는 32비트이므로 5비트는 변환과정에서 사용하지 않고 버려지므로 32개의 멀티캐스트 IP주소는 같은 MAC주소로 변환됨 (원하지 않는 호스트에서 패킷을 수신할 수 있음)
  • IP 계층에서 패킷의 IP주소를 확인해서 원하지 않는 멀티캐스트 그룹의 패킷을 폐기함.(double checking)

IGMP(Multicast Group Management Protocol)

  • 멀티캐스트를 지원하는 라우터가 멀티캐스트 그룹에 가입한 네트워크 내의 호스트를 관리하기 위해 사용하는 프로토콜.
  • IP 상위 계층에 존재하며 IP 패킷으로 캡슐화한다.

IGMP 포맷

  • 타입 - IGMP 패킷의 종류를 정의.
타입 필드 이름 설명
0x11 멤버쉽 문의 멀티캐스트 라우터가 호스트들에게 멀티캐스트 그룹 사용 여부를 문의하는 메시지
0x16 멤버쉽 보고 호스트가 새로운 멀티캐스트 그룹에 가입하거나, 가입된 그룹을 계속 사용하는 것을 보고한느 메시지
0x17 그룹 탈퇴 호스트가 멀티캐스트 그룹 사용을 중단하는 경우 라우터에 보내는 메시지
  • 최대 응답 시간(Max Resp Code) - 라우터가 호스트에게 멀티캐스트 그룹 사용 여부를 묻고 난 후, 응답 메시지를 기다리는 최대 시간

    • 멤버쉽 문의 메시지에만 사용되며 그룹을 계속 사용하려는 호스트는 정해진 시간 내에 멤버쉽 보고 메시지를 라우터에게 전송해야함.
  • 체크섬 - IGMP 메시지의 오류 검사를 위한 체크섬 필드

  • 그룹 주소 - IGMP 메시지가 속한 그룹 주소

    • 멤버쉽 문의 메시지 중 그룹 한정 문의의 경우 특정 멀티캐스트 그룹 주소가 표시됨.
    • 멤버쉽 요청 중 모든 호스트에 대해 문의하는 경우 0.0.0.0으로 표시

IGMP 동작

  1. 그룹 가입

    • 호스트가 새로운 멀티캐스트 그룹에 가입하기 원하는 경우 맴버쉽 보고 메시지를 라우터로 전송
    • 호스트에서 여러 프로세스가 동일한 멀티캐스트 그룹에 가입하는 경우에도 맴버쉽 가입 메시지는 한번만 전송된다.
  2. 멤버쉽 감시

    • 호스트들이 계속 그룹 멤버쉽을 원하는지 감시하기 위해서 주기적으로 멤버쉽 문의 메시지를 전송.
    • 멤버쉽 문의 메시지를 보낼 때는 최대 응답 시간 필드에 특정 값을 부여하여 보고 메시지를 기다리는 시간 규정.
  3. 멤버쉽 응답

    • 멀티캐스트 그룹을 계속 사용하고자 하는 경우, 멀티캐스트 주소를 이용하여 라우터에 멤버쉽 보고 메시지를 보냄.
    • 멤버쉽 보고 메시지 충돌을 피하기 위해 각 호스트는 일정 시간을 기다린 후 전송한다.
    • 호스트마다 대기 시간을 다르게 하기 위해 대기 시간은 0 ~ 최대 응답 시간 사이에서 임의로 설정됨.
    • 그룹 멤버 중 하나의 호스트만 멤버쉽 응답을 하여 그룹을 유지할 수 있다.
  4. 멤버쉽 탈퇴

    • 더 이상 그룹 사용을 원하지 않는 호스트는 그룹 탈퇴 메시지를 라우터에 전송
    • 라우터는 그룹 내 모든 호스트들이 그룹을 탈퇴하고자 할 때에만 그룹을 삭제한다.
    • 그룹 탈퇴 메시지는 그룹에서 마지막으로 탈퇴하는 경우나 마지막으로 탈퇴하는지 모르는 경우에만 전송한다.

출처: 정진욱, 김현철 공저. “TCP/IP와 인터넷”, pp 57-64. 2004. (주)생능출판사

댓글