멀티캐스트에 대해서 알아보기 전에 간단하게 알아보도록 하겠습니다.
위와 같은 토폴로지가 있다고 가정하면 (실제로 Client는 더욱 많겠죠) 기존의 Unicast Routing을 사용하면 Server에서의 부하가 클 수 밖에 없었습니다. 당연히 각각의 Client로 데이터를 쏴주어야 하기 때문에 어쩔수가 없죠.
그래서 Multicast는 네트워크에 하나의 그룹을 생성하는 것입니다.
그룹을 생성하고 Client로부터 Join 메세지를 받고 그룹을 통해서 통신하는 것입니다. 즉, 기존의 unicast 를 사용할 때와는 달리 서버는 Multicast 주소로 트래픽을 생성하게 되는 것입니다. 이렇게 되면 서버의 부하가 줄어들게 되겠죠.
다시 한번 정리하면
Unicast에서는
Server -> Receiver A, Server -> Receiver B, Server -> Receiver C, Server -> Receiver D
이런식으로 트래픽을 생성해 주어야 하지만 Multicast를 사용하면
Server -> Multicast address
이렇게 부하를 줄여주는 것입니다. 또한 서버에서는 목적지의 IP를 알 필요도 없겠군요.
그래서 네트워크 부하를 아래와 같이 줄여줄 수 있습니다. 클라이언트가 증가하면 서버에서의 트래픽은 당연히 증가하겠지만 Multicast를 사용하면 동일하게 유지된다는 것입니다.
먼저 Multicast 주소에 대해 알아 보겠습니다.
Multicast는 전체적으로 Class D의 주소를 사용합니다. [224.0.0.0 - 239.255.255.255]
239.0.0.0 /8 은 사설 멀티캐스트 주소라고 하는군요.
우리가 사용하던 라우팅 프로토콜에도 Multicast가 사용되는 건 아시죠?
예를들어
224.0.0.5 , 224.0.0.6 - OSPF
224.0.0.9 - RIP
224.0.0.10 - EIGRP
그 외에도 많은 Multicast 주소가 있는데요. IANA에서 정의 해 놓은 사이트입니다.
필요하시면 확인해 보시길 바랍니다.
http://www.iana.org/assignments/multicast-addresses
IP address에 대해 간단하게 알아 봤는데요, 그렇다면 MAC address도 있겠네요 또 한번 알아보도록 하죠
Layer 2 Multicast Address는
01:00:5E:xx:xx:xx
이렇게 생겼습니다. 이제 이 주소가 어떻게 나오는지 한번 보겠습니다.
IP address의 5비트는 drop 되어 집니다. 여기서 말하는 5비트는 class D의 주소 1110 을 제외한 5비트입니다. 그러면 총 9비트가 drop된다는 말이겠네요.
하지만 이는 약간의 문제점이 있습니다. 예를들어 224.1.1.1과 225.1.1.1은 같은 Multicast Mac address로 매핑되어 집니다.
그렇다면 간단하게 두개만 변환해 보겠습니다.
224.1.1.1
1110 0000 . 0000 0001 . 0000 0001 . 0000 0001
xxxx xxxx . x000 0001 . 0000 0001 . 0000 0001
최초 9비트는 drop 되어진다고 했죠?
그렇다면 MAC address로 바꿔보겠습니다.
01:00:5E:01:01:01
225.1.1.1
1110 0001 . 0000 0001 . 0000 0001 . 0000 0001
xxxx xxxx . x000 0001 . 0000 0001 . 0000 0001
225.1.1.1
01:00:5E:01:01:01
제가 말한대로 똑같은 MAC address가 나오는 것을 볼 수 있습니다.
그렇다면 클라이언트 A가 224.1.1.1에 가입되어 있고 클라이언트 B가 225.1.1.1 에 가입되어 있다면
MAC address에 의해서는 두개의 클라이언트 모두 224.1.1.1 와 225.1.1.1에 대한 트래픽을 수신합니다.
이까지만 하고! 프로토콜과 실습은 다음에 해보고 올려드리겠습니다~