RTMFP is the protocol behind Flash’s powerful P2P technology, which empowers websites such as Chatroulette, Airtime, or Haxball. It’s also behind the P2P Android 3G mobile test, and the Overdigital Videochat on the picture above (please note, this is not Michael, but a demo of a RTMFP based call).
Adobe recently submitted RTMPF to the IETF to become a HTML web standard. I had the chance to chat with Michael Thornburgh, Senior Computer Scientist at Adobe, and co-creator of RTMFP.
What’s your history and role with RTMFP?
Matthew Kaufman and I created RTMFP in 2006 following Adobe’s acquisition of our company, “amicima inc.” that year. RTMFP is the successor to P2P network technology that we created at amicima. I wrote the reference implementation of RTMFP that is used in different Adobe products, such as Flash Player and Adobe Media Server. At the current time, I am the RTMFP architect and primary maintainer.
What is RTMFP?
RTMFP is the “Secure Real-Time Media Flow Protocol”. it is a low-level network transport protocol, similar to TCP, designed for peer-to-peer (P2P) and real-time communications. The name “RTMFP” may also refer to the family of P2P network communication technologies in the Flash platform based on this low-level transport protocol, including direct 1-to-1 P2P and P2P group/mesh protocols such as application-layer multicast.
How did RTMFP evolve over the years? What are the main use cases?
RTMFP (and its technological predecessor at amicima, “MFP”) was designed to solve practical real-time and P2P communication challenges in the real-life Internet, such as NAT traversal when possible, security, and data prioritization over constrained network paths. We took a bottom-up approach to the problem, designing a robust low-level network transport protocol to address these issues. Over time we built up layers on top of this foundation, including direct P2P streaming of video and audio between web browsers using Flash Player, and one-to-many streaming using P2P techniques with “RTMFP Groups”.
How can I use RTMFP today?
RTMFP is available in Flash Player, Adobe Integrated Runtime (AIR), and Adobe Media Server (AMS, formerly Flash Media Server or FMS). The “Codename Cirrus” service provides a free (beta) P2P introduction/rendezvous service for Flash platform clients to help developers get started using RTMFP in Flash. To learn more, including sample code and to sign up for a developer key, go to http://labs.adobe.com/technologies/cirrus/.
What is the vision behind the IETF submission?
We published a specification for the low-level RTMFP protocol as an IETF Internet-Draft (working toward publication as an Informational RFC) because we believe this protocol provides a clean, unified, and holistic solution to a number of problems in the network transport area that do not currently have satisfactory standardized solutions, including the congestion-controlled transport of multiple parallel flows of real-time and bulk data over the Internet. We hope that the Internet community will find RTMFP innovative and useful, and adopt it in future projects related to P2P and real-time communication. Note that the current submission to IETF does not include information specific to Flash platform communication (including the application-layer protocols over RTMFP that are used for client-server and P2P communication nor the Flash-specific security/cryptography profile), nor does it include information on the RTMFP Groups P2P mesh protocols (such as application-layer multicast).
How does RTMFP compare to WebRTC and PPSPP?
WebRTC is a joint effort of the IETF and W3C to use existing Internet standard communication protocols and techniques for real-time communication in and between web browsers. This work still has numerous open practical issues, including congestion control and prioritization for parallel media flows (such as video and audio) with real-time and bulk data, multiplexing real-time media with data (both real-time and bulk transfer) over a single UDP session, and unified security for these communications, which are solved by RTMFP. PPSPP (Peer-to-Peer Streaming Peer Protocol) is a draft (work-in-progress) P2P streaming protocol for live and recorded events. It is similar in function to RTMFP Groups’ P2P multicast and “object replication” modes, which have been available in Flash Player since 2009 (and P2P multicast was demonstrated in 2008).
Why is RTMFP the better option for the IETF/W3C?
RTMFP (the transport protocol) solves a number of open issues with the current WebRTC approach, including unified congestion control for parallel media and data flows, multiplexing parallel flows over a single UDP port (which can decrease resource utilization in NATs and can increase the speed and reliability of communication startup). The RTMFP P2P communication API in Flash Player provides a cleaner and simpler interface for setting up direct communication between browsers.[divider] [/divider]
Below is a presentation Michael did at Adobe MAX 2011 – “Advanced P2P with RTMFP: Tips and Ticks”.
For more details on the RTMFP IETF submission, read the official announcement. Adobe Media Server and the Cirrus service allow the use of RTMFP today. If you have have specific questions, leave a comment below, and we’ll try to answer it.