DTN

Delay-tolerant networking (DTN — сеть устойчивая к разрывам) — это новый подход к сетевой архитектуре компьютера, который направлен на решение технических вопросов в гетерогенных сетях, которые не имеют постоянного подключения к сети. Примерами таких сетей являются те, которые работают в мобильных или экстремальных земных условиях или планируемых сетей в космическом пространстве. В последнее время DTN наиболее распространен в Соединенных Штатах из-за поддержки со стороны Управления перспективных исследовательских проектов Министерства обороны США, которое финансирует многие проекты DTN. Разрыв сети может произойти из-за пределов дальности беспроводной радиосвязи, разреженности мобильных узлов, нехватки энергетических ресурсов и помех.

Под задержками в DTN понимаются не только задержки, порождаемые транзитными узлами или ограничениями пропускной способности канала связи. В таких сетях существуют дополнительные задержки при передаче сигнала, не зависящие от объёма передаваемых данных. Они могут зависеть от скорости распространения сигнала в среде передачи (например, Скорость света в вакууме) и длины пройденного им пути (зависящей от траектории и расстояния).

Кроме того, при использовании Store&Forward появляются задержки на хранение передаваемых пакетов (на время обрыва связи). Подобные обрывы (disruptions) могут возникать вследствие ограничений полосы частот, ёмкости источника питания, зашумленности эфира, разреженности мобильных узлов. Такой подход позволяет в некотором роде рассматривать сети MANET как частный случай DTN.

В 1970-е годы, когда происходило уменьшение размеров компьютеров, исследователи приступили к разработке технологии для маршрутизации между не фиксированными расположениями компьютеров.

Так протоколы DTN впервые использовались в космосе . Источник посылок — один из спутников НОО Международной системы мониторинга стихийных бедствий, который делает снимки Земли. Изображения должны приходить на пункт сбора данных. Но спутник имеет непостоянную связь с тремя наземными станциями. Двигаясь по орбите, он связывается ними по очереди. Таким образом, спутник, наземные станции и пункт сбора данных являются узлами DTN. По каждому контакту посылка (или часть посылки) передается наземной станции. Затем посылки доставляются на пункт сбора данных по транзитной наземной сети. На этом передача завершается.

Область беспроводной маршрутизации была не активна в течение 1980-х годов. Повсеместное использование беспроводных протоколов активизировалось в 1990-х годах в качестве мобильных специальных сетей (MANET), и модернизация такой сети вызвала большой интерес. Параллельно с деятельностью MANET, Управление перспективных исследовательских проектов Министерства обороны США финансировало NASA. MITRE и другие разработчики предложили создание межпланетной сети (IPN).

Первооткрыватели интернета Vint Cerf и другие разработчики развили первоначальную архитектуру для Межпланетного Интернета(IPN), связанную с необходимостью сетевых технологий, которые могут справиться со значительными задержками и повреждениями пакетов дальней космической связи. В 2002 году Kevin Fall начали развивать некоторые идеи в проекте IPN для наземных сетей и ввел термин «сеть устойчивая к разрывам» и сокращение DTN. Статья, опубликованная в конференции SIGCOMM 2003, дает толчок к развитию DTN.

В середине 2000-х годов вырос интерес к сетям передачи данных, в том числе растет количество научных конференций по разработке DTN, а также растет интерес по совмещению работы сенсорных сетей и MANET с работой над DTN. У такой области было много оптимизаций над классическими сетями и сетью, устойчивой к разрывам. При разработке алгоритмов сетей начали рассматривать такие факторы, как безопасность, надежность, возможность контроля, и другие направления исследований, которые существуют в традиционных компьютерных сетях.

Архитектура

[править | править код]
Архитектура DTN

Терминология DTN

[править | править код]

Посылка — сообщение. Посылки хранятся в узлах DTN до тех, пока нужный канал не активизируется; затем происходит отправка посылок. Каналы работают с перерывами.

Контакт — активный канал.

Идентификация узлов

[править | править код]

Для идентификации получателей используется EID (англ. End-point Identifier). EID может указывать как на один, так и на группу узлов назначения. Для групп узлов могут использоваться методы рассылки Multicast/Anycast.

Передача данных

[править | править код]

