Надежная многоадресная рассылка

Надежная доставка пакетов нескольким получателям одновременно

Надежная многоадресная передача — это любой протокол компьютерной сети , который обеспечивает надежную последовательность пакетов нескольким получателям одновременно, что делает его пригодным для таких приложений, как передача файлов нескольким получателям .

Обзор

Multicast — это метод сетевой адресации для доставки информации группе адресатов одновременно с использованием наиболее эффективной стратегии доставки сообщений по каждому каналу сети только один раз, создавая копии только тогда, когда каналы к нескольким адресатам разделяются (обычно сетевые коммутаторы и маршрутизаторы ). Однако, как и протокол пользовательских датаграмм , multicast не гарантирует доставку потока сообщений. Сообщения могут быть потеряны, доставлены несколько раз или доставлены не по порядку. Надежный протокол multicast добавляет возможность получателям обнаруживать потерянные и/или не по порядку сообщения и предпринимать корректирующие действия (по принципу, аналогичному TCP ), что приводит к потоку сообщений без пропусков и в порядке.

Надежность

Точное значение надежности зависит от конкретного экземпляра протокола. Минимальное определение надежной многоадресной рассылки — это конечная доставка всех данных всем членам группы без навязывания какого-либо конкретного порядка доставки . [1] Однако не все надежные многоадресные протоколы обеспечивают этот уровень надежности; многие из них по-разному жертвуют эффективностью ради надежности. Например, в то время как TCP возлагает ответственность за надежность передачи на отправителя, многоадресные протоколы на основе NAK перекладывают ответственность на получателей: отправитель никогда не знает наверняка, что все получатели фактически получили все данные. [2] RFC-2887 исследует пространство проектирования для массовой передачи данных с кратким обсуждением различных вопросов и некоторыми намеками на возможные различные значения надежного .

Надежная групповая доставка данных

Надежная групповая доставка данных (RGDD) — это форма многоадресной рассылки, при которой объект должен быть перемещен из одного источника в фиксированный набор получателей, известный до начала передачи. [3] [4] Такая доставка может потребоваться различным приложениям: Hadoop Distributed File System (HDFS) реплицирует любой фрагмент данных два дополнительных раза на определенные серверы, репликация виртуальной машины на несколько серверов может потребоваться для масштабирования приложений, а репликация данных на несколько серверов может потребоваться для балансировки нагрузки, позволяя нескольким серверам обслуживать одни и те же данные из своих локальных кэшированных копий. Такая доставка часто встречается в центрах обработки данных из-за большого количества серверов, взаимодействующих при запуске высокораспределенных приложений.

RGDD также может происходить между центрами обработки данных и иногда называется межцентровыми передачами точка-многоточка (P2MP). [5] Такие передачи доставляют огромные объемы данных из одного центра обработки данных в несколько центров обработки данных для различных приложений: поисковые системы периодически распространяют обновления поискового индекса (например, каждые 24 часа), приложения социальных сетей отправляют новый контент во многие кэш-памяти по всему миру (например, YouTube и Facebook), а службы резервного копирования создают несколько географически распределенных копий для повышения отказоустойчивости. Чтобы максимально использовать полосу пропускания и сократить время завершения массовых передач, были предложены различные методы для выбора деревьев многоадресной пересылки. [5] [6]

Виртуальная синхронность

Современные системы, такие как Spread Toolkit , Quicksilver и Corosync, могут достигать скорости передачи данных 10 000 многоадресных рассылок в секунду и более и могут масштабироваться до крупных сетей с огромным количеством групп или процессов.

Большинство платформ распределенных вычислений поддерживают одну или несколько из этих моделей. Например, широко поддерживаемые объектно-ориентированные платформы CORBA поддерживают транзакции, а некоторые продукты CORBA поддерживают транзакционную репликацию в модели сериализуемости с одной копией. «Стандарт отказоустойчивых объектов CORBA» основан на модели виртуальной синхронности. [7] Виртуальная синхронность также использовалась при разработке отказоустойчивой архитектуры Нью-Йоркской фондовой биржи, французской системы управления воздушным движением, системы AEGIS ВМС США, архитектуры репликации бизнес-процессов IBM для WebSphere и архитектуры кластеризации Windows Microsoft для корпоративных серверов Windows Longhorn . [8]

Системы, поддерживающие виртуальную синхронность

Виртуальная синхронизация впервые была поддержана Корнелльским университетом и называлась «Isis Toolkit». [9] Самая последняя версия Корнелла, Vsync , была выпущена в 2013 году под названием Isis2 (название было изменено с Isis2 на Vsync в 2015 году после террористической атаки в Париже экстремистской организацией под названием ИГИЛ), с периодическими обновлениями и доработками с тех пор. Самая последняя стабильная версия — V2.2.2020; она была выпущена 14 ноября 2015 года; версия V2.2.2048 в настоящее время доступна в виде бета-версии. [10] Vsync нацелена на крупные центры обработки данных, поддерживающие облачные вычисления .

