Introdução


O grande crescimento da internet nas últimas décadas trouxe ao mercado uma série de novas aplicações interativas e inovadoras, que demandam cada vez mais uma distribuição pela rede, móvel, onipresente, segura e confiável. Nesse cenário, os usuários estão cada vez mais interessados no conteúdo (o que), do que no local (onde) este pode ser encontrado.

Assim, surge e ganha força uma nova proposta de reestruturação do que conhecemos como rede: As Redes Centradas no Conteúdo (ICN - Information-Centric Networks). Quebrando com o atual paradigma das atuais Redes centradas em Sistemas Finais, a ICN propõe uma nova implementação de rede através de conteúdo nomeado, independente do local onde esse está armazenado, ou quando esse é requisitado.

A ICN promete promover uma maior eficiência em termos de escalabilidade, largura de banda, consumo e robustez, visando principalmente refletir as necessidades atuais e futuras dos crescentes usuários da internet.

No trabalho que se segue, nos propomos a tangenciar os principais temas referentes à Redes Centradas no Conteúdo, dando um breve relance sobre o atual paradigma de rede sobre o qual a internet é fundada. Primeiramente discorreremos sobre os pontos chaves presentes em uma arquitetura ICN, seguindo pelas diferentes propostas de arquiteturas encontradas na literatura. Seguindo, falaremos sobre um ponto bem relevante, a segurança de redes ICN, assim como suas vantagens, desvantagens, e aplicações práticas.

A Distribuição de Conteúdo na Internet


Arquitetura Centrada em Sistemas Finais e suas Limitações

Podemos dizer que essencialmente, usuários da rede normalmente estão preocupados com o conteúdo, o que, não o onde essa informação pode ser encontrada. Na arquitetura atual da internet, a implementação do IP foca justamente no onde para recuperar o dado desejado, gerando uma série de problemas e limitações.

Um desses problemas é que os dados seguem um caminho definido pelas políticas de roteamento, ignorando informações extras que poderiam tornar esse roteamento mais eficiente, como dados replicados por exemplo. Outra questão importante é a questão de segurança. O IP inicialmente não foi arquitetado para oferecer nenhum suporte de segurança e, apesar de haver soluções posteriores que tentam resolver esse problema, essa confiabilidade está limitada ao espaço e ao tempo da transmissão desses dados.

Ainda podemos ressaltar que uma arquitetura centrada nos sistemas finais implica em em uma dificuldade em lidar com mudanças dinâmicas na topologia da rede e multihoming. Isso pode representar um grande problema para principalmente aplicações modernas, como na internet das coisas (IoT). Nesse caso, nem a identidade, nem a localização dos dispositivos muitas vezes são relevantes (ex: uma pessoa deseja saber a temperatura de sua casa, não necessariamente qual sensor está realizando essa medida.), mas esses estão intrinsecamente relacionados ao IP.



Comunicação Multi Destinatária

A comunicação multidestinatária (multicast) surgiu com o propósito de aumentar a eficiência da distribuição de conteúdo na Internet, evitando o consumo de recursos da rede e garantindo a escalabilidade do sistema. Para isso, foi implementado o serviço IP Multicast, que atua na camada de rede. Essa proposta tem como base agregar um certo número de estações em um único grupo que possui apenas um endereço IP. Assim, a fonte só precisa enviar um datagrama para que todos os componentes do grupo o recebam. Contudo, esse serviço não é utilizado em larga escala na Internet, devido a complexidade para configurar e gerenciar o conjunto de protocolos necessários a sua implementação. Essa complexidade, por sua vez, vem do fato de o IP Multicast permitir que qualquer estação participe da conversação sem exigência de autorização em um serviço muitos-para-muitos. Em função dessa complexidade, outras alternativas foram propostas como o serviço Source-Specific Multicast (SSM), que conta com apenas uma fonte e reduz a arquitetura do sistema em um-para-muitos. Apesar da melhora, a implementação desses serviços na camada de rede exige modificações na estrutura da rede, o que compromete a real aplicação desses modelos.



Redes Par-a-Par

As redes par-a-par (P2P) têm como ideia central a possibilidade dos próprios nós da rede atenderem a demanda gerada por outros nós, aumentando a escalabilidade e eficiência de todo o sistema. Assim, os usuários se conectam a rede e utilizam seus recursos para prover serviços a outros pares, recebendo também recursos em troca. Por esse motivo, as redes P2P se tornaram uma melhor alternativa à comunicação multidestinatária que contava com uma maior complexidade de implementação e aplicação em larga escala.

