Share via


멀티캐스트 프로그래밍

멀티캐스트 프로그래밍은 Windows 소켓을 통해 사용하도록 설정됩니다. Windows 소켓을 사용하면 소켓 옵션 또는 IOCTL을 사용하여 IPv6 및 인터넷 그룹 관리 프로토콜 버전 2(IGMPv2) 및 3(IGMPv3)에서 MLD(멀티캐스트 수신기 검색) 버전 1(MLDv1) 및 2(MLDv2)를 사용할 수 있습니다. 이 섹션에서는 Windows 구현에 대해 설명하고, Windows 소켓을 사용하여 멀티캐스트 프로그래밍을 사용하도록 설정하는 방법을 설명하고, 사용법을 설명하는 프로그래밍 샘플을 제공합니다.

이후 IGMPv2라고 하는 두 번째 버전의 IGMP를 사용하면 호스트가 특정 네트워크 인터페이스에서 IPv4 멀티캐스트 주소로 식별된 멀티캐스트 그룹을 조인하고 떠날 수 있습니다. Windows 소켓을 사용하면 애플리케이션이 특정 소켓에 해당 그룹을 조인하고 그대로 둘 수 있습니다. 그러나 IGMPv2의 단점은 IGMPv2 그룹에 조인된 모든 IPv4 원본 주소가 모든 멤버에게 전송되어 잠재적으로 그룹이 범람하고 인터넷 라디오 방송국과 같은 기본 원본이 필요한 전송에 사용할 수 없게 만들 수 있다는 것입니다. IGMPv2의 문제는 단일 IPv4 원본 주소(또는 일부 원본)를 선택적으로 선택할 수 없으며 지정된 멀티캐스트 그룹에 대해 보낸 사람(예: 불량 방송사 또는 서비스 거부 가해자)을 차단할 수 없다는 것입니다. IGMPv3은 이러한 단점을 해결합니다.

Windows 소켓 및 IGMPv3을 사용하면 애플리케이션에서 특정 멀티캐스트 IPv4 원본 주소 및 멀티캐스트 그룹 쌍을 선택할 수 있습니다. 또한 Windows 소켓을 사용하면 개발자가 지정된 원본/그룹 쌍에서 추가 브로드캐스터를 선택적으로 허용하거나 애플리케이션이 특정 브로드캐스터를 차단할 수 있습니다. IGMPv3은 Windows Vista 이상에서 지원됩니다.

MLDv1이라고 하는 IPv6의 첫 번째 MLD 버전은 IGMPv2와 매우 유사하며 동일한 제한 사항이 있습니다. MLDv1을 사용하면 호스트가 특정 네트워크 인터페이스에서 IPv6 멀티캐스트 주소로 식별된 멀티캐스트 그룹을 조인하고 떠날 수 있습니다. Windows 소켓을 사용하면 애플리케이션이 특정 소켓에 해당 그룹을 조인하고 그대로 둘 수 있습니다. 그러나 MLDv1 그룹에 조인된 모든 IPv6 원본 주소는 모든 멤버에게 전송될 수 있으며, 잠재적으로 그룹이 범람하고 기본 원본이 필요한 전송에 사용할 수 없게 만들 수 있습니다. MLDv1의 문제는 단일 IPv6 원본 주소(또는 일부 원본)를 선택적으로 선택할 수 없으며 지정된 멀티캐스트 그룹에 대해 보낸 사람(예: 불량 방송사 또는 서비스 거부 가해자)을 차단할 수 없다는 것입니다. MLDv2는 이러한 단점을 해결합니다.

Windows 소켓 및 MLDv2를 사용하면 애플리케이션에서 특정 멀티캐스트 IPv6 원본 주소 및 멀티캐스트 그룹 쌍을 선택할 수 있습니다. 또한 Windows 소켓을 사용하면 개발자가 지정된 원본/그룹 쌍에서 추가 브로드캐스터를 선택적으로 허용하거나 애플리케이션이 특정 브로드캐스터를 차단할 수 있습니다. MLDv2는 Windows Vista 이상에서 지원됩니다.

Windows에서 멀티캐스트 애플리케이션을 개발할 때 애플리케이션 프로그래머가 수행할 수 있는 두 가지 방법이 있습니다. 첫 번째 방법은 변경 기반입니다. 멀티캐스트 원본은 필요에 따라 전송 과정에서도 소켓 옵션을 사용하여 추가되거나 제거됩니다. 두 번째 방법은 최종 상태 기반입니다. 원본 주소 및 포함/제외된 주소는 IOCTL로 지정됩니다. 각 방법은 유효한 멀티캐스팅 방법이지만 개발자는 소켓 옵션과 변경 기반 접근 방식을 보다 직관적이고 유연하게 사용할 수 있습니다.

이 섹션에는 다음 페이지가 있습니다.

페이지 제목 설명
Windows 소켓을 사용하는 MLD 및 IGMP 변경 기반 프로그래밍 방법을 사용하여 Windows 소켓 프로그래밍에 사용할 수 있는 멀티캐스트 소켓 옵션을 열거합니다. 두 개의 멀티캐스트 애플리케이션 범주를 정의합니다.
멀티캐스트 소켓 옵션 동작 멀티캐스트 소켓 옵션을 특정 순서로 호출하는 데 따른 의미와 요구 사항을 설명하는 광범위한 테이블을 제공합니다.
멀티캐스트 프로그래밍 샘플 소켓 옵션을 사용하여 Windows에서 멀티캐스트 애플리케이션을 사용하도록 설정하는 방법을 보여 주는 프로그래밍 코드 조각입니다.
최종 상태 기반 멀티캐스트 프로그래밍 최종 상태 접근 방식과 Windows 소켓을 사용하여 멀티캐스트 프로그래밍에 IOCTL을 사용하는 방법을 설명합니다.
브로드캐스트 애플리케이션을 IPv6으로 포팅 IPv4 브로드캐스트 애플리케이션을 IPv6 멀티캐스트로 포팅하기 위한 지침을 제공합니다.