VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão:...

55
VÍDEO EM REDES PAR-A-PAR Rafael Kikuchi UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA POLITÉCNICA DISCIPLINA: Redes de Computadores II (EEL879) PROFESSORES: Otto Duarte e Luís Henrique Costa

Transcript of VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão:...

Page 1: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

VÍDEO EM REDES PAR-A-PAR

Rafael Kikuchi

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

ESCOLA POLITÉCNICA

DISCIPLINA: Redes de Computadores II (EEL879)PROFESSORES: Otto Duarte e Luís Henrique Costa

Page 2: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 3: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 4: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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

Page 5: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Motivação

Modelo Cliente-Servidor

Crescente número de usuários

Custo elevado com banda passante

Pouco escalável

Page 6: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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)

Page 7: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 8: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Desafios

Vídeo em sistemas par-a-par

Sistemas P2P tradicionais (compartilhamento de arquivos) dividem arquivos em blocos pequenos para distribuir entre os nós.

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?

Page 9: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Solução

Codificação do vídeo

Múltiplos Descritores (MDC)

Codificação em Camadas (LayeredCoding)

Page 10: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Múltiplos Descritores (MDC)

Divisão do vídeo em descritores independentes

Divisão dos descritores em blocos de tempo (description chunks)

Cada bloco de tempo pode ser reproduzido com apenas um descritor, embora a qualidade máxima seja obtida somente quando se possui todos.

Page 11: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Múltiplos Descritores (MDC)

DescriptionChunk

Descritores

.

.

.

.

.

.Tempo

Vídeo Codificado

Page 12: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 13: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Múltiplos Descritores (MDC)

Fonte

Page 14: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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

Pares com capacidades semelhantes devem estar conectados

Mais eficiente em termos de compactação

Menos uso de banda passante

Page 15: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Camadas

Dependência

.

.

.

.

.

.

Vídeo Codificado

Tempo

Codificação em Camadas

Page 16: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Fonte

Codificação em Camadas

Page 17: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 18: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Difusão

Difusão (live streaming)

Fonte transmite o mesmo conteúdo todos os nós (como um canal de TV)

Sensibilidade a latência

Só é necessário o conteúdo sendo reproduzido no momento (descarta-se conteúdo antigo)

Codificação veloz

Codificadores convencionais podem demorar

Page 19: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Difusão

Page 20: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Vídeo sob Demanda

Vídeo sob Demanda (Video on Demand / VoD)

Usuário escolhe o conteúdo que deseja ver

Pode-se voltar ou avançar no vídeo como quiser

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.

Page 21: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Vídeo sob Demanda

Page 22: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 23: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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).

Page 24: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Distribuição em Árvore

Estrutura hierárquica em árvore, em que os pais transmitem o conteúdo recebido aos filhos.

A raiz é a fonte do vídeo.

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.

Page 25: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Distribuição em Árvore

Page 26: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 27: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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

Page 28: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 29: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Distribuição em Malha

Page 30: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 31: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 32: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 33: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Distribuição Híbrida

Page 34: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 35: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Conceito pode ser estendido para sistemas de vídeo: blocos poluídos degeneram o áudio e a imagem.

Page 36: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 37: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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ó.

Page 38: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 39: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Tempo

Blocos deVídeo

Conjuntode Blocos

Fonte

Dados de Autenticação(referente ao conjunto)

Redepar-a-par

+

Amortização de Assinatura

Page 40: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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 hashdo bloco recebido, concatená-lo com os demais hashes e comparar contra a assinatura recebida.

Page 41: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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

Page 42: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 43: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 44: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Programa

Motivação

Codificações

Tipos de streaming

Arquiteturas de distribuição

Poluição

Conclusão

Perguntas

Page 45: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Perguntas

(1) Quais são os tipos de difusão de fluxo contínuo de vídeo (streaming)? Quais as diferenças entre eles?

Page 46: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

Perguntas

(1) – Resposta:

Os dois tipos de streaming são: difusão (ou livestreaming) 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.

Page 47: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 48: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 49: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 50: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 51: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 52: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 53: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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ê?

Page 54: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

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.

Page 55: VÍDEO EM REDES PAR-A-PAR - Federal University of Rio de ... · Os dois tipos de streamingsão: difusão (ou live streaming) e vídeo sob demanda. A difusão é baseada na propagação

OBRIGADO!