2020년 1월 8일
멀티캐스트와 IGMP
I. 멀티캐스트의 개념과 멀티캐스트 라우팅 프로토콜 유형
가. 멀티캐스트의 개념
개념도 | |
개념 | 네트워크 대역폭 자원을 효율적으로 사용하기 위해 동일 데이터를 다수 노드의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 트래픽 전달 프로토콜 |
나. 멀티캐스트 라우팅 프로토콜 유형
구분 | 라우팅 프로토콜 유형 | 프로토콜 설명 |
---|---|---|
송신자 기반 트리 (Source-based Trees) | DVMRP (Distance Vector Multicast Routing Protocol) | – 각 목적지별 최단 경로 브로드캐스트 트리 생성 – 각 목적지들은 하나의 패킷만 수신하도록 보장 |
MOSPF (Multicast Open Shortest Path First) | – OSPF 프로토콜의 확장 프로토콜 (다익스트라) – OSPF 영역 내 모든 라우터는 같은 최단경로 트리 – 노드가 밀집되고 대역폭이 충분한 환경에 사용 | |
PIM-DM (Protocol Independent Multicast Dense Mode) | – 각 라우터가 멀티캐스트에 참여 가능성 높을 때 – Flood and Prune 메커니즘: 입력 멀티캐스트 패킷을 다른 모든 인터페이스에 전파 – 멀티캐스팅이 불필요한 곳마다 가지치기(Prune) | |
그룹 공유 트리 (Group Shared Trees) | CBT (Core-Based Tree) | – 랑데뷰 라우터만 그룹에 대한 최적 트리를 구성, 각 그룹에게 전송 – 송신측에서 랑데뷰 라우터에 데이터 전송 후 랑데뷰 라우터가 그룹 전체에 전송 |
PIM-SM (Protocol Independent Multicast Sparse Mode) | – 노드가 분산되어 있고, 낮은 대역폭 환경에 사용 – 각 라우터가 멀티캐스팅에 참여 가능성이 낮을 때 사용 – Explicit Group Join 메커니즘: 모든 호스트가 멀티캐스팅 원하지 않다고 가정 – 입력 멀티캐스트 패킷을 어떠한 인터페이스에도 포워딩하지 않음 – 필요 시 그룹 공유 트리에 각 수신자가 Join |
II. IGMP의 동작과적과 메시지 유형
가. IGMP의 동작 과정
- IGMP는 라우터와 네트워크 상 호스트와의 신호제어 프로토콜로 Query와 Report Message로 구성
- 라우터에서 네트워크에 존재하는 호스트들에게 주기적으로 Query Message를 전송하여 멤버십여부를 조사하고, 호스트는 라우터에게 Report Message를 전송하여 멤버십 여부 응답
- 라우터에서는 Report Message를 받아 멤버십을 관리하며, 무응답 호스트는 관리 그룹에서 제외
나. IGMP의 메시지 유형
구분 | 메시지 유형 | 메시지 기능 설명 |
---|---|---|
그룹 가입 (Membership Report) | – 호스트는 그룹에 가입하기 위해 가입 요청 메시지 (Membership Report)를 멀티캐스트 라우터에 송신 | |
일반 질의 메시지 (General Query) | – 시스템이 갑자기 종료하여 탈퇴 메시지를 보내지 못할 상황에 대비General query 전송 – General query 그룹주소는 0.0.0.0으로 정의 | |
– 호스트가 탈퇴를 원하지 않으면 Membership Report 전송하여 그룹 유지 – 호스트가 탈퇴를 원하면 응답 메시지를 전송하지 않고, 라우터에서는 응답 메시지가 없으면 해당 호스트를 그룹에서 삭제 | ||
그룹 탈퇴 (Leave Report) | – 탈퇴 요청 시 바로 탈퇴시키지 않음 – 호스트와 session 기반 메시지 전송하고 있는 그룹이 있을지 모르기 때문에 유지 | |
– 호스트가 진짜 종료를 원하는지 확인하기 위해 라우터에서 Special Query(특별 질의) 전송 | ||
– 호스트가 탈퇴를 원하지 않으면 Membership Report 전송하여 그룹 유지 – 호스트가 탈퇴를 원하면 응답 메시지를 전송하지 않고, 라우터에서는 응답 메시지가 없으면 해당 호스트를 그룹에서 삭제 |
- IGMPv1의 경우 멀티캐스트 수신 호스트가 없음에도 불구하고 타이머 (Expire Timer)가 만료되는 최대 3분동안 불필요 멀티캐스트 스트림을 서브넷에 계속 전송하는 단점 존재
- 이를 해결한 것이 IGMPv2이며, IGMPv2에서 서브넷에서 멀티캐스트 그룹을 마지막으로 떠나는 호스트는 반드시 라우터에게 탈퇴(Leave) 메시지를 전달하여 더 이상의 멀티캐스트 수신을 원하는 호스트가 없음을 알림
- IGMPv3에서는 SSM(Source Specific Multicast) 기능 제공
III. 효과적인 네트워크 사용을 위한 멀티캐스트 토폴로지
- 멀티캐스트는 라우터 간 멀티캐스트 프로토콜과 라우터-노드 간 IGMP를 통해 효과적으로 트래픽 전송