Interested Article - Pragmatic General Multicast
- 2020-10-30
- 1
Pragmatic General Multicast ( PGM ) — сетевой протокол надёжной многоадресной передачи данных , относящийся к транспортному уровню модели OSI . PGM обеспечивает одновременную доставку множеству получателей сетевых пакетов с гарантией сохранения их исходной последовательности.
Обзор
Многоадресная передача данных — это метод параллельной доставки информации по сети группе адресатов. При этом используется наиболее эффективная стратегия однократной передачи сообщений по каждому сетевому пути, а копии сообщений создаются только в местах разветвлений (обычно на сетевых коммутаторах и маршрутизаторах). Тем не менее, как и UDP , многоадресная передача не гарантирует целостную доставку потока сообщений. Сообщения могут теряться, доставляться по нескольку раз или приходить в порядке отличном от исходного. Надёжный протокол многоадресной передачи , такой как PGM, даёт возможность получателям обнаруживать потери и/или нарушение порядка и принимать меры по восстановлению информации (эти же функции реализованы в протоколе TCP ), получая целостный поток сообщений в нужном порядке.
В то время как TCP посылает ACK-подтверждения доставки групп пакетов, что расточительно, PGM использует концепцию посылки ответов отрицательного квитирования (Negative Acknowledgements, NAK). NAK-ответ отсылается хосту индивидуальной посылкой посредством определённой процедуры последовательной доставки, реализованной в протоколе сетевого уровня, применяемой каждый раз, когда будет обнаружена потеря данных в некоторой последовательности сообщений. Поскольку работа PGM по обеспечению целостности данных во многом зависит от NAK-ответов, на каждый такой ответ обратно отсылается подтверждение о получении NAK (NAK Confirmation, NCF). Затем в обратную сторону посылаются данные для восстановления (RDATA) хостом-источником или локальным узлом, выделенным для процедур восстановления (Designated Local Repairer, DLR) и расположенным ближе к хосту-назначению.
PGM — экспериментальный протокол IETF и ещё не утверждён в качестве стандарта, но был реализован в некоторых сетевых устройствах и операционных системах, включая Windows XP и выше, а также в библиотеках сторонних разработчиков для Linux , Windows и Solaris .
Ссылки
- (недоступная ссылка)
- 2020-10-30
- 1