table of contents
other versions
- wheezy-backports 3.2.3+dfsg-2~bpo70+1
- jessie 4.0.5+dfsg-2+deb8u1
- testing 4.2.1-4
- unstable 4.2.1-4
ZMQ_PGM(7) | 0MQ Manual | ZMQ_PGM(7) |
NAME¶
zmq_pgm - 0MQ reliable multicast transport using PGMSYNOPSIS¶
PGM (Pragmatic General Multicast) is a protocol for reliable multicast transport of data over IP networks.DESCRIPTION¶
0MQ implements two variants of PGM, the standard protocol where PGM datagrams are layered directly on top of IP datagrams as defined by RFC 3208 (the pgm transport) and "Encapsulated PGM" or EPGM where PGM datagrams are encapsulated inside UDP datagrams (the epgm transport).ADDRESSING¶
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.Connecting a socket¶
When connecting a socket to a peer address using zmq_connect() with the pgm or epgm transport, the endpoint shall be interpreted as an interface followed by a semicolon, followed by a multicast address, followed by a colon and a port number.•The interface name as defined by the
operating system.
•The primary IPv4 address assigned to
the interface, in it’s numeric representation.
WIRE FORMAT¶
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream of data where 0MQ messages are not necessarily aligned with PGM datagram boundaries and a single 0MQ message may span several PGM datagrams. This stream of data consists of 0MQ messages encapsulated in frames as described in zmq_tcp(7).PGM datagram payload¶
The following ABNF grammar represents the payload of a single PGM datagram as used by 0MQ:datagram = (offset data) offset = 2OCTET data = *OCTET
+------------------+----------------------+ | offset (16 bits) | data | +------------------+----------------------+
First datagram payload +--------------+-------------+---------------------+ | Frame offset | Frame 1 | Frame 2, part 1 | | 0x0000 | (Message 1) | (Message 2, part 1) | +--------------+-------------+---------------------+ Second datagram payload +--------------+---------------------+ | Frame offset | Frame 2, part 2 | | 0xFFFF | (Message 2, part 2) | +--------------+---------------------+ Third datagram payload +--------------+----------------------------+-------------+ | Frame offset | Frame 2, final 8 bytes | Frame 3 | | 0x0008 | (Message 2, final 8 bytes) | (Message 3) | +--------------+----------------------------+-------------+
EXAMPLE¶
Connecting a socket.// Connecting to the multicast address 239.192.1.1, port 5555, // using the first Ethernet network interface on Linux // and the Encapsulated PGM protocol rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555"); assert (rc == 0); // Connecting to the multicast address 239.192.1.1, port 5555, // using the network interface with the address 192.168.1.1 // and the standard PGM protocol rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555"); assert (rc == 0);
SEE ALSO¶
zmq_connect(3) zmq_setsockopt(3) zmq_tcp(7) zmq_ipc(7) zmq_inproc(7) zmq(7)AUTHORS¶
This 0MQ manual page was written by Pieter Hintjens < ph@imatix.com[1]>, Martin Sustrik < sustrik@250bpm.com[2]> and Martin Lucina < mato@kotelna.sk[3]>.NOTES¶
- 1.
- ph@imatix.com
mailto:ph@imatix.com
- 2.
- sustrik@250bpm.com
mailto:sustrik@250bpm.com
- 3.
- mato@kotelna.sk
mailto:mato@kotelna.sk
05/02/2013 | 0MQ 3.2.2 |