Pergunta

Eu recentemente se tornou consciente de que há uma distinção entre IP multicast (que, aparentemente, não funciona tão bem na internet pública) e aplicação multicasting (que é aparentemente utilizado em IRC e PSYC, por http://en.wikipedia.org/wiki/Multicast )

Existe um bom tutorial sobre a implementação de multicasting de nível de aplicativo?

Eu pensei que todo o ponto de multicast era reduzir a largura de banda para os segmentos de rede comuns, por isso é difícil para mim entender o que em nível de aplicativo multicast faz.

Foi útil?

Solução

O objetivo de multicasting de nível IP é reduzir a largura de banda para os segmentos de rede comuns onde muitos usuários desejam receber o mesmo tráfego. É geralmente limitado a uma sub-rede particular e um roteador IP não irá propagar o multicast além da sub-rede. Isso é feito por razões de escalabilidade - não seria uma boa idéia para permitir que um hospedeiro para se originam pacotes multicast que são propagadas para todos os endereços IP na Internet

.

Existem maneiras diferentes de pensar de "nível de aplicação" multicasting. Uma abordagem é a construção de uma árvore multicast usando os computadores host que participam do multicast. o algoritmo de Dijkstra poderia ser usado para fazer isso (Wikipedia tem uma descrição razoável desta). No entanto, manter a lista de computadores que participam - e manter a árvore até à data - pode ser uma quantidade justa de trabalho se os anfitriões estão se unindo e deixando a rede a uma taxa substancial. E você provavelmente não tem uma boa estimativa do custo hop disponíveis no nível do aplicativo.

Outra abordagem que você deve avaliar é o alagamento algoritmo usado na consulta da rede Gnutella protocolo de roteamento. (Wikipedia também tem uma boa descrição deste.) Esta abordagem alivia a necessidade de construir uma árvore multicast, mas tem a desvantagem de gerar mais tráfego de rede. Na verdade, uma muito mais tráfego de rede, como o tráfego cresce com o quadrado do número de nodos, ou seja o (n ** 2).

Outras dicas

Outro exemplo de multicasting aplicativo está usando JGroups em Amazon EC2 ou Google App motor como eles não suportam IP multicast, mas os desenvolvedores querem usar multicast funcionalidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top