SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Future of
    Communication
    with RTMFP
    Matthew Kaufman
    17 November 2008




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Introduction

      Who
               Matthew Kaufman
                        Background: software + Internet
                        Joined Adobe in 2006 from amicima

      What
               RTMFP
                        Secure Real-Time Media Flow Protocol




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Background: RTMP

      How the Flash Player talks to Flash Media Server
               TCP/IP
               NetConnection / NetStream classes
               Audio, Video, Shared Objects, Call, Send

      Flash Media Server streams or relays media, runs server-side applications
      Streaming of pre-recorded content
               Audio/Video playback (with seeking)
                                                                              Flash
      Real-time Communication                                             Media Server
               Audio/Video communication
               Microphone / Camera classes
               One-to-many or one-to-one
                                                                  Flash                   Flash
                                                                  Player                  Player


                                                                                                   ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Background: RTMP flavors

      RTMP
               TCP (typically on port 1935)

      RTMPT
               “Tunneled”
               Encapsulated in HTTP requests

      RTMPS
               RTMPT-over-HTTPS
               SSL for security

      RTMPE
               RTMP plus lighter-weight encryption for stream protection

      RTMPTE
               RTMPE-over-HTTP


                                                                            ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Background: RTMP Limitations

      Based on TCP
               Reliable (lossless) in-order stream of bytes
               Retransmission when there is loss (and delivery is held)
               Unavoidable latency
               Allows for (relatively) simple RTMP protocol stack above TCP layer

      Client-Server only
               TCP and direct peer-to-peer connections not compatible with NAT

      Other interesting things also impossible




                                                                                     ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
RTMFP: Introduction

      Based on UDP
               Allows direct access to what is received and transmitted at the packet level
               Compatible with NAT and Firewall devices

      Sophisticated network protocol stack on top of UDP
               Rapid session establishment (2 RTT)
                      anti-DOS and anti-port-scanning protection, client-side load balancing

               Multiple parallel media flows of messages
                      Prioritized
                      Variable reliability (full TCP-like, partial, none) controls retransmission
                      In-order or as-received delivery at receiver

               TCP-friendly congestion control with variable congestion response (backoff)
                      Congestion avoidance by 3rd-party sessions

               Integrated NAT traversal for peer-to-peer applications (“parallel-open” capability)
               IP address mobility (session stays up if address changes)
               Fast recovery from brief outages
                                                                                                      ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
RTMFP: Security

      RTMFP is secured at the protocol level
               Security “plugs in” to the protocol stack implementation, Flash Media uses a specific plug-in
               Every packet encrypted with block cipher
                        AES-128 for Flash Media
               New block cipher key negotiated in first two round trips
                        Diffie-Hellman key exchange (static-static or ephemeral-static keys) for Flash Media
               SSL-like authentication (e.g., RSA signing) is supported at connection establishment
                        Not used for Flash Media at this time
               Secure nonce exchange
                        Values chosen by each party, protected against MITM tampering
                        Saves round trips when implementing upper-layer security (authentication, continuity)

      Developers have access at ActionScript level
               Secure peer IDs (infeasible to guess or forge), nearNonce and farNonce properties


                                                                                                                 ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Using RTMFP with FMS

      Minimal changes for developer
               Substitute “rtmfp://” for “rtmp://” when connecting to FMS
               Use Flash Player 10.0 or later, AIR 1.5 or later with a (future) RTMFP-capable FMS
               Everything works the same except:
                        Live (unbuffered) Speex audio will be sent with partial reliability for lower latency
                        Plus all other advantages of RTMFP
                           Encryption
                           Mobility
                                                                                          Flash
                           etc.
                                                                                       Media Server




                                                                             Flash                        Flash
                                                                             Player                       Player


                                                                                                                   ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
RTMFP and Firewalls

      RTMP and RTMPE requires TCP port 1935
      RTMPT and RTMPTE uses TCP port 80 (HTTP)
      RTMPS uses TCP port 443 (HTTPS)
      RTMFP is more complicated
               UDP port 1935 to establish connection
               Multiple high UDP ports (one per FMS application core)
               Does have NAT/Firewall traversal (additional ports used will be initiated from inside)
               Can use an IT-provided TURN proxy (manually configured)

      RTMFP has no tunneled counterpart, must fall back to RTMP




                                                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Demo: RTMFP and FMS




                                                                  Demo




                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
