Programação multicast

A programação multicast é habilitada por meio do Windows Sockets. O Windows Sockets habilita as versões 1 (MLDv1) e 2 (MLDv2) do Multicast Listener Discovery (MLD) no IPv6 e no Protocolo de Gerenciamento de Grupo da Internet 2 (IGMPv2) e 3 (IGMPv3) por meio do uso de opções de soquete ou IOCTLs. Esta seção descreve a implementação do Windows, explica como habilitar a programação multicast usando o Windows Sockets e fornece exemplos de programação para ilustrar seu uso.

A segunda versão do IGMP, conhecida posteriormente como IGMPv2, permite que os hosts ingressem e deixem grupos multicast identificados por um endereço multicast IPv4 em um adaptador de rede específico. O Windows Sockets permite que um aplicativo ingresse e deixe esses grupos em soquetes específicos. Uma desvantagem do IGMPv2, no entanto, é que qualquer endereço de origem IPv4 unido ao grupo IGMPv2 pode transmitir a todos os membros, potencialmente inundando o grupo e tornando-o inutilizável para transmissões que exigem uma fonte primária, como uma estação de rádio da Internet. O problema com o IGMPv2 é sua incapacidade de escolher seletivamente um único endereço de origem IPv4 (ou até mesmo algumas fontes) e sua incapacidade de bloquear remetentes (como emissoras desonestos ou criminosos de negação de serviço) para um determinado grupo multicast. O IGMPv3 resolve essas deficiências.

Com o Windows Sockets e o IGMPv3, os aplicativos podem selecionar um endereço de origem IPv4 multicast específico e um par de grupos multicast. Além disso, o Windows Sockets permite que os desenvolvedores permitam seletivamente emissoras adicionais em um determinado par de origem/grupo ou permitem que os aplicativos bloqueiem emissoras específicas. O IGMPv3 tem suporte no Windows Vista e posterior.

A primeira versão do MLD no IPv6, conhecida como MLDv1, é muito semelhante ao IGMPv2 e sofre com as mesmas limitações. O MLDv1 permite que os hosts ingressem e deixem grupos multicast identificados por um endereço multicast IPv6 em um adaptador de rede específico. O Windows Sockets permite que um aplicativo ingresse e deixe esses grupos em soquetes específicos. No entanto, qualquer endereço de origem IPv6 ingressado no grupo MLDv1 pode transmitir a todos os membros, potencialmente inundando o grupo e tornando-o inutilizável para transmissões que exigem uma fonte primária. O problema com o MLDv1 é sua incapacidade de escolher seletivamente um único endereço de origem IPv6 (ou até mesmo algumas fontes) e sua incapacidade de bloquear remetentes (como emissoras desonestos ou autores de negação de serviço) para um determinado grupo multicast. O MLDv2 aborda essas deficiências.

Com o Windows Sockets e o MLDv2, os aplicativos podem selecionar um endereço de origem IPv6 multicast específico e um par de grupos multicast. Além disso, o Windows Sockets permite que os desenvolvedores permitam seletivamente emissoras adicionais em um determinado par de origem/grupo ou permitem que os aplicativos bloqueiem emissoras específicas. O MLDv2 tem suporte no Windows Vista e posterior.

Há duas abordagens que um programador de aplicativos pode adotar ao desenvolver aplicativos multicast no Windows. A primeira abordagem é baseada em alterações; as fontes multicast são adicionadas ou removidas usando opções de soquete, mesmo durante o curso da transmissão, conforme necessário. A segunda abordagem é baseada em estado final; endereços de origem e quaisquer endereços incluídos/excluídos são especificados com um IOCTL. Cada abordagem é uma prática de multicasting válida, mas os desenvolvedores podem encontrar usando opções de soquete e a abordagem baseada em alterações mais intuitiva e flexível.

Esta seção tem as seguintes páginas:

Título da página Descrição
MLD e IGMP usando soquetes do Windows Enumera as opções de soquete multicast disponíveis para uso na programação do Windows Sockets, usando uma abordagem de programação baseada em alterações. Define duas categorias de aplicativo multicast.
Comportamento da opção de soquete multicast Fornece uma tabela extensa para explicar as implicações e os requisitos de chamar opções de soquete multicast em determinada ordem.
Exemplo de programação multicast Snippet de programação que ilustra como usar opções de soquete para habilitar aplicativos multicast no Windows.
Programação multicast baseada em estado final Explica a abordagem de estado final e como usar IOCTLs para programação multicast com o Windows Sockets.
Portabilidade de aplicativos de difusão para IPv6 Fornece diretrizes para portar aplicativos de transmissão IPv4 para multicast IPv6.