Além disso, as redes P2P reforçam a principal característica das redes ICN, uma vez que um usuário de BitTorrent, por exemplo, ao se conectar ao swarm, só está interessado em receber o conteúdo, independente de quem envia ou de onde envia. Portanto, a implementação desse modelo se tornou muito mais eficaz com o avanço da Internet, que permite usuários com uma alta banda de Internet, deixando outros modelos ultrapassados em desuso.

Porém, ainda que seja claro o aumento da eficiência nas redes P2P, ainda existem alguns desafios na aplicação em redes centradas no conteúdo. Entre esses desafios está a segurança, tendo em vista a distributividade do sistema par-a-par. Como os diversos nós podem enviar e receber recursos a todo instante, precisa-se garantir a confiança nessa transmissão de dados para os usuários da rede. Outro problema intrínseco a redes P2P é a intermitência dos pares, ou seja, o fato de um par poder entrar e sair da rede a qualquer momento dificulta a eficiência da distribuição de conteúdo.

Principais componentes na arquitetura de redes ICN


As unidades básicas de dados transmitidos por uma rede ICN são denominados NDOs (Named Data Objects). Usualmente, o NDO contém uma nomenclatura única; os bits que representam as informações da aplicação; uma assinatura digital que conecta o nome e os dados; uma chave pública que é usada para gerar essa assinatura.

Em uma rede ICN, ainda possuímos 3 papéis principais de seus componentes, o que influencia diretamente nos principais componentes da arquitetura. Qualquer dispositivo na rede pode estar exercendo, um, dois ou os três diferentes papéis simultaneamente, que são eles:

1) Os produtores: são eles os responsáveis por originar os NDOs. Eles são equipados com chaves público-privada, e devem publicar alguma informação acessível para disponibilizar os dados ao público.
2) Os consumidores: são eles os responsáveis por originar as requisições na rede.
3) Os roteadores: são os equipamentos responsáveis por transmitir os pacotes pela rede.



Nomeação

A nomeação pode ser considerada o principal elemento da arquitetura ICN, já que essa é completamente baseada nos nomes dos NDOs.



