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 동작
그룹 가입
- 호스트가 새로운 멀티캐스트 그룹에 가입하기 원하는 경우 맴버쉽 보고 메시지를 라우터로 전송
- 호스트에서 여러 프로세스가 동일한 멀티캐스트 그룹에 가입하는 경우에도 맴버쉽 가입 메시지는 한번만 전송된다.
멤버쉽 감시
- 호스트들이 계속 그룹 멤버쉽을 원하는지 감시하기 위해서 주기적으로 멤버쉽 문의 메시지를 전송.
- 멤버쉽 문의 메시지를 보낼 때는 최대 응답 시간 필드에 특정 값을 부여하여 보고 메시지를 기다리는 시간 규정.
멤버쉽 응답
- 멀티캐스트 그룹을 계속 사용하고자 하는 경우, 멀티캐스트 주소를 이용하여 라우터에 멤버쉽 보고 메시지를 보냄.
- 멤버쉽 보고 메시지 충돌을 피하기 위해 각 호스트는 일정 시간을 기다린 후 전송한다.
- 호스트마다 대기 시간을 다르게 하기 위해 대기 시간은 0 ~ 최대 응답 시간 사이에서 임의로 설정됨.
- 그룹 멤버 중 하나의 호스트만 멤버쉽 응답을 하여 그룹을 유지할 수 있다.
멤버쉽 탈퇴
- 더 이상 그룹 사용을 원하지 않는 호스트는 그룹 탈퇴 메시지를 라우터에 전송
- 라우터는 그룹 내 모든 호스트들이 그룹을 탈퇴하고자 할 때에만 그룹을 삭제한다.
- 그룹 탈퇴 메시지는 그룹에서 마지막으로 탈퇴하는 경우나 마지막으로 탈퇴하는지 모르는 경우에만 전송한다.
출처: 정진욱, 김현철 공저. “TCP/IP와 인터넷”, pp 57-64. 2004. (주)생능출판사