Redes de Fornecimento de Conteúdos Content Delivery Networks (CDNs) Sistemas Telemáticos LESI Grupo de Comunicações por Computador Departamento de Informática Universidade do Minho Sumário Motivação Introdução Abordagens de Construção Arquitectura e Tecnologias Encaminhamento por conteúdo Fornecimento de conteúdos Medição de desempenho Aplicações Conclusões Motivação para CDNs • Muitos saltos entre clientes e servidores Web =>mais congestão! • Os mesmos dados a fluirem repetidamente sobre as linhas entre os clientese o servidor Web • Servidor fonte fica estrangulado com muitos clientes C1 C3 C4 S C2 - Encaminhador IP Exemplo de CDN Farm de servidores www.cnn.com (Cópia 1) Pedido de grad.umd.edu www.cnn.com (Cópia 2) www.cnn.com (Cópia 3) Pedido de ren.cis.udel.edu Comutador L4-L7 Pedido de ren.cis.udel.edu Pedidode grad.umd.edu Solução simples para o problema de distribuição de conteúdos Arbitra os pedidos dos clientes pelos servidores usando um comutador inteligente nível 4-7 Bastante usado actualmente Exemplo de CDN Proxy/Cache FSI Cliente ren.cis.udel.edu Cliente merlot.cis. udel.edu Outro tráfego Interceptores Tráfego Porta 80 TCP Internet www.cnn.com Proxy • Motivado por interesse do negócio do FSI –redução na largura de banda na Internet do FSI • Redução do tráfego de rede • Redução da latência percebida pelo utilizador Exemplo de CDN Problemas : Proxy/Cache e Farm de servidores Proxy/Cache Só servem os seus clientes não todos os utilizadores Internet O servidor fonte não consegue contabilizar os acessos CNN para efeitos de publicidade Fornecedores de conteúdos não podem basear-se na implementação correcta das caches Farm de servidores Não fazem nada em situações de congestão Não influenciam latência da rede Introdução Ideia Usar a inteligência dos níveis superiores da pilha protocolar para melhorar a qualidade de serviço no fornecimento de informação que é cada vez mais multimédia por natureza O que são as CDNs? Existem várias definições Distribuição de Vídeo ou TV sobre a Internet ou sobre Redes Privadas Comutação com base no conteúdo Melhorar desempenho de sítios Web Redes optimizadas para distribuir conteúdos específicos tal como Páginas Web estáticas Páginas Web dinâmicas Fluxos de Média (Media Streamming) Vídeo ou Áudio em Tempo real Objectivos das CDNs São já um caso de sucesso Outras possíveis áreas de desenvolvimento: melhoria do desempenho de sítios Web. Custo de Largura de Banda Disponibilidade Desempenho Empurrar os conteúdos o mais próximo possível dos utilizadores para Minimizar a latência Minimizar o desvio nos atrasos Maximizar o débito Abordagens para construção de CDNs Modelo de Redes Virtuais (Overlay) Replicação do conteúdo em milhares de servidores em todo mundo Servidores de aplicação ou caches em vários pontos da rede Os encaminhadores sem papel especial Eventualmente serviço garantido para fluxos específicos Modelo de Rede Desenvolver software para os encaminhadores e comutadores Reconhecerem certos tipos de aplicação Tomarem decisões de expedição com base em políticas pré-definidas Abordagens para construção de CDNs Base: Modelo de Rede Virtual CDN é uma rede virtual construída Como uma camada no topo da infra-estrutura de rede que contém entidades pares de Transporte Encaminhamento IP, QoS Difusão selectiva BGP Para distribuir conteúdos para determinada audiência CDNs versus Proxy caching Proxy/Caches Usadas pelos ISPs para reduzir o consumo de LB São reactivas Fornecem os seus clientes web Não dão qualquer controlo CDNs Usadas pelos fornecedores de serviço para aumentar o QoS aos utilizadores São proactivas Fornecem aos clientes e servidores Web Dão o controlo do conteúdo aos seus fornecedores Arquitectura genérica Encaminhadores de rede Servidores de armazenamento Aplicações Arquitecturas e Tecnologias A publicação de informação é suportada com base na economia de escala dos ISPs com as seguintes funções de fornecimento de conteúdos Grandes capacidades de armazenamento primário e de salvaguarda Replicação, salvaguarda e gestão de sistema de ficheiros Identificação e gestão de conteúdos em encaminhadores com capacidades de manipulação de conteúdos Colocação dos conteúdos próximos dos utilizadores Fornecimento de difusão selectiva ou não de fluxos de média Fornecimento de serviços de reformatação de páginas para áudio-visualizadores (browsers) sem fios Redes de Fornecimento de Conteúdos Três componentes básicos Encaminhamento por Conteúdo Entrega de Conteúdos Medição de Desempenho Rede de Fornecimento de Conteúdos Encaminhamento por Conteúdo Tecnologias que colocam o conteúdo certo junto dos utilizadores certos Redirecção do Serviço de Resolução de Nomes Comutação nível 4-7 WCCP Web Caching Communication Protocol Desenhado pela Cisco para comunicação entre encaminhadores e caches Encaminhamento por conteúdo Métricas para localização de Conteúdos Proximidade de rede Informação obtida de tabelas de encaminhamento Proximidade Geográfica Usada para redireccionar os utilizadores em certa região para um POP Tempo de Resposta Técnicas do BGP (Border Gateway Protocol) Redireccionador mantêm informação de tempos de resposta dos POPs Redirecção é feita para POP mais rápido Tipo de utilizador Pagante versus não pagante Baseado em cookies ou processo de autenticação Encaminhamento por conteúdo Tipos de algoritmos Encaminhamento global Como encontrar a rota do cliente para o POP mais apropriado? Redirecção do Sistema de Resolução de Nomes Encaminhamento com base no nome Encaminhamento Local Como encaminhador os pedidos para os múltiplos servidores num mesmo POP? Comutação camada 4-7 WCCP Encaminhamento por conteúdo Global: Redirecção pelo DNS Método mais simples Servidores Web DNS HTTP Não é a melhor forma para encaminhamento por conteúdo Problemas Latência do DNS DNS Raiz Cliente Cada domínio tem vários IPs associados Dado um pedido, o DNS redirecciona-o para o servidor mais adequado Exposição à latência e atrasos da Internet Redirecção do DNS não é escalável O que está disponível é conteúdo pedido Não há maneira de aumentar a capacidade para manipular nomes de domínio com essa informação Encaminhamento por conteúdo Global: encaminhamento baseado no nome Desenvolvido por Investigadores U.Stanford e MIT Para resolver os problemas do método anterior Propostos 2 protocols: Internet Name Resolution Protocol (DRP) Name Based Routing Protocol (NBRP) Encaminhador IP Serviço de Resolução de Nomes Encaminhador por Conteúdo Armazena o próximo salto para cada nome Um aumento do encaminhamento IP, proxy ou gateway NAT Servidor Web Serviço de Resolução de Nomes Responde a Servidor de pedidos de Conteúdos conteúdos e anuncia Um aumento do servidor Web, proxy conteúdos ou cache Encaminhamento por conteúdo Local: comutação camada 4-7 Rapidez - + Aplicação Comutação HTTP baseada no URL Transporte Comutação TCP baseada na porta Rede Ligação Lógica + - Física Comutação IP baseada no endereço Comutação Ethernet baseada no endereço Usa o endereço MAC para comutação com baixa latência Rede Comutação feita pacote a pacote com base no endereço IP Transporte Não utilizado para comutação Inteligência Conhecida como comutação inteligente baseada de informação com o URL, tipo de conteúdo, nome do utilizador Ligação Lógica Escolhe com base na porta e escolher o servidor mais adequado (tradução dos endereços NAT) Aplicação Redirecciona pedidos para outros servidores Um servidor não precisa de guardar sites inteiros Encaminhamento por conteúdo Local: Web Cache Communication Protocol (WCCP) Encaminhador intercepta pedidos para vários serviços Fluxos de média Tráfego Web Passar tráfego Web para uma cache Pode ser associada um conjunto de caches a cada encaminhador Cada cache anuncia os protocolos suportados O encaminhador verifica os protocolos dos pacotes em trânsito e passa-os para a cache Melhor desempenho para o utilizador final Menos tráfego na rede Carga balanceada entre elas, com base em certos parâmetros Melhor desempenho Maior fiabilidade Desenvolvido pela Cisco Encaminhamento por conteúdo Local: Web Cache Communication Protocol (WCCP) Cache 3 Servidor de Contéudo 2 Encaminhador 4 1 Cliente Encaminhamento por conteúdo Local: Web Cache Communication Protocol (WCCP) O cliente faz um pedido ao servidor de conteúdos O encaminhador intercepta o pedido e passa para a cache Se não tiver o documento pedido, a cache envia o pedido para o servidor de conteúdos A cache serve o cliente com o documento como se o tivesse localmente Fazendo o pedido ao servidor de conteúdos se necessário Fornecimento de conteúdos Lida primariamente com o fluxo de trabalho e manipulação do conteúdo Desde a codificação à entrega ao utilizador A codificação optimiza o conteúdo para o seu transporte pela rede O conteúdo pode ser imagens, áudio e vídeo digital, software e documentos Conteúdos em tempo real } Áudio Conteúdo não é simples de indexar automaticamente É necessária inteligência para reconhecer e indexar Vídeo Dados financeiros Fornecimento de Conteúdos Fornecimento de conteúdos Componentes Codificação Cifragem/Segurança Indexação Servidores de Média Servidores Web Caching Cliente de Média Fluxos de Conteúdo Fornecimento de conteúdos Componentes: Codificação O média digital precisa de ser codificado para o transporte através da rede O processo de codificação tem 2 etapas Compressão e empacotamento A compressão utiliza algoritmos designados por CODECs Há vários CODECs usados para áudio e vídeo O conteúdo é optimizado para diferentes grupos de utilizadores Usam diferentes algoritmos CODEC Fornecimento de conteúdos Componentes: Cifragem/Seurança Objectivos evitar o acesso não autorizado permitir a autenticação da origem verificação da integridade Os média são cifrados e protegidos Os esquemas de protecção chamam-se Sistemas de Gestão de Direitos de Autor Digitais Digital Rights Management (DRM) Systems Fornecimento de conteúdos Componentes: Indexação Uma grande biblioteca não é útil sem um catálogo ou índice Ao contrário do texto, o áudio e o vídeo não são indexáveis directamente São necessários pacotes de software especiais para média Os metadados são gerados em paralelo com a geração do fluxo de média (media streamming) Os metadados são publicados na Web e serve como ponto de referência para acesso aos conteúdo dos média Fornecimento de conteúdos Componentes: Servidores de Média Servidor que devolve como resposta a pedidos de clientes conteúdo digital codificado Corre em plataformas Unix ou Windows É uma espécie de servidor Web para fluxos de média Responde a pedidos com trechos áudio ou vídeo específicos Fornecimento de conteúdos Componentes: Servidores Web Contêm: Os metadados e as referências aos fluxos de média qualquer outro conteúdo Web que a CDN possa manipular Tal como nos servidores de média Os limites de carga precisam de ser estabelecidos Testes de carga do ambiente específico Fornecimento de conteúdos Componentes: Caching As caches mantêm cópias na periferia da rede Quando um pedido é feito mais que uma vez, são enviadas cópias como resposta Esta abordagem evita o acesso ao servidor original Que pode estar distante muitos kilómetros (saltos) Fornecimento de conteúdos Componentes: Cliente de Média Tem funções idênticas ao browser Web Não inter-operacionalidade entre as diferentes plataformas Utilizador precisa de instalar clientes separados para aceder a conteúdos disponibilizados pelas diferentes plataformas Fornecimento de conteúdos Componentes: Fluxo de conteúdo Como o conteúdo é gerado nos sítios dos clientes da CDN Precisa de ser fornecido à CDN Conteúdos em tempo real Devem ser transferidos de imediato Não são pré-gravados Usa-se um método de transferência diferente Fonte com localização fixa: linha directa Fonte com localização temporária: satélite Caching Se os conteúdos forem servidos no mesmo local A pedido ou em tempo real Todos clientes obtêm conteúdos do mesmo ponto da rede Grande impacto nos servidores e na rede Exemplo: Milhares de clientes a pedirem um trecho áudio ou vídeo 2001-9-11 Servidor Web www.cnn.com pedido 1000,000 clientes ISP conteúdo pedido antigo Utilizador www.rtp.pt Novos conteúdos Nótícias WTC! 1000,000 clientes - Congestão / Estrangulamento - Caching Proxy Caching Se o conteúdo residir no mesmo local Tem que ser enviada uma cópia para cada cliente através da rede Uma estrutura de caching colocada em cada PoP Os clientes são servidos de forma transparente por caches Conteúdos mais perto dos clientes Baixa latência Maior disponibilidade Menor carga na rede e nos servidores Caching Caching Distribuição de carga Equipamentos mais baratos em cada local Não linearidade entre o custo de um servidor e a quantidade de dados a servir Caches suportam protocolos de acesso aos conteúdos Métrica de avaliação: # de protocolos suportados HTTP FTP RTSP (Real Time Streamming Protocol) MMS (Multimedia Messaging Service) RTP (Real Time Protocol) Caching Funções fundamentais Para facilitar o caching da CDN, a cache precisa de concretizar Caching estático Caching básico do web Caching de Fluxos de Média Caching de fluxos (streamming) de média Páginas HTML, imagens, documentos A cache funciona como servidor de média Divisão de Fluxos em tempo real Fluxos em tempo real são replicados pelas caches e depois empurrados para servidores de média que atendem os clientes Caching Internet Cache Protocol (ICP) Permite às caches interrogar outras caches na mesma CDN Se uma cache recebe um pedido ICP Serve se tiver o objecto Interroga outras caches Podemos obter o conteúdo numa localização mais próxima que a fonte Usado para construir agregados de caches ou relações pai-filho em hierarquias de caches Caching Internet Cache Protocol (ICP) ICP é um protocolo para Web caching Versão 2 do ICP está definida no RFC 2186 Usado para distribuir sugestões a respeito da existência de URLs nas caches vizinhas Caches trocam interrogações e respostas ICP Colecta de informação selecção da localização mais apropriada para buscar um objecto Caching Especificação do ICPv2 Geralmente as caches Web usam o HTTP para transferir objectos Contudo as caches Web podem beneficiar dum protocolo de comunicação mais simples e mais leve O ICP é usado principalmente num grafo de caches para localizar objectos específicos nas caches vizinhas Uma cache envia uma interrogação ICP aos seus vizinhos Os vizinhos enviam respostas com um acerto ("HIT“) ou uma falta ("MISS“) Caching Concretização do ICP Actualmente o ICP concretizado sobre UDP Pode correr sobre IP multicast Não há nenhum requisito que o limite ao UDP ICP sobre TCP oferece algumas vantagens para as aplicações de Caching Web Troca de interrogação resposta tem que ser rápida Uma cache só começa a espera desde que pediu o objecto Uma falha na resposta implica Percuso de rede quebrado ou congestionado Esse vizinho não dever ser seleccionado Caching Cache Array Routing Protocol (CARP) O Microsoft® Proxy Server 2.0 usa o Cache Array Routing Protocol (CARP) O CARP é uma série de algoritmos que são aplicados no topo do HTTP Servidores proxy múltiplos são organizados como uma única cache lógica Não precisa dum novo protocolo de ligação fim-a-fim Usa o HTTP compatível com servidores firewalls já existentes Caching Cache Array Routing Protocol (CARP) Disponibiliza um “percurso de resolução do pedido" determinístico num agregado de proxies O percurso de resolução do pedido Função de hash para identificadores dos membros do agregado e para os URLs Para um dado URL, o servidor proxy sabe onde está ou não está armazenado o objecto Caching CARP versus ICP Percurso de resolução de pedido determinístico Evita as mensagens de interrogação entre os servidores proxy existentes no ICP Elimina a duplicação de conteúdos que existiriam de outra maneira no agregagdo de proxies Tem um escalabilidade positiva É mais rápido quanto maior o número de servidores proxy Caching Métodos de fornecimento de conteúdos Caching antecipado (Pre-caching) Os conteúdos são colocados antecipadamente nas caches São usadas horas de menor carga Diminuir a carga em horas de pico Caching em voo (just-in-time) O conteúdo é puxado da fonte quando há um pedido do cliente Para além de servir o cliente é colocada uma cópia em cache Caching Consistência das cópias Problema comum A cache tem a cópia mais recente do objecto? Pode ser assegurado com Etiqueta no conteúdo a indicar quando deve actualizar o conteúdo com a fonte Programação para verificação periódica da consistência das cópias Caching Potenciais problemas Manutenção em cache de conteúdos Detecção pelo utilizador de conteúdos obsoletos HTTP não garante consistência forte Objectos têm a tendência de permanecer muito tempo Latência da cache A cache tende a melhorar a latência dos pedidos duplicados Quando há acertos Quando há faltas a cache aumenta a latência Ligeiramente: tempo de processamento na cache Alguns documentos são pedidos apenas uma vez Algumas respostas não podem ser mantidas em cache Caching Benefícios As funcionalidades do caching tornam a sua actualização atractiva para todos Utilizadores Finais Gestores de Rede Criadores de conteúdos Vantagens Menores atrasos e maior valor para os utilizadores Cargas mais leves nos servidores fonte Menores custos de hardware e suporte Menores tempos de resposta para os utiliza Gestão e Distribuição de Conteúdos Distribuição de conteúdos O objectivo da CDN é localizar os conteúdos junto da audiência e encaminhar os conteúdos para um servidor nas proximidades Com as redes constituídas por centenas ou milhares de servidores localizados em sítios globalmente distribuídos e a disponibilizar conteúdos de vários domínios e clientes independentes, a distribuição da CDN é um componente crítico da solução. Medição de Desempenho Disponibiliza a possibilidade de Monitorizar Compreender Projectar desempenho fim-a-fim das CDNs É conseguido com Sondas hardware e software Distribuídas pela CDN Registos históricos dos vários servidores Avaliação do desempenho na entrega dos diversos tipos de conteúdo Fluxos de média Conteúdos Web Medição de Desempenho Desempenho interno e do ponto de vista do utilizador (externo) Utilizam técnicas e tecnologias diferentes Parâmetros usados na medição Perda de pacotes Latência Largura de banda média (fluxos de média) Tempo de arranque (fluxos de média) Taxa de Quadros (fluxos de vídeo) Medição de Desempenho Interna Registos históricos das caches e servidores de média Permitem ter uma ideia do desempenho dos serviços de fornecimento do conteúdo Servidores de média permitem colectar estatísticas dos audiovisualizadores Podemos obter medição de desempenho fim-afim Medição de Desempenho Interna Colocação de sondas hardware e software Em correlação com os registos históricos de servidores Sondas devem ser colocadas na periferia da rede Determinação das estatísticas de QoS e fornecimento Medição dum desempenho próxima da sentida dos utilizadores Há uma série de ferramentas de geração de relatórios Podem reconhecer esta informação e gerar relatórios e gráficos úteis Medição de Desempenho Externa Clientes gostam de ter muitas vezes medidas independentes Havendo medidas de monitorização feitas por terceiros Utilizadores obtém um desempenho comprovado Sondas distribuídas geograficamente Simulam a actividade dos clientes Com a sua medição obtêm-se a mesma visão dos utilizadores finais Utiliza-se o desempenho obtido sem CDNs como referência de base Aplicações das CDNs Três aplicações Serviços públicos de conteúdos Serviços privados ou empresariais de conteúdos Serviços de periferia Aumento de desempenho do Web Servidor original só manipula respostas com conteúdos dinâmicos Fornecedores de conteúdos e empresas estão dispostos a pagar por esta melhoria de desempenho Aplicações das CDNs Custos de largura de banda, aumento disponibilidade e desempenho Outra linha de força para o negócio das CDNs Empresas grandes estão a mover-se para uma infra-estrutura CDN Reduzir custos de LB Eliminar restrições encontradas quando a sua informação (vídeos de formação, notícias internas) precisa de ser acedida de sítios remotos Especialmente atractivo para locais com LB muito cara ou limitada Mercados emergentes Aplicações das CDNs Quando são base para uma onda nova de serviços Uma aplicação de grande sucesso justifica a sua implantação Exemplo: Distribuição de música (Napster, DMI) Videoclips, Vídeos de promoção das companhias de música Outra vez o 2001-9-11 Novo conteúdo Notícias do WTC! Servidor Web www.cnn.com 1000,000 Clientes WA NY UK ES 1000,000 Clientes DE FR PT JP pedido Cliente www.rtp.pt Conteúdo novo - Infra-estrutura de distribuição - Sucedâneo Conclusões Relatório do Internet Research Group 2004: fluxos de média representará 40% do tráfego B2B e B2C Volumes de tráfego sobre CDNs vai explodir Acessos de alta velocidade Vídeos de débito elevado serão lugar comum Serão necessárias CDNs mais eficientes e com maior escalibilidade e desempenho Redes de CDNs Conclusões Ferramentas para Redes de Conteúdo As CDNs vão ser desenvolvidas em diversas formas para beneficiar todos os actores Utilizadores finais Operadores de CDNs Fornecedores de Conteúdos Fornecedores de Serviços Internet Fabricantes Intranets CDNs versus Internet CDNs Faltam protocolos para comunicação entre diferentes CDNs Produtos CDN Cisco Content Routing Content Switching DistributedDirector Catalyst SLB Local Director Content Router Series Content Distribution and Delivery CE 500 Series CE 7300 Series Content Distribution Manager Streaming VOD IP/TV Products Bibliografia Survey of Content Delivery Networks (CDNs), acessível na Internet Content Networks: taxonomy and new approaches, H.T.Kung e C.H.Wu World Wide Web Caching: Trends and Tecniques, Greg Barish e Katia Obraczka Content Delivery Networks, Mathew Liste, Cisco Web Cache Comunication Protocol, Cisco Web Caching Primer, Brian Davison Internet Cache Protocol, RFC 2186