pgm reliable general multicast implementation for linux
play

PGM: Reliable General Multicast Implementation for Linux? - PowerPoint PPT Presentation

PGM: Reliable General Multicast Implementation for Linux? Christoph Lameter, christoph@lameter.com Overview Why reliable multicasting. Middleware for signaling Existing implementations The PGM standard in brief.


  1. PGM: Reliable General Multicast Implementation for Linux? Christoph Lameter, christoph@lameter.com

  2. Overview • Why “reliable” multicasting. • “Middleware” for signaling • Existing implementations • The PGM standard in brief. • A proposed sockets based implementation • Kernel implementation challenges • Future outlook #

  3. Why “reliable” Multicasting • Need to signal events in the fastest way to a large group of changing recipients. • TCP – Is slow and reliable – Consumes lots of resources – Can only reach one destination • UDP multicast – Fast – Reaches unlimited number of destinations – But unreliable #

  4. Middleware • Multicast data streams – IGMP – Pub/Sub with network hardware support. • Sequence numbers • Retransmission • Protocols – IP based PGM native version – UDP encapsulated PGM #

  5. Existing Implementations • Proprietary • Open Source Open Source • Tibco • Openpgm • 29West • AMQP (not PGM) • IBM Websphere • 0MQ (zeromq) • Wombat MAMA (not PGM) • Microsoft Windows PGM (MS-PGM) #

  6. PGM standard (RFC 3208) • Multicast packets • Network element with sequence ids. assist. • Receiver check • Scalability issues. sequence id. • FEC capabilities. • NAK on missing • NCF packets. Sender • ODATA sends repair traffic. • RDATA • Heartbeat. • Receive / Send # Window

  7. Hardware support for Native PGM • Network • Cisco Switches “Elements” • Juniper Switches • NAK suppression • Nortel Networks • Optimize Repair Switches traffic • Exploit FEC. #

  8. A Linux Sockets Based Implementation • Use socket like an • Based on Miru's UDP socket openpgm code • IPPROTO_PGM • API Challenge • SOCK_RDM since Miru uses • Reverse connection library interface. over UDP • MS-PGM interface – Sender is not suffered bit rot. handshaking • Thus new API – Receiver waits for packet and then # accepts.

  9. Why in the kernel? • Framework for creating • Potential of high speed new protocols exists in processing since we the kernel have direct access to the NIC and the • RAW sockets used to implement native PGM queues. cause various issues. • Natural priority over • Middleware uses PGM everything else. over UDP and thus • Able to detect cannot use network dysfunctional network elements for NAK behavior. suppression. #

  10. What exists • Documentation • Code – Manpage • Sample code – Basic howto • Basic pgm – Variable structures skeleton partially – Integration of completed. SOCK_RDM and • Nothing that is IPPROTO_PGM runnable yet. Keep – Openpgm getting distracted implementation. by other projects. #

  11. Fundamental Challenges • Kernel socket API • Receive/Memory competes with bare usage in kernel for metal implementations. large receive windows • Need alternative to • Third party interactions message copying via – MS-PGM send()/receive(). – Tibco • Issues with Offload – IBM Websphere technology having a – AMQP (not PGM?) hard time getting acceptance. #

  12. Future • Having a kernel implementation would simplify a lot of things. • Minimal implementations so that user space frameworks can be built on top. • Need to address publish → large subscriber issues. • Manpage / Definition • Questions and Answers. #

Recommend


More recommend