STUN 是 TURN 的基础协议: TURN 协议在功能上扩展了 STUN,重用 STUN 消息结构来管理中继会话(如分配中继地址、发送/接收数据)。 TURN 的连接建立(如Allocate Request)完全依赖 STUN 消息格式。 码流中的互补关系: STUN 消息:初始阶段,用于 NAT 穿越尝试和地址发现。 TURN 消息:如果 STUN 穿越失败,则由 TURN 建...
stun 在大多数情况是可用的,但是在对称NAT模式下则无法联通,因此必须采用转发中继的方式进行网络通信,此时就需要使用 turn 服务。在我们的视频平台中,我们也搭建了一个 turn 服务。 因为采用的是转发的模式,因此最终返回的是 turn 服务的地址和端口。从上图可以看出,动态分配的公网地址为 212.64.34.165,端口为 5122。
简单的说,TURN与STURN的共同点都是通过修改应用层中的私网地址达到NAT穿透的效果,异同点是TURN是通过两方通讯的“中间人”方式实现穿透。 1 STUN 了解STUN之前,我们需要了解NAT的种类。 NAT对待UDP的实现方式有4种,分别如下: 1. Full Cone NAT 完全锥形NAT,所有从同一个内网IP和端口号发送过来的请求都会被映射...
如何基于coturn项目搭建stun服务器? webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器很多时候无法建立p2p连接,只能通过公网上的中继服务器(也就是所谓的turn服务器)中转。 Relay...
集成STUN 和 TURN 服务器是构建 WebRTC 应用程序的关键步骤。虽然 STUN 服务器相对简单,但 TURN 服务器由于相关成本而需要更多考虑。 对于大多数用例,托管 TURN 服务是一种方便且经济高效的解决方案,具有易于集成、可扩展性和面向未来性的特点。但是,对于具有特定监管、扩展或网络控制要求的组织来说,自托管 TURN 服...
STUN和TURN协议的基本原理是为了穿透NAT,使NAT下的设备能够正常通信。 STUN协议 STUN协议主要用于解析NAT翻译表并检测NAT类型。在进行网络通信时,通常无法直接通过NAT从外界访问内网设备,因此需要使用STUN协议让内网的设备主动向外注册自己的公网IP和端口号,从而使外网能够通过这些信息访问到私有网络中的设备。STUN的流程...
因为TURN是STUN的扩展,所以TURN服务器可以当作STUN服务器来用。 在软件配置上没有区别。 在硬件配置上,stun服务器需要1台服务器上有2个公网IP,turn服务器只需要有1个公网IP。 所以,如果你想: 只配置stun服务器:按照本文步骤来,还需要有1台用2个公网IP的服务器。
完成了这些STUN Server就会这些基本信息发送回客户端,然后根据NAT类型,来判断是否需要TURN服务器协调进行下一步工作。 我们来讲讲这两步具体做了什么吧: 第一件事就不用说了,其实就是得到客户端的请求,把源IP和Port拿到,添加到ICE Candidate中。 来讲讲第二件事,STUN是如何判断NAT的类型的: ...
这样,锥型NAT之间的NAT穿透就完成了。但是对于对称型NAT,STUN服务器看到A的公网IP:Port和B看到A的公网IP:Port则是不一致的了,A把STUN服务器返回的IP:Port分享给B,但B却无法使用这个IP:Port来访问A。对于对称型NAT,则会使用下文提到的TURN协议。 TURN...