Named Data Networking ( NDN ) (относится к контент-центричным сетям (CCN), контент-ориентированным сетям, ориентированным на данные или информационно-ориентированным сетям (ICN)) — это предлагаемая будущая архитектура Интернета , которая стремится решить проблемы современных интернет- архитектур, таких как IP . [1] [2] NDN берет свое начало в более раннем проекте Content-Centric Networking (CCN), который Ван Якобсон впервые публично представил в 2006 году. Проект NDN исследует предложенную Якобсоном эволюцию от сегодняшней хост-центричной сетевой архитектуры IP к архитектуре сети, ориентированной на данные (NDN). Заявленная цель этого проекта заключается в том, чтобы с помощью концептуально простого сдвига можно было реализовать далеко идущие последствия для того, как люди проектируют, разрабатывают, развертывают и используют сети и приложения. [3]
NDN имеет три основных концепции, которые отличают NDN от других сетевых архитектур. Во-первых, данные имен приложений и имена данных будут напрямую использоваться в пересылке сетевых пакетов; потребительские приложения будут запрашивать желаемые данные по их имени, поэтому коммуникации в NDN управляются потребителями. Во-вторых, коммуникации NDN защищены в ориентированном на данные стиле, где каждый фрагмент данных (называемый пакетом данных) будет криптографически подписан его производителем, а конфиденциальная полезная нагрузка или компоненты имени также могут быть зашифрованы в целях конфиденциальности. Таким образом, потребители могут проверить пакет независимо от того, как пакет был извлечен. В-третьих, NDN принимает плоскость пересылки с сохранением состояния , где пересылки будут сохранять состояние для каждого запроса данных (называемого пакетом Interest) и стирать состояние, когда соответствующий пакет данных возвращается. Пересылка с сохранением состояния NDN позволяет использовать интеллектуальные стратегии пересылки и устраняет циклы.
Его предпосылка заключается в том, что Интернет в первую очередь используется как сеть распространения информации , что не очень хорошо подходит для IP , и что будущая «тонкая талия» Интернета должна быть основана на именованных данных, а не на численно адресуемых хостах. Основной принцип заключается в том, что коммуникационная сеть должна позволять пользователю сосредоточиться на необходимых ему данных, именованном контенте , а не ссылаться на конкретное физическое местоположение, откуда эти данные должны быть извлечены, именованных хостах . Мотивация этого исходит из того факта, что подавляющее большинство текущего использования Интернета («высокий уровень трафика 90%) состоит из данных, распространяемых из источника нескольким пользователям. [4] Сетевые именованные данные обладают потенциалом для широкого спектра преимуществ, таких как кэширование контента для снижения перегрузки и повышения скорости доставки, более простая конфигурация сетевых устройств и встраивание безопасности в сеть на уровне данных.
Сегодняшняя архитектура Интернета в виде песочных часов сосредоточена на универсальном сетевом слое IP , который реализует минимальную функциональность, необходимую для глобальной взаимосвязанности. Современная архитектура Интернета вращается вокруг модели разговора на основе хоста, которая была создана в 1970-х годах, чтобы позволить географически распределенным пользователям использовать несколько больших неподвижных компьютеров. [5] Эта тонкая талия обеспечила взрывной рост Интернета, позволив как технологиям нижнего, так и верхнего уровня независимо внедрять инновации. Однако IP был разработан для создания коммуникационной сети, где пакеты именовали только конечные точки связи.
Устойчивый рост электронной коммерции , цифровых медиа , социальных сетей и приложений для смартфонов привел к доминирующему использованию Интернета в качестве распределительной сети. Распределительные сети более общие, чем коммуникационные сети, и решение проблем распределения с помощью протокола связи точка-точка является сложным и подверженным ошибкам.
Проект Named Data Networking (NDN) предложил эволюцию архитектуры IP, которая обобщает роль этой тонкой талии, так что пакеты могут именовать объекты, отличные от конечных точек связи. Более конкретно, NDN изменяет семантику сетевого сервиса с доставки пакета по заданному адресу назначения на выборку данных, идентифицированных заданным именем. Имя в пакете NDN может именовать что угодно — конечную точку, фрагмент данных в фильме или книге, команду включить свет и т. д. Надежда состоит в том, что это концептуально простое изменение позволит сетям NDN применять почти все хорошо проверенные инженерные свойства Интернета к более широкому кругу проблем за пределами сквозных коммуникаций. [6] Примерами применения NDN уроков, извлеченных из 30 лет сетевой инженерии, являются то, что саморегулирование сетевого трафика (через баланс потока между Interest (запрос данных) и пакетами данных) и примитивы безопасности (через подписи для всех именованных данных) интегрированы в протокол с самого начала.
Философия NDN была впервые предложена Тедом Нельсоном в 1979 году, а затем Брентом Баккалой в 2002 году. В 1999 году проект TRIAD в Стэнфорде предложил избегать поиска DNS, используя имя объекта для маршрутизации к его близкой копии. В 2006 году проект Data-Oriented Network Architecture (DONA) в Калифорнийском университете в Беркли и ICSI предложил контентно-ориентированную сетевую архитектуру, которая улучшила TRIAD, включив безопасность (аутентичность) и постоянство в качестве первоклассных примитивов в архитектуру. Ван Якобсон выступил с докладом Google Talk, A New Way to Look at Networking, в 2006 году об эволюции сети и утверждал, что NDN — это следующий шаг. В 2009 году PARC анонсировала свою контентно-ориентированную архитектуру в рамках проекта CCNx , который возглавлял Якобсон, который в то время был научным сотрудником PARC. 21 сентября 2009 года PARC опубликовал спецификации для взаимодействия и выпустил начальную реализацию с открытым исходным кодом (под лицензией GPL ) исследовательского проекта Content-Centric Networking на сайте Project CCNx. NDN является одним из примеров более общего направления сетевых исследований, называемого информационно-центричными сетями (ICN), в рамках которого появились различные архитектурные проекты. [7] Internet Research Task Force (IRTF) создала исследовательскую рабочую группу ICN в 2012 году.
NDN включает шестнадцать финансируемых NSF главных исследователей в двенадцати кампусах и растущий интерес со стороны академических и промышленных исследовательских сообществ. [8] [9] Более 30 учреждений формируют глобальный испытательный стенд. Существует большой объем исследований и активно растущая кодовая база. внесен в NDN.
В настоящее время пересылка NDN поддерживается в Ubuntu 18.04 и 20.04, Fedora 20+, CentOS 6+, Gentoo Linux, Raspberry Pi, OpenWRT, FreeBSD 10+ и нескольких других платформах. Общие клиентские библиотеки активно поддерживаются для языков программирования C++, Java, Javascript, Python, .NET Framework (C#) и Squirrel. NDN-LITE — это облегченная библиотека NDN, разработанная для сетей IoT и ограниченных устройств. NDN-LITE активно разрабатывается, и на данный момент NDN-LITE адаптирована для плат POSIX, RIOT OS, NRF. Симулятор и эмулятор NDN также доступны и активно разрабатываются. Разрабатывается несколько клиентских приложений в областях конференций в реальном времени, дружественных NDN файловых систем, чата, обмена файлами и IoT.
Коммуникация в NDN осуществляется получателями, то есть потребителями данных, посредством обмена двумя типами пакетов: Interest и Data. Оба типа пакетов имеют имя, которое идентифицирует часть данных, которая может быть передана в одном пакете данных.
Типы пакетов
Полную спецификацию см. в разделе «Спецификация формата пакета NDN».
Для выполнения функций пересылки пакетов интересов и данных каждый маршрутизатор NDN поддерживает три структуры данных и политику пересылки:
Когда приходит пакет Interest, маршрутизатор NDN сначала проверяет Content Store на предмет соответствия данных; если он существует в маршрутизаторе, он возвращает пакет Data на интерфейсе, с которого пришел Interest. В противном случае маршрутизатор ищет имя в своем PIT, и если соответствующая запись существует, он просто записывает входящий интерфейс этого Interest в запись PIT. При отсутствии соответствующей записи PIT маршрутизатор пересылает Interest производителю(ям) данных на основе информации в FIB, а также адаптивной стратегии пересылки маршрутизатора. Когда маршрутизатор получает Interest для одного и того же имени от нескольких нижестоящих узлов, он пересылает только первый из них вверх по течению к производителю(ям) данных.
Когда приходит пакет данных, маршрутизатор NDN находит соответствующую запись PIT и пересылает данные на все нисходящие интерфейсы, перечисленные в этой записи PIT. Затем он удаляет эту запись PIT и кэширует данные в хранилище контента. Пакеты данных всегда проходят по обратному пути Interests, и при отсутствии потерь пакетов один пакет Interest приводит к одному пакету Data на каждом канале, обеспечивая баланс потока. Для извлечения больших объектов контента, которые состоят из нескольких пакетов, Interests выполняют ту же роль в управлении потоком трафика, что и TCP ACK в современном Интернете: мелкозернистый цикл обратной связи, контролируемый потребителем данных.
Ни пакеты Interest, ни пакеты Data не содержат адресов хоста или интерфейса; маршрутизаторы пересылают пакеты Interest производителям данных на основе имен, содержащихся в пакетах, и пересылают пакеты Data потребителям на основе информации о состоянии PIT, установленной Interests на каждом переходе. Эта симметрия обмена пакетами Interest/Data вызывает цикл управления по переходам (не путать с симметричной маршрутизацией или с маршрутизацией вообще!) и устраняет необходимость в каком-либо понятии узлов источника или назначения при доставке данных, в отличие от модели доставки пакетов IP «от конца до конца».
Имена NDN непрозрачны для сети. Это позволяет каждому приложению выбирать схему именования, которая соответствует его потребностям, и таким образом именование может развиваться независимо от сети.
Дизайн NDN предполагает иерархически структурированные имена, например, видео, созданное UCLA, может иметь имя /ucla/videos/demo.mpg, где '/' обозначает компоненты имени в текстовых представлениях, подобно URL-адресам. Эта иерархическая структура имеет много потенциальных преимуществ:
Чтобы получить динамически сгенерированные данные, потребители должны иметь возможность детерминированно сконструировать имя для желаемого фрагмента данных, не видя ранее имя или данные одним из следующих способов:
Текущие исследования изучают, как приложения должны выбирать имена, которые могут облегчить как разработку приложений, так и сетевую доставку. Целью этой работы является разработка и уточнение существующих принципов и рекомендаций по именованию, преобразование этих правил в соглашения об именовании, реализованные в системных библиотеках, для упрощения будущей разработки приложений. [12]
Данные, которые могут быть извлечены глобально, должны иметь глобально уникальные имена, но имена, используемые для локальной связи, могут потребовать только локальной маршрутизации (или локальной трансляции) для поиска соответствующих данных. Отдельные имена данных могут иметь смысл в различных областях и контекстах, от «выключателя света в этой комнате» до «всех названий стран в мире». Управление пространством имен не является частью архитектуры NDN, так же как управление адресным пространством не является частью архитектуры IP. Однако именование является наиболее важной частью проектирования приложений NDN. Предоставление разработчикам приложений, а иногда и пользователям, возможности разрабатывать собственные пространства имен для обмена данными имеет несколько преимуществ:
NDN маршрутизирует и пересылает пакеты на основе имен, что устраняет три проблемы, вызванные адресами в архитектуре IP:
NDN может использовать обычные алгоритмы маршрутизации, такие как состояние канала и вектор расстояния . Вместо объявления префиксов IP маршрутизатор NDN объявляет префиксы имен, которые охватывают данные, которые маршрутизатор готов обслуживать. Обычные протоколы маршрутизации, такие как OSPF и BGP , могут быть адаптированы для маршрутизации по префиксам имен, обрабатывая имена как последовательность непрозрачных компонентов и выполняя покомпонентное сопоставление самого длинного префикса имени в пакете Interest с таблицей FIB . [14] Это позволяет объединять широкий спектр входных данных в режиме реального времени и распределять их по нескольким интерфейсным средам одновременно, не нарушая шифрование контента. [15] Ключевая аналитика интерфейса также не затрагивается процессом. Передача приложений и совместное использование данных в среде определяются многомодальной распределительной структурой, так что затронутые протоколы облачной ретрансляции уникальны для индивидуального идентификатора среды выполнения. [16]
Состояние PIT на каждом маршрутизаторе поддерживает пересылку через плоскость данных NDN, записывая каждый ожидающий Interest и входящий интерфейс(ы), и удаляя Interest после получения соответствующих Data или истечения времени ожидания. Это состояние на каждый переход, на каждый пакет отличается от плоскости данных без сохранения состояния IP. На основе информации в FIB и измерений производительности модуль адаптивной стратегии пересылки в каждом маршрутизаторе принимает обоснованные решения о:
Если маршрутизатор решает, что Interest не может быть удовлетворен, например, восходящий канал не работает, нет записи пересылки в FIB или возникла экстремальная перегрузка, маршрутизатор может отправить NACK своим нисходящим соседям, которые передали Interest. Такое отрицательное подтверждение (NACK) может заставить принимающий маршрутизатор переслать Interest на другие интерфейсы для исследования альтернативных путей. Состояние PIT позволяет маршрутизаторам идентифицировать и отбрасывать зацикленные пакеты, что позволяет им свободно использовать несколько путей к одному и тому же производителю данных. Пакеты не могут зацикливаться в NDN, что означает, что нет необходимости во времени жизни и других мерах, реализованных в IP и связанных протоколах для решения этих проблем.
В отличие от безопасности TCP/IP (например, TLS), которая защищает связь, защищая каналы IP-to-IP, NDN защищает сами данные, требуя от производителей данных криптографически подписывать каждый пакет данных. Подпись издателя обеспечивает целостность и позволяет аутентифицировать происхождение данных , позволяя разделить доверие потребителя к данным от того, как или где они получены. NDN также поддерживает мелкозернистое доверие, позволяя потребителям рассуждать о том, является ли владелец открытого ключа приемлемым издателем для определенной части данных в определенном контексте. Вторым основным направлением исследований является проектирование и разработка пригодных для использования механизмов для управления доверием пользователей. Были проведены исследования 3 различных типов моделей доверия:
Безопасность NDN, ориентированная на данные, имеет естественные приложения для контроля доступа к контенту и безопасности инфраструктуры. Приложения могут шифровать данные и распространять ключи в виде именованных пакетов, используя ту же именованную инфраструктуру для распространения ключей, эффективно ограничивая периметр безопасности данных контекстом одного приложения. Чтобы проверить подпись пакета данных, приложение может извлечь соответствующий ключ, идентифицированный в поле локатора ключа пакета, как и любой другой контент. Но управление доверием, т. е. как определить подлинность данного ключа для конкретного пакета в данном приложении, является основной исследовательской задачей. В соответствии с экспериментальным подходом, исследования управления доверием NDN обусловлены разработкой и использованием приложений: сначала решаются конкретные проблемы, а затем определяются общие закономерности. Например, потребности безопасности NLSR потребовали разработки простой иерархической модели доверия с ключами на более низких (ближе к корневому) уровнях, которые используются для подписи ключей на более высоких уровнях, на которых ключи публикуются с именами, отражающими их доверительные отношения. В этой модели доверия пространство имен соответствует иерархии делегирования доверия, т. е. /root/site/operator/ router/process. Публикация ключей с определенным именем в иерархии разрешает им подписывать определенные пакеты данных и ограничивает их область действия. Эту парадигму можно легко распространить на другие приложения, где реальное доверие имеет тенденцию следовать иерархическому шаблону, например, в наших системах управления зданиями (BMS). [20] Поскольку NDN оставляет модель доверия под контролем каждого приложения, могут быть также выражены более гибкие и выразительные доверительные отношения. Одним из таких примеров является ChronoChat, [19] , который побудил экспериментировать с моделью сети доверия. Модель безопасности заключается в том, что текущий участник чата может представить новичка другим, подписав ключ новичка. Будущие приложения будут реализовывать модель перекрестной сертификации (SDSI) [13, 3], которая обеспечивает большую избыточность проверки, позволяя данным и именам ключей быть независимыми, что более легко вмещает различные реальные доверительные отношения.
Кроме того, NDN обрабатывает сообщения маршрутизации и управления сетью как все данные NDN, требующие подписей. Это обеспечивает прочную основу для защиты протоколов маршрутизации от атак, например, спуфинга и подделки. Использование NDN многопутевой пересылки вместе с модулем адаптивной стратегии пересылки смягчает перехват префикса, поскольку маршрутизаторы могут обнаруживать аномалии, вызванные перехватом, и извлекать данные через альтернативные пути. [21] Благодаря многоисточниковой, многоадресной природе доставки контента Named Data Networking случайное линейное кодирование может повысить общую эффективность сети. [22] Поскольку пакеты NDN ссылаются на контент, а не на устройства, сложнее злонамеренно нацелиться на конкретное устройство, хотя механизмы смягчения потребуются против других атак, специфичных для NDN, например, DoS-атак Interest flooding . [23] [24] Кроме того, наличие таблицы Pending Interest, которая хранит состояние относительно прошлых запросов, что может принимать обоснованные решения о том, как обрабатывать Interest, имеет многочисленные преимущества в области безопасности: [25]