Pragmatic General Multicast (PGM) is a reliable transport protocol for applications that require ordered or unordered, duplicate-free, multicast data delivery from multiple sources to multiple receivers.
PGM is specifically intended as a workable solution for multicast applications with basic reliability requirements rather than as a comprehensive solution for multicast applications with sophisticated ordering, agreement, and robustness requirements. Its central design goal is simplicity of operation with due regard for scalability and network efficiency.
PGM has no notion of group membership. It simply provides reliable multicast data delivery within a transmit window advanced by a source according to a purely local strategy. Reliable delivery is provided within a source"s transmit window from the time a receiver joins the group until it departs. PGM guarantees that a receiver in the group either receives all data packets from transmissions and repairs, or is able to detect unrecoverable data packet loss. PGM supports any number of sources within a multicast group, each fully identified by a globally unique Transport Session Identifier (TSI), but since these sources/sessions operate entirely independently of each other, this specification is phrased in terms of a single source and extends without modification to multiple sources.
More specifically, PGM is not intended for use with applications that depend either upon acknowledged delivery to a known group of recipients, or upon total ordering amongst multiple sources. Rather, PGM is best suited to those applications in which members may join and leave at any time, and that are either insensitive to unrecoverable data packet loss or are prepared to resort to application recovery in the event. Through its optional extensions, PGM provides specific mechanisms to support applications as disparate as stock and news updates, data conferencing, low-delay real-time video transfer, and bulk data transfer.
Protocol Structure
PGM header:
| 16 bits | 32 bits | ||
| Source Port | Destination Port | ||
| Flags | Options | Checksum | |
| Global Source ID | |||
| Global Source ID | TSDU Length | ||
| Data | |||
- Source Port - Data-Destination Port
- Destination Port. Data-Source Port
- Flags Here are the bits definitions:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| Version | 0 | 0 | Type | ||||
- Version - PGM version number.
- Type C Type of message
- Options C Here are the bits definitions:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| E | N | T | P |
E, Option Extensions. 1 bit.
N, Options are network-significant. 1 bit.
T, Packet is a parity packet for a transmission group of variable sized packets. 1 bit.
P, Packet is a parity packet. 1 bit.
Checksum C error checking.
- Global Source ID - A globally unique source identifier.
- TSDU Length - The length in bytes of the transport data unit exclusive of the transport header.
- Data - Variable length.
Sponsor Source: PGM is circulated by IETF (http://www.ietf.org ) as an experimental protocol.
Reference: http://www.javvin.com/protocol/rfc3208.pdf : PGM Reliable Transport Protocol Specification
