Redes de Computadores II Professores: Otto Carlos Muniz Bandeira Duarte Luís Henrique Maciel Kosmalski Costa Autor: Lucas Medaber Jambo Alves Paes Introdução Tipos de Streaming Video on Demand Streaming de vídeo P2P Topologias CoolStreaming – DONet Comentários Finais O que é Streaming multimedia ? Distribuição de vídeo e áudio em fluxos contínuos e em tempo real. Tamanho do arquivo Restrição de tempo Escalabilidade Streaming Video on Demand (VoD) Streaming ao vivo (Live feed) Centralizado Descentralizado Batching Patching Exemplos YouTube CNN Pipeline Problemas Falta de confiaça Falta de escalabilidade Modelo peer-to-peer Pontos fundamentais Dinâmica dos participantes Roteamento Busca Multicast Foram criadas tecnologias para lidar com esses pontos Fairness Soluções para promover o altruísmo ○ Tit for tat ○ Créditos Topologias Desestruturada Swarm Cadeia Árvore Ciclo básico de um nó em uma rede p2p Topologia a ser escolhida depende da taxa com que o ciclo é executado Busca Índice centralizado Inundação de busca/índice Roteamento Semântico Exemplos GnuStream P2Cast BiTos Implementação Application-Layer Multicast (ALM) Rede overlay Questões principais Topologia P2P Roteamento e escalonamento dos dados Gestão dos peers participantes Abordagens comparadas Árvore Malha Multiple Description Coding (MDC) Stream é dividido Sub-streams são chamados de descriptions Podem ser decodificados independentemente Peers são organizados em diversas árvores, de acordo com sua banda disponível Cada peer é colocado como Nó interno em apenas uma árvore Nó externo em outras árvores Cada description é entregue à uma árvore específica Fornecimento de conteúdo Nós internos encaminham os pacotes para os filhos Peers formam um overlay conectado aleatoriamente Chegada do peer Recebe uma lista de possíveis pais Um certo número de pais e filhos é mantido Fornecimento de conteúdo em swarm Anúncios e pedidos de conteúdo são combinados Como determinar os pacotes que serão pedidos? Algoritmo de packet scheduling Objetivos do packet scheduling Utilizar a banda de todos os pais de modo eficaz Conseguir um bom número de descriptions Garantir o fornecimento de pacotes no tempo certo Exemplo de uso do packet scheduling PRIME - Peer-to-peer Receiver-drIven MEsh-based streaming Cada peer guarda 2 informações dos pais Pacotes disponíveis Média ponderada da banda Banda agregada de entrada é monitorada Número de descriptions (qualidade alvo N) é adaptado Algoritmo de scheduling é periodicamente invocado Pacotes com maior timestamp são identificados Pacotes restantes Parte aleatória é pedida a todos os pais Total de pacotes pedidos para cada pai Determinado pela banda disponível Balanceamento de carga Resultado final do overlay é bem parecido Cada peer recebe conteúdo de diferentes pais e envia conteúdo para diversos filhos Necessário um tempo T de atraso em relação ao playout da fonte Formação da árvore de entrega de cada pacote Árvore: a árvore de entrega para pacotes de uma description é a própria árvore overlay daquela description ○ Pouca banda: Pacotes não podem ser enviados na taxa correta para os filhos Malha: formada dinamicamente enquanto o pacote atravessa a rede ○ Pouca banda: Pacotes são recebidos por outros caminhos, de outros pais. CoolStreaming PPLive.com Joost SopCast Data-driven Overlay Network Periodicamente, cada nó ○ Troca informações sobre dados disponíveis ○ Recebe dados novos ○ Envia dados Concepção data-centric Nó sempre encaminha dados ○ Nenhum papel pré-determinado (pai/filho) A disponibilidade de dados que guia o fluxo ○ Adequada para overlays muito dinâmicos Recursos principais Fácil de implementar Eficiente Robusto Resistente Algoritmo Gossip Um nó envia uma mensagem nova para um conjunto aleatório de nós Os nós receptores fazem o mesmo no round seguinte, até a mensagem chegar a todos No DONet Utilizado para gerenciamento dos membros Fornecimento de dados é parcialmente motivado por este conceito ○ Envio de dados para fontes aleatórias causaria redundância Membership Manager Partnership Manager Scheduler X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 3 Cada nó possui Identificador único Membership cache (mCache) ○ Contém uma lista parcial com identificadores dos nós ativos no DONet Membership message Gerada periodicamente Anuncia a existência de um nó Algoritmo básico de entrada de nós Nó de origem é contactado ○ Redireciona o novo nó para um nó deputy (assistente) Nó deputy envia uma lista de candidatos a parceiro para o novo nó Viável, pois o nó de origem ○ Geralmente persiste até o final da transmissão ○ É conhecido por todos ○ Reduz sua carga devido ao redirecionamento Exemplo de parceria no DONet Nem os parceiros, nem a direção nas transmissões de dados são fixas X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 4 Stream de vídeo dividido em vários segmentos de tamanho uniforme Buffer Map (BM) representa a disponibilidade desses segmentos Nós trocam os BM com seus parceiros Permite o escalonamento quais segmentos serão pedidos de quais parceiros Considera 2 pontos Deadline de cada segmento que será mostrado Banda heterogênea dos parceiros Calcula o número de fornecedores em potencial para cada segmento Poucos fornecedores – deadline difícil de cumprir Segmentos com menos fornecedores são escolhidos primeiro Fim do algoritmo Mensagem mandada ao fornecedor com os segmentos requisitados Modos de saída de um nó Mensagem de saída Saída acidental (falha) Quando um nó falha Parceiro que detecta a falha envia a mensagem de saída daquele nó Comparação com overlay baseado em árvore X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 8 Comparação com overlay baseado em árvore X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 8 Baixo overhead de controle X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 6 Alta continuidade de playback e escalabilidade X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 6 Crescimento dos sistemas de streaming P2P Diversos sistemas estão sendo pesquisados em todo o mundo Aplicações já começam a tomar forma e ganhar a aceitação dos usuários Pode ser explorado comercialmente 1) Quais são os grandes desafios ao se fazer streaming de video, e por quê? 1) Quais são os grandes desafios ao se fazer streaming de video, e por quê? Tamanho do arquivo, pois os videos possuem tamanho muito grandes Restrição de tempo, pois o video é ao vivo Escalabilidade, para suportar milhares de usuários. 2) Cite e explique uma das soluções para promover o altruísmo em redes P2P. 2) Cite e explique uma das soluções para promover o altruísmo em redes P2P. Tit-for-Tat: um peer inicialmente coopera com outro peer, e depois responde de acordo com sua ação Creditos: serviços são trocados por créditos 3) Em qual situação uma rede desestruturada pode ser utilizada? 3) Em qual situação uma rede desestruturada pode ser utilizada? Quando a dinâmica de entrada e saída dos peers é muito alta, o esforço para se estruturar a rede se torna ineficiente 4) Qual a principal diferença entre as abordagens baseadas em árvore e malha para redes streaming P2P ? 4) Qual a principal diferença entre as abordagens baseadas em árvore e malha para redes streaming P2P ? A diferença chave entre as abordagens baseadas em árvore e malha é como a árvore de entrega de um determinado pacote é formada. Analisando uma situação onde existe pouca banda disponível para envio ○ Na abordagem em árvore, os pacotes não poderão ser enviados na taxa correta para todos os peers descendentes ○ Na abordagem em malha, seus peers descendentes poderão ainda receber pacotes por rotas alternativas, de outros pais 5) Quais são os dois pontos levados em conta pelo algoritmo escalonador do DONet, e como ele funciona? 5) Quais são os dois pontos levados em conta pelo algoritmo escalonador do DONet, e como ele funciona? O deadline de cada segmento que será mostrado e a banda heterogênea dos parceiros O algoritmo primeiro calcula o n° de fornecedores em potencial para cada segmento. Para um segmento com poucos fornecedores será mais difícil cumprir o deadline, então o algoritmo determina os segmentos com apenas um fornecedor, depois dois, e assim por diante. O fornecedor com maior banda e tempo disponível será escolhido para cada segmento Com o fim do algoritmo, será mandada para o fornecedor uma mensagem contendo os segmentos a serem pedidos.