Partilhar via


Programação Multicast

A programação multicast é ativada através do Windows Sockets. O Windows Sockets habilita o Multicast Listener Discovery (MLD) versões 1 (MLDv1) e 2 (MLDv2) no IPv6 e o Internet Group Management Protocol versões 2 (IGMPv2) e 3 (IGMPv3) através 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, doravante referida como IGMPv2, permite que os hosts ingressem e saiam de grupos de multicast identificados por um endereço de multicast IPv4 em uma interface de rede específica. 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 para 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 mesmo algumas fontes), e sua incapacidade de bloquear remetentes (como emissoras desonestas ou perpetradores de negação de serviço) para um determinado grupo de multicast. O IGMPv3 colmata essas deficiências.

Com o Windows Sockets e o IGMPv3, as aplicações podem selecionar um endereço de origem IPv4 multicast e um par de grupo multicast específico. Além disso, o Windows Sockets permite que os desenvolvedores permitam seletivamente emissoras adicionais em um determinado par fonte/grupo ou permite que os aplicativos bloqueiem emissoras específicas. O IGMPv3 é suportado no Windows Vista e versões posteriores.

A primeira versão do MLD no IPv6, referida como MLDv1, é muito semelhante ao IGMPv2 e sofre das mesmas limitações. O MLDv1 permite que os hosts ingressem e saiam de grupos de multicast identificados por um endereço de multicast IPv6 em uma interface de rede específica. O Windows Sockets permite que um aplicativo ingresse e deixe esses grupos em soquetes específicos. No entanto, qualquer endereço de origem IPv6 associado ao 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 mesmo algumas fontes) e sua incapacidade de bloquear remetentes (como emissoras desonestas ou perpetradores de negação de serviço) para um determinado grupo de multicast. O MLDv2 aborda essas deficiências.

Com o Windows Sockets e o MLDv2, as aplicações podem selecionar um endereço de origem multicast IPv6 específico e um par de grupo multicast. Além disso, o Windows Sockets permite que os desenvolvedores permitam seletivamente emissoras adicionais em um determinado par fonte/grupo ou permite que os aplicativos bloqueiem emissoras específicas. O MLDv2 é suportado no Windows Vista e versões posteriores.

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 de multicast são adicionadas ou removidas usando opções de socket, mesmo durante a transmissão, conforme necessário. A segunda abordagem baseia-se no estado final; os endereços de origem e quaisquer endereços incluídos/excluídos são especificados com uma IOCTL. Cada abordagem é uma prática válida de multicasting, mas os desenvolvedores podem achar mais intuitivo e flexível o uso de opções de soquete e a abordagem baseada em alterações.

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

Título da página Descrição
MLD e IGMP usando Sockets do Windows Enumera as opções de socket multicast disponíveis para uso na programação de sockets do Windows, utilizando uma abordagem de programação orientada a alterações. Define duas categorias de aplicativos 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 numa ordem específica.
Exemplo de programação multicast Trecho 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 programar multicast utilizando Windows Sockets.
Conversão de aplicações de broadcast para IPv6 Fornece diretrizes para a portabilidade de aplicativos de difusão IPv4 para multicast IPv6.