Real Time Media Flow Protocol

Real Time Media Flow Protocol (RTMFP) は Adobe が開発しているプロトコル。RTMFP は低レイテンシの UDP ストリーミングや複数の Adobe Flash プレーヤー間の P2P 通信を可能にし、リッチなライブのリアルタイムコミュニケーションを可能にする。Flash Player 10.0 から利用可能。サーバー側は Adobe Media Server が対応。UDPポート番号1935および19350〜65535。

概要 
RTMFP を使うと、ソーシャルネットワークやマルチユーザーゲームなどの、ライブ・リアルタイムコミュニケーションを利用しているアプリケーションはより高品質なコミュニケーションを提供できる。RTMFP はエンドユーザー間を直接つなぎ、それぞれのコンピュータのマイクとカメラで直接通信ができる。

P2P の確立にはUDPホールパンチングを利用しており、ファイアウォールなどにより、UDPホールパンチングが失敗する場合は、P2P 通信は利用できない。

RTMP と RTMFPの違い
主な違いは、それぞれのプロトコルがどのネットワークを使うかにある。RTMFP は User Datagram Protocol (UDP) を利用するのに対して、RTMP は Transmission Control Protocol (TCP) を利用する。ライブストリーミングメディアを配信する際、レイテンシやオーバーヘッドを減らしたり、信頼性を犠牲にしてもパケット損失により大きな耐性があるなど、UDP を利用するプロトコルはTCP を利用するプロトコルに比べていくつかの利点がある。無線インターネット接続など、パケットロスの多い通信環境では、TCP を利用すると再送のためレイテンシが大きくなる。

UDP であるにもかかわらず、TCP のような信頼性のある通信にも Flash Player 10.1 から対応しており、クライアント側の flash.net.NetStream の dataReliable などで設定する。

サーバーからの UDP ユニキャストにも使えるが、RTMPとは異なり、RTMFP はデータをサーバーを経由せずに直接他の Adobe Flash プレーヤーに送ることもできる。ただし、最初の P2P コネクションを確立するために、サーバーサイドの接続は必要となる。

アプリケーションレベルマルチキャスト
Flash Player 10.0 までの P2P は機能としては、1対1の通信のみであったが、10.1 からアプリケーションレベルでマルチキャストが行えるようになった。Flash Player 側で適切な配信経路（オーバーレイ・ネットワーク）を見つけ出し、P2P でつながったグループ全体に配信できるようになった。

歴史
この技術は2006年の Amicima の買収に基づく。

関連項目
 Adobe Flash
 Real Time Messaging Protocol

外部リンク
Cirrus | Real Time Media Flow Protocol (RTMFP) - Adobe Labs
 Adobe Flash Media Server - ピアアシストネットワーキングアプリケーションの構築
 FAQ for Real-Time Media Flow Protocol - Adobe
 RTMFP in Flash Player 10 beta - Justin's Flash Blog
 Peer to Peer (P2P) in Flash Player 10 beta - Justin's Flash Blog
 Video tutorial - Basics of P2P in Flash/Flex - FlashRealtime.com
RTMFP for Flash
 OpenRTMFP Cumulus - RTMFP の P2P 接続を確立するためのオープン クロスプラットフォーム ランデブー サービス
 仕様など
 : Adobe's Secure Real-Time Media Flow Protocol
 : Adobe's RTMFP Profile for Flash Communication

Adobe Flash
インターネットのプロトコル
7016