멀티캐스트 프로그래밍
멀티캐스트 프로그래밍은 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 멀티캐스트로 포팅하기 위한 지침을 제공합니다. |