stringtranslate.com

Протокол передачи данных на основе UDP

Протокол передачи данных на основе UDP ( UDT ) — это высокопроизводительный протокол передачи данных, предназначенный для передачи больших объемных наборов данных по высокоскоростным глобальным сетям . Такие настройки обычно невыгодны для более распространенного протокола TCP .

Первоначальные версии были разработаны и протестированы в очень высокоскоростных сетях (1 Гбит/с, 10 Гбит/с и т. д.); однако последние версии протокола были обновлены для поддержки обычного Интернета. Например, протокол теперь поддерживает настройку соединения рандеву, что является желательной функцией для обхода межсетевых экранов NAT с использованием UDP .

UDT имеет реализацию с открытым исходным кодом, которую можно найти на SourceForge . Это одно из самых популярных решений для поддержки высокоскоростной передачи данных, которое входит в состав многих исследовательских проектов и коммерческих продуктов.

Фон

UDT был разработан Юнхонгом Гу [1] во время его докторской диссертации в Национальном центре интеллектуального анализа данных (NCDM) Университета Иллинойса в Чикаго в лаборатории доктора Роберта Гроссмана. Доктор Гу продолжает поддерживать и совершенствовать протокол после окончания учебы.

Проект UDT стартовал в 2001 году, когда недорогие оптические сети стали популярными и привели к более широкому осознанию проблем эффективности TCP в высокоскоростных глобальных сетях. Первая версия UDT, также известная как SABUL (Simple Available Bandwidth Utility Library), была разработана для поддержки массовой передачи данных для перемещения научных данных по частным сетям. SABUL использовал UDP для передачи данных и отдельное TCP-соединение для управляющих сообщений.

В октябре 2003 года NCDM добился передачи данных со скоростью 6,8 гигабит в секунду из Чикаго , США, в Амстердам , Нидерланды . За 30-минутный тест они передали примерно 1,4 терабайта данных.

Позже SABUL был переименован в UDT, начиная с версии 2.0, выпущенной в 2004 году. UDT2 удалил управляющее соединение TCP в SABUL и использовал UDP как для данных, так и для управляющей информации. UDT2 также представил новый алгоритм управления перегрузкой, который позволил протоколу работать «справедливо и дружелюбно» с параллельными потоками UDT и TCP.

UDT3 (2006 г.) распространил использование протокола на обычный Интернет. Контроль перегрузки также был настроен для поддержки относительно низкой пропускной способности. UDT3 также значительно снизил использование системных ресурсов (ЦП и памяти). Кроме того, UDT3 позволяет пользователям легко определять и устанавливать собственные алгоритмы контроля перегрузки.

В UDT4 (2007 г.) было представлено несколько новых функций для лучшей поддержки высокого уровня параллелизма и обхода брандмауэра. UDT4 позволял нескольким соединениям UDT привязываться к одному и тому же порту UDP, а также поддерживал настройку рандеву-соединения для упрощения пробивки отверстий UDP .

Пятая версия протокола в настоящее время находится на стадии планирования. Возможные функции включают возможность поддержки нескольких независимых сеансов через одно соединение.

Более того, поскольку отсутствие функции безопасности для UDT было проблемой при его первоначальной реализации в коммерческой среде, Бернардо (2011) разработал архитектуру безопасности для UDT в рамках своей докторской диссертации. Однако эта архитектура совершенствуется для поддержки UDT в различных сетевых средах (например, в оптических сетях).

Архитектура протокола

UDT построен на основе протокола пользовательских дейтаграмм (UDP), добавляя механизмы контроля перегрузки и контроля надежности. UDT — это дуплексный протокол прикладного уровня, ориентированный на соединение, который поддерживает как надежную потоковую передачу данных, так и частичный надежный обмен сообщениями.

Признание

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

AIMD с уменьшающимся увеличением

UDT использует алгоритм управления перегрузкой в ​​стиле AIMD (аддитивное увеличение, мультипликативное уменьшение). Параметр увеличения обратно пропорционален доступной полосе пропускания (оценивается с использованием метода пар пакетов), поэтому UDT может быстро проверять высокую пропускную способность и может замедляться для большей стабильности, когда она приближается к максимальной пропускной способности. Коэффициент уменьшения представляет собой случайное число от 1/8 до 1/2. Это помогает уменьшить негативное влияние потери синхронизации.

В UDT передача пакетов ограничивается как контролем скорости, так и контролем окна. Скорость отправки обновляется алгоритмом AIMD, описанным выше. Окно перегрузки, как вторичный механизм управления, устанавливается в соответствии со скоростью поступления данных на стороне получателя.

Настраиваемый контроль перегрузок

