2.6 Aplicativos P2P 2.7 Programação De Socket: Criando Aplicações De Rede

2.6 Aplicativos P2P 2.7 Programação De Socket: Criando Aplicações De Rede

PTC 3450 - Aula 09 2.4 DNS – O serviço de diretório da Internet 2.6 Aplicativos P2P 2.7 Programação de socket: criando aplicações de rede (Kurose, p. 106 - 120) (Peterson, p. 239-242) 18/04/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved Capítulo 2: conteúdo 2.1 Princípios de 2.5 Aplicativos P2P aplicativos de rede 2.6 Streaming de vídeo e 2.2 Web e HTTP redes de distribuição 2.3 Correio eletrônico de conteúdo ▪ SMTP, POP3, IMAP 2.7 Programando socket 2.4 DNS com UDP e TCP Introdução 2-2 DNS: banco de dados hierárquico e distribuído Servidores DNS Raiz … … servidores DNS com servidores DNS br servidores DNS edu servidores servidores DNS servidores servidores DNS servidores DNS DNS umass.edu DNS amazon.com edu.br poly.edu yahoo.com cliente quer IP para www.amazon.com; 1a abordagem: ❖ cliente pede a servidor DNS raiz encontrar servidor DNS com ❖ cliente pede a servidor DNS top level domain (TLD) .com obter servidor amazon.com ❖ cliente pede a servidor DNS autoritário de amazon.com obter endereço IP para www.amazon.com Application Layer 2-3 Atacando DNS Se DNS não funcionar Internet (web, email, etc.) para!! ataques DDoS Ataques de redirecionamento ❖ Bombardear servidores ❖ Man-in-the-middle raízes com tráfego ▪ Consultas interceptadas ▪ Tentado em 21/10/2002 ❖ envenenar DNS ▪ Filtragem do tráfego ▪ Enviar respostas falsas a servidores DNS, que as armazenam ▪ Servidores DNS locais guardam IPs dos servidores Explorar DNS para DDoS TLD, permitindo pular ❖ Enviar consultas com endereço servidores raízes do emissor falso: IP alvo ❖ Bombardear servidores ❖ Requer amplificação TLD Até hoje robusto a ataques. ▪ Potencialmente mais Não conseguiu se impedir perigoso DNS de funcionar. Camada de Aplicação 2-4 Capítulo 2: conteúdo 2.1 Princípios de 2.5 Aplicativos P2P aplicativos de rede 2.6 Streaming de vídeo e 2.2 Web e HTTP redes de distribuição 2.3 Correio eletrônico de conteúdo ▪ SMTP, POP3, IMAP 2.7 Programando socket 2.4 DNS com UDP e TCP Introdução 2-5 Arquitetura P2P pura ❖ não há servidor sempre disponível ❖ sistemas finais arbitrários (pares ou peers) comunicam-se diretamente ❖ pares conectam-se de forma intermitente e mudam endereços IP exemplos: ▪ distribuição de arquivos (BitTorrent) ▪ Streaming (Xunlei KanKan, Popcorn Time) ▪ VoIP (Skype) Camada de Aplicação 2-6 Distribuição de arquivos: cliente-servidor vs P2P Questão: quanto tempo para distribuir arquivo (tamanho F) de um servidor para N peers (tempo de distribuição)? ▪ capacidade de upload/download dos peers é recurso limitado us: capacidade de upload do servidor di: capacidade de download do i- arquivo, u1 d us 1 u2 d ésimo peer tamanho F servidor 2 di uN rede (com capacidade abundante) ui dN ui: capacidade de upload do i-ésimo peer Camada de Aplicação 2-7 Tempo de distribuição de arquivo: cliente-servidor ❖ transmissão do servidor : precisa enviar (upload) sequencialmente N cópias do arquivo: F us ▪ tempo para enviar uma cópia: F/us di ▪ tempo para enviar N cópias: NF/us rede ui ❖ cliente: cada cliente precisa fazer download de cópia do arquivo ▪ dmin = taxa de download mínima ▪ mínimo tempo de download nos clientes : F/dmin tempo de distribuição para N clientes usando abordagem cliente-servidor Dc-s > max{NF/us,,F/dmin} aumenta linearmente com N Camada de Aplicação 2-8 Tempo para distribuição de arquivo: P2P ❖ transmissão servidor : precisa fazer upload de pelo menos uma cópia F u ▪ tempo para enviar uma cópia: F/us s di ❖ cliente: cada cliente precisa fazer rede download de uma cópia do arquivo ui ▪ mínimo tempo de download nos clientes: F/dmin ❖ clientes: de forma agregada precisam fazer download de NF bits ▪ max taxa de upload (limitando max taxa de download) é us + Sui tempo de distribuição para N clientes usando abordagem P2P DP2P > max{F/us,,F/dmin,,NF/(us + Sui)} cresce linearmente com N … … mas essa parcela também, já que cada peer traz sua capacidade de serviço Camada de Aplicação 2-9 Exemplo: Cliente-servidor vs. P2P taxa upload cliente = u, F/u = 1 hora, us = 10u, dmin ≥ us Distribuição de arquivos P2P: BitTorrent ❖ torrent - peers enviando/recebendo pedaços de um arquivo ❖ arquivo dividido em pedaços de 256 kbytes (típico) rastreador (tracker): rastreia peers torrent: grupo de peers participando em torrent trocando pedaços de um arquivo Alice chega … … obtém lista de peers de um rastreador … e começa a trocar pedaços (chunks) de arquivo com peers no torrent Camada de Aplicação 2-11 Distribuição de arquivos P2P: BitTorrent ❖ peer juntando-se a torrent: ▪ ainda não tem pedaços, mas os acumulará com o tempo obtendo de outros peers ▪ registra-se com rastreador para obter lista de peers (IP), conecta-se a subconjunto deles (típico 50) ❖ enquanto faz download, peer faz upload de pedaços para outros peers ❖ peer pode mudar peers com quem ele troca pedaços ❖ churn: peers podem entrar e sair ❖ uma vez que peer tem arquivo inteiro, ele pode escolher (egoisticamente) sair ou (altruisticamente) permanecer no torrent Camada de Aplicação 2-12 Camada de Aplicação 2-13 BitTorrent: pedindo, enviando pedaços de arquivo pedindo pedaços: enviando pedaços: tit-for-tat ❖ em qualquer momentos, ❖ Alice envia pedaços para os 4 peers diferentes têm peers atualmente enviando subconjuntos diferentes de pedaços para ela à taxa mais pedaços do arquivo alta ▪ outros peers são congelados ❖ periodicamente, Alice pede (choked) por Alice (não recebem a cada peer uma lista de pedaços dela) pedaços que eles têm ▪ top 4 reavaliados a cada 10 s ❖ ❖ Alice pede pedaços a cada 30 s: seleciona faltantes aos peers, pedaços aleatoriamente outro peer, inicia mais raros primeiro (rarest envio de pedaços ▪ “otimistamente descongela” esse first) – assim pedaços ficam peer distribuídos uniformemente ▪ novo peer escolhido pode-se juntar aos top 4 Camada de Aplicação 2-14 BitTorrent: tit-for-tat (1) Alice “otimistamente descongela” Bob (2) Alice torna-se um dos top-4 provedores de Bob; Bob retribui (3) Bob torna-se um dos top-4 provedores de Alice taxas de upload mais altas: encontrando melhores parceiros de trocas, obtém-se arquivo mais rápido! Muitos outros mecanismos interessantes a estudar! Veja referências no livro! Camada de Aplicação 2-15 Capítulo 2: conteúdo 2.1 Princípios de 2.5 Aplicativos P2P aplicativos de rede 2.6 Streaming de vídeo e 2.2 Web e HTTP redes de distribuição 2.3 Correio eletrônico de conteúdo ▪ SMTP, POP3, IMAP 2.7 Programando socket 2.4 DNS com UDP e TCP Introdução 2-16 Video Streaming and CDNs: contexto ▪ Tráfego de vídeo : maior consumidor de banda da Internet • Netflix 35,15% e YouTube 17,53% do tráfego downstream em ISPs residenciais nos EUA (Sandvine report) • Netflix ~75milhões de usuários; YouTube: 1 bilhão de usuários ▪ Desafio: escala - como alcançar 1 bilhão de usuários??? • Único super-servidor de vídeo não funcionará (por que?) ▪ Desafio: heterogeneidade ▪ Usuários diferentes têm diferentes capacidades (e.g., móvel versus cabeado; banda larga versus acesso de baixa qualidade) ▪ Solução: infraestrutura distribuída em nível de aplicação Application Layer 2-17 Tráfego Rede Fixa – EUA - 2016 Application Layer 2-18 Tráfego Rede Fixa – EUA – 2016 Application Layer 2-19 Tráfego Rede Fixa – América Latina - 2016 Application Layer 2-20 Tráfego Rede Fixa – América Latina - 2016 Application Layer 2-21 Tráfego Móvel – EUA – 2016 Application Layer 2-22 Tráfego Móvel – EUA -2016 Application Layer 2-23 Tráfego Móvel – América Latina - 2016 Application Layer 2-24 Tráfego Móvel – América Latina - 2016 Application Layer 2-25 exemplo de codificação especial: Multimídia: vídeo ao invés de enviar N valores para mesma cor (tudo roxo), ❖ Principal característica: alta taxa de bit envia apenas dois valores: valor (até 10 Mbps para 4K!) da cor (roxo) e número de valores repetidos (N) ❖ Streaming de vídeo armazenado será aproximadamente 70% do consumo ……………………...… global de tráfego de Internet em 2015 ❖ Usuário menos sensível a falhas de vídeo do que a falhas de áudio ❖ vídeo: sequência de imagens mostradas a taxa constante ▪ e.g. 24 imagens/s ❖ imagem digital : matriz de pixels ▪ cada pixel representado por bits quadro i ❖ Pode ser comprimido: compromisso qualidade de vídeo x taxa de bit ❖ codificação: usa redundância dentro e entre imagens para diminuir # bits usados exemplo de codificação para codificar imagem temporal: ao invés de enviar quadro complete ▪ espacial (dentro da imagem) em i+1, envia apenas ▪ temporal (de uma imagem para a diferenlças em relação ao seguinte) quadro i quadro i+1 Multimídia 7-26 exemplo de codificação especial: ao invés de enviar N valores Multimídia: vídeo para mesma cor (tudo roxo), envia apenas dois valores: valor da cor (roxo) e número de ❖ CBR: (constant bit rate): vídeo valores repetidos (N) codificado a taxa fixa ……………………...… ❖ VBR: (variable bit rate): taxa de codificação muda com quantidade de codificação temporal, espacial ❖ exemplos: ▪ MPEG 1 (CD-ROM) 1.5 Mbps quadro i ▪ MPEG2 (DVD) 3-6 Mbps ▪ MPEG4 (frequentemente exemplo de codificação usado na Internet, < 1 temporal: ao invés de enviar quadro complete Mbps) em i+1, envia apenas diferenlças em relação ao quadro i quadro i+1 Multimídia 7-27 Streaming de vídeo armazenado Cenário simplifcado: Internet Servidor de vídeo cliente (vídeo armazenado) Application Layer 2-28 Streaming multimídia: DASH ❖ DASH: Dynamic, Adaptive Streaming over HTTP ❖ servidor: ▪ divide arquivo de vídeo em múltiplos pedaços ▪ cada pedaço armazenado, codificado em diferentes taxas ▪ arquivo manifesto: provê URLs para diferentes pedaços ❖ cliente: ▪ periodicamente mede capacidade

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    45 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us