Una red de entrega de contenidos o red de distribución de contenidos ( CDN ) es una red distribuida geográficamente de servidores proxy y sus centros de datos . El objetivo es proporcionar alta disponibilidad y rendimiento mediante la distribución espacial del servicio en relación con los usuarios finales . Las CDN surgieron a finales de la década de 1990 como un medio para aliviar los cuellos de botella en el rendimiento de Internet [1] [2] cuando Internet comenzaba a convertirse en un medio de misión crítica para personas y empresas. Desde entonces, las CDN han crecido hasta servir una gran parte del contenido de Internet actual, incluidos objetos web (texto, gráficos y scripts), objetos descargables (archivos multimedia, software, documentos), aplicaciones ( comercio electrónico , portales ), transmisión en vivo. multimedia, medios de streaming bajo demanda y sitios de redes sociales . [3]
Las CDN son una capa en el ecosistema de Internet. Los propietarios de contenidos, como las empresas de medios y los proveedores de comercio electrónico, pagan a los operadores de CDN para que entreguen su contenido a sus usuarios finales. A su vez, una CDN paga a los proveedores de servicios de Internet (ISP), operadores y operadores de red por alojar sus servidores en sus centros de datos.
CDN es un término general que abarca diferentes tipos de servicios de entrega de contenido: transmisión de video , descargas de software, aceleración de contenido web y móvil, CDN administrada/licenciada, almacenamiento en caché transparente y servicios para medir el rendimiento de CDN, equilibrio de carga , conmutación y análisis de CDN múltiple y nube. inteligencia. Los proveedores de CDN pueden pasar a otras industrias como la seguridad, la protección DDoS y los firewalls de aplicaciones web (WAF) y la optimización de WAN.
Los nodos CDN generalmente se implementan en múltiples ubicaciones, a menudo a través de múltiples redes troncales de Internet . Los beneficios incluyen la reducción de los costos de ancho de banda, la mejora de los tiempos de carga de las páginas y el aumento de la disponibilidad global del contenido. La cantidad de nodos y servidores que componen una CDN varía, según la arquitectura, y algunas llegan a miles de nodos con decenas de miles de servidores en muchos puntos de presencia remotos (PoP). Otros construyen una red global y tienen una pequeña cantidad de PoP geográficos. [4]
Las solicitudes de contenido suelen dirigirse algorítmicamente a nodos que son óptimos de alguna manera. Al optimizar el rendimiento, se pueden elegir las mejores ubicaciones para ofrecer contenido al usuario. Esto se puede medir eligiendo ubicaciones que tengan la menor cantidad de saltos , la menor cantidad de segundos de red lejos del cliente solicitante o la mayor disponibilidad en términos de rendimiento del servidor (tanto actual como histórico), para optimizar la entrega a través de redes locales. Al optimizar el costo, se pueden elegir las ubicaciones que sean menos costosas. En un escenario óptimo, estos dos objetivos tienden a alinearse, ya que los servidores de borde que están cerca del usuario final en el borde de la red pueden tener una ventaja en rendimiento o costo.
La mayoría de los proveedores de CDN brindarán sus servicios a través de un conjunto variable y definido de PoP, según la cobertura deseada, como Estados Unidos, internacional o global, Asia-Pacífico, etc. Estos conjuntos de PoP pueden denominarse "bordes", " nodos de borde", "servidores de borde" o "redes de borde", ya que serían el borde de los activos CDN más cercano al usuario final. [5]
Los proveedores de CDN se benefician de las tarifas directas pagadas por los proveedores de contenido que utilizan su red, o de los análisis de los usuarios y los datos de seguimiento recopilados a medida que sus scripts se cargan en los sitios web de los clientes dentro del origen de su navegador . Como tales, estos servicios están siendo señalados como posibles intrusiones en la privacidad con el propósito de apuntar al comportamiento [6] y se están creando soluciones para restaurar el servicio de origen único y el almacenamiento en caché de recursos. [7]
En particular, un sitio web que utilice una CDN puede violar el Reglamento General de Protección de Datos (GDPR) de la UE . Por ejemplo, en 2021 un tribunal alemán prohibió el uso de una CDN en el sitio web de una universidad, porque esto provocaba la transmisión de la dirección IP del usuario a la CDN, lo que violaba el RGPD. [8]
Las CDN que sirven JavaScript también han sido atacadas como una forma de inyectar contenido malicioso en las páginas que las utilizan. El mecanismo de integridad de subrecursos se creó en respuesta para garantizar que la página cargue un script cuyo contenido sea conocido y esté restringido a un hash al que hace referencia el autor del sitio web. [9]
Internet fue diseñado según el principio de extremo a extremo . [10] Este principio mantiene la red central relativamente simple y traslada la inteligencia tanto como sea posible a los puntos finales de la red: los hosts y los clientes. Como resultado, la red central está especializada, simplificada y optimizada para reenviar únicamente paquetes de datos.
Las redes de entrega de contenido aumentan la red de transporte de extremo a extremo al distribuir en ella una variedad de aplicaciones inteligentes que emplean técnicas diseñadas para optimizar la entrega de contenido. La superposición resultante, estrechamente integrada, utiliza almacenamiento en caché web, equilibrio de carga del servidor, enrutamiento de solicitudes y servicios de contenido. [11]
Los cachés web almacenan contenido popular en servidores que tienen la mayor demanda del contenido solicitado. Estos dispositivos de red compartidos reducen los requisitos de ancho de banda, reducen la carga del servidor y mejoran los tiempos de respuesta del cliente para el contenido almacenado en la caché. Los cachés web se completan en función de las solicitudes de los usuarios (almacenamiento en caché de extracción) o del contenido precargado difundido desde servidores de contenido (almacenamiento en caché de inserción). [12]
El equilibrio de carga del servidor utiliza una o más técnicas, incluidas las basadas en servicios (equilibrio de carga global) o las basadas en hardware (es decir, conmutadores de capa 4 a 7 , también conocidos como conmutador web, conmutador de contenido o conmutador multicapa) para compartir el tráfico entre varios de servidores o cachés web. Aquí al conmutador se le asigna una única dirección IP virtual . El tráfico que llega al conmutador se dirige luego a uno de los servidores web reales conectados al conmutador. Esto tiene la ventaja de equilibrar la carga, aumentar la capacidad total, mejorar la escalabilidad y proporcionar una mayor confiabilidad al redistribuir la carga de un servidor web fallido y proporcionar controles del estado del servidor.
Se puede formar un clúster de contenido o un nodo de servicio utilizando un conmutador de capa 4 a 7 para equilibrar la carga entre varios servidores o varios cachés web dentro de la red.
El enrutamiento de solicitudes dirige las solicitudes de los clientes a la fuente de contenido que mejor puede atender la solicitud. Esto puede implicar dirigir una solicitud de cliente al nodo de servicio más cercano al cliente o al que tenga mayor capacidad. Se utiliza una variedad de algoritmos para enrutar la solicitud. Estos incluyen equilibrio de carga de servidor global, enrutamiento de solicitudes basado en DNS, generación dinámica de metarchivos, reescritura de HTML [13] y anycasting . [14] La proximidad (elegir el nodo de servicio más cercano) se estima utilizando una variedad de técnicas que incluyen sondeo reactivo, sondeo proactivo y monitoreo de conexión. [11]
Las CDN utilizan una variedad de métodos de entrega de contenido que incluyen, entre otros, copia manual de activos, cachés web activos y equilibradores de carga de hardware globales.
Varios conjuntos de protocolos están diseñados para proporcionar acceso a una amplia variedad de servicios de contenido distribuidos a lo largo de una red de contenido. El Protocolo de Adaptación de Contenido de Internet (ICAP) se desarrolló a finales de la década de 1990 [15] [16] para proporcionar un estándar abierto para conectar servidores de aplicaciones. El protocolo Open Pluggable Edge Services (OPES) proporciona una solución robusta y definida más recientemente. [17] Esta arquitectura define aplicaciones de servicio OPES que pueden residir en el propio procesador OPES o ejecutarse de forma remota en un servidor Callout. Edge Side Incluye o ESI es un pequeño lenguaje de marcado para el ensamblaje de contenido web dinámico a nivel de borde. Es bastante común que los sitios web hayan generado contenido. Podría deberse a cambios de contenido como catálogos o foros, o a la personalización. Esto crea un problema para los sistemas de almacenamiento en caché. Para superar este problema, un grupo de empresas creó ESI.
En las redes de entrega de contenidos peer-to-peer (P2P) , los clientes proporcionan recursos además de utilizarlos. Esto significa que, a diferencia de los sistemas cliente-servidor , las redes centradas en contenido pueden funcionar mejor a medida que más usuarios comienzan a acceder al contenido (especialmente con protocolos como Bittorrent que requieren que los usuarios compartan). Esta propiedad es una de las principales ventajas del uso de redes P2P porque hace que los costos de instalación y funcionamiento sean muy pequeños para el distribuidor de contenido original. [18] [19]
Si los propietarios de contenido no están satisfechos con las opciones o los costos de un servicio CDN comercial, pueden crear su propia CDN. Esto se llama CDN privada. Una CDN privada consta de PoP (puntos de presencia) que solo ofrecen contenido a su propietario. Estos PoP pueden ser servidores de almacenamiento en caché, [20] servidores proxy inversos o controladores de entrega de aplicaciones. [21] Puede ser tan simple como dos servidores de caché, [20] o lo suficientemente grande como para servir petabytes de contenido. [22]
Las grandes redes de distribución de contenido pueden incluso crear y configurar su propia red privada para distribuir copias de contenido entre ubicaciones de caché. [23] [24] Estas redes privadas generalmente se utilizan junto con redes públicas como una opción de respaldo en caso de que la capacidad de la red privada no sea suficiente o haya una falla que conduzca a una reducción de la capacidad. Dado que el mismo contenido debe distribuirse en muchas ubicaciones, se pueden utilizar diversas técnicas de multidifusión para reducir el consumo de ancho de banda. En redes privadas, también se ha propuesto seleccionar árboles de multidifusión según las condiciones de carga de la red para utilizar de manera más eficiente la capacidad de red disponible. [25] [26]
El rápido crecimiento del tráfico de vídeo en streaming [27] requiere grandes inversiones de capital por parte de los proveedores de banda ancha [28] para satisfacer esta demanda y retener a los suscriptores ofreciendo una calidad de experiencia suficientemente buena .
Para abordar esto, los proveedores de servicios de telecomunicaciones han comenzado a lanzar sus propias redes de entrega de contenido como un medio para disminuir las demandas sobre la red troncal y reducir las inversiones en infraestructura.
Debido a que son propietarias de las redes a través de las cuales se transmite el contenido de video, las CDN de telecomunicaciones tienen ventajas sobre las CDN tradicionales. Son dueños de la última milla y pueden entregar contenido más cerca del usuario final porque se puede almacenar en caché en lo profundo de sus redes. Este almacenamiento en caché profundo minimiza la distancia que recorren los datos de vídeo a través de Internet general y los entrega de forma más rápida y confiable.
Las CDN de telecomunicaciones también tienen una ventaja de costos incorporada, ya que las CDN tradicionales deben arrendarles ancho de banda e incorporar el margen del operador en su propio modelo de costos. Además, al operar su propia infraestructura de entrega de contenidos, los operadores de telecomunicaciones tienen un mejor control sobre la utilización de sus recursos. Las operaciones de gestión de contenidos realizadas por las CDN generalmente se aplican sin (o con muy limitada) información sobre la red (por ejemplo, topología, utilización, etc.) de los operadores de telecomunicaciones con los que interactúan o tienen relaciones comerciales. Estos plantean una serie de desafíos para los operadores de telecomunicaciones que tienen un ámbito de acción limitado ante el impacto de estas operaciones en la utilización de sus recursos.
Por el contrario, el despliegue de CDN de telecomunicaciones permite a los operadores implementar sus propias operaciones de gestión de contenidos, [29] [30] lo que les permite tener un mejor control sobre la utilización de sus recursos y, como tal, proporcionar una mejor calidad de servicio y experiencia a sus usuarios finales.
En junio de 2011, StreamingMedia.com informó que un grupo de TSP había fundado un Operador Carrier Exchange (OCX) [31] para interconectar sus redes y competir más directamente contra grandes CDN tradicionales como Akamai y Limelight Networks , que tienen extensos PoP en todo el mundo. De esta manera, las empresas de telecomunicaciones están creando una oferta de CDN federada, que resulta más interesante para un proveedor de contenidos dispuesto a entregar su contenido a la audiencia agregada de esta federación.
Es probable que en un futuro próximo se creen otras federaciones CDN de telecomunicaciones. Crecerán mediante la inscripción de nuevas empresas de telecomunicaciones que se unan a la federación y lleven presencia de red y sus bases de suscriptores de Internet a las existentes. [ cita necesaria ]
La especificación Open Caching de Streaming Media Alliance define un conjunto de API que permite a un proveedor de contenido entregar su contenido utilizando varias CDN de manera consistente, viendo a cada proveedor de CDN de la misma manera a través de estas API.
Tradicionalmente, las CDN han utilizado la IP del solucionador DNS recursivo del cliente para geolocalizar al cliente. Si bien este es un enfoque sólido en muchas situaciones, conduce a un rendimiento deficiente del cliente si el cliente utiliza un solucionador de DNS recursivo no local que está lejos. Por ejemplo, una CDN puede enrutar solicitudes de un cliente en la India a su servidor perimetral en Singapur, si ese cliente utiliza un solucionador de DNS público en Singapur, lo que provoca un rendimiento deficiente para ese cliente. De hecho, un estudio reciente [32] demostró que en muchos países donde los resolutores de DNS públicos son de uso popular, la distancia media entre los clientes y sus resolutores de DNS recursivos puede llegar a mil millas. En agosto de 2011, un consorcio global de proveedores líderes de servicios de Internet liderado por Google anunció su implementación oficial del borrador de Internet IETF edns-client-subnet , [33] cuyo objetivo es localizar con precisión las respuestas de resolución DNS. La iniciativa involucra a un número limitado de proveedores líderes de servicios DNS, como Google Public DNS , [34] y también proveedores de servicios CDN. Con la opción edns-client-subnet EDNS0 , las CDN ahora pueden utilizar la dirección IP de la subred del cliente solicitante al resolver solicitudes de DNS. Este enfoque, llamado mapeo de usuario final, [32] ha sido adoptado por las CDN y se ha demostrado que reduce drásticamente las latencias de ida y vuelta y mejora el rendimiento para los clientes que utilizan DNS público u otros solucionadores no locales. Sin embargo, el uso de EDNS0 también tiene desventajas, ya que disminuye la efectividad de las resoluciones de almacenamiento en caché en los solucionadores recursivos, [32] aumenta el tráfico total de resolución de DNS, [32] y plantea una preocupación de privacidad al exponer la subred del cliente.
Se están utilizando tecnologías de virtualización para implementar CDN virtuales (vCDN) con el objetivo de reducir los costos de los proveedores de contenido y, al mismo tiempo, aumentar la elasticidad y disminuir la demora del servicio. Con vCDN, es posible evitar las limitaciones tradicionales de las CDN, como el rendimiento, la confiabilidad y la disponibilidad, ya que los cachés virtuales se implementan dinámicamente (como máquinas virtuales o contenedores) en servidores físicos distribuidos en la cobertura geográfica del proveedor. Como la ubicación de la caché virtual se basa tanto en el tipo de contenido como en la ubicación geográfica del servidor o del usuario final, los vCDN tienen un impacto significativo en la prestación de servicios y la congestión de la red. [35] [36] [37] [38]
En 2017, Addy Osmany de Google comenzó a referirse a las soluciones de software que podrían integrarse naturalmente con el paradigma del diseño web responsivo (con especial referencia al elemento <picture>) como Image CDN . [39] La expresión se refería a la capacidad de una arquitectura web para servir múltiples versiones de la misma imagen a través de HTTP, dependiendo de las propiedades del navegador que la solicita, según lo determine el navegador o la lógica del lado del servidor. El propósito de las Image CDN era, según la visión de Google, ofrecer imágenes de alta calidad (o, mejor, imágenes percibidas como de alta calidad por el ojo humano) preservando al mismo tiempo la velocidad de descarga, contribuyendo así a una excelente experiencia de usuario (UX). [ cita necesaria ]
Podría decirse que el término Image CDN era originalmente un nombre inapropiado, ya que ni Cloudinary ni Imgix (los ejemplos citados por Google en la guía de Addy Osmany de 2017) eran, en ese momento, una CDN en el sentido clásico del término. [39] Sin embargo, poco después, varias empresas ofrecieron soluciones que permitieron a los desarrolladores ofrecer diferentes versiones de sus activos gráficos de acuerdo con varias estrategias. Muchas de estas soluciones se crearon sobre CDN tradicionales, como Akamai , CloudFront , Fastly , Edgecast y Cloudflare . Al mismo tiempo, otras soluciones que ya proporcionaban un servicio de múltiples servicios de imágenes se unieron a la definición de Image CDN, ya sea ofreciendo funcionalidad CDN de forma nativa (ImageEngine) [40] o integrándose con una de las CDN existentes (Cloudinary/Akamai, Imgix/Fastly). .
Si bien puede que no sea posible proporcionar una definición universalmente aceptada de lo que es una CDN de imagen, en términos generales, una CDN de imagen admite los siguientes tres componentes: [41]
La siguiente tabla resume la situación actual de las principales CDN de software en este espacio: [42]
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )