Udostępnij za pośrednictwem


Programowanie multiemisji

Programowanie multiemisji jest włączone za pośrednictwem gniazd systemu Windows. Windows Sockets umożliwiają odnajdywanie odbiorników multicast (MLD) w wersjach 1 (MLDv1) i 2 (MLDv2) w protokole IPv6 oraz w protokole zarządzania grupami internetowymi (IGMP) w wersjach 2 (IGMPv2) i 3 (IGMPv3) za pomocą opcji gniazda lub "IOCTLs". W tej sekcji opisano implementację systemu Windows, wyjaśniono, jak włączyć programowanie multiemisji przy użyciu gniazd systemu Windows i zawiera przykłady programowania ilustrujące jego użycie.

Druga wersja protokołu IGMP, zwana dalej IGMPv2, umożliwia hostom dołączanie i pozostawianie grup multiemisji zidentyfikowanych przez adres multiemisji IPv4 w określonym interfejsie sieciowym. Windows Sockets umożliwia aplikacji dołączanie i pozostawianie takich grup na określonych gniazdach. Wadą protokołu IGMPv2 jest jednak to, że każdy adres źródłowy IPv4 przyłączony do grupy IGMPv2 może przesyłać do wszystkich członków, potencjalnie zalewając grupę i co czyni go bezużytecznym dla transmisji, które wymagają podstawowego źródła, takiego jak internetowa stacja radiowa. Problem z protokołem IGMPv2 jest jego niezdolność do selektywnego wybierania pojedynczego adresu źródłowego IPv4 (lub nawet kilku źródeł), a jego niezdolność do blokowania nadawców (takich jak nieuczciwych nadawców lub sprawców odmowy usługi) dla danej grupy multiemisji. Protokół IGMPv3 rozwiązuje te problemy.

W przypadku Windows Sockets i IGMPv3 aplikacje mogą wybrać określony adres źródłowy IPv4 dla multicastu oraz parę grup multicastu. Ponadto windows Sockets umożliwia deweloperom selektywne zezwalanie na dodatkowe nadawcy w danej parze źródłowej/grupowej lub umożliwia aplikacjom blokowanie określonych nadawców. Protokół IGMPv3 jest obsługiwany w systemie Windows Vista i nowszych wersjach.

Pierwsza wersja mld na IPv6, nazywana MLDv1, jest bardzo podobna do protokołu IGMPv2 i ma te same ograniczenia. Usługa MLDv1 umożliwia hostom dołączanie do grup multiemisji i opuszczanie ich, które są zidentyfikowane przez adres multiemisji IPv6 na określonym interfejsie sieciowym. Windows Sockets umożliwia aplikacji dołączanie i pozostawianie takich grup na określonych gniazdach. Jednak każdy adres źródłowy IPv6 dołączony do grupy MLDv1 może przesyłać do wszystkich członków, potencjalnie zalewając grupę i co czyni go bezużytecznym dla transmisji, które wymagają podstawowego źródła. Problem z protokołem MLDv1 polega na niezdolności do selektywnego wybierania pojedynczego adresu źródłowego IPv6 (lub nawet kilku źródeł) oraz na niezdolności do blokowania nadawców (takich jak nieautoryzowani nadawcy lub sprawcy ataków odmowy usługi) dla danej grupy wielokrotnego przesyłania. MLDv2 dotyczy tych niedociągnięć.

W przypadku technologii Windows Sockets i MLDv2 aplikacje mogą wybierać określony par adresów źródłowych IPv6 multicast i grup multicast. Ponadto windows Sockets umożliwia deweloperom selektywne zezwalanie na dodatkowe nadawcy w danej parze źródłowej/grupowej lub umożliwia aplikacjom blokowanie określonych nadawców. Usługa MLDv2 jest obsługiwana w systemie Windows Vista i nowszych wersjach.

Istnieją dwa podejścia, które programista aplikacji może podjąć podczas tworzenia aplikacji multiemisji w systemie Windows. Pierwsze podejście jest oparte na zmianach; Źródła multiemisji są dodawane lub usuwane przy użyciu opcji gniazd, nawet w trakcie transmisji, zgodnie z potrzebami. Drugie podejście opiera się na stanie końcowym; adresy źródłowe oraz wszelkie uwzględnione lub wykluczone adresy są określone za pomocą IOCTL. Każde podejście jest prawidłową praktyką multicastingu, ale deweloperzy mogą uznać użycie opcji gniazd oraz podejścia opartego na zmianach za bardziej intuicyjne i elastyczne rozwiązanie.

Ta sekcja zawiera następujące strony:

Tytuł strony Opis
MLD i IGMP z wykorzystaniem gniazd Windows Wylicza opcje gniazda multiemisji dostępne do użycia w programowaniu Windows Sockets przy użyciu podejścia do programowania opartego na zmianach. Definiuje dwie kategorie aplikacji multiemisji.
Zachowanie opcji gniazda multicast Zawiera obszerną tabelę wyjaśniającą implikacje i wymagania dotyczące wywoływania opcji gniazd multiemisji w określonej kolejności.
Przykład programowania z użyciem multiemisji Fragment kodu programowania, który ilustruje sposób używania opcji gniazd w celu włączenia aplikacji multicast w systemie Windows.
Programowanie multiemisji oparte na stanie końcowym W tym artykule wyjaśniono podejście do stanu końcowego oraz sposób używania kodów IOCTL do programowania multiemisji w soketach Windows.
przenoszenie aplikacji rozgłaszanych do protokołu IPv6 Zawiera wskazówki dotyczące przenoszenia aplikacji rozgłaszanych IPv4 do multiemisji IPv6.