Эта статья включает список ссылок , связанных чтений или внешних ссылок , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Февраль 2018 ) |
Pragmatic General Multicast ( PGM ) — это надежный многоадресный транспортный протокол компьютерной сети. PGM обеспечивает надежную последовательность пакетов нескольким получателям одновременно, что делает его пригодным для таких приложений, как передача файлов несколькими получателями .
Multicast — это метод сетевой адресации для доставки информации группе адресатов одновременно с использованием наиболее эффективной стратегии доставки сообщений по каждому каналу сети только один раз, создавая копии только тогда, когда каналы к нескольким адресатам разделяются (обычно сетевые коммутаторы и маршрутизаторы ). Однако, как и протокол пользовательских датаграмм , multicast не гарантирует доставку потока сообщений. Сообщения могут быть потеряны, доставлены несколько раз или доставлены не по порядку. Надежный протокол multicast , такой как PGM, добавляет возможность получателям обнаруживать потерянные и/или не по порядку сообщения и предпринимать корректирующие действия (по принципу аналогично TCP ), что приводит к потоку сообщений без пропусков и в порядке.
В то время как TCP использует ACK для подтверждения групп отправленных пакетов (что было бы неэкономично по сравнению с многоадресной передачей), PGM использует концепцию отрицательных подтверждений (NAK). NAK отправляется одноадресно обратно на хост через определенную процедуру сетевого уровня hop-by-hop всякий раз, когда обнаруживается потеря данных определенной последовательности. Поскольку PGM в значительной степени зависит от NAK для целостности, при отправке NAK подтверждение NAK (NCF) отправляется через многоадресную передачу для каждого обратного перехода. Затем данные восстановления (RDATA) отправляются обратно либо из источника, либо из назначенного локального ремонтника (DLR) в некоторой точке ближе к месту назначения.
PGM — экспериментальный протокол IETF . Он пока не является стандартом, но был реализован в некоторых сетевых устройствах и операционных системах , включая Windows XP и более поздние версии Microsoft Windows , а также в сторонних библиотеках для Linux , Windows и Solaris .