5. Roteamento

Como já foi visto anteriormente, a realização de multicast depende de gerenciamento de grupo. Foram mostradas maneiras de se criar e destruir grupos, além dos mecanismos que permitem os processos participar e abandonar os mesmos. Estes mecanismos não importam muito aos algoritmos de roteamento. O que realmente importa é que quando um processo passa a participar de um grupo ele informa a seu host sobre este fato. É importante que os roteadores saibam quais de seus hosts pertencem a quais grupos. Tanto os hosts podem informá-lo sobre eventuais mudanças, como podem ser consultados pelo mesmo periodicamente. Roteadores avisam a seus vizinhos, de modo que a informação se propaga pela sub-rede.

Para realizar multicast, cada roteador calcula uma spanning tree cobrindo todos os outros roteadores na sub-rede. Por exemplo, na figura 5.1 abaixo tem-se uma sub-rede com dois grupos (1 e 2). Alguns roteadores estão associados a hosts que pertençam a um ou ambos os grupos, conforme indicado na figura. A spanning tree do roteador mais a esquerda pode ser também visualizada na seqüencia em amarelo

Rede Hipotética e Construção das Spanning Trees

Figura 5.1 - Exemplo de construção da spanning tree

Quando um processo envia um pacote multicast a um grupo, o primerio roteador examina sua spanning tree e a poda, removendo todas as linhas que não levam a hosts que sejam membros do grupo. Na figura acima, pode-se visualizar a árvore resultante para o grupo 1 (em vermelho) e para o grupo 2 (em azul). Pacotes multicast são repassados apenas pelas s spanning trees apropriadas.

Outras técnicas de corte das spanning trees podem ser utilizadas. O algoritmo de roteamento vetor distância, por exemplo, utiliza-se do algoritmo básico reverse path forwarding.

Um alternativa diferente utiliza-se de core-base trees. Neste caso, uma única spanning tree por grupo é computada, com a raiz perto do meio do grupo(core). Para enviar uma mensagem multicast, o host deve enviá-la ao core que então faz o repasse do pacote pela spanning tree.

InícioAnteriorPróximo