Данные от приложений, представленные в виде сообщений произвольной длины (ADU, англ. Application Data Unit), трансформируются в специальные пакеты (Bundle), предназначенные для пересылки в гетерогенных сетях. Bundle состоит из блоков (не менее двух), каждый из которых может содержать либо только данные приложений, либо только служебные данные, необходимые для доставки (например, EID получателя). Причем, если в традиционных архитектурах служебные данные хранятся в заголовке или payload пакета, то в DTN они могут храниться в произвольных блоках. Сами пакеты допускают фрагментацию/объединение, а каждый полученный фрагмент считается отдельным пакетом.

Как и в IP-сетях, используется подход Store-and-forward (Сохрани и передай), предполагающий сохранение пакетов при отсутствии возможности их передать. Однако, в DTN время хранения значительно дольше вследствие того, что канал может быть недоступен на момент передачи и к тому же сам по себе ненадежен. Кроме того, в сетях DTN сложнее своевременно отследить состояние канала из за значительной задержки на передачу сигналов. Поэтому для ожидающих отправки пакетов рекомендуется использовать постоянные хранилища (такие как диски, flash-память).

Поиск маршрутов

[править | править код]

Способность передачи данных из источника в место назначения — это базовая основа, которая должна быть у всех сетей. Задержки и перебои при передаче данных характеризуются отсутствием связи из-за отсутствия мгновенного соединения. Для таких условий при использовании протоколов маршрутизации AODV и DSR не удается установить маршрут для передачи данных. Это связано с тем, что эти протоколы пытаются установить полный маршрут для передачи, а затем, до того, как соединение было создано, передают данные. Однако, когда соединение трудно или невозможно установить, протоколы маршрутизации должны использовать «Сетевой коммутатор» когда данные последовательно перемещаются и хранятся по всей сети в надежде, что они будут в конечном итоге переданы.

Общая технология, используемая для увеличения вероятности успешной передачи сообщения — это создание нескольких копий сообщения, чтобы они дошли до адресата. Это возможно только в сетях с большими объемами локального хранилища и широкой полосы пропускания относительно ожидаемого трафика. Очень часто проблема, связанная с пространством, решается путем сокращения сроков доставки благодаря максимальному использованию потенциальной возможности передачи данных. В других странах, где доступ к хранению и междоузлию пропускной возможности более ограничено, требуется более тщательный алгоритм.

Протокол Bundle

[править | править код]

Основной протокол DTN — это протокол Bundle; он описан в RFC 5050. Он принимает сообщения от приложения и передает их в виде одной или нескольких посылок с помощью операций получения—переноса—отправки принимающему узлу DTN.

Стек протоколов DTN
Приложение
Протокол Bundle
Уровень взаимодействия …. Уровень взаимодействия
TCP/IP в интернете Другие интерсети

Видно, что работа происходит как над уровнем TCP/IP, так и поверх других протоколов.

Так как протокол Bundle является фиксированным, но в его задачи входит совместимость с различными транспортами, между сферами действия протоколов должен быть небольшой зазор. Эта идея привела к добавлению дополнительного уровня взаимодействия (convergence layer). На самом деле это просто связующий уровень, обеспечивающий совместную работу протоколов. По определе- нию для каждого транспорта более низкого уровня должен существовать отдельный уровень взаимодействия. Уровни взаимодействия, позволяющие подключать новые и существующие протоколы, обычно можно найти в стандартах.

Сообщение протокола Bundle

[править | править код]
Формат сообщений протокола Bundle

Каждое сообщение состоит из первичного блока, который можно считать заголовком, блока полезной нагрузки (для данных) и факультативных блоков (например, для параметров безопасности). Первичный блок начинается с поля Версия, за которым следует поле Флаги. Помимо всего прочего, с помощью флагов указывается класс обслуживания (чтобы источник мог отметить посылку как высокоприоритетную или низкоприоритетную) и другие обрабатывающие запросы (например, должен ли получатель подтвердить доставку).

Далее следуют адреса. Помимо полей идентификаторов Адрес назначения и Источник, мы видим идентификатор Ответственный хранитель. Ответственный хранитель — это сторона, обязанная следить за тем, чтобы пакет был доставлен.

