Сеть доставки контента , или сеть распространения контента ( CDN ), представляет собой географически распределенную сеть прокси-серверов и их центров обработки данных . Целью является обеспечение высокой доступности и производительности за счет пространственного распределения службы относительно конечных пользователей . CDN появились в конце 1990-х годов как средство устранения узких мест в производительности Интернета [1] [2] , когда Интернет начал становиться критически важной средой для людей и предприятий. С тех пор CDN выросли и сегодня обслуживают большую часть интернет-контента, включая веб-объекты (текст, графику и сценарии), загружаемые объекты (медиа-файлы, программное обеспечение, документы), приложения ( электронная коммерция , порталы ), потоковую передачу в реальном времени. СМИ, потоковые медиа по запросу и сайты социальных сетей . [3]
CDN — это слой в экосистеме Интернета. Владельцы контента, такие как медиа-компании и поставщики электронной коммерции, платят операторам CDN за доставку контента конечным пользователям. В свою очередь, CDN платит поставщикам интернет-услуг (ISP), операторам связи и сетевым операторам за размещение своих серверов в своих центрах обработки данных.
CDN — это общий термин, охватывающий различные типы служб доставки контента: потоковое видео , загрузка программного обеспечения, ускорение веб- и мобильного контента, лицензированная/управляемая CDN, прозрачное кэширование и услуги для измерения производительности CDN, балансировка нагрузки , переключение нескольких CDN, аналитика и облако. интеллект. Поставщики CDN могут перейти в другие отрасли, такие как безопасность, защита от DDoS и брандмауэры веб-приложений (WAF), а также оптимизация WAN.
Узлы CDN обычно развертываются в нескольких местах, часто на нескольких магистральных сетях Интернета . Преимущества включают снижение затрат на пропускную способность, сокращение времени загрузки страниц и повышение глобальной доступности контента. Количество узлов и серверов, составляющих CDN, варьируется в зависимости от архитектуры, некоторые из них достигают тысяч узлов с десятками тысяч серверов во многих удаленных точках присутствия (PoP). Другие строят глобальную сеть и имеют небольшое количество географических точек присутствия. [4]
Запросы на контент обычно алгоритмически направляются к узлам, которые в некотором роде оптимальны. При оптимизации производительности могут быть выбраны места, которые лучше всего подходят для предоставления контента пользователю. Это можно измерить путем выбора местоположений с наименьшим количеством переходов , наименьшим количеством сетевых секунд от запрашивающего клиента или самой высокой доступностью с точки зрения производительности сервера (как текущей, так и исторической), чтобы оптимизировать доставку по локальным сетям. При оптимизации затрат вместо этого можно выбрать наименее дорогие места. В оптимальном сценарии эти две цели, как правило, совпадают, поскольку пограничные серверы , расположенные близко к конечному пользователю на границе сети, могут иметь преимущество в производительности или стоимости.
Большинство провайдеров CDN будут предоставлять свои услуги через различные определенные наборы PoP, в зависимости от желаемого покрытия, например, Соединенные Штаты, международный или глобальный, Азиатско-Тихоокеанский регион и т. д. Эти наборы PoP можно назвать «границами». пограничные узлы», «пограничные серверы» или «пограничные сети», поскольку они будут ближайшей к конечному пользователю границей ресурсов CDN. [5]
Поставщики CDN получают прибыль либо от прямых комиссий, выплачиваемых поставщиками контента , использующими их сеть, либо от пользовательской аналитики и данных отслеживания, собранных при загрузке их сценариев на веб-сайты клиентов внутри их браузера . Таким образом, эти сервисы рассматриваются как потенциальные вторжения в конфиденциальность с целью поведенческого таргетинга [6] , и создаются решения для восстановления обслуживания и кэширования ресурсов с одним источником. [7]
В частности, веб-сайт, использующий CDN, может нарушать Общий регламент ЕС по защите данных (GDPR). Например, в 2021 году немецкий суд запретил использование CDN на сайте университета, поскольку это приводило к передаче IP-адреса пользователя в CDN, что нарушало GDPR. [8]
CDN, обслуживающие JavaScript, также рассматривались как способ внедрения вредоносного контента на использующие их страницы. Механизм целостности подресурса был создан для того, чтобы гарантировать, что страница загружает скрипт, содержимое которого известно и ограничено хешем, на который ссылается автор веб-сайта. [9]
Интернет спроектирован по сквозному принципу . [10] Этот принцип сохраняет базовую сеть относительно простой и максимально переносит интеллектуальные функции на конечные точки сети: хосты и клиенты. В результате базовая сеть специализирована, упрощена и оптимизирована только для пересылки пакетов данных.
Сети доставки контента дополняют сквозную транспортную сеть, распределяя по ней множество интеллектуальных приложений, использующих методы, предназначенные для оптимизации доставки контента. Получающееся в результате тесно интегрированное наложение использует веб-кэширование, балансировку нагрузки на сервер, маршрутизацию запросов и службы контента. [11]
Веб-кэши хранят популярный контент на серверах, которые имеют наибольший спрос на запрошенный контент. Эти общие сетевые устройства снижают требования к пропускной способности, снижают нагрузку на сервер и сокращают время ответа клиента для содержимого, хранящегося в кэше. Веб-кэши заполняются на основе запросов пользователей (кэширование по запросу) или на основе предварительно загруженного контента, распространяемого с серверов контента (кэширование по запросу). [12]
Балансировка нагрузки на сервер использует один или несколько методов, включая сервисные (глобальная балансировка нагрузки) или аппаратные (т. е. коммутаторы уровней 4–7 , также известные как веб-коммутатор, коммутатор контента или многоуровневый коммутатор) для распределения трафика между несколькими серверами. серверов или веб-кэшей. Здесь коммутатору назначается один виртуальный IP-адрес . Трафик, поступающий на коммутатор, затем направляется на один из реальных веб-серверов , подключенных к коммутатору. Преимущество этого подхода заключается в балансировке нагрузки, увеличении общей емкости, улучшении масштабируемости и повышении надежности за счет перераспределения нагрузки вышедшего из строя веб-сервера и проверки работоспособности сервера.
Кластер контента или узел обслуживания можно сформировать с помощью коммутатора уровней 4–7 для балансировки нагрузки между несколькими серверами или несколькими веб-кэшами в сети.
Маршрутизация запросов направляет клиентские запросы к источнику контента, который лучше всего может обслужить запрос. Это может включать в себя направление клиентского запроса на ближайший к клиенту сервисный узел или на узел с наибольшей пропускной способностью. Для маршрутизации запроса используются различные алгоритмы. К ним относятся глобальная балансировка нагрузки сервера, маршрутизация запросов на основе DNS, динамическая генерация метафайлов, перезапись HTML [13] и произвольная рассылка . [14] Близость — выбор ближайшего узла обслуживания — оценивается с использованием различных методов, включая реактивное зондирование, упреждающее зондирование и мониторинг соединения. [11]
CDN используют различные методы доставки контента, включая, помимо прочего, копирование ресурсов вручную, активные веб-кэши и глобальные аппаратные балансировщики нагрузки.
Несколько наборов протоколов предназначены для обеспечения доступа к широкому спектру услуг контента, распределенных по сети контента. Протокол адаптации интернет-контента (ICAP) был разработан в конце 1990-х годов [15] [16] как открытый стандарт для подключения серверов приложений. Недавно разработанное и надежное решение обеспечивается протоколом Open Pluggable Edge Services (OPES). [17] Эта архитектура определяет сервисные приложения OPES, которые могут находиться на самом процессоре OPES или выполняться удаленно на сервере Callout. Edge SideIncludes или ESI — это небольшой язык разметки для сборки динамического веб-контента на пограничном уровне. Веб-сайты довольно часто создают контент. Это может быть связано с изменением контента, такого как каталоги или форумы, или из-за персонализации. Это создает проблему для систем кэширования. Чтобы решить эту проблему, группа компаний создала ESI.
В одноранговых (P2P) сетях доставки контента клиенты предоставляют ресурсы, а также используют их. Это означает, что, в отличие от клиент-серверных систем, контент-ориентированные сети могут работать лучше, когда все больше пользователей начинают получать доступ к контенту (особенно с такими протоколами, как Bittorrent , которые требуют от пользователей совместного использования). Это свойство является одним из основных преимуществ использования P2P-сетей, поскольку оно делает затраты на установку и эксплуатацию очень низкими для оригинального дистрибьютора контента. [18] [19]
Если владельцев контента не устраивают возможности или стоимость коммерческой услуги CDN, они могут создать собственную CDN. Это называется частным CDN. Частный CDN состоит из PoP (точек присутствия), которые предоставляют контент только своему владельцу. Этими PoP могут быть кэширующие серверы, [20] обратные прокси-серверы или контроллеры доставки приложений. [21] Это может быть просто два сервера кэширования, [20] или достаточно большой, чтобы обслуживать петабайты контента. [22]
Крупные сети распространения контента могут даже построить и настроить свою собственную частную сеть для распространения копий контента по местам кэша. [23] [24] Такие частные сети обычно используются вместе с сетями общего пользования в качестве резервного варианта в случае, если пропускной способности частной сети недостаточно или произошел сбой, который приводит к снижению пропускной способности. Поскольку один и тот же контент приходится распределять по множеству мест, для снижения потребления полосы пропускания можно использовать различные методы многоадресной рассылки . В частных сетях также было предложено выбирать деревья многоадресной рассылки в соответствии с условиями загрузки сети, чтобы более эффективно использовать доступную пропускную способность сети. [25] [26]
Быстрый рост потокового видеотрафика [ 27] требует крупных капитальных затрат со стороны провайдеров широкополосного доступа [28] для удовлетворения этого спроса и удержания абонентов путем предоставления достаточно хорошего качества обслуживания .
Чтобы решить эту проблему, поставщики телекоммуникационных услуг начали запускать собственные сети доставки контента, чтобы снизить требования к магистральной сети и сократить инвестиции в инфраструктуру.
Поскольку они владеют сетями, по которым передается видеоконтент, телекоммуникационные CDN имеют преимущества перед традиционными CDN. Им принадлежит последняя миля , и они могут доставлять контент ближе к конечному пользователю, поскольку он может быть кэширован глубоко в их сетях. Такое глубокое кэширование минимизирует расстояние , которое видеоданные проходят через Интернет, и доставляет их быстрее и надежнее.
CDN телекоммуникационных компаний также имеют встроенное ценовое преимущество, поскольку традиционные CDN должны арендовать у них полосу пропускания и закладывать прибыль оператора в свою собственную модель затрат. Кроме того, используя собственную инфраструктуру доставки контента, операторы связи могут лучше контролировать использование своих ресурсов. Операции по управлению контентом, выполняемые CDN, обычно применяются без (или с очень ограниченной) информацией о сети (например, топологии, использовании и т. д.) операторов электросвязи, с которыми они взаимодействуют или имеют деловые отношения. Это создает ряд проблем для операторов электросвязи, сфера деятельности которых ограничена, учитывая влияние этих операций на использование их ресурсов.
Напротив, развертывание телекоммуникационных CDN позволяет операторам реализовывать свои собственные операции по управлению контентом, [29] [30] , что позволяет им лучше контролировать использование своих ресурсов и, как таковое, обеспечивать лучшее качество обслуживания и опыт своим конечным пользователям.
В июне 2011 года StreamingMedia.com сообщил, что группа TSP основала операторскую биржу операторов связи (OCX) [31] для объединения своих сетей и более прямой конкуренции с крупными традиционными CDN, такими как Akamai и Limelight Networks , которые имеют обширные PoP по всему миру. Таким образом, телекоммуникационные компании создают предложение Federated CDN, которое более интересно для контент-провайдера , желающего доставлять свой контент совокупной аудитории этой федерации.
Вполне вероятно, что в ближайшем будущем будут созданы другие федерации CDN телекоммуникационных компаний. Они будут расти за счет регистрации новых телекоммуникационных компаний, присоединяющихся к федерации и приносящих сетевое присутствие и свою базу интернет-абонентов существующим. [ нужна цитата ]
Спецификация Open Caching от Streaming Media Alliance определяет набор API-интерфейсов , которые позволяют поставщику контента доставлять свой контент с использованием нескольких CDN согласованным способом, одинаково видя каждого поставщика CDN через эти API.
Традиционно CDN использовали IP-адрес рекурсивного преобразователя DNS клиента для географического определения местоположения клиента. Хотя во многих ситуациях это разумный подход, он приводит к снижению производительности клиента, если клиент использует нелокальный рекурсивный преобразователь DNS, который находится далеко. Например, CDN может перенаправлять запросы от клиента в Индии на свой пограничный сервер в Сингапуре, если этот клиент использует общедоступный преобразователь DNS в Сингапуре, что приводит к снижению производительности этого клиента. Действительно, недавнее исследование [32] показало, что во многих странах, где общедоступные преобразователи DNS широко используются, среднее расстояние между клиентами и их рекурсивными преобразователями DNS может достигать тысячи миль. В августе 2011 года глобальный консорциум ведущих интернет-провайдеров во главе с Google объявил об официальной реализации проекта IETF Internet Draft edns-client-subnet [33] , который предназначен для точной локализации ответов разрешения DNS. В инициативе участвует ограниченное число ведущих поставщиков услуг DNS, таких как Google Public DNS [ 34] и поставщиков услуг CDN. Благодаря опции EDNS0 edns-client-subnet сети CDN теперь могут использовать IP-адрес подсети запрашивающего клиента при разрешении DNS-запросов. Этот подход, называемый сопоставлением конечных пользователей, [32] был принят в CDN, и было показано, что он радикально снижает задержки в обоих направлениях и повышает производительность для клиентов, которые используют общедоступный DNS или другие нелокальные преобразователи. Однако использование EDNS0 также имеет недостатки, поскольку оно снижает эффективность кэширования разрешений на рекурсивных преобразователях, [32] увеличивает общий трафик разрешения DNS, [32] и поднимает проблему конфиденциальности, связанную с раскрытием подсети клиента.
Технологии виртуализации используются для развертывания виртуальных CDN (vCDN) с целью снизить затраты поставщиков контента и в то же время повысить эластичность и уменьшить задержки обслуживания. С помощью vCDN можно избежать традиционных ограничений CDN, таких как производительность, надежность и доступность, поскольку виртуальные кэши развертываются динамически (в виде виртуальных машин или контейнеров) на физических серверах, распределенных по географическому охвату провайдера. Поскольку размещение виртуального кэша зависит как от типа контента, так и от географического местоположения сервера или конечного пользователя, vCDN оказывают значительное влияние на предоставление услуг и перегрузку сети. [35] [36] [37] [38]
В 2017 году Адди Османи из Google начал называть программные решения, которые могут естественным образом интегрироваться с парадигмой адаптивного веб-дизайна (с особым упором на элемент <picture>), как Image CDN . [39] Это выражение относится к способности веб-архитектуры обслуживать несколько версий одного и того же изображения через HTTP, в зависимости от свойств браузера, запрашивающего его, что определяется либо браузером, либо логикой на стороне сервера. Целью CDN изображений, по замыслу Google, было предоставление высококачественных изображений (или, лучше, изображений, воспринимаемых человеческим глазом как высококачественные), сохраняя при этом скорость загрузки, тем самым способствуя улучшению пользовательского опыта (UX). [ нужна цитата ]
Возможно, термин Image CDN изначально был неправильным, поскольку ни Cloudinary , ни Imgix (примеры, приведенные Google в руководстве Адди Османи за 2017 год) в то время не были CDN в классическом смысле этого термина. [39] Однако вскоре после этого несколько компаний предложили решения, которые позволили разработчикам обслуживать разные версии своих графических ресурсов в соответствии с несколькими стратегиями. Многие из этих решений были построены на основе традиционных CDN, таких как Akamai , CloudFront , Fastly , Edgecast и Cloudflare . В то же время другие решения, которые уже предоставляли сервис мульти-сервирования изображений, присоединились к определению Image CDN, либо предлагая функциональность CDN изначально (ImageEngine) [40] , либо интегрируясь с одной из существующих CDN (Cloudinary/Akamai, Imgix/Fastly). .
Хотя дать общепринятое определение того, что такое Image CDN, может оказаться невозможным, вообще говоря, Image CDN поддерживает следующие три компонента: [41]
В следующей таблице обобщена текущая ситуация с основными программными CDN в этой области: [42]
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )