View
105
Download
0
Category
Preview:
Citation preview
VÍDEO EM REDES PAR-A-PARRafael Kikuchi
UNIVERSIDADE FEDERAL DO RIO DE JANEIROESCOLA POLITÉCNICADISCIPLINA: Redes de Computadores II (EEL879)PROFESSORES: Otto Duarte e Luís Henrique Costa
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Vídeo e Internet
Popularização da difusão de fluxo contínuo (streaming) de vídeo na Internet YouTube, Justin.tv, SopCast
Vídeos com melhor definição Maior demanda de banda passante
Qualidade de experiência Menos tempo de armazenamento em buffer Reprodução sem interrupções
Motivação
Modelo Cliente-Servidor Crescente número de usuários Custo elevado com banda passante Pouco escalável
Motivação
Redes par-a-par (P2P) Compartilhamento de recursos entre os
pares Altamente escalável Sistemas de compartilhamento de
arquivos já bem estabelecidos (BitTorrent)
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Desafios
Vídeo em sistemas par-a-par Como dividir o vídeo em blocos para
distribuir entre os pares? Como transmitir o conteúdo de forma
eficiente e, ao mesmo tempo, priorizar os blocos em reprodução?
Solução
Codificação do vídeo Múltiplos Descritores (MDC) Codificação em Camadas (Layered
Coding)
Múltiplos Descritores (MDC) Divisão do vídeo em descritores
independentes Reprodução independente
Divisão dos descritores em blocos de tempo (description chunks)
Múltiplos Descritores (MDC)
Description Chunk
Descritores
...
...Tempo
Vídeo Codificado
Múltiplos Descritores (MDC) Nós podem trocar informações
referentes ao mesmo período de tempo (descritores diferentes).
Prioridade para o conteúdo de blocos ainda sem descritores – evita-se interrupções de reprodução.
Múltiplos Descritores (MDC)
Fonte
Codificação em Camadas
Ao invés de descritores independentes, o vídeo é divido em camadas (layers) hierarquicamente dependentes. Sistema de prioridades – camadas
inferiores devem estar disponíveis a todos os nós
Mais eficiente em termos de compactação Menos uso de banda passante
Camadas
Dependência
...
...
Vídeo Codificado
Tempo
Codificação em Camadas
Fonte
Codificação em Camadas
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Difusão
Difusão (live streaming) Fonte transmite o mesmo conteúdo
todos os nós (como um canal de TV)
Só é necessário o conteúdo sendo reproduzido no momento (descarta-se conteúdo antigo)
Difusão
Vídeo sob Demanda
Vídeo sob Demanda (Video on Demand / VoD) Usuário escolhe o que deseja ver
Como garantir compartilhamento de recursos eficiente? Se é garantido um período mínimo de
reprodução sem interrupções, transferir dados de tempos aleatórios.
Vídeo sob Demanda
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Arquiteturas de Distribuição Sistemas par-a-par são baseados em
redes sobrepostas na camada de aplicação.
Em geral, os próprios nós definem a estrutura da rede e o modo de distribuição do conteúdo (que devem ser eficientes).
Distribuição em Árvore
Estrutura hierárquica em árvore, em que os pais transmitem o conteúdo recebido aos filhos.
Nós com pouca capacidade não devem ser pais de nós com muita capacidade.
Cada nó não deve ter muitos filhos, evitando sobrecarga.
Distribuição em Árvore
Distribuição em Árvore
Vantagens Baixo overhead de controle Baixa latência
Desvantagens A cada saída de nó, pode ser necessário
re-estruturação da árvore (intensivo em sobrecarga de controle). Pouco robusto a flutuações freqüentes no
número de usuários.
Distribuição em Árvore
Problema: Folhas não retransmitem conteúdo (não
compartilham recursos).
Solução: Múltiplas árvores (uma para cada sub-
fluxo) Folhas em uma árvore podem ser pais
em outras
Distribuição em Malha
Estrutura dinâmica.
Interação entre pares vizinhos para descobrir o que cada um possui.
Cada par pede explicitamente o bloco desejado para cada vizinho.
Distribuição em Malha
Distribuição em Malha
Vantagens: Robusto a entradas e saídas freqüentes
dos pares. Recebimento de dados por mais de um
nó.
Desvantagens: Alta sobrecarga de controle. Mais tempo necessário para iniciar a
reprodução do vídeo.
Distribuição Híbrida
Objetivos: Robustez a oscilações no número de
usuários Eficiência na distribuição de conteúdo Baixo overhead de controle
Arquitetura em árvore e em malha possuem características complementares – bom ponto de partida.
Distribuição Híbrida
Solução: Alternar entre as arquiteturas conforme
o adequado. Inicialmente, cada nó consulta os
vizinhos para descobrir o conteúdo disponível.
Após certo tempo, um ou mais nós são escolhidos para transmitir um sub-fluxo diretamente, sem precisar de requisição por bloco. Escolha feita de acordo com reputação e
recursos disponíveis de cada vizinho.
Distribuição Híbrida
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Poluição
Ataque comum nos sistemas convencionais (troca de arquivos) P2P: Poluição – nó malicioso envia conteúdo
inválido para os demais nós, que retransmitem como conteúdo normal.
Poluição
Listagem Negra Identificação de nós maliciosos e
bloqueio deles pelo sistema. Como identificar?
Em geral, atacantes disponibilizam os blocos poluídos em ordem aleatória.
Recursos anunciados muito acima da média.
Não garante detecção de ataques menos agressivos.
Poluição
Encriptação de Tráfego Vídeos transmitidos em texto puro, com
padrões públicos conhecidos. Encriptação adiciona grau de dificuldade ao
atacante. Criptografia simétrica não viável
Como trocar as chaves secretas? Criptografia assimétrica: cada par divulga
sua chave pública. Muito custoso computacionalmente:
necessário encriptar conteúdo a cada bloco de vídeo, para cada nó.
Poluição
Assinatura de blocos Vídeo assina cada bloco de vídeo.
Inviável computacionalmente.
Amortização de assinatura Vídeo divido em grupos de blocos. Cada grupo é associado a um conjunto
de dados de autenticação, assinado pela fonte.
Verifica-se a autenticidade de cada bloco a partir do conjunto de dados.
Tempo
Blocos deVídeo
Conjuntode Blocos
Fonte
Dados de Autenticação(referente ao conjunto)
Redepar-a-par
+
Amortização de Assinatura
Amortização de Assinatura
Dados de Autenticação Concatena-se os hashes referentes a cada
bloco de vídeo do grupo, e se calcula o hash desta concatenação, que é assinado pela fonte.
A posição do primeiro bloco transmitido do grupo e os hashes dos demais blocos também são informados.
Para o receptor autenticar, basta calcular o hash do bloco recebido, concatená-lo com os demais hashes e comparar contra a assinatura recebida.
Dados de Autenticação
Hashes
Assinatura a partir doshashes concatenados
Posição relativa do blocoque irá ser transmitido.
Conjuntode Blocos
Amortização de Assinatura
Fonte
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Conclusão
Sistemas P2P devem ser específicos para transmissão de vídeo.
A codificação do vídeo e a arquitetura de distribuição adotadas devem ser escolhidas de acordo com o tipo de serviço desejado.
Popularização de streaming na Internet torna a questão da escalabilidade um fator essencial para o sucesso: Redes P2P são potenciais candidatas.
Programa
Motivação
Codificações
Tipos de streaming
Arquiteturas de distribuição
Poluição
Conclusão
Perguntas
Perguntas
(1) Quais são os tipos de difusão de fluxo contínuo de vídeo (streaming)? Quais as diferenças entre eles?
Perguntas
(1) – Resposta: Os dois tipos de streaming são: difusão
(ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação de um mesmo vídeo para um grupo de usuários, como um canal de televisão. Já o vídeo sob demanda consiste em um sistema que permite que o usuário solicite o conteúdo desejado, dando a ele o poder de avançar ou retornar na reprodução do vídeo.
Perguntas
(2) Tanto a codificação por múltiplos descritores (MDC) quanto a codificação em camadas dividem o vídeo em sub-fluxos e, em seguida, os dividem em blocos na dimensão do tempo. Quais as diferenças entre estas codificações? Cite uma vantagem da codificação em camadas.
Perguntas
(2) – Resposta: A diferença principal está na dependência
entre os sub-fluxos. No MDC, os sub-fluxos são independentes entre si, enquanto na codificação por camadas eles seguem uma relação de dependência hierárquica – camadas superiores só podem ser decodificadas se as camadas inferiores estiverem disponíveis. A principal vantagem da codificação por camadas é sua eficiência de compactação, que é comparável com codificações convencionais.
Perguntas
(3) Uma vantagem da arquitetura de distribuição em árvore é sua baixa sobrecarga de controle. No entanto, sabe-se que o processo da definição da estrutura (alocação dos nós na árvore) requer um overhead de controle considerável. Aparentemente, estas duas afirmações se contradizem, mas ambas são verdadeiras. Explique.
Perguntas
(3) – Resposta: De fato, a estruturação da rede em
árvore requer muitos pacotes de controle. Entretanto, uma vez estabelecida esta estrutura, cada nó só tem a tarefa de encaminhar os pacotes de vídeo recebidos para os seus filhos. Assim, o custo em mensagens de controle é muito baixo a longo termo.
Perguntas
(4) A arquitetura de distribuição em malha é adotada no sistema de compartilhamento de arquivos BitTorrent, que vem sendo usado com sucesso há anos. No contexto de distribuição de vídeos, cite uma vantagem e uma desvantagem deste tipo de arquitetura.
Perguntas
(4) – Resposta: Este tipo de arquitetura de distribuição
requer grande quantidade de mensagens de controle, fazendo com que a banda passante seja usada de modo ineficiente. Uma segunda desvantagem, em parte conseqüência do item exposto anteriormente, é o tempo necessário até iniciar a reprodução do vídeo. A grande vantagem deste tipo de arquitetura é a robustez a entradas e saídas freqüentes de pares do sistema, garantindo suporte a um número elevado de usuários.
Perguntas
(5) Um método para evitar ataques de poluição é a amortização de assinatura – envio de dados de autenticação a cada número definido de blocos de vídeo. Após confirmar o primeiro bloco de vídeo de um grupo (através da verificação de assinatura da concatenação de hashes), não é preciso fazer o mesmo processo para verificar os outros blocos do mesmo grupo. Por quê?
Perguntas
(5) – Resposta: Como os demais hashes já são
conhecidos e comprovadamente autênticos (devido à assinatura da fonte), basta calcular o hash de cada novo bloco recebido e compará-lo com o obtido nos dados de autenticação.
OBRIGADO!
Recommended