Redes Centradas em Conteúdo
Trabalho da Disciplina Redes I
Autores: Breno, Mayara e Rogério

  1. Introdução
  2. A Distribuição de Conteúdo na Internet Atual
    1. Redes de ponta-a-ponta
    2. Redes P2P
    3. Sistemas de Publicação e Assinatura
    4. Redes por Distribuição de Conteúdo
  3. Redes Centradas no Conteúdo (ICN)
    1. Conteúdo Nomeado
    2. Roteamento Baseado em Nomes
    3. Cache em ICN
  4. Principais Arquiteturas Para ICN
    1. CBN
    2. DONA
    3. CCN
    4. PSIRP
    5. CONET
    6. Outras Arquiteturas
    7. Comparação Geral
  5. Desafios de Implementação
    1. Nomeação
    2. Roteamento
    3. Armazenamento em Cache
    4. Segurança
    5. Modelo Econômico
  6. Algumas Aplicações
    1. Aplicações em Tempo Real
    2. Aplicações em Automóveis
    3. Aplicações em redes 4G e 5G
    4. Streaming
    5. Cenários de Desastre
  7. Conclusão
  1. Introdução

    A busca pela acessibilidade global com o surgimento da internet, no ínicio dos anos 80, influenciou a adoção da pilha de protocolos TCP/IP com o objetivo de interconectar redes, prover conectividade fim-a-fim, dentre outros. Na interconexão de redes, protocolos de roteamento eram utilizados, de forma que os roteadores podiam calcular o menor caminho disponível entre qualquer par origem-destino, já que a internet era subdividida entre poucas redes e composta por menos nós. Embora esse cenário tenha mudado, os protocolos de roteamento atuais possuem os mesmos papéis.
    Com o aumento exponencial do número de usuários e de redes na internet, surgiram problemas na interoperção de redes. A solução encontrada para adaptar o modelo TCP/IP foi de divisão da internet em sistemas autonomos (Autonomous systems - ASes), sendo um conjunto de redes e roteadores operadas por uma instituição em comum. Contudo, o paradigma dessa arquitetura de focar na troca de dados baseado na localização dos hosts e não no próprio conteúdo gerado e armazenado por eles traz consigo problemas na compatibilidade de interesses, tendo em vista que o usuário de internet tem como foco principal o conteúdo em sí e nao sua localização de armazenamento.
    Desse modo, estuda-se qual a melhor alternativa para problemas como a disponibilidade de conteúdo, segurança, dependencia dos hosts e que seja capaz de evoluir para atender os avanços na internet. Pôr fim as limitações da arquitetura atual é possível substituindo o “onde” pelo “o que”. Ou seja, os dados passam a ser guiados por indicadores de nomes da informacao, em vez de nomes de interfaces de hosts. Apesar de ser um conceito relativamente novo, já existem modelos em desenvolvimento de redes centradas no conteudo ou orientadas a informacao, mesmo não havendo implementações em larga escala. Nos próximos capitulos serao abordados caracteristicas dessas aplicações, bem como projetos, problemas e desafios.

  2. A Distribuição de Conteúdo na Internet Atual

    Quando observamos a internet hoje em dia, vemos a tendência que esta tem em mudar para um modelo centrado no conteúdo. Nesse modelo seriam buscados os conteúdos e não os servidores onde tais conteúdos seriam encontrados. Com o intuito de chegar à esse modelo de redes centradas em conteúdo sem mudar como a internet está implementada, algumas formas alternativas de usar o modelo TCP/IP para se aproximar do foco no conteúdo. Alguns exemplos virão a seguir: Redes P2P, Sistemas de Publicação e Assinatura e Redes por Distribuição de Conteúdo.

    1. Redes TCP/IP
    2. Redes P2P

      As redes P2P são formadas pelas conexões diretas entres usuários finais. Nesse modelo a ideia é que a conexão ocorre entre participantes que não têm hierarquia entre si.
      O BitTorrent é uma das mais famosas aplicações da rede P2P. A distribuição de conteúdo se dá entre um usuário que já possui um arquivo para um usuário que deseja adquirir tal arquivo. Os usuários que possuem o arquivo são chamados de seeders. Quanto mais seeders mais rápido será o download de um arquivo. Isso torna um sistema escalável, já que quanto mais rápido for para obter um arquivo mais rápido vai se tornando obter esse arquivo. No entanto essa ideia é mais teórica do que real, pois na realidade nem sempre todos usuários que terminam de baixar seus arquivos se colocam à disposição para fornecer esses arquivos como seeders.

    3. Sistemas de Publicação e Assinatura

      Nesse sistema, um usuário publica um evento. Um outro usuário interessado nesse evento assina o mesmo. A partir desse momento sempre que houver o sistema notifica o usuário que assinou sempre que houver um outro evento que se assemelha aos que ele assinou. Esse sistema demonstra a ideia da prioridade na informação. O assinante não tem interesse no usuário que publica, mas no evento em si.

    4. Redes por Distribuição de Conteúdo

      Quando pensamos em um serviços que são usados por muitos usuários como Google, Youtube, que distribui milhares de vídeos para milhares de pessoas ao redor do mundo, fica mais claro o porquê da distribuição de conteúdos. Faz-se necessário quando vemos que para tornar essa distribuição efetiva para todos os usuários, é desejável que não haja apenas um gigantesco datacenter. Pois se esse for o caso, usuários que requisitarem o conteúdo de longe desse datacenter, terão sempre uma vulnerabilidade à lentidão, pois estarão sujeitos a muitos ISPs e muitos links no caminho. Além disso, um único datacenter seria um ponto único de falha.
      As redes por distribuição de conteúdo (CDN) são uma forma de “espalhar” um servidor único em vários servidores para conseguir levar o conteúdo para um requisitante pelo servidor mais próximo.A CDN é vantajosa tanto para o usuário final quanto para o servidor principal. Visto que com um grande número de requisições ao servidor, este também terá dificuldades para atender a todas as requisições. Isso resultará numa maior chance de perdas e num aumento do tráfego. Quando o usuário requisitar um dado, o servidor que está em melhor condições de responder esse usuário, responderá com o dado requisitado armazenado em cache por esse servidor. Caso esse servidor não tem tal dado em cache, ele procurará em outros servidores CDNs próximos. Se ainda assim ele não conseguir achar. O servidor CDN inicial funcionará como um proxy para o servidor original do dado. Armazenando, após a entrega, o dado em questão. Existem dois modos de operação: Enter deep e Bring home. O primeiro coloca um grande número de servidores com a intenção de se aproximar ao máximo do usuário que vai requisitar o serviço. Nesse modo encurta-se o número de links e a distância geográfica entre o servidor CDN e o usuário. Porém com o grande número de servidores, a manutenção deles se torna mais difícil. Esse modo de operação é utilizado pela Akamai. Já o segundo modo se baseia em não muitos, mas servidores localizados em locais chaves com conexões de ponta e privadas. A localização desses servidores não tem por intenção se aproximar ao máximo dos usuários finais. Mas se aproximar do maior número de ISPs de nível 1 possível. A manutenção se torna mais barata e fácil. No entanto há possibilidade de perda na qualidade do serviço.

  3. Redes Centradas no Conteúdo (ICN)

    As ICNs apresentam uma mudança radical para modelo atual da Internet. A possibilidade de entregar conteúdo independentemente de servidores específicos está ligada à conceitos que serão discutidos neste capítulo: Nomenclatura de Conteúdo; Roteamento Baseado em Nomes e Caching na Rede.

    1. Conteúdo Nomeado

      Como visto anteriormente, a Internet é fortemente baseada em servidores. Todo conteúdo requisitado exige um conhecimento prévio de um endereço IP capaz de servir tal conteúdo. O princípio básico das ICNs é tratar o conteúdo como o paradigma principal das redes, em vez dos servidores. Para isso, as requisições de conteúdo precisam seguir um esquema de nomenclatura capaz de oferecer escalabilidade e consistência entre nomes e conteúdo.

      Três técnicas básicas de nomenclatura de conteúdo podem ser usadas em ICN:

      • Nomenclatura Plana
        Nomes planos são conjuntos de bits aparentemente aleatórios e unicamente relacionados ao conteúdo de interesse, como, por exemplo, uma chave de 160 bits gerada pela função hash SHA-1, tendo como entrada os bits do conteúdo em si. Sistemas robustos e escaláveis de distribuição de chaves hash são um tópico bem conhecido, e algumas soluções dessa área podem ser usadas para a Nomenclatura Plana em ICN. Um problema com a Nomenclatura Plana é a impossibilidade de agregar nomes em prefixos, uma vez que as chaves são geradas de forma independente, gerando um desafio para o uso desses nomes com o roteamento hierárquico, que será discutido adiante.
      • Nomenclatura Hierárquica
        Ao concatenar strings que representam características do conteúdo em seus nomes, a Nomenclatura Hierárquica difere muito da Nomenclatura Plana e sua aparência aleatória. Os nomes hierárquicos refletem a natureza do conteúdo e são mais amigáveis ao usuário. Os nomes podem apresentar estruturas parecidas com URIs (Uniform Resources Identifiers). É possível que um usuário consiga construir o nome para o conteúdo de interesse sem que haja, a priori, informações sobre tal nome ou o conteúdo em si. Os nomes hierárquicos podem ser agregados de acordo com seus prefixos (que podem ser relacionados à propriedade, versionamento, formato etc.), utilizando soluções já conhecidas em protocolos de roteamento IP. Uma desvantagem deste método é a sua fraca persistência, uma vez que mudanças aplicadas ao conteúdo, como uma transferência de propriedade, tornariam o nome incorreto.
      • Nomenclatura Baseada em Atributos
        Ao contrário dos métodos descritos anteriormente, a Nomenclatura Baseada em Atributos não se compromete em identificar unicamente cada conteúdo. Em vez disso, o objetivo é classificar os conteúdos atribuindo-os pares chave-valor. O conteúdo pode ser acessado através da escolha de parâmetros aos quais o conteúdo deve atender, de acordo com os pares chave-valor correspondentes. Essa característica torna possível a busca de conteúdo diretamente pela infraestrutura da rede, sem necessidade de aplicações externas. Como o conteúdo não é explicitamente nomeado, os acessos podem retornar um grande número de conteúdos que atendem aos critérios especificados, potencialmente usando a rede de modo ineficiente.

    2. Roteamento Baseado em Nomes

      O Roteamento nas ICNs deve ser capaz de servir conteúdo sem que um servidor seja especificado pelo usuário. Assim, os pacotes devem ser endereçados aos nomes desses conteúdos. Para que isso funcione de forma robusta e escalável, existem mecanismos que definem como a informação de roteamento é usada pela rede e como ela é armazenada. Eles estão divididos em dois grupos principais:

      • Roteamento Não-Hierárquico
        Neste mecanismo, não há um nó central para armazenar informações de roteamento. Cada nó é capaz de calcular qual é a melhor rota para acessar o conteúdo desejado. Os protocolos de roteamento da Internet atual são, em geral, não-hierárquicos. Sendo assim, a maior parte dos problemas encontrados neste tipo de mecanismo já vem sendo amplamente discutida ao longo dos anos e as soluções podem ser aplicadas às ICNs. Roteamento Hierárquico
      • Roteamento Hierárquico
        Neste mecanismo, os roteadores são conectados de forma hierárquica, assegurando a redução de informação de controle necessária em cada nó. Em ICN, há dois tipos principais de Roteamento Hierárquico:
        • Arquitetura em Árvore
          Esta topologia utiliza conceitos como afiliação, paridade, superioridade e inferioridade para determinar o fluxo de dados no roteamento hierárquico. Podem ser definidos nós como “pais”, “filhos” e “irmãos”. Os pais concentram toda a informação de seus filhos, agindo como portões para diminuir a carga de roteamento para toda a sub-árvore correspondente. Sendo assim, os pais acabam sendo um possível ponto único de falha, arriscando a conectividade de toda sua sub-árvore em caso de falha.
        • Arquitetura em DHT (direct hash tables)
          DHTs são estruturas adotadas para distribuição de hashes criptográficas. Esta topologia garante que a carga de processamento e caching das sub-árvores fique distribuída entre os filhos participantes, evitando o ponto único de falha da arquitetura em árvore. Desta forma, os níveis superiores são formados como uma fusão dos níveis inferiores.

    3. Cache em ICN

      Em redes tradicionais, em que alguns poucos distribuidores fornecem conteúdo muito requisitado, a tecnologia de caching representa uma grande economia no tráfego de dados, melhorando a qualidade do serviço.

      Em redes ICN, o caching representa um desafio. Roteadores de conteúdo podem ser usados para armazenar em memória os conteúdos acessados com mais frequência, estabelecendo uma rede de chaching. Este sistema acaba distribuindo cópias do conteúdo para nós distantes de suas origens, mais próximas dos usuários finais. Esta disposição do conteúdo acaba aumentando a complexidade do roteamento, exigindo soluções protocolares para esse problema.

  4. Principais Arquiteturas Para ICN
    1. CBN
    2. DONA

      A arquitetura Data-Oriented Network Arquiteture ou simplesmente DONA é uma das precursoras a utilizar os componentes básicos do paradigma ICN, e a propõe a adoção desse paradigma como uma camada sobre o protocolo IP. Essa arquitetura baseia-se em ideias inovadoras para a nomeação e localização de conteúdos visando a distribuição confiável dos contedos de uma rede hierárquica. Utilizando-se de nomes planos e auto certificadores, é possível propiciar persistência e autenticidade dos dados. Para a formação dos nomes em DONA, destaca-se a associao entre uma entidade geradora dos nomes e um par de chaves publico-privadas. Sendo assim algumas deficincias do protocolo IP ainda estão presentes, não dispondo de todos os benefícios que a ICN oferece.

    3. CCN
    4. PSIRP
    5. CONET
    6. Outras Arquiteturas
    7. Comparação Geral
  5. Desafios de Implementação
    1. Nomeação

    2. Roteamento

      O roteamento num modelo de rede baseado em ICN resultaria em mudanas nos roteadores. Hoje em dia eles enviam pacotes adiantes e montam tabelas de roteamento. Devemos ter em mente que no modelo ICN os roteadores devem ter em cache conteúdos para transmitir direto ao usuário final. Desse modo, seria necessário que os roteadores fossem capazes de organizar seus caches, enviar conteúdos para os usuários finais e também administrar os conteúdos que devem ser colocados ou retirados do cache pela frequência ao qual são acessados. Essas mudanas nos roteadores exigem que sejam mudados hardware e software dos roteadores para que possam se adaptar à essas necessidades de roteamento.

    3. Armazenamento em Cache

      Como no modelo ICN os dados devem ser cacheados nos roteadores. Armazenamento se torna um fator fundamental. Tanto quanta memória se deve ter, com quanta velocidade. Quais memórias so mais custosas e quantas gastam mais energia. Tudo isso deve ser levado em conta, considerando uma otimização dos roteadores para fazer o modelo ICN realmente eficiente.

    4. Segurança

      Diferentemente do sistema atual, na CCN deve-se assegurar a integridade de um conteúdo independente de sua localização, tendo em vista que um conteudo pode ser alocado tanto na fonte, como em qualquer nó da rede. Essa característica das CCNs garante maior facilidade na autenticao de conteúdo já que descarta a necessidade de garantir a segurana de diversos componentes na infraestrutura da rede, como verificar se o servidor DNS e o repositrio de contedos sao confiáveis, se o canal que transmitiu é seguro, etc. Dentre os desafios enfrentados para a implementação de modelos de segurana, destacam-se a verificação da integridade do documento, a proveniência do conteúdo e a relevância do conteúdo obtido em relação ao requisitado. Apesar de ainda haver um mistério acerca de qual melhor modelo para garantir a segurana nas redes orientadas a conteúdo, alguns envolvidos defendem o modelo de nomeao hierárquico enquanto outros defendem o modelo de nomes auto certificados. A auto certificação dos nomes consiste em gerar uma operao criptográfica com o próprio conteúdo que permita a correspondência entre conteúdos e seus nomes. A construção dos nomes pode ser feita por chave criptográfica, para conteúdos mutáveis, bem como por hash. Para conteúdos estáticos, seria necessário calcular o hash do conteúdo e comparar com o resultado do mesmo, ou seja, se um contedo for alterado na rede ou no caminho ate o consumidor, seria fácil a deteco pelo usuário. Contudo, a utilização de hash não garante que a provenincia da informao seja de confiana, pois os contedos no so assinados. J os nomes verificados por chave, possuem uma forte ligao entre o contedo e seu nome pois eles so formados pelo hash da chave publica do publicador, garantindo assim a integridade dos dados. Alem disso, a verificao dos nomes por chave criptogrfica assegura a provenincia do contedo com base na verificao de sua assinatura digital. A verificao da assinatura digital possvel obtendo a chave publica do publicador e comparando o hash dessa chave com o nome do contedo. J que uma funo hash aplicada a contedos diferentes jamais produzira um resultado igual, importante ressaltar que a unicidade dos nomes global. Sendo esse sistema de identificao dos contedos ilegvel para humanos, bastante improvvel que algum seja capaz de memorizar ou compreender esses nomes. Dessa forma, torna-se necessria a utilizao de um mecanismo para traduo dos nomes, oque faz com que seja anulada a segurana provida por nomes autenticados. Ainda em relao a nomeao, destaca-se a falta de privacidade dos usurios, uma vez que a requisio de contedos acessada diretamente pelo roteador, basta que um dos roteadores da rede esteja comprometido para que a monitorao dos pedidos enviados a rede seja possvel por algum mal intencionado. A poluio dos caches da rede tambm um problema a ser enfrentado, pois enviando pedidos de contedo aleatrio ou mesmo de contedo falso, pode alterar a popularidade dos contedos, provocando o armazenamento de contedos pouco populares nos cachs ou entao poluindo os cachs que esto fora do universo de contedos validos. Dessa forma, por mais que a implementao de redes orientadas a contedo no necessite da confiana de toda a infraestrutura envolvida na obteno de dados, a segurana nas CCNs ainda uma questo com pontos em aberto.

    5. Modelo Econômico

      Um dos principais problemas para a implementao da ICN o modelo econmico. Com o modelo econmico atual da internet, ISPs locais do acesso aos usurios finais . Alm de prover o servio para os usurios finais, eles tm que gerenciar a conexo entre outros provedores . E com isso qualquer mudana que se deseja fazer nos paradigmas da internet, enfrenta a barreira de ter que atualizar esse modelo econmico. A ideia para poder mudar paradigmas da internet seria possibilitar que outro tipo de modelo econmico fosse estabelecido. Provedores seriam divididos entre provedores de servios e provedores de infraestrutura. Em um modelo ICN os custos seriam menores para transmisso de dados, porm haveria uma necessidade maior de armazenamento na internet. O que atualmente seria favorvel. Pois os preos para a transmisso de dados custam mais do que o armazenamento. O sucesso das CDNs mostra que servios alternativos na rede tm ganhado mais popularidade.Abrindo portas para modelos diferentes que se adaptem melhor aos necessrios para a implementao da ICN.

  6. Algumas Aplicações
    1. Aplicações em Tempo Real
    2. Aplicações em Automóveis
    3. Aplicações em redes 4G e 5G
    4. Streaming
    5. Cenários de Desastre
  7. Conclusão