Sumário Comunicação Multicast Multicast Application-Level Multicast October 20, 2008 Algoritmos Epidémicos Comunicação Multicast Soluções Multicast designa o envio duma mensagem para múltiplos destinatários. Pode ser assegurada a de 2 níveis: Rede IP Multicast Em IPv4 impõe um peso administrativo significativo. Aplicação Application Level Multicasting Faz uso de redes overlay, i.e. redes virtuais construídas sobre a Internet. O próprio Mbone é uma rede overlay, embora funcione ao nível de rede. Application-level Multicast Construir uma spanning tree dum grafo cujos nós são os nós que fazem parte do grupo e cujos arcos são as ligações entre esses nós numa rede virtual (overlay). Para fazer o multicast duma mensagem basta enviá-la para a raiz da spanning tree. A mensagem é então difundida, usando unicast, a partir da raiz em direcção às folhas. Protocolos Epidémicos Passar a informação a alguns nós vizinhos escolhidos aleatoriamente os quais propagam a informação (passando-a a alguns nós vizinhos escolhidos aleatoriamente).
Application-layer Multicast (ALM) Overheads Problema ALM usa uma rede virtual (overlay), o que pode conduzir a um uso menos eficiente da rede- End host B A Ra Rb 7 50 40 Overlay network Internet Router Rc 5 Rd Link stress Quantas vezes uma mensagem atravessa o mesma ligação da rede subjacente? Mensagens de B para C precisam de atravessar o link (Rc, Rd) duas vezes. Link stretch Relação entre a distância entre nós na árvore de multicast e a distância na rede subjacente. O custo do caminho entre BC na árvore de multicast é 7, vs 47 na rede subjacente. C D Exemplo: Switch Trees (/4) Problema A implementação de algoritmos óptimos, p.ex. minimum-spanning trees (MST), não é prática. O protocolo é complexo. A MST resultante pode exceder a capacidade dos nós/ligações. Ideia Alterar a topologia da árvore multicast de forma incremental: Respeitando as limitações em termos de recursos; Melhorando a métrica de desempenho escolhida, p.ex. custo. Limitação Pressupõe que a árvore de multicast foi previamente criada. P.ex. um nó que se associa à árvore, fá-lo como filho da raiz. Exemplo: Switch Trees (2/4) Em princípio um nó poderá mudar o seu pai para qualquer nó que não faça parte da sub-árvore de que é raiz. Impondo restrições aos nós candidatos obtém-se diferentes classes de protocolos: A selecção dos nós pode usar diferentes métricas, p.ex.: Custo da árvore; Atraso para a raiz (fonte); Exemplo: Switch Trees (3/4) Banana Tree Protocol (BTP) Protocolo do tipo one-hop switch. Quando um nó se junta ao grupo multicast, liga-se à raiz da árvore. Se a raiz não existe, o nó passa a ser a raiz. Se um nó falhar, a árvore de que é raiz parte-se: os seus filhos deverão ligar-se directamente à raiz do grupo multicast. Para evitar sobrecarregar a raiz, podem ligar-se ao pai do nó que falhou, i.e. ao seu nó avô. Para mudar de pai, um nó tem que pedir autorização ao novo pai, o qual pode aceitar ou rejeitar o pedido.
Exemplo: Switch Trees (4/4) Preliminares BTP: Ciclos a Tentativas simultâneas de vários nós para mudar de pai podem conduzir a ciclos. Pode ser evitado, se um nó que está no processo de alteração de pai rejeitar pedidos de autorização. b Informação desactualizada pode conduzir à formação de ciclos. Pode ser evitado incluindo informação sobre a topologia (nó pai, no caso de switch one-hop) no pedido de autorização. Objectivo Disseminar informação pelos nós (réplicas) dum sistema distribuído. Pressuposto Não há conflitos I.e., múltiplos nós não tentam actualizar a mesma informação ao mesmo tempo. Ideia A actualização da informação é feita passando-a a alguns dos nós vizinhos. Estes passam-na aos seus vizinhos de forma indolente (lazy), não imediatamente. Eventualmente, todos os nós com cópias da informação actualizá-la-ão. Classes de Soluções Anti-Entropia Anti-entropia Cada réplica periodicamente escolhe uma réplica aleatoriamente, e permuta alterações da informação. Baseado em rumores (Gossip) Uma réplica que foi actualizada passa a actualização a algumas outras réplicas. Ideia Periodicamente um nó P escolhe outro nó Q aleatoriamente e troca informação. Alternativas para a Troca de Informação Push P envia a Q as suas actualizações. Pull P extrai de Q as suas actualizações. Push-Pull P e Q permutam actualizações. Após esta permuta P e Q têm a mesma informação.
Comparação de Estratégias Push Propagação de alterações na fase final relativamente lenta. As alterações são propagadas apenas por nós que têm informação nova. À medida que a informação se vai difundindo, a probabilidade de seleccionar um nó sem a informação vai diminuindo Pull Propagação de alterações na fase final tende a ser bastante rápida. À medida que a informação se vai difundindo, a probabilidade de seleccionar um nó com a informação nova, vai aumentando. Push-Pull Combina as vantagens das 2 aproximações anteriores. Para um grafo aleatório são necessários O(log(N)) passos (round) para difundir actualizações a todos os N nós do grafo. Gossiping Ideia Variante de algoritmos epidémicos, na qual o nó P perde a motivação para difundir uma actualização, se ao contactar outro nó, Q, este já a tiver recebido. Permite uma rápida e eficiente difusão de actualizações. Não garante que todos os nós sejam actualizados. Seja /k a probabilidade de P deixar de difundir uma actualização se Q já a tiver recebido. A fracção de nós, s, que não receberá a actualização é dada por: s = e (k+)( s) ln(s) - 2.5-5.0-7.5-0.0-2.5-5.0 2 3 4 5 6 7 8 9 0 2 3 4 5 k Algoritmos Epidémicos: Discussão Algoritmos Epidémicos: Remoção de informação São escaláveis: Sincronização entre nós localizada. São robustos: Toleram facilmente falhas em nós; Mesmo que cada nó tenha uma visão parcial do sistema apenas, se esta visão for continuamente actualizada o resultado é um grafo aleatório. Não suportam a remoção directa de informação. Solução Actualizar a informação substituindo-a por um death certificate. Problema Quando remover o death certificate? Alternativa Remover o death certificate só depois de executar um algoritmo que garante que foi propagado a todos os nós. Semelhante a garbage-collection. Alternativa 2 Remover o death certificate após um determinado intervalo de tempo. Assume que a sua propagação é feita num tempo máximo.
Algoritmos Epidémicos: Aplicações Disseminação de Informação Sem dúvida a aplicação mais importante. Agregação de Informação Requer a formulação do problema em termos da disseminação de informação. Valor Médio duma Variável Seja x i a variável no nó i. O valor médio das variáveis mantidas em todos os nós pode ser obtido através da permuta de valores entre nós e da substituição do seu valor usando a fórmula: x i, x j (x i + x j )/2 Questão Qual o valor calculado se x 0 = e x i = 0, i 0?