[zeromq-dev] UDP message with zeromq 2.0beta

Martin Sustrik sustrik at 250bpm.com
Thu Jan 21 11:27:47 CET 2010


Guo,

> I have another question regarding PGM. in 
> http://www.zeromq.org/whitepapers:design-v05, it stated that
> 
> Comment: On Linux, PGM-enabled applications have to be run with root 
> privileges. The cause is that there is no PGM implementation in the 
> kernel and you have to send/receive PGM packets from the user space. 
> Manipulation of raw IP sockets from user space requires root privileges. 
> If you want to use multicast without root privileges you have to use PGM 
> encapsulated within UDP (use say "bp/pgm://udp:eth0;224.0.0.0:5555" 
> instead of "bp/pgm://eth0;224.0.0.0:5555"). Note that this is not the 
> real PGM, i.e. it won't intercommunicate with other PGM implementations. 
> Also, you have to set these two environment variables:
> 
> $ export PGM_TIMER="TSC"
> $ export PGM_SLEEP="TSC"

That's outdated. The implementation was improved so that when you use 
"udp://" transport, you don't have to worry about privileges. With PGM 
proper ("pgm://") your application has to have privilege to create a raw 
socket.

While the whitepapers may yield some useful information on internal 
architecture of 0MQ, when sorting out how the API works refer to the man 
pages. In this case zmq_pgm(7) and zmq_udp(7).

Martin



More information about the zeromq-dev mailing list