Поскольку протокол Bundle работает с самыми разными транспортами и интерсетями, он использует свои собственные идентификаторы. Они больше похожи на имена высоких уровней, такие как URL веб-страниц, чем на адреса нижних уровней (IP). Такие идентификаторы дают сетям DTN возможности маршрутизации прикладного уровня, например доставки электронной почты или рассылки обновлений программного обеспечения.

Кодируются идентификаторы, так же как и идентификаторы в поле Уведомление, для диагностических сообщений. Все эти идентификаторы кодируются с помощью ссылок на поле Словарь переменной длины. Это позволяет использовать сжатие, когда узел ответственного хранителя или узел для диагностических сообщений совпадают с источником или адресом назначения.

Далее следует поле Создание, в котором хранится время создания посылки, а также порядковый номер отправителя; за ним располагается поле Время жизни, в котором указано время, когда посылка будет уже не нужна.

Первичный блок завершается полем Словарь. Далее идет блок полезной нагрузки. Он начинается с короткого поля Тип, в котором указано, что это полезная нагрузка, а за ним располагаются Флаги, в которых задаются параметры обработки. Далее следует поле Данные, перед которым располагается поле Длина. Наконец, за ними могут быть факультативные блоки — в частности, блок с параметрами безопасности.

Исследования

[править | править код]

В 2008 году NASA объявило об успешном испытании протокола дальней космической связи DTN. Для проверки возможностей этого протокола была создана сеть из десяти узлов. Одним из них стал космический аппарат Epoxi, который в этом эксперименте имитировал марсианскую ретрансляционную станцию. Ранее он был известен как Deep Impact. После успешной бомбардировки кометы Темпеля медной 400-килограммовой болванкой, что помогло ученым получить новые данные о кометном веществе, аппарат переименовали и отправили на встречу с другой кометой — Хартли 2.

В рамках данных трудов, чтобы обеспечить общую основу для алгоритма и разработать приложения в сети передачи данных, в RFC 4838 и RFC 5050 были опубликованы статьи в 2007 году для определения общей абстракции в программном обеспечении по разрыву сетей. Общеизвестный протокол Bundle — это протокол, который собирает несколько блоков данных в виде пакета, где каждый пакет содержит достаточно смысловую информацию, для того, чтобы передача данных завершилась успешно, когда передача отдельных блоков данных может оборваться. Маршрутизируемые пакеты заносятся в хранилище данных и между узлами участвуют разные сети транспортных технологий (включая IP и не-IP основу транспортировки). На транспортном уровне пакеты передаются по локальным сетям, называемый уровнем конвергенции. Архитектура пакета, следовательно, действует как оверлейная сеть, обеспечивающая новую схему именования, основаннуя на конечной точке определения (EIDs) и широкослойном классе услуг. Протоколы, которые используют пакетирование, должны использовать уровень приложения для отправки пакетов по сети. Из-за хранения данных, транспортировка при помощи протокола DTN будет быстра на прикладном уровне.

Например, влияние на планирование сети может оказать тот фактор, что данные должны быть получены в полном объеме, быстро и без каких-либо изменений. Протоколы собирают данные в пакеты, которые могут быть отправлены в гетерогенных сетях с высокой гарантией целостной доставки. Гарантии, как правило, устанавливается на уровне приложений, и спецификация протокола RFC 5050 использует маркировки «медленный», «нормальный» и «ускоренный».

Безопасность

[править | править код]

Вопросам безопасности протокола уделяется большое внимание. Проблемы безопасности для сети, устойчивой к разрывам, зависят от среды и применения, хотя аутентификации и конфиденциальности зачастую имеют решающее значение. Не сложно для такой сети создать хорошую безопасность. В сети без постоянного подключения сложно создать криптографические протоколы, так как замедляется обмен ключами, и каждое устройство должно идентифицировать другие ключи периодически видимых устройств. Решения были изменены с появлением мобильной одноранговой сети и распределении исследований в области безопасности, такие как использование распределенной сертификации и PKI схемы. Хорошие решения для сети, устойчивая к разрывам, научное сообщество относит:

  1. Использование идентификаторов шифрования, которые позволяют узлам получать информацию, зашифрованную с общедоступным идентификатором
  2. Использование несанкционированного вскрытия таблиц протокола

Литература

[править | править код]
  • Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е изд. — СПб.: Питер, 2012. — 960 с.