멀티캐스트

컴퓨터 네트워크에서 멀티캐스트()란 한 번의 송신으로 메시지나 정보를 목표한 여러 컴퓨터에 동시에 전송하는 것을 말한다. 이 때 망 접속 형태가 요구할 경우에 한해, 자동으로 라우터와 같은 다른 네트워크 요소들에 메시지의 복사본이 생성된다.

멀티캐스트는 보통 IP 멀티캐스트 형태로 구현되는데, 이는 스트리밍을 위한 인터넷 프로토콜 응용 프로그램(Internet Protocol application) 및 인터넷 텔레비전에서 주로 사용된다. IP 멀티캐스트에서 멀티캐스트는 주로 IP 라우팅 단계에서 구현되며, 이 때 라우터는 데이터그램을 멀티캐스트 대상 주소로 보내기 위한 최적의 전송 경로를 생성한다.

데이터 링크 계층(Data link layer)에서 멀티캐스트는 일대다 전송을 의미 하는데, 이러한 전송의 종류로는 이더넷 멀티캐스트 어드레싱(Ethernet Multicast Addressing), 비동기 전송 방식(Asynchronous Transfer Mode, ATM)의 점대다 가상 회선(point-to-multipoint virtual circuits, P2MP), 그리고 인피니밴드 멀티캐스트(Infiniband multicast)가 있다.

IP 멀티캐스트
IP 멀티캐스트는 네트워크상의 IP 인프라를 통해 일대다 통신을 하기 위한 기술이다. 이는 수신자의 수와 종류에 대한 선행 지식을 요구하지 않음으로써 더 많은 수신자로의 전송을 가능하게 한다. 멀티캐스트는 소스로부터 패킷을 한 번만 전송하게 함으로써 네트워크 인프라를 효율적으로 사용하며, 이는 많은 수신자들에게 전송할 필요가 있을 때도 마찬가지이다. 네트워크상의 각 노드들은 필요한 경우에만 여러 수신자에 도달하는 패킷을 복제한다.

멀티캐스트 주소를 사용하는 가장 일반적인 전송 계층 프로토콜(transport layer protocol)은 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)이다. UDP는 전송 과정에서 데이터그램이 누락되거나 순서가 뒤바뀌는 경우도 있어 신뢰성이 낮다. IP 멀티캐스트 상에서 손실을 감지하고 재전송하기 위해, 프라그마틱 제네럴 멀티캐스트(Pragmatic General Multicast, PGM)와 같은 신뢰할 수 있는 멀티캐스트 프로토콜이 개발되었다.

IP 멀티캐스트는 기업, 증권거래소, 그리고 멀티미디어 컨텐츠 전달 네트워크 등에서 광범위하게 이용된다. 원격 학습이나 원격 화상 회의와 같은 IPTV 응용 프로그램이 일반적으로 기업에서 사용되는 IP 멀티캐스트이다.

2006년 기준으로, 멀티캐스트를 보다 큰 네트워크로 확장하는 노력은 계산의 복잡성으로 인해 간단한 경우의 단일 소스 멀티캐스트(single-source multicast)에 집중된다.

IP 멀티캐스트를 사용할지라도, 라우터에 걸리는 큰 요구조건들은 많은 수의 트리를 사용하는 응용 프로그램들을 동작하지 않게 한다. 각 개인이 최소 하나 이상의 구독자(subscriber) 트리를 필요로 하는 프레즌스 정보(Presence information)를 예로 들어보자. 수백 만의 전송자와 멀티캐스트 그룹으로 확장 가능한 IP 멀티캐스트 모델이 아직 구현되지 않았으므로, 일반적인 멀티캐스트 응용 프로그램을 실현하는 것은 아직 불가능하다. 이러한 이유와 경제성으로 인해, IP 멀티캐스트는 상업적 목적의 인터넷 백본(Internet backbone)에서는 일반적으로 잘 사용되지 않는다.

멀티캐스트 기술
IP 멀티캐스트에 기반을 두지 않는 다른 멀티캐스트 기술들이 더 널리 사용된다. 특히 인터넷 릴레이 챗(Internet Relay Chat, IRC)은 더 실용적이며, 다수의 소규모 그룹으로 확장이 용이하다. 이는 모든 회의 그룹을 위한 오버레이 네트워크(overlay network) 상에서 단일 신장 트리(single spanning tree)를 구현한다. 그러나 이것은 일부 그룹에게는 차선의 경로를 제공하게 된다. 또한 IRC는 IRC 네트워크의 확장을 제한하는 많은 양의 분산 상태를 유지하며, 이는 서로 연결되지 않는 여러 네트워크로 나누어지는 결과를 낳는다. 상대적으로 덜 알려진 PSYC 기술은 각 회의에 대해 맞춤형 멀티캐스트 전략을 사용한다. 또한, P2P(peer-to-peer) 기술은 여러 수신자에게 컨텐츠를 배포할 때 피어캐스팅(peercasting)으로 알려진 멀티캐스트 개념을 사용한다.

명시적 멀티유니캐스트(Explicit Multi-Unicast, Xcast)는 각각의 패킷마다 모든 목적지의 수신 주소를 부여하는 상호 교류 멀티캐스트 전략이다. 그리하여, 일반적으로 IP 패킷의 크기가 한정되어 있는 것을 고려할 때, Xcast는 많은 목적지를 가진 멀티캐스트 그룹에 사용될 수 없다. Xcast 모델은 일반적으로 통신에 참여하는 스테이션(station)들의 목록을 안다고 가정한다. 이는 실제 데이터 트래픽이 발생하기 이전에 배포 트리(distribution tree)들이 생성되고 리소스들이 네트워크 요소들에 의해 할당되는 것을 가능하게 한다.

광 매시망(optical mesh network)에서 멀티캐스트 광회선(lightpath)를 보호하는 것은 중요하게 고려되어야 할 사항이다. 멀티캐스트 트리를 보호하는 가장 직접적인 방식은, 전용 보호를 위해 링크가 분리된 백업 트리를 만드는 것이다. 가벼운 트리 안의 각각의 리프 노드(leaf node)에 대한 아크 분리 경로를 찾는 것이 훨씬 쉽다. 멀티캐스트 세션을 보호하는 근본 방법은, 각 목적지 노드로 가는 작업 경로상의 링크를 연결하는 데에 실패했을 때 백업 경로를 찾는 것이다.

응용 프로그램 계층에서의 멀티캐스트 적용  
응용 프로그램 계층 멀티캐스트 오버레이 서비스는 IP 멀티캐스트 또는 데이터 링크 계층 멀티캐스트를 기반으로 하지 않는다. 대신 멀티캐스트를 구현(시뮬레이션)하기 위해 여러 개의 유니캐스트 어플리케이션을 사용한다.

참고 문헌 

인터넷 구조
인터넷 방송
텔레비전 용어