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. #

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend