운영 중인 시스템 서버 / 스위치 등 장비 교체후 멀티캐스트 통신이 안되는 문제가 발생했다. 문제는 멀티캐스트의 일부 대역대를 스위치 장비에서 해당 제조사의 기능활용을 위해 예약해두어서 발생했다. 해당 기능 설정을 off하고 정상화했다. 문제해결하는 김에 멀티캐스트가 무엇인지 정리했다.
Multicast란?
○ 정의
Multicast group에 소속된 특정 다수에게 데이터를 전송하는 기법
○ 특징
- Multicast group 단위로 묶어 해당 그룹 host들은 동시에 데이터 수신
- UDP 사용(신뢰성 보장 x)
- Client에서 Multicast를 사용하는 어플리케이션을 시작하면 Multicast IP 주소와 Multicast MAC 주소를 라우터에 등록하여 Multicast group에 등록
- 하나의 Client에서 여러 Multicast 주소를 수용 가능
(여러 Multicast 데이터 수신 가능)
- Server가 Multicast 주소로 데이터 전송 중에 있을 경우,
중간에 Client가 끼어들어도 처음부터 데이터를 받을 수 없고
중간부터 받게 됨
○ IP 주소체계(D class IP주소)
224.0.0.0 ~ 224.0.0.255 | IETF에서 관리용으로 사용되는 대역 (RIP, EIGRP, OSPF 등) |
224.0.1.0 ~ 238.255.255.255 | 실제 인터넷에서 Multicast를 사용한 기관이나 기업에게 할당 |
232.0.0.0 ~ 232.255.255.255 | PIM 기술을 위해 사용하는 대역 |
233.0.0.0 ~ 233.255.255.255 | 하나의 AS 내에 전파를 원할 때 사용하는 대역 |
239.0.0.0 ~ 239.255.255.255 | 기관이나 기업 내부에서 사용할 수 있는 사설 Multicast 주소 |
* 224.0.0.1 : 현재 서브넷에 존재하는 Mulicast가 가능한 모든 host를 지칭
* 224.0.0.2 : 현재 서브넷에 존재하는 Multicast가 가능한 모든 라우터를 지칭
○ 프로토콜
어떤 장비와 Multicast 정보를 교환하느냐에 따라 프로토콜 구분
- IGMP: host와 라우터 간
- CGMP, IGMP Snooping: 라우터와 스위치간
- Multicasting Routing Protocol: 라우터와 라우터간
○ Unicast / Broadcast / Multicast 차이
- Unicast: 하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식 (일반적인 인터넷 응용프로그램이 채택)
- Broadcast: 하나의 송신자가 같은 서브네트워크 상의 모든 수신자에게 데이터를 전송하는 방식
- Multicast: 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식(인터넷 화상 회의 등)
=> 다중 수신자에게 동일한 데이터를 전송할 경우 유니캐스트 사용시 데이터패킷을 다수 사용자에게 여러 번 전송하기 때문에 회선부담, 브로드캐스트 사용시 하나의 트래픽으로 보내지만 No Reciever 입장에서는 불필요 트래픽 수신
(참고: http://www.terms.co.kr/multicast.htm
http://unabated.tistory.com/entry/Multicast-1-%EA%B8%B0%EB%B3%B8-%EC%9D%B4%EB%A1%A0
https://wiki.kldp.org/wiki.php/LinuxdocSgml/Multicast-HOWTO)