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. |