rtmfp/UDP的工作原理

Gur*_*uru 3 p2p udp protocols flash-media-server rtmfp

我正在尝试使用flash和rtmfp协议开发一个实时视频聊天应用程序,但我怀疑rtmfp如何保证连接对等体,特别是当对等体位于不同的网络时.

Dou*_*kem 7

RTMFP依靠中央会合服务器来"引入"位于不同网络中并可能位于防火墙后面的2个客户端.要在防火墙中导航,它使用NAT遍历技术,基本上相当于:

  • 2个客户端(Joe和Mary)连接到中央集合服务器
    • Adobe的公共RTMFP(非商业)会合服务器rtmfp://p2p.rtmfp.net/
    • 或者您可以使用GPL Open Sourced CumulusArcusNode来托管您自己的
  • Joe与Mary共享他的对等ID,或者他们可以使用共享的NetGroup ID
  • Mary与中央会合服务器通信,然后使用各种NAT和防火墙遍历技术建立对等2对等UDP连接

无法保证任何2个客户端网络/防火墙与RTMFP P2P连接兼容(您可以使用RTMFP连接测试仪进行诊断),这就是Adobe通过其LiveCycle Collaboration ServiceAdobe Flash Media Server向中央中继服务提供后备解决方案的原因(如果无法建立直接P2P连接,基本上所有网络流量都将通过两个客户端都可以公开访问的服务器.

Adobe的RTMFP是他们专有的Peer 2 Peer网络联合服务捆绑服务,以及提供一些其他更高级别的P2P网络网格功能.

如果您对更开放的标准P2P协议感兴趣,您应该查看WebRTC.基本上,WebRTC是允许客户端通过UDP连接P2P但同样适合作为Web浏览器标准使用的概念,也可以在各种本机设备(例如Android,iPhone等)上实现,它使用标准NAT和防火墙遍历技术使用STUN,ICE,TURN,RTP-over-TCP和支持代理.我相信WebRTC是libjingle P2P Google Talk库中完成的一些工作的标准化.