IT 이야기/네트워크,보안

IPTV 기본 기술중의 기본, 멀티캐스트(Multicast)는 어떻게 동작하나?

필넷 2009. 2. 13. 10:32
반응형
IPv4 체계에서 통신하는 방식에는 3가지가 있습니다. 바로 유니캐스트, 브로드캐스트, 멀티캐스트입니다.

첫 번째, 유니캐스트는 상대측 IP주소를 목적지로 하는...(정확히 표현하면 MAC Address기반입니다) 일대일 통신방식입니다. 많은 분들이 유니캐스트에 대해서는 잘 알고 있을겁니다.

두 번째, 브로드캐스트는 내 호스트가 속한 네트웍 전체(로컬 네트웍)를 대상으로 패킷을 전송하는 일대다 통신방식입니다. 데이터를 수신할 필요가 없는 호스트들에게도 데이터가 전송되기 때문에 호스트에서 불필요한 인터럽트가 발생하게 됩니다. 그리고 브로드캐스트 패킷은 로컬네트워크에만 한정되기 때문에 라우터를 경유하지 못하는 단점이 있습니다.

그렇다면 특정그룹으로 로컬네트워크를 넘어서 일대다 통신을 하기 위해서는???
먼저, 유니캐스트 방식을 통해서도 특정 그룹으로만 패킷을 전송할 수 있습니다. 하지만 유니캐스트를 이용하게 되면 특정 그룹에 속한 호스트의 개수만큼 패킷을 복사하여 서버에서 패킷을 송신해야하는 부담이 생기게 됩니다. 같은 이유로 다수의 동일 패킷이 네트워크상에 흘러가기 때문에 네트워크 트래픽을 가중시키게 되어 비효율적입니다.

이와 같은 경우에 사용하는 통신방식이 바로 오늘 정리하고자 하는 것은 멀티캐스트입니다. 멀티캐스트도 브로드캐스트처럼 일대다 통신방식입니다. 하지만 멀티캐스트는 특정 그룹으로만 패킷을 전송하게 됩니다. 또한 브로드캐스트 방식과 달리 로컬네트워크의 경계인 라우터를 통과해서 패킷을 전송할 수 있으며 유니캐스트 방식에 비해 서버나 네트워크 트래픽에 부담을 덜 주게 됩니다. 올해부터 실시간 TV전송을 시작한 IPTV의 기본 기술중에서도 기본이라고 할 수 있습니다.

그럼 이제 멀티캐스트에 대해 좀 더 개괄적으로 정리해보겠습니다.
멀티캐스트는 IP주소체계 중에서 D Class 주소(224.0.0.0~239.255.255.255)를 이용합니다. 즉, 멀티캐스트 IP를 목적지 주소로 사용하는 패킷이 멀티캐스트 통신방식을 사용하는 패킷이 됩니다.

위에서 멀티캐스트는 라우터를 경유해서 전송이 된다고 하였습니다. 그렇다면 라우터는 멀티캐스트 패킷을 어떻게 해당하는 특정 그룹으로 전송을 하는지가 핵심이 되겠습니다. 그 핵심은 바로 IGMP(Internet Group Management Protocol)입니다.

IGMP는 라우터와 로컬네트워크상의 호스트들과의 신호제어 프로토콜로서 query message와 report message로 구성됩니다. 동작방식은 라우터에서 로컬네트워크에 존재하는 호스트들에게 1분 단위로(이 값은 설정하기 나름입니다) '멀티캐스트 그룹에 속한 호스트가 있나요?‘ 라는 의미의 query message를 던지게 됩니다. 그럼 이 메시지를 받은 호스트들은 자신이 멀티캐스트 그룹에 속해있으면 라우터로 report message를 던져서 응답하게 됩니다. 라우터에서는 이 메시지들을 받아 라우팅테이블(routing table)을 관리하게 되며, 1분 단위로 3번의 질의 후에도 응답이 없는 호스트로는 멀티캐스트 패킷을 전송하지 않게 됩니다. 따라서 3분 동안에는 해당 호스트로도 멀티캐스트 패킷이 전송되는 대역폭의 낭비가 발생하게 됩니다. 이를 해결하기 위해서 IGMPv2에서는 leave report message가 추가 되었습니다.
query message는 224.0.0.1을 목적지 주소로 하여 서브 네트워크상의 모든 호스트에게 메시지가 전달되고, report message는 224.0.0.2를 목적지 주소로 하여 서브 네트워크 상의 모든 멀티캐스트 라우터에게 응답을 합니다.
참고적으로, D Class의 주소중 일부는 예약이 되어 있는데 바로 224.0.0.1와 224.0.0.2 등은 IGMP에서 사용하기 위해 예약된 주소입니다. 이외에도 다른 프로토콜에서 사용하기 위해 예약된 주소가 더 있습니다.

[기타 예약주소들]
 224.0.0.4 - 모든 DVMRP 라우터에게 통신할 때 사용합니다.
224.0.0.5 - OSPF(Open Shortest Path First) 라우팅 정보를 로컬 네트워크의 모든 OSPF 라우터로 보내는 데 사용합니다.
224.0.0.6 - OSPF 라우팅 정보를 로컬 네트워크의 OSPF에서 지정한 라우터로 보내는 데 사용합니다.
224.0.0.9 - RIP 라우팅 정보를 로컬 네트워크의 모든 RIPv2 라우터로 보내는 데 사용합니다.
224.0.1.24 - Microsoft WINS 서버 그룹 주소입니다. WINS 서버의 자동 검색 및 복제와 동적 구성을 위해 사용합니다.

IGMP는 멀티캐스트 그룹에 속한 호스트들을 라우터에 알려주기 위한 것이 목적입니다. 즉, 호스트와 라우터간의 프로토콜입니다. 이외에도 소스 호스트로부터 목적지 호스트로의 멀티캐스트 패킷의 전달 경로를 만들기 위한 라우터간의 프로토콜로 멀티캐스트 라우팅 프로토콜(Multicast Routing Protocol)이 있습니다. 그리고 인터넷 사용자에게 멀티캐스트 데이터를 전달하기 위한 가상의 네트워크로 MBONE(Multicast backBone)도 있습니다.

멀티캐스트 라우팅 프로토콜과 MBONE에 대해서는 나중에 다시 한번 정리하겠습니다. ^^*

[관련 포스트]
2007/10/05 - [IT 노트/네트워크/보안] - Routing Protocol
2007/09/05 - [IT 노트/네트워크/보안] - IPv6

반응형