멀티캐스트 라우팅 프로토콜
더 많은 작업
멀티캐스트 라우팅 프로토콜(Multicast Routing Protocol)은 하나의 송신자가 보낸 멀티캐스트 패킷이 그룹 수신자가 있는 네트워크에만 복제되어 도달하도록, 라우터들 사이에서 전달 트리(distribution tree)를 만들고 유지하는 프로토콜이다.
멀티캐스트 전달에는 두 층의 프로토콜이 함께 쓰인다. 호스트와 그 서브넷의 라우터 사이에서는 IGMP(IPv6 에서는 MLD)가 "이 서브넷에 어느 그룹의 수신자가 있는가"를 알린다. IGMP 는 IP 패킷(프로토콜 번호 2)에 실려 TTL 1 로 서브넷 안에서만 오가며, Query 와 Report 메시지로 가입 상태를 확인한다.[1] 그렇게 모은 가입 정보를 바탕으로 라우터와 라우터 사이에서 패킷을 어느 인터페이스로 복제해 보낼지 정하는 것이 멀티캐스트 라우팅 프로토콜이다. 그래서 IGMP 는 라우팅 프로토콜이 아니라 그룹 관리 프로토콜이고, DVMRP·MOSPF·CBT·PIM 이 라우팅 프로토콜이다.
멀티캐스트 패킷은 목적지가 그룹 주소라서 유니캐스트처럼 "목적지로 가는 다음 홉"으로 보낼 수 없다. 대신 라우터는 패킷이 송신자 쪽으로 가는 최단 경로의 인터페이스로 들어왔는지를 확인하고, 맞을 때만 다른 인터페이스로 복제한다. 이것을 역경로 전달(Reverse Path Forwarding, RPF) 검사라 하며, 고리(loop)와 중복 전달을 막는다. PIM-DM 도 범람(flooding) 중 고리를 막는 데 RPF 를 쓴다.[2]
| 구분 | 송신자 기반 트리(source tree, SPT) | 공유 트리(shared tree) |
|---|---|---|
| 뿌리 | 송신자(의 서브넷) | 그룹마다 정한 중심 라우터(CBT 의 코어, PIM-SM 의 RP) |
| 트리 수 | 송신자 × 그룹마다 하나. 상태가 O(S × G) 로 늘어난다 | 그룹마다 하나. 상태가 O(G) 이다 |
| 경로 | 송신자에서 수신자까지 최단 경로 | 중심을 거치므로 더 돌아갈 수 있다 |
| 쓰는 프로토콜 | DVMRP, MOSPF, PIM-DM, PIM-SM 의 SPT | CBT, PIM-SM 의 RP 트리 |
CBT 설계 문서는 송신자가 많은 응용(분산 시뮬레이션, 다자간 게임)에서 공유 트리가 라우터 상태를 크게 줄인다는 점을 공유 트리의 동기로 든다.[3]
| 프로토콜 | 방식 | 트리 | 특징 |
|---|---|---|---|
| DVMRP(Distance Vector Multicast Routing Protocol) | 거리 벡터, 범람 후 가지치기 | 송신자 기반 | RIP 를 바탕으로 만든 최초의 인터넷 멀티캐스트 라우팅 프로토콜. 자체 경로표를 따로 가진다. 메시지를 IGMP 형식에 실어 보낸다[4] |
| MOSPF(Multicast OSPF) | 링크 상태 | 송신자 기반 | OSPF 에 그룹 멤버십 LSA 를 더해 각 라우터가 그룹별 최단 경로 트리를 직접 계산한다. OSPF 망 안에서만 쓴다 |
| CBT(Core-Based Tree) | 명시적 가입 | 공유(양방향) | 그룹마다 코어 라우터를 두고 수신자 쪽 라우터가 코어를 향해 JOIN_REQUEST 를 보내 트리에 붙는다[3] |
| PIM-DM | 범람 후 가지치기 | 송신자 기반 | 유니캐스트 경로표를 그대로 써 모든 멀티캐스트 라우터에 범람하고, 수신자가 없는 쪽은 Prune 으로 잘라 낸다[2] |
| PIM-SM | 명시적 가입 | 공유(단방향) + 송신자 기반 | 그룹마다 RP(Rendezvous Point)를 뿌리로 하는 공유 트리를 만들고, 필요하면 송신자별 최단 경로 트리로 옮겨 간다[5] |
- 밀집 모드(dense mode) - 수신자가 망 곳곳에 많다고 가정한다. 일단 모든 곳에 흘려보내고(flood) 필요 없는 가지를 잘라 낸다(prune). DVMRP, PIM-DM 이 여기에 든다. 잘라 낸 가지는 시간이 지나면 다시 자라므로 범람과 가지치기가 주기적으로 되풀이된다
- 희소 모드(sparse mode) - 수신자가 드물게 흩어져 있다고 가정한다. 원하는 라우터가 명시적으로 가입(Join)할 때만 트리를 늘린다. CBT, PIM-SM 이 여기에 든다. 넓은 망에서 대역폭 낭비가 적다
| 구분 | IGMP | 멀티캐스트 라우팅 프로토콜 |
|---|---|---|
| 오가는 곳 | 호스트와 같은 서브넷의 라우터 사이 | 라우터와 라우터 사이 |
| 하는 일 | 그룹 가입·탈퇴와 가입 상태 확인(Query, Report, Leave) | 그룹 수신자가 있는 곳까지 전달 트리를 만든다 |
| 예 | IGMPv1·v2·v3, IPv6 의 MLD | DVMRP, MOSPF, CBT, PIM-DM, PIM-SM |
- ↑ 「Internet Group Management Protocol, Version 3」(RFC 3376), IETF, https://www.rfc-editor.org/rfc/rfc3376, 확인일: 2026-11-04.
- ↑ 2.0 2.1 「Protocol Independent Multicast - Dense Mode (PIM-DM): Protocol Specification (Revised)」(RFC 3973), IETF, https://www.rfc-editor.org/rfc/rfc3973, 확인일: 2026-11-04.
- ↑ 3.0 3.1 「Core Based Trees (CBT) Multicast Routing Architecture」(RFC 2201), IETF, https://www.rfc-editor.org/rfc/rfc2201, 확인일: 2026-11-04.
- ↑ 4.0 4.1 「Distance Vector Multicast Routing Protocol」(RFC 1075), IETF, https://www.rfc-editor.org/rfc/rfc1075, 확인일: 2026-11-04.
- ↑ 「Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)」(RFC 7761), IETF, https://www.rfc-editor.org/rfc/rfc7761, 확인일: 2026-11-04.