UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
ESCOLA POLITÉCNICA
DISCIPLINA: Redes de Computadores II (EEL879)
PROFESSORES: Otto Duarte e Luís Henrique Costa
Rafael Kikuchi
VÍDEO EM REDES PAR-A-PAR
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)
Vídeo Codificado
.
.
.
Description Chunk
.
.
.
Descritores
Tempo
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
Codificação em Camadas
Vídeo Codificado
.
.
.
Dependência
.
.
.
Tempo
Camadas
Codificação em Camadas
Fonte
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.
Amortização de Assinatura
Fonte
Conjunto
de Blocos
Blocos de
Vídeo
+
Dados de Autenticação
(referente ao conjunto)
Tempo
Rede
par-a-par
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.
Amortização de Assinatura
Conjunto
de Blocos
Dados de Autenticação
Hashes
Fonte
Posição relativa do bloco
que irá ser transmitido.
Assinatura a partir dos
hashes concatenados
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!
Download

Perguntas