Другие подобные системы включают систему Horus [11], систему Transis, систему Totem, систему IBM Phoenix, распределенную систему управления ключами безопасности Rampart, «систему Ensemble», [12] систему Quicksilver , «проект OpenAIS», [13] ее производную Corosync Cluster Engine и ряд продуктов (включая продукты IBM и Microsoft, упомянутые ранее).

Другие существующие или предлагаемые протоколы

Поддержка библиотеки

  • JGroups (Java API)
  • Распространение: C/C++ API, Java API
  • РМФ (API C#)
  • hmbdc с открытым исходным кодом (только заголовки) промежуточное ПО C++, сверхнизкая задержка/высокая пропускная способность, масштабируемость и надежность межпоточного взаимодействия, обмена сообщениями IPC и сети

Ссылки

  1. ^ Флойд, С .; Якобсон, В .; Лю, К.-Г.; МакКейн, С.; Чжан, Л. (декабрь 1997 г.). «Надежная многоадресная структура для легких сеансов и кадрирования на уровне приложений». Труды IEEE/ACM по сетевым технологиям . 5 (6): 784–803. doi :10.1109/90.650139. S2CID  221634489.
  2. ^ Diot, C.; Dabbous, W.; Crowcroft, J. (апрель 1997 г.). «Многоточечная связь: обзор протоколов, функций и механизмов» (PDF) . IEEE Journal on Selected Areas in Communications . 15 (3): 277–290. doi :10.1109/49.564128.
  3. ^ C. Guo; et al. (1 ноября 2012 г.). «Datacast: масштабируемая и эффективная надежная групповая служба доставки данных для центров обработки данных». ACM . Получено 26 июля 2017 г. .
  4. ^ T. Zhu; и др. (18 октября 2016 г.). "MCTCP: Congestion-aware and robust multicast TCP in Software-Defined networks". 2016 IEEE/ACM 24-й Международный симпозиум по качеству обслуживания (IWQoS) . IEEE. стр. 1–10. doi :10.1109/IWQoS.2016.7590433. ISBN 978-1-5090-2634-0. S2CID  28159768.
  5. ^ ab M. Noormohammadpour; et al. (10 июля 2017 г.). "DCCast: Эффективные передачи данных из точки в многоточку через центры обработки данных". USENIX . Получено 26 июля 2017 г. .
  6. ^ M. Noormohammadpour; et al. (2018). "QuickCast: Быстрые и эффективные передачи между центрами обработки данных с использованием когорт дерева пересылки" . Получено 23 января 2018 г.
  7. ^ "Каталог спецификаций CORBA/IIOP". 2004-10-09. Архивировано из оригинала 2004-10-09 . Получено 2024-09-19 .
  8. ^ KP Birman (июль 1999). «Обзор опыта надежной многоадресной передачи». Software: Practice and Experience . 29 (9): 741–774. doi :10.1002/(SICI)1097-024X(19990725)29:9<741::AID-SPE259>3.0.CO;2-I. hdl : 1813/7380 .
  9. ^ "Инструментарий Isis"
  10. ^ «Библиотека облачных вычислений Vsync».
  11. ^ "Система Хоруса"
  12. ^ "Система ансамбля"
  13. ^ "Проект OpenAIS"

Дальнейшее чтение

  • Надежные распределенные системы: технологии, веб-сервисы и приложения. KP Birman. Springer Verlag (1997). Учебник, охватывает широкий спектр концепций распределенных вычислений, включая виртуальную синхронность.
  • Распределенные системы: принципы и парадигмы (2-е издание). Эндрю С. Таненбаум, Маартен ван Стен (2002). Учебник, охватывает широкий спектр концепций распределенных вычислений, включая виртуальную синхронность.
  • «Подход группы процессов к надежным распределенным вычислениям». KP Birman, Communications of the ACM 16:12 (декабрь 1993 г.). Написано для неспециалистов.
  • «Характеристики групповой коммуникации: комплексное исследование» Грегори В. Чоклер, Идит Кейдар ,
  • Роман Витенберг. ACM Computing Surveys 33:4 (2001). Вводит математический формализм для этих типов моделей, затем использует его для сравнения их выразительной силы и их предположений об обнаружении отказов.
  • "Парламент на неполный рабочий день". Лесли Лэмпорт. ACM Transactions on Computing Systems (TOCS), 16:2 (1998). Представляет реализацию Paxos для реплицированных конечных автоматов.
  • «Использование виртуальной синхронности в распределенных системах». К. П. Бирман и Т. Джозеф. Труды 11-го симпозиума ACM по принципам операционных систем (SOSP), Остин, Техас, ноябрь 1987 г. Самое раннее использование термина, но, вероятно, не лучшее изложение темы.
Взято с "https://en.wikipedia.org/w/index.php?title=Надежная_мультикастовая_передача&oldid=1247312176#Виртуальная_синхронизация"