Fig 1: Se em redes centradas em Sistemas finais o IP configura-se como entidade central da conectividade, na ICN esse papel encontra-se em blocos de conteúdos nomeados. (extraido de https://named-data.net/project/execsummary/)


Para identificar um dado, independentemente de onde está armazenado, como foi encontrado e o caminho pelo qual ele é transmitido, a nomeação precisa ser feita de forma a garantir que os nomes serão únicos para identificar cada NDO distinto. Também é necessário que eles sejam persistentes e escaláveis, ou seja, preservem esse teor único independente de onde são encontrados e do quando.

Pode-se encontrar diferentes técnicas de nomeação que permitem identificar e requisitar o conteúdo de forma eficiente. A seguir, nos aprofundaremos mais sobre três delas: a nomeação plana, hierárquica e por atributos. A forma escolhida para dar nome aos conteúdos ainda é um ponto chave das diferentes propostas de arquiteturas, que serão discutidas mais à frente.



Fig 2: métodos de nomeação escolhidas por cada arquitetura de ICN (extraído de [3])

Nomeação Plana

A nomeação plana se trata de strings globalmente únicas, ou uma sequência de bits aparentemente aleatórios que dão nome a determinado conteúdo. Há diversas formas de mapear um dado conteúdo em seu identificador plano, sendo o mais comumente encontrado funções criptográficas de hash (uma função aplicada tal que é praticamente impossível recriar o valor de entrada utilizando somente o valor de dispersão), que geram cadeias de bit de comprimento fixos a partir de blocos de dados não arbitrários.

Por não possuírem nenhuma semântica, ou seja, não há nenhuma relação de localização, propriedade ou característica que influenciam na formação do nome, esse pode ser considerado persistente. Funções hash de certa forma também garante a unicidade da nomenclatura, já que há uma baixa probabilidade de colisões em seu mapeamento.

Um ponto positivo na utilização da nomeação plana é a autocertificação dos conteúdos e de seus identificadores. Utilizando-se pares de hashes criptográficos, temos uma chave pública e outra chave que é um rótulo arbitrário escolhido pelo publicador, sendo assim possível verificar a validade do pedido e da resposta.

Um contraponto entretanto é que nomes planos não são amigáveis ao usuário,sendo necessário mecanismos adicionais para esse mapeamento entre nomes e conteúdos. Essa falta de agregação direta ainda traz um grande problema de escalabilidade para o roteamento, podendo ser prejudicial à eficiência da implementação desses protocolos.


Nomeação Hierárquica

A nomeação hierárquica por sua vez, é construída pela concatenação de múltiplos componentes com uma lógica hierárquica, que normalmente podem ser naturalmente lidos pelo usuário. Em contraposição a nomeação plana, a hierárquica segue uma semântica, de tal forma que seus componentes refletem alguma informação a respeito do conteúdo.


Fig 3: Exemplo de nome hierárquico estruturado como URL (extraído de [5])

Um ponto positivo é que nomes hierárquicos podem ser mapeados de forma análoga à agregação de rotas realizadas por protocolos de roteamento IP, assim, a carga sobre o roteamento fica reduzido, sendo inclusive possível adaptar protocolos atuais. Além disso, esses também são uma base para segurança dos dados, já que o usuário final confirma se o conteúdo é o desejado, ou produzido por um produtor confiável, através do contexto do nome.

O contraponto contudo, é que nomes hierárquicos não são persistentes. Como esses devem refletir características dos dados, assim se alguma identidade é mudada, como o publicador do conteúdo, o nome consequentemente também mudará.


Nomeação por atributos

A nomeação por atributos possui uma proposta diferente das demais técnicas apresentadas anteriormente, de forma que não propõe uma identificação estrita a cada conteúdo. São propostos, por sua vez, pares de atributos valor-atributo para a identificação.

Chamamos o conjunto de restrições definidas pelo nome de predicados, que são mapeados para realizar a relação conteúdo-nome. Podemos ainda ter predicados que cobrem outros, quando um reduz o universo definido por um anterior. Isso acarreta em um aliviamento da carga sobre os protocolos de roteamento, que não precisam da ajuda de mecanismos externos para funcionar.

No quesito de problemas, temos a questão da unicidade, já que é difícil definir um conjunto mínimo necessário de restrições para correta identificação do conteúdo. Esse fato implica ainda em outro mais grave, que é a obtenção dos conteúdos em excesso ou falta, uma vez que o usuário pode não conseguir explicitá-lo de forma correta. Isso, além de prejudicar o desempenho das aplicações, ainda no caso de excesso traz uma ineficiência da rede como um todo.



Roteamento

Roteamento Não Hierárquico

Roteamento Hierárquico



Caching

O armazenamento de NDOs é um ponto chave no serviço ICN e é feito através do caching dos dados dentro da própria rede. Todos os nós da rede, incluindo os nós que compõem a infraestrutura da rede, nós domésticos e móveis, potencialmente possuem caches. Requisições de um NDO feita por um consumidor podem ser atendidas por qualquer nó que possua uma cópia do dado em memória.

Tipicamente na internet, uma pequena parcela dos conteúdos contribuem com a maior parte do tráfego na rede. Assim, aumentar a disponibilidade desses conteúdos populares através do caching, trazendo-os mais perto dos consumidores, representa uma potencial diminuição do congestionamento da rede, consequentemente resultando em uma melhora do serviço e eficiência.

Modelos de Arquitetura


TRIAD

TRIAD foi um modelo pioneiro na distribuição de conteúdo baseado no nome, normalmente uma URL, e não mais no endereço IP. Para isso, a TRIAD tinha como função expor uma camada de conteúdo capaz de realizar o roteamento do conteúdo, provendo um acesso transparente e a distribuição dos dados. Esse roteamento era realizado a partir de requisições HTTP e transporte TCP.



Data-Oriented Network Architecture (DONA)

DONA é uma arquitetura com uma abordagem clean-state de nomeação e localização de conteúdos na distribuição dos mesmos na rede de maneira confiável. Para isso, DONA permite que o cliente solicite um certo dado a partir de nomes planos e autocertificadores, ao invés do endereço IP.

Nesse sentido, a formação dos nomes em DONA é feita a partir de funções hash associados a chaves pública-privadas, que têm o papel de garantir a autenticidade dos dados. Os nomes planos, por sua vez, trazem dificuldade de serem associados pelos usuários, sendo um ponto negativo nessa arquitetura. Para ser capaz de funcionar corretamente, ou seja, o cliente fazer o pedido pelo nome do conteúdo, a arquitetura implementa duas primitivas operacionais: FIND e REGISTER. A primeira permite que o cliente seja capaz de requisitar um dado a partir do seu nome. A segunda tem como função permitir que os provedores de conteúdo indiquem sua intenção de servir um certo dado. Para isso, DONA apresenta register handlers (RHs), que são responsáveis por combinar as funções de resolução de nomes e armazenamento em cache de dados. Os RHs também têm o papel de rotear os pedidos dos clientes a vizinhos de menor custo. FINDs podem ser encaminhados a mais de um RH, caracterizando o sistema como multi-homed para obtenção de conteúdo.

Ainda, DONA possui extensões opcionais que visam a melhorar a utilização da arquitetura, como mecanismos de assinatura de conteúdos e notificação de atualização de FINDs de longa duração (com TTL). Além disso, outra funcionalidade importante é a de evitar servidores falhos ou sobrecarregados ao prover conteúdo.



Content-Centric Networking (CCN)

Outra arquitetura comum de redes centradas no conteúdo é a CCN, que tem como característica a divisão dos conteúdos em pedaços menores, formados por nomes hierárquicos que serão requisitados pelos nós. Com os nomes hierárquicos, é criada uma árvore de nomes, que permite ao usuário requisitar conteúdos baseado nos relacionamentos da árvore, onde é possível avaliar o posicionamento relativo de um nome a outros da mesma árvore, graças a essa estrutura hierárquica. Além disso, permite também uma agregabilidade aos endereços da rede, a partir do mecanismo de casamento do maior prefixo.

Essa arquitetura é baseada na troca de chunks do conteúdo, a partir da requisição de interesse de um certo cliente por um chunk, por meio de um pacote de interesse. Os nós vizinhos serão então responsáveis por responder a essa requisição com o pacote de dados referente a esse pedaço, caso o tenham em memória. Caso contrário, irão encaminhar o pacote de interesse aos nós vizinhos até que o interesse seja satisfeito.

Uma importante vantagem da arquitetura CCN é a segurança aplicada diretamente nos conteúdos, independente da forma de transporte. Dessa forma, os pacotes são assinados pelos publicadores do conteúdo, criando um vínculo entre os dados e o nome do mesmo. Com isso, poderá ser feita a autenticação desse vínculo por qualquer nó da rede, validando a chave utilizada na assinatura.



Publish-Subscribe Internet Routing Paradigm (PSIRP)

Vantagens da informação centrada no conteúdo


Distribuição de Conteúdo Escalável e Eficiente



Nomeação Única e Persistente



Mobilidade and Multihoming



Tolerância a Desconexões

Segurança


Validação do Conteúdo



Managing Trust



Proteção do Conteúdo e Controle de Acesso

Aplicações da informação centrada no conteúdo


Desafios e contrapontos em Redes Centrada em Conteúdo


Questões de Hardware



Questões Práticas



Questões Econômicas

Conclusão


Referências


[1] XYLOMENOS, George et al. A survey of information-centric networking research. IEEE Communications Surveys & Tutorials, v. 16, n. 2, p. 1024-1049, 2014.

[2] TROSSEN, Dirk; SARELA, Mikko; SOLLINS, Karen. Arguments for an information-centric internetworking architecture. ACM SIGCOMM Computer Communication Review, v. 40, n. 2, p. 26-33, 2010.

[3] AKBAR, Muhammad Sajjad et al. Information-centric networks: Categorizations, challenges, and classifications. In: 2014 23rd Wireless and Optical Communication Conference (WOCC). IEEE, 2014. p. 1-5.

[4] JIANG, Xiaoke et al. A survey on information-centric networking: rationales, designs and debates. China Communications, v. 12, n. 7, p. 1-12, 2015.

[5] DE BRITO, Gabriel M.; VELLOSO, Pedro B.; MORAES, Igor M. Redes orientadas a conteúdo: Um novo paradigma para a Internet. Minicursos do Simpósio Brasileiro de Redes de Computadores-SBRC, v. 2012, p. 211-264, 2012.

[6] JACOBSON, Van et al. Networking named content. In: Proceedings of the 5th international conference on Emerging networking experiments and technologies. ACM, 2009. p. 1-12.

[7] BARI, Md Faizul et al. A survey of naming and routing in information-centric networks. IEEE Communications Magazine, v. 50, n. 12, p. 44-53, 2012.

[8] AHLGREN, Bengt et al. A survey of information-centric networking. IEEE Communications Magazine, v. 50, n. 7, p. 26-36, 2012.

[9] BRAUN, Torsten; TRINH, Tuan Anh. Energy efficiency issues in information-centric networking. In: European Conference on Energy Efficiency in Large Scale Distributed Systems. Springer, Berlin, Heidelberg, 2013. p. 271-278.