06.01 – Redes de Distribuição de Conteúdos
Distribuição de ficheiros/notícias/software
• Distribuição de conteúdos:
– Websites populares como o Slashdot
– Notícias de ultima hora de sites como a CNN
– Distribuição de software on-line por exemplo nova versão de um
sistema operativo
– Todas as descargas são feitas a partir de um servidor central que
criam problemas de performance
• Como então distribuir o conteúdo a milhões de utilizadores
com largura de banda limitada?
Atrasos no acesso Web
• Atraso na transmissão devido a ligações lentas, próximas à
periferia da rede (last mile)
• Atraso de transmissão devido a ligações congestionadas
(atrasos de queuing e pacotes descartados ao longo do
caminho)
• Servidores sobrecarregados
Meios de distribuição de conteúdos
• Pelos fornecedores de conteúdos
– Replicação, sites distribuídos pela Internet
• Através dos consumidores de conteúdo
– Reduzir o consumo de largura de banda de uma organização
através de caching – Web caching
• Por um terceiro
Replicação de sites
• Fornecedores de conteúdo
constroem um conjunto de sites
distribuídos pela Internet
• O servidor de DNS responde
com o endereço IP do site mais
perto do cliente
• Utilizado também para
balanceamento de carga
Servidor em África Servidor na Ásia
Servidor na Europa Servidor na América do Norte Cliente na Europa Servidor de DNS autoritário Pedid o DNS Ende reço IP do se rvido r europ eu
Replicação Local
• Também conhecido como server
farm
• Cria uma impressão que um
grupo de servidores é apenas
um
• Faz balanceamento de carga
• Encaminha pedidos apenas
para servidores que estejam em
funcionamento
• Tem a noção das sessões de
clientes para encaminhá-las
sempre para o mesmo servidor
Web Server Cliente Ped ido HT TP Res post a H TT P Ped id o HT TP Resp osta HT TP Cliente P ed ido H T T P R e spos ta H T TP Web Server L4-L7 Switch Ped ido HT TP Res post a H TT P Web Server
Web caches (servidor proxy)
Web Server Cliente Web Cache Pedid o HTT P Respo sta HT TP Pe dido H TTP Resposta H TT P• Instalada e partilhada por utilizadores (universidade, empresa, ISP
residencial)
• Objectivo: Satisfazer os pedidos dos clientes sem envolver o servidor de origem
• O utilizador configura o seu acesso Web através da Web Cache
– Objecto em cache:
• A cache retorna o objecto
– Caso contrário a cache pede o objecto ao servidor de origem e depois retorna este ao cliente
• Pode utilizar-se uma arquitectura hierárquica
Distribuição por terceiros – Content Distribution Network
Yahoo.com CNN.com Nó de distribuição da CDN Servidor CDN Na Europa Servidor CDN Na América Servidor CDN Na Ásia • Motivação– Escala de replicação limitada pelos produtores de conteúdos
– Perca de controlo do conteúdo pelo
caching
• CDN é um serviço – os clientes são os fornecedores de conteúdos
• Uma empresa de CDN instala servidores ao longo da Internet – quando o fornecedor de conteúdos actualiza o conteúdos, a CDN actualiza os servidores
CDN em funcionamento
• Fornecedor de conteúdos
– Yahoo.com
– Aponta os seus servidores autoritários de DNS para os servidores da CDN
• CDN
– Replica o conteúdo dos servidores originais para os seus servidores – Usa o seu servidor de DNS para redireccionar os pedidos para o servidor mais próximo do cliente
Cliente na Europa
Yahoo.com
Servidor de DNS autoritário para a CDN
Servidor CDN Mais próximo do cliente
1
2
Obter o servidor mais próximo
• A CDN cria um mapa indicando as distâncias entre os ISPs e
os nós da CDN
• Usa dados como as tabelas de encaminhamento do BGP e
estimativas de RTT
• Esta informação é usada para configurar o servidor DNS
autoritário
• Quando um pedido chega ao servidor de DNS autoritário:
– O servidor determina o ISP que originou o pedido
– Usa o mapa para escolher o melhor servidor CDN
Mecanismos de encaminhamento de pedidos e
medida de próximidade
Introdução
• Existem vários mecanismos para encaminhamento de
pedidos (Request-Routing Mechanisms)
• Cada empresa de CDN implementa os seus mecanismos
• Objectivo: Redireccionar os utilizadores para os servidores
mais próximos sem ter de alterar protocolos (ex.: HTTP,RTP)
ou clientes (ex.:Web Browser)
Baseados em DNS (1)
• Baseia-se na inserção de um servidor de DNS especializado
– Capaz de retornar diferentes respostas baseadas em politícas de utilizadores, métricas ou ambos.
• Single Reply
– O Servidor de DNS é autoritário para o domínio inteiro
– O Servidor retorna um endereço IP do melhor servidor da CDN
• Multiple Replies
– O servidor retorna múltiplas respostas para vários servidores – O servidor circula por várias respostas (Round-Robin)
• Anycast
– O cliente envia um pedido para um endereço de anycast, e a rede é responsável por fornecer uma entrega best-effort a pelo menos um (e apenas um) servidor que aceite datagramas par aquele endereço anycast
Baseados em DNS (2)
• Multi-Level Resolution
– Múltiplos servidores DNS envolvidos num único pedido DNS
– Serve para distribuir carga entre servidores DNS – visto que estes têm de desempenhar funções especializadas
– Usa redireccionamento através dos registos NS ou CNAME
• Limitações:
– O DNS apenas permite resoluções ao nível do domínio – devia ser ao nível do objecto
– O TTL do DNS deve ser baixo para permitir reacções a alterações do conteúdo ou rede
– Problemas com implementações de DNS que não cumprem os standards
– Clientes que partilham o mesmo servidor de DNS vão parar sempre ao mesmo servidor durante o TTL
Baseados no nível de transporte
• O sistema de encaminhamento de pedidos inspecciona a
informação disponível no primeiro pacote do pedido do
cliente – Endereços IP, Porto e informação Nível 4
• Os dados em combinação com as politicas de utilizadores e
outras métricas são usadas para determinar o melhor
servidor da CDN
• Devido ao overhead de processamento associado este tipo
de técnica está mais virado para sessões com maior duração
Baseados no nível de aplicação
• Inspeccionam o conteúdo dos pacotes para além da camada de transporte • Header Inspection – específico para aplicações que fornecem informação das
sessões nos cabeçalhos – Ex.: HTTP, RTSP ou SSL
– URL-Based – Aplicações que descrevem o pedido através de URLs – normalmente suficiente para tomar decisões
• 302 Redirection – O pedido é inicialmente resolvido para um servidor CDN virtual e encaminhado através de códigos específicos a aplicação (302 no HTTP e RTSP)
• In-Path Element – Fornece uma intercepção transparente da ligação do cliente
– Header Based – Envolve o uso de cabeçalhos específicos para a escolha do servidor correcto (Ex.: Cookie, Language, User-Agent)
– Site-Specific Identifiers – Usado a partir do SSL Session Identifier (gerado pelo servidor
Web e usado sempre a partir daí)
• Content Modification – Implica que o fornecedor de conteúdos tome decisões sobre qual o servidor CDN a usar
– URL Rewriting – O fornecedor de conteúdos altera o conteúdo HTML de forma a apontar outros conteúdos para outros servidores (por exemplo imagens)
Medidas de proximidade
• As medidas podem ser usadas pelo mecanismo de encaminhamento
de pedidos para direccionar os utilizadores para o servidor CDN mais
próximo
• A proximidade é em função do RTT
• Num mecanismo baseado em DNS as medidas são feitas até ao
servidor de DNS local ao cliente
• Quando o endereço IP do cliente está disponível este pode ser
utilizado para obter medidas mais precisas
• Active Probing
– ICMP ECHO
• Limitações:
– As medidas são periódicas
– As firewalls e NATs podem não permitir os probes
– Os probes podem causar alarmes de segurança em sistemas de detecção de intrusões
Tipos de métricas
• Latência
– Usadas para calcular qual o servidor com menos atraso até ao cliente – Usado com o active probing
• Número de saltos
– Saltos entre o servidor da CDN e o cliente
• Informação do BGP
– Informação baseada no caminho entre o servidor da CDN e o cliente – Não funciona entre redes no mesmo sistema autónomo
– A métrica do BGP pode não ser a melhor – baseia-se no número de saltos entre sistemas autónomos
– O mecanismo de encaminhamento de pedidos tem de ter acesso às tabelas de encaminhamento BGP (implica conhecer a Internet toda!!)