La red centrada en el contenido (CCN) se diferencia de la arquitectura de Internet basada en IP y orientada al host al priorizar el contenido, haciéndolo directamente direccionable y enrutable. En CCN, los puntos finales se comunican en función de datos con nombre en lugar de direcciones IP . Este enfoque es parte de la arquitectura de red centrada en la información (ICN) e implica el intercambio de mensajes de solicitud de contenido (denominados "Intereses") y mensajes de devolución de contenido (denominados "Objetos de contenido").
En este paradigma, la conectividad puede ser intermitente, el almacenamiento en red y en el host final se puede aprovechar de forma transparente, ya que los bits en la red y en los dispositivos de almacenamiento de datos tienen exactamente el mismo valor, la movilidad y el acceso múltiple son la norma y anycast , multicast y broadcast son compatibles de forma nativa. Los datos se vuelven independientes de la ubicación, la aplicación, el almacenamiento y los medios de transporte, lo que permite el almacenamiento en caché y la replicación en red. Los beneficios esperados son una mayor eficiencia, mejor escalabilidad con respecto a la demanda de información/ancho de banda y una mejor robustez en escenarios de comunicación desafiantes. En las redes centradas en la información, la caché es una solución a nivel de red y tiene estados de caché que cambian rápidamente, tasas de llegada de solicitudes más altas y tamaños de caché más pequeños. En particular, las políticas de almacenamiento en caché de redes centradas en la información deben ser rápidas y livianas.
Los principios que sustentan las redes centradas en la información se describieron por primera vez en las 17 reglas originales del Proyecto Xanadu de Ted Nelson en 1979. En 2002, Brent Baccala presentó un borrador de Internet que diferenciaba entre redes orientadas a la conexión y redes orientadas a los datos y sugería que la arquitectura web de Internet se estaba orientando rápidamente más a los datos. [1] En 2006, el proyecto DONA [2] en UC Berkeley e ICSI propuso una arquitectura de red centrada en la información, que mejoró TRIAD [3] al incorporar seguridad (autenticidad) y persistencia como primitivas de primera clase en la arquitectura. El 30 de agosto de 2006, el investigador de PARC Van Jacobson dio una charla titulada "Una nueva forma de ver las redes" en Google. [4] El proyecto CCN se lanzó oficialmente en PARC en 2007. En 2009, PARC anunció el proyecto CCNx (Content-Centric Network), publicando las especificaciones de interoperabilidad y una implementación de código abierto en el sitio web del Proyecto CCNx el 21 de septiembre de 2009. El diseño original de CCN se describió en un artículo publicado en la Conferencia Internacional sobre Experimentos y Tecnologías de Redes Emergentes (CoNEXT) en diciembre de 2009. [5]
Las reuniones anuales de la comunidad CCNx se celebraron en 2011, [6] 2012, [7] 2013 [8] y 2015. [9]
La especificación del protocolo para CCNx 1.0 está disponible para comentarios y debate. El trabajo sobre CCNx se lleva a cabo de forma abierta en el grupo de investigación IRTF del ICNRG .
La especificación CCNx se publicó en algunos borradores de la IETF . Las especificaciones incluían:
Se propuso la integración perfecta de datos dentro de un entorno de ejecución abierta como un factor importante que contribuye a proteger la seguridad de los análisis basados en la nube y el cifrado de redes clave. [10] La fuerza impulsora para adoptar estas heurísticas fue doble: flujos de datos interrumpidos por lotes que permanecen confinados a un entorno de ejecución óptimo y acceso seguro compartido a la nube que depende de procesos analíticos integradores. [11]
El software CCNx estaba disponible en GitHub .
El objetivo funcional del Protocolo de Internet, tal como fue concebido y creado en la década de 1970, era permitir que dos máquinas, una que poseía recursos y la otra que deseaba acceder a ellos, mantuvieran una conversación entre sí. El principio operativo era asignar direcciones a puntos finales, lo que permitía que estos puntos finales se localizaran y se conectaran entre sí.
Desde aquellos primeros tiempos, se han producido cambios fundamentales en la forma de utilizar Internet: desde la proliferación de servicios de redes sociales hasta la visualización y el intercambio de contenidos digitales, como vídeos, fotografías, documentos, etc. En lugar de proporcionar una conectividad básica, Internet se ha convertido en gran medida en una red de distribución con cantidades masivas de vídeos y páginas web que fluyen desde los proveedores de contenidos a los espectadores. Cada vez más, los usuarios de Internet de hoy exigen un acceso más rápido, más eficiente y más seguro a los contenidos sin preocuparse por dónde se pueden encontrar.
Las redes también se utilizan en muchos entornos en los que el modelo de comunicación TCP/IP tradicional no es adecuado. El Internet de las cosas (IoT) y las redes de sensores son entornos en los que el modelo de comunicación origen-destino no siempre ofrece la mejor solución.
CCN fue diseñado para funcionar en muchos entornos, desde centros de datos de alta velocidad hasta sensores con recursos limitados. CCN tiene como objetivo:
Los mensajes de objeto de contenido son cargas útiles con nombre que son fragmentos de datos del tamaño de una red. Los nombres son una serie jerárquica de segmentos de nombres binarios que los editores de contenido asignan a los objetos de contenido. Las firmas son enlaces criptográficos entre un nombre, una carga útil y el ID de clave del editor. Esto se utiliza para determinar la procedencia. Los mensajes de interés son solicitudes de objetos de contenido que coinciden con el nombre junto con algunas restricciones opcionales sobre ese objeto.
El protocolo principal funciona de la siguiente manera: los consumidores solicitan contenido enviando un mensaje de interés con el nombre del contenido deseado. La red enruta el interés en función del nombre utilizando el prefijo más largo . El interés abandona el estado a medida que recorre la red. Este estado se almacena en la tabla de intereses pendientes (PIT). Cuando se encuentra una coincidencia (cuando un interés coincide con un objeto de contenido), el contenido se envía de vuelta por la ruta inversa del interés, siguiendo el estado PIT creado por el interés.
Dado que el contenido es autoidentificable (a través del nombre y el enlace de seguridad), cualquier objeto de contenido se puede almacenar en caché. Los mensajes de interés se pueden comparar con los cachés a lo largo del camino, no solo en los editores.
También es posible el almacenamiento en caché distribuido dentro de una red centrada en el contenido, lo que requiere parámetros de acceso multifuncionales en toda la base de datos. Esto permite, en esencia, que los algoritmos de cifrado de red compartidos apliquen limitaciones de acceso basadas en roles a los usuarios según niveles de autorización definidos. [13]
Los intereses coinciden con los objetos de contenido según los prefijos de nombre. Por ejemplo, un interés para /a/b coincidiría con un objeto de contenido llamado /a/b/c/d o /a/b. Los intereses incluyen restricciones en forma de selectores. Estos ayudan a la red a seleccionar cuáles de las posibles coincidencias de prefijo son coincidencias reales. Por ejemplo, un interés puede excluir ciertos nombres, solicitar una cantidad mínima o máxima de segmentos de nombre adicionales, etc.
Los objetos de contenido tienen un componente de nombre final implícito que es igual al hash del objeto de contenido. Esto se puede utilizar para hacer coincidir un nombre.
La codificación de paquetes se realiza mediante CCNB (un formato propietario basado en un tipo de XML binario).
La última versión de esta rama es la 0.8.2. El software está disponible bajo licencia GPL. También se encuentran disponibles especificaciones y documentación.
CCNx 1.x se diferencia de CCNx 0.x en los siguientes aspectos: [14]
Los intereses coinciden con los objetos de contenido por sus nombres exactos, no por sus prefijos. Por lo tanto, un interés por /a/b/ solo coincidirá con un objeto de contenido cuyo nombre sea /a/b. Los intereses pueden restringir las coincidencias por el identificador de clave del editor o por el hash de objeto de contenido del objeto.
Se utiliza un formato de tipo-longitud-valor (TLV) anidado para codificar todos los mensajes en la red. Cada mensaje se compone de un conjunto de encabezados de paquetes y un mensaje de protocolo que incluye el nombre, el contenido (o carga útil ) y la información utilizada para validar criptográficamente el mensaje, todo ello contenido en TLV anidados.
La especificación de CCNx 1.0 está disponible en: http://blogs.parc.com/ccnx/specifications/