RTMFP: Direct Peer-to-Peer Communication

      Two use cases for real-time communication
               One-to-many
               One-to-one

      Both have scaling issues for popular services
      Direct peer-to-peer communication addresses the one-to-one case
               Or one-to-few

      Media bypasses FMS and travels directly between Flash Players / AIR
               Uses RTMFP’s NAT/Firewall traversal capability and FMS to “introduce”
               Lower latency
               (Almost) No media load on server
                        Better scalability
               Server still available to relay if firewall blocks or RTMFP connection cannot be made



                                                                                                        ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
RTMFP: Direct P2P Communication – How it works

      Flash Media Server introduces peers
               ActionScript API talks only about Peer IDs, never IP addresses
               FMS gives the originating peer one or more IP addresses for destination
               FMS tells destination peer that originating peer is attempting contact

    NAT traversal
               Destination peer can respond as result of
                originator’s packet(s) or FMS message
               “UDP hole punching”
                                                                                    Flash
                                                                                 Media Server
               IP mobility helps establish in certain NAT
                configurations, maintain if NAT mapping
                changes
               Not all NAT-NAT combinations work
                                                                      Flash                     Flash
                                                                      Player                    Player


                                                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Using RTMFP Direct Peer-to-Peer Communication

      API Changes
               Peer IDs
                        Available from the NetConnection and Client objects
                        Must exchange via FMS or other means (web service, XMPP, etc.)
               Slight modification to publishing and subscribing API

      To publish
          nc = new NetConnection();
          nc.connect(“rtmfp://my.fms/application”);
          ns = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);
          ns.publish(“streamName”);

      To play
          nc = new NetConnection();
          nc.connect(“rtmfp://my.fms/application”);
          ns = new NetStream(nc, <peerID of publishing peer>);
          ns.play(“streamName”);


                                                                                          ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Demo: RTMFP Direct Communication




                                                                  Demo




                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Using RTMFP: NetConnection API

      NetConnection
               farID
               farNonce
               maxPeerConnections
               nearID
               nearNonce
               Protocol
               unconnectedPeerStreams array




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Using RTMFP: NetStream API

      NetStream
               New constructor (NetStream.DIRECT_CONNECTIONS or peerID as second argument)
               farID
               farNonce
               nearNonce
               peerStreams array
               onPeerConnect()




                                                                                              ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Adobe Stratus

      Stratus is a (Beta) hosted rendezvous service for RTMFP
               For any 1:1 or 1:few audio/video application that does not require FMS
                        No recording
                        No FMS application logic
                        No FMS shared objects
                        Requires external web service to exchange Peer IDs

      To use Stratus
                  Open NetConnection to Stratus                                  Stratus
                       rtmfp://stratus.adobe.com/<dev-key>/<app-name>

                  Exchange Peer IDs
                  Open direct peer-to-peer NetStreams

      More info on labs.adobe.com                                       Flash              Flash
                                                                         Player             Player


                                                                                                     ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
Future Possibilities

      Flash Player 10.0 and AIR 1.5 are just the first step
               RTMFP protocol stack as foundation
               Use peer-to-peer technology for the one-to-many cases

      “Groups”
               A dynamic, self-organizing overlay network of RTMFP peers
               Full transitive connectivity with only O(log n) sessions between peers
               Described by a “Groupspec”

      Application-Level Multicast
               Send a stream to all members of a group (multiple senders supported)
               Use Groupspec (instead of peerID) when constructing a NetStream

      Posting
      Directed routing

                                                                                         ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.
End




                                   Don’t miss the Sneak Peeks




                                                                  ®




Copyright 2008 Adobe Systems Incorporated. All rights reserved.

Contenu connexe

Tendances

Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCHMoises Silva
 
Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second LifeVideoguy
 
Audio and Video streaming.ppt
Audio and Video streaming.pptAudio and Video streaming.ppt
Audio and Video streaming.pptVideoguy
 
Slides for Week 4 - Lec 2
Slides for Week 4 - Lec 2Slides for Week 4 - Lec 2
Slides for Week 4 - Lec 2Videoguy
 
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Yusuke Goto
 
Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113a8us
 
Video Streaming Ali Saman Tosun
Video Streaming Ali Saman TosunVideo Streaming Ali Saman Tosun
Video Streaming Ali Saman TosunVideoguy
 
Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment a8us
 
vPoint HD briefing.ppt
vPoint HD briefing.pptvPoint HD briefing.ppt
vPoint HD briefing.pptVideoguy
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader AudienceVideoguy
 
Instant video streaming
Instant video streamingInstant video streaming
Instant video streamingVideoguy
 
Streaming Stored Video- Computer Networking
Streaming Stored Video- Computer Networking  Streaming Stored Video- Computer Networking
Streaming Stored Video- Computer Networking Mahbubur Rahman
 
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Voxeo Corp
 
z/OS Communications Server: z/OS Resolver
z/OS Communications Server: z/OS Resolverz/OS Communications Server: z/OS Resolver
z/OS Communications Server: z/OS ResolverzOSCommserver
 
Protocol For Streaming Media
Protocol For Streaming MediaProtocol For Streaming Media
Protocol For Streaming MediaKaniska Mandal
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.pptVideoguy
 

Tendances (20)

Media Handling in FreeSWITCH
Media Handling in FreeSWITCHMedia Handling in FreeSWITCH
Media Handling in FreeSWITCH
 
Last videoppt
Last videopptLast videoppt
Last videoppt
 
Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second Life
 
Audio and Video streaming.ppt
Audio and Video streaming.pptAudio and Video streaming.ppt
Audio and Video streaming.ppt
 
Slides for Week 4 - Lec 2
Slides for Week 4 - Lec 2Slides for Week 4 - Lec 2
Slides for Week 4 - Lec 2
 
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
 
Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113
 
Video Streaming Ali Saman Tosun
Video Streaming Ali Saman TosunVideo Streaming Ali Saman Tosun
Video Streaming Ali Saman Tosun
 
Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment
 
Slide
SlideSlide
Slide
 
vPoint HD briefing.ppt
vPoint HD briefing.pptvPoint HD briefing.ppt
vPoint HD briefing.ppt
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader Audience
 
Instant video streaming
Instant video streamingInstant video streaming
Instant video streaming
 
Streaming Stored Video- Computer Networking
Streaming Stored Video- Computer Networking  Streaming Stored Video- Computer Networking
Streaming Stored Video- Computer Networking
 
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
WebRTC
WebRTCWebRTC
WebRTC
 
z/OS Communications Server: z/OS Resolver
z/OS Communications Server: z/OS Resolverz/OS Communications Server: z/OS Resolver
z/OS Communications Server: z/OS Resolver
 
Protocol For Streaming Media
Protocol For Streaming MediaProtocol For Streaming Media
Protocol For Streaming Media
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.ppt
 

Similaire à Matthew Kaufman Future Of Communication With Rtmfp Final Revised

Video Streaming
Video StreamingVideo Streaming
Video StreamingVideoguy
 
RTMFP Overview for IETF77
RTMFP Overview for IETF77RTMFP Overview for IETF77
RTMFP Overview for IETF77stoem
 
Video Streaming: Broadcast quality on a shoe string budget.
Video Streaming: Broadcast quality on a shoe string budget.  Video Streaming: Broadcast quality on a shoe string budget.
Video Streaming: Broadcast quality on a shoe string budget. netc2012
 
WebRTC: Mostly Video Bits
WebRTC: Mostly Video BitsWebRTC: Mostly Video Bits
WebRTC: Mostly Video BitsSeanDuBois3
 
Packet-to-Packet Applications
Packet-to-Packet ApplicationsPacket-to-Packet Applications
Packet-to-Packet ApplicationsVideoguy
 
Sara and jacqui's steaming video project
Sara and jacqui's steaming video projectSara and jacqui's steaming video project
Sara and jacqui's steaming video projectsaralorenz17
 
XMPP, HTTP and UPnP
XMPP, HTTP and UPnPXMPP, HTTP and UPnP
XMPP, HTTP and UPnPITVoyagers
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN FrameworkAPNIC
 

Similaire à Matthew Kaufman Future Of Communication With Rtmfp Final Revised (20)

Video Streaming
Video StreamingVideo Streaming
Video Streaming
 
Rtsp
RtspRtsp
Rtsp
 
Internet TV
Internet TVInternet TV
Internet TV
 
RTMFP Overview for IETF77
RTMFP Overview for IETF77RTMFP Overview for IETF77
RTMFP Overview for IETF77
 
Internet Video
Internet VideoInternet Video
Internet Video
 
What is rtmp
What is rtmpWhat is rtmp
What is rtmp
 
Sip 03 C
Sip 03 CSip 03 C
Sip 03 C
 
Sip 03 C
Sip 03 CSip 03 C
Sip 03 C
 
Sip 03 C
Sip 03 CSip 03 C
Sip 03 C
 
Video Streaming: Broadcast quality on a shoe string budget.
Video Streaming: Broadcast quality on a shoe string budget.  Video Streaming: Broadcast quality on a shoe string budget.
Video Streaming: Broadcast quality on a shoe string budget.
 
WebRTC: Mostly Video Bits
WebRTC: Mostly Video BitsWebRTC: Mostly Video Bits
WebRTC: Mostly Video Bits
 
Packet-to-Packet Applications
Packet-to-Packet ApplicationsPacket-to-Packet Applications
Packet-to-Packet Applications
 
Surf Communication Solutions - Packet To Packet Apps
Surf Communication Solutions - Packet To Packet AppsSurf Communication Solutions - Packet To Packet Apps
Surf Communication Solutions - Packet To Packet Apps
 
Sara and jacqui's steaming video project
Sara and jacqui's steaming video projectSara and jacqui's steaming video project
Sara and jacqui's steaming video project
 
Demuxed 2020
Demuxed 2020Demuxed 2020
Demuxed 2020
 
XMPP, HTTP and UPnP
XMPP, HTTP and UPnPXMPP, HTTP and UPnP
XMPP, HTTP and UPnP
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
Sip 03
Sip 03Sip 03
Sip 03
 
Sip 03
Sip 03Sip 03
Sip 03
 
Sip 03
Sip 03Sip 03
Sip 03
 

Dernier

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Dernier (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Matthew Kaufman Future Of Communication With Rtmfp Final Revised

  • 1. Future of Communication with RTMFP Matthew Kaufman 17 November 2008 ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 2. Introduction  Who  Matthew Kaufman  Background: software + Internet  Joined Adobe in 2006 from amicima  What  RTMFP  Secure Real-Time Media Flow Protocol ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 3. Background: RTMP  How the Flash Player talks to Flash Media Server  TCP/IP  NetConnection / NetStream classes  Audio, Video, Shared Objects, Call, Send  Flash Media Server streams or relays media, runs server-side applications  Streaming of pre-recorded content  Audio/Video playback (with seeking) Flash  Real-time Communication Media Server  Audio/Video communication  Microphone / Camera classes  One-to-many or one-to-one Flash Flash Player Player ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 4. Background: RTMP flavors  RTMP  TCP (typically on port 1935)  RTMPT  “Tunneled”  Encapsulated in HTTP requests  RTMPS  RTMPT-over-HTTPS  SSL for security  RTMPE  RTMP plus lighter-weight encryption for stream protection  RTMPTE  RTMPE-over-HTTP ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 5. Background: RTMP Limitations  Based on TCP  Reliable (lossless) in-order stream of bytes  Retransmission when there is loss (and delivery is held)  Unavoidable latency  Allows for (relatively) simple RTMP protocol stack above TCP layer  Client-Server only  TCP and direct peer-to-peer connections not compatible with NAT  Other interesting things also impossible ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 6. RTMFP: Introduction  Based on UDP  Allows direct access to what is received and transmitted at the packet level  Compatible with NAT and Firewall devices  Sophisticated network protocol stack on top of UDP  Rapid session establishment (2 RTT)  anti-DOS and anti-port-scanning protection, client-side load balancing  Multiple parallel media flows of messages  Prioritized  Variable reliability (full TCP-like, partial, none) controls retransmission  In-order or as-received delivery at receiver  TCP-friendly congestion control with variable congestion response (backoff)  Congestion avoidance by 3rd-party sessions  Integrated NAT traversal for peer-to-peer applications (“parallel-open” capability)  IP address mobility (session stays up if address changes)  Fast recovery from brief outages ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 7. RTMFP: Security  RTMFP is secured at the protocol level  Security “plugs in” to the protocol stack implementation, Flash Media uses a specific plug-in  Every packet encrypted with block cipher  AES-128 for Flash Media  New block cipher key negotiated in first two round trips  Diffie-Hellman key exchange (static-static or ephemeral-static keys) for Flash Media  SSL-like authentication (e.g., RSA signing) is supported at connection establishment  Not used for Flash Media at this time  Secure nonce exchange  Values chosen by each party, protected against MITM tampering  Saves round trips when implementing upper-layer security (authentication, continuity)  Developers have access at ActionScript level  Secure peer IDs (infeasible to guess or forge), nearNonce and farNonce properties ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 8. Using RTMFP with FMS  Minimal changes for developer  Substitute “rtmfp://” for “rtmp://” when connecting to FMS  Use Flash Player 10.0 or later, AIR 1.5 or later with a (future) RTMFP-capable FMS  Everything works the same except:  Live (unbuffered) Speex audio will be sent with partial reliability for lower latency  Plus all other advantages of RTMFP  Encryption  Mobility Flash  etc. Media Server Flash Flash Player Player ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 9. RTMFP and Firewalls  RTMP and RTMPE requires TCP port 1935  RTMPT and RTMPTE uses TCP port 80 (HTTP)  RTMPS uses TCP port 443 (HTTPS)  RTMFP is more complicated  UDP port 1935 to establish connection  Multiple high UDP ports (one per FMS application core)  Does have NAT/Firewall traversal (additional ports used will be initiated from inside)  Can use an IT-provided TURN proxy (manually configured)  RTMFP has no tunneled counterpart, must fall back to RTMP ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 10. Demo: RTMFP and FMS Demo ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 11. RTMFP: Direct Peer-to-Peer Communication  Two use cases for real-time communication  One-to-many  One-to-one  Both have scaling issues for popular services  Direct peer-to-peer communication addresses the one-to-one case  Or one-to-few  Media bypasses FMS and travels directly between Flash Players / AIR  Uses RTMFP’s NAT/Firewall traversal capability and FMS to “introduce”  Lower latency  (Almost) No media load on server  Better scalability  Server still available to relay if firewall blocks or RTMFP connection cannot be made ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 12. RTMFP: Direct P2P Communication – How it works  Flash Media Server introduces peers  ActionScript API talks only about Peer IDs, never IP addresses  FMS gives the originating peer one or more IP addresses for destination  FMS tells destination peer that originating peer is attempting contact  NAT traversal  Destination peer can respond as result of originator’s packet(s) or FMS message  “UDP hole punching” Flash Media Server  IP mobility helps establish in certain NAT configurations, maintain if NAT mapping changes  Not all NAT-NAT combinations work Flash Flash Player Player ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 13. Using RTMFP Direct Peer-to-Peer Communication  API Changes  Peer IDs  Available from the NetConnection and Client objects  Must exchange via FMS or other means (web service, XMPP, etc.)  Slight modification to publishing and subscribing API  To publish nc = new NetConnection(); nc.connect(“rtmfp://my.fms/application”); ns = new NetStream(nc, NetStream.DIRECT_CONNECTIONS); ns.publish(“streamName”);  To play nc = new NetConnection(); nc.connect(“rtmfp://my.fms/application”); ns = new NetStream(nc, <peerID of publishing peer>); ns.play(“streamName”); ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 14. Demo: RTMFP Direct Communication Demo ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 15. Using RTMFP: NetConnection API  NetConnection  farID  farNonce  maxPeerConnections  nearID  nearNonce  Protocol  unconnectedPeerStreams array ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 16. Using RTMFP: NetStream API  NetStream  New constructor (NetStream.DIRECT_CONNECTIONS or peerID as second argument)  farID  farNonce  nearNonce  peerStreams array  onPeerConnect() ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 17. Adobe Stratus  Stratus is a (Beta) hosted rendezvous service for RTMFP  For any 1:1 or 1:few audio/video application that does not require FMS  No recording  No FMS application logic  No FMS shared objects  Requires external web service to exchange Peer IDs  To use Stratus  Open NetConnection to Stratus Stratus rtmfp://stratus.adobe.com/<dev-key>/<app-name>  Exchange Peer IDs  Open direct peer-to-peer NetStreams  More info on labs.adobe.com Flash Flash Player Player ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 18. Future Possibilities  Flash Player 10.0 and AIR 1.5 are just the first step  RTMFP protocol stack as foundation  Use peer-to-peer technology for the one-to-many cases  “Groups”  A dynamic, self-organizing overlay network of RTMFP peers  Full transitive connectivity with only O(log n) sessions between peers  Described by a “Groupspec”  Application-Level Multicast  Send a stream to all members of a group (multiple senders supported)  Use Groupspec (instead of peerID) when constructing a NetStream  Posting  Directed routing ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 19. End Don’t miss the Sneak Peeks ® Copyright 2008 Adobe Systems Incorporated. All rights reserved.