2012-10-16 151 views
3

我正在尝试开发一个使用flash和rtmfp协议的实时视频聊天应用程序,但我怀疑 rtmfp如何保证连接对等点,尤其是当对等点位于不同网络中时。rtmfp/UDP的工作原理

+1

RTMFP和Skype *打孔*在防火墙:http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html –

回答

7

RTMFP依赖中央聚集服务器上的“引入” 2个客户端位于不同的网络和潜在的背后防火墙。要通过防火墙导航它使用NAT traversal techniques基本上相当于:

  • 2客户端(乔和玛丽)连接到中央会合服务器
    • Adob​​e的公共RTMFP(非商业)会合服务器RTMFP:// p2p.rtmfp.net/
    • 或者你可以使用GPL开源的CumulusArcusNode举办自己的
  • 乔分享了他对ID与玛丽或者他们可以使用一个共享的NetGroup ID
  • 玛丽与随后使用各种NAT和防火墙穿越技术来建立一个对等体2等的UDP连接

中央会合服务器通信没有保证任何2个客户端网络/防火墙是兼容对于RTMFP P2P连接(你可以用RTMFP connection tester诊断),这就是为什么的Adobe通过他们LiveCycle Collaboration ServiceAdobe Flash Media Server提供后备解决方案,如果直接P2P中央中继服务(基本上所有网络通信将通过这两个客户端可以公开访问服务器)连接无法建立。

Adob​​e的RTMFP是他们的同行2等网络rendevous服务的专有捆绑,以及提供其他一些高层次的P2P网络网功能。

如果你有兴趣在一个更开放的标准P2P协议你应该看看WebRTC。基本上WebRTC与允许客户端通过UDP连接P2P相同的概念,但适合作为Web浏览器标准采用,也可以在各种本地设备(例如Android,iPhone等)上实现,它使用标准NAT并使用STUNICETURNRTP-over-TCP和代理支持防火墙穿越技术。我相信WebRTC是在libjingle P2P Google Talk库中完成的一些工作的标准化。