WikiDer > Протокол передачи данных на основе UDP
Разработчики) | Юньхун Гу |
---|---|
Стабильный выпуск | 4.11 / 23 февраля 2013 г. |
Репозиторий | Sourceforge |
Написано в | C ++ |
Тип | Протокол (вычисления) |
Лицензия | Лицензия BSD |
Интернет сайт | udt |
Протокол передачи данных на основе 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 (отчеты о потерях) используются для сообщения о потере пакета. Периодические ACK помогают уменьшить управляющий трафик на обратном пути при высокой скорости передачи данных, потому что в этих ситуациях количество ACK пропорционально времени, а не количеству пакетов данных.
AIMD с убывающим увеличением
UDT использует AIMD (аддитивное увеличение мультипликативное уменьшение) алгоритм управления перегрузкой в стиле. Параметр увеличения обратно пропорционален доступной полосе пропускания (оцененной с использованием метода пар пакетов), таким образом, UDT может быстро проверять широкую полосу пропускания и может замедляться для большей стабильности при приближении к максимальной полосе пропускания. Коэффициент уменьшения - это случайное число от 1/8 до 1/2. Это помогает снизить негативное влияние потери синхронизации.
В UDT передача пакетов ограничена как управлением скоростью, так и управлением окнами. Скорость отправки обновляется алгоритмом AIMD, описанным выше. Окно перегрузки, как вторичный механизм управления, устанавливается в соответствии со скоростью поступления данных на стороне получателя.
Настраиваемый контроль перегрузки
Реализация UDT предоставляет набор переменных, связанных с контролем перегрузки в классе C ++, и позволяет пользователям определять набор функций обратного вызова для управления этими переменными. Таким образом, пользователи могут переопределить алгоритм управления, переопределив некоторые или все эти функции обратного вызова. Большинство алгоритмов управления TCP могут быть реализованы с помощью этой функции, содержащей менее 100 строк кода.
Настройка рандеву-соединения
Помимо традиционной настройки соединения клиент / сервер (вызывающий / слушатель AKA, где слушатель ожидает соединения и потенциально принимает несколько подключающихся вызывающих абонентов), 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, ведущая в мире конференция по высокопроизводительным вычислениям, сетям, хранилищам и анализу.[2][3][4]
На SC06 (Тампа, Флорида) команда передала набор астрономических данных со скоростью 8 Гбит / с с диска на диск из Чикаго, штат Иллинойс, в Тампу, штат Флорида, используя UDT. На SC08 (Остин, Техас) команда продемонстрировала использование UDT в сложной высокоскоростной передаче данных с участием различных распределенных приложений по системе из 120 узлов, в четырех центрах обработки данных в Балтиморе, Чикаго (2) и Сан-Диего. В SC09 (Портленд, Орегон) совместная группа из NCDM, Naval Research Lab и iCAIR продемонстрировала приложения для облачных вычислений с большими объемами данных на базе UDT.
Смотрите также
Литература
- Бернардо, Д.В. и Хоанг, Д. Б.; «Эмпирическое исследование: эксперименты и реализации высокоскоростной передачи данных по протоколу для GRID» Труды 25-й Международной конференции IEEE по продвинутым информационным сетям и семинарам по приложениям, март 2011, Сингапур.
- Юнхонг Гу и Роберт Л. Гроссман, UDT: Передача данных на основе UDP для высокоскоростных глобальных сетей, компьютерных сетей (Elsevier). Том 51, Выпуск 7. Май 2007 г.
использованная литература
- ^ https://scholar.google.co.in/citations?user=Iss3wgUAAAAJ&hl=en
- ^ NCDM выигрывает конкурс на пропускную способность на SC06, HPCWire, 24 ноября 2006 г.
- ^ Группы UIC выиграли премию Bandwidth Challenge, HPCWire, 20 ноября 2008 г.
- ^ Испытательный стенд Open Cloud выиграл конкурс на пропускную способность на SC09, 8 декабря 2009 г.