Redes de Computadores II Professores: Otto Carlos Muniz Bandeira Duarte Luís Henrique Maciel Kosmalski Costa Autor: Lucas Medaber Jambo Alves Paes Streaming Video on Demand (VoD) Streaming ao vivo (Live feed) Tamanho do arquivo Restrição de tempo Escalabilidade 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 Controle social Topologias Desestruturada Swarm Cadeia Árvore Busca Índice centralizado Inundação de busca/índice Distributed Hash Table (DHT) 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 utilizadas Árvore Malha Multiple Description Coding (MDC) Stream são divididos 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, e como nó externo em outras árvores Cada description é entregue à uma árvore específica Peers são conectados em malha Em sua chegada, cada 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 Componente chave: 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: PRIME (Peer-to-peer ReceiverdrIven 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 disponíveis desde o último pedido são identificados e pedidos aos pais correspondentes (até N descriptions por timestamp) Parte aleatória dos pacotes restantes de cada timestamp são pedidos para todos os pais Número total de pacotes pedidos para cada pai é determinado pela sua 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: a árvore de entrega é formada dinamicamente enquanto o pacote atravessa a rede ○ Pouca banda: Pacotes são recebidos por outros caminhos, de outros pais. CoolStreaming PPLive.com Joost Data-driven Overlay Network Periodicamente, cada nó ○ Troca informações sobre dados disponíveis ○ Recebe dados novos ○ Envia dados Concepção data-centric 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) ○ Lista parcial com identificadores dos nós ativos no DONet Entrada de nós Nó de origem é contactado ○ Redireciona o novo nó para um nó deputy (assistente), escolhido em sua mCache Novo nó recebe uma lista de candidatos a parceiro, vinda do nó deputy Processo viável, pois Nó de origem geralmente persiste até o final da transmissão, e é conhecido por todos O redirecionamento permite uma redução de carga do nó de origem Exemplo de parceria no DONet X. Zhang, J. Liu, B. Li, and T.S. P. Yum. “Coolstreaming/DONet: A datadriven overlay network for live media streaming”, pag. 4 Nem parceiros, nem direção nas transmissões de dados são fixas Stream de vídeo dividido em vários segmentos de tamanho uniforme Buffer Map (BM) representa a disponibilidade desses segmentos Troca contínua do BM com os parceiros Buffer Map Observou-se que a latência entre nós dificilmente ultrapassa 1 minuto Considerando que cada segmento tem 1 s Janela de 120 segmentos representa o BM de um nó Para cada segmento, ‘1’ representa presença e ‘0’ ausência Número de sequência do primeiro segmento é armazenado Considera 2 pontos Deadline de cada segmento que será mostrado Banda heterogênea dos parceiros Algoritmo 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ó Anuncia sua saída Saída acidental (falha) Quando um nó falha Parceiro que detecta a falha envia a mensagem de partida 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 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 ocasionalmente coopera, mesmo que outros peers não o façam Creditos: serviços são trocados por créditos Controle social: utilizar relacionamentos do mundo real 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.