Реализация UDT предоставляет набор переменных, связанных с контролем перегрузки в классе C++, и позволяет пользователям определять набор функций обратного вызова для управления этими переменными. Таким образом, пользователи могут переопределить алгоритм управления, переопределив некоторые или все эти функции обратного вызова. Большинство алгоритмов управления TCP можно реализовать с использованием этой функции, используя менее 100 строк кода.

Настройка соединения для рандеву

Помимо традиционной настройки соединения клиент/сервер (вызывающая сторона/прослушиватель, где прослушиватель ожидает соединения и потенциально принимает несколько подключающихся вызывающих абонентов), UDT поддерживает также новый режим установки соединения рандеву. В этом режиме обе стороны прослушивают свой порт и подключаются к одноранговому узлу одновременно, то есть они обе подключаются друг к другу. Таким образом, обе стороны должны использовать один и тот же порт для подключения, и обе стороны эквивалентны ролям (в отличие от ролей слушателя/вызывающего абонента в традиционной настройке). Рандеву широко используется для обхода брандмауэра, когда оба узла находятся за брандмауэрами.

Используйте сценарии

UDT широко используется в высокопроизводительных вычислениях для поддержки высокоскоростной передачи данных по оптическим сетям. Например, GridFTP , популярный инструмент передачи данных в грид-вычислениях, имеет UDT в качестве протокола передачи данных.

В обычном Интернете UDT использовался во многих коммерческих продуктах для быстрой передачи файлов по глобальным сетям .

Поскольку UDT основан исключительно на UDP, он также использовался во многих ситуациях, когда TCP уступает UDP. Эти сценарии включают одноранговые приложения, видео- и аудиосвязь и многие другие.

Оценка возможных механизмов безопасности

UDT считается современным протоколом, отвечающим требованиям инфраструктуры для передачи данных в высокоскоростных сетях. Однако его развитие создает новые уязвимости, поскольку, как и многие другие протоколы, он полагается исключительно на существующие механизмы безопасности для текущих протоколов, таких как протокол управления передачей (TCP) и UDP.

Исследование, проведенное доктором Данило Валеросом Бернардо из Технологического университета Сиднея , членом Австралийской технологической сети , сосредоточено на практических экспериментах с UDT с использованием предложенных ими механизмов безопасности и изучении использования других существующих механизмов безопасности, используемых в TCP/UDP для UDT, получил интересные отзывы в различных научных сообществах по сетям и безопасности.

Для анализа механизмов безопасности они проводят формальное доказательство правильности, чтобы помочь им определить их применимость, используя логику композиции протокола (PCL). Этот подход является модульным и включает [ необходимы пояснения ] отдельное подтверждение каждого раздела протокола и дает представление о сетевой среде, в которой каждый раздел может быть надежно использован. Более того, доказательство справедливо для множества стратегий восстановления после сбоев и других вариантов реализации и конфигурации. Они заимствовали свою технику из PCL на TLS и Kerberos, описанных в литературе. Они работают над разработкой и проверкой своей архитектуры безопасности, используя системы перезаписи и автоматы.

Результатом их работы, которая является первой в литературе, является более надежное теоретическое и практическое представление архитектуры безопасности UDT, пригодной для работы с другими высокоскоростными сетевыми протоколами.

Производные работы

Проект UDT стал основой для проекта SRT , который использует надежность передачи потокового видео в реальном времени через общедоступный Интернет.

Награды

Команда UDT трижды выигрывала престижный конкурс Bandwidth Challenge во время ежегодной конференции ACM/IEEE Supercomputing Conference , ведущей мировой конференции по высокопроизводительным вычислениям, сетям, хранению данных и анализу. [2] [3] [4]

В SC06 (Тампа, Флорида) команда передала набор астрономических данных со скоростью 8 Гбит/с с диска на диск из Чикаго, Иллинойс, в Тампу, Флорида, с помощью UDT. На конференции SC08 (Остин, Техас) команда продемонстрировала использование UDT для сложной высокоскоростной передачи данных с участием различных распределенных приложений в системе из 120 узлов в четырех центрах обработки данных в Балтиморе, Чикаго (2) и Сан-Диего. На выставке SC09 (Портленд, Орегон) совместная группа из NCDM, Naval Research Lab и iCAIR продемонстрировала приложения облачных вычислений с интенсивным использованием данных на базе UDT.

Смотрите также

Литература

Рекомендации

  1. ^ "Юньхун Гу".
  2. NCDM выигрывает конкурс пропускной способности на SC06, HPCWire, 24 ноября 2006 г.
  3. ^ Группы UIC выигрывают награду Bandwidth Challenge, HPCWire, 20 ноября 2008 г.
  4. ^ Испытательный стенд Open Cloud выиграл конкурс пропускной способности на SC09, 8 декабря 2009 г.

Внешние ссылки