什么是 STUN/TURN 服务器?

现实世界连接中的 WebRTC 通信需要处理多方呼叫并与 STUN 和 TURN 服务器交互。


我们的视频网关 (WebRTC)平台通过传输所有音频/视频/数据流,为所有客户提供先进的视频实时通信解决方案。通常,视频网关必须部署在公共互联网上,因此任何用户都必须通过 RTP(实时传输协议)端口连接和发送媒体片段,而不会出现特定的网络问题。

STUN/TURN 服务器

为什么需要 STUN/TURN 服务器?

然而,有时这还不够。一些用户尝试通过不同的 IP 网络进行连接,其中防火墙和 NAT(网络地址转换器)可能包含不允许任何类型的RTC通信的特定策略。ICE(交互式连接建立)协议用于寻找最佳连接解决方​​案。它定义了一种在对等点和视频网关 (WebRTC)之间寻找可能的通信选项的系统方法。

什么是 STUN 服务器?

有时,您可以使用一种称为STUN(NAT 会话遍历实用程序)的协议,该协议允许客户端发现他们的公共 IP 地址和他们背后的 NAT 类型。此信息用于建立媒体连接。在大多数情况下,STUN 服务器仅在连接设置期间使用,一旦建立该会话,媒体将直接在对等方和视频网关 (WebRTC) 之间流动。

什么是 TURN 服务器?

然而,即使我们正确设置了 STUN 服务器,也有非常严格的公司网络(例如:UDP 流量被禁止,只允许 443 TCP ......),这将要求客户端使用 TURN(使用中继遍历 NAT)服务器来中继流量如果直接(与视频网关对等)连接失败。在这些情况下,您可以安装我们的TURN 服务器(在另一个实例中)来解决这些问题。

TURN 服务器非常容易为您的所有RTC开发添加,包括它作为视频网关 (WebRTC)连接阵列中的另一个 ICE 服务器,如下所示:

var endPoints = [
    "https://example.com:HTTPS_PORT/webrtc-gateway"
];
var iceServers = [
    {
        url: "stun:server:port"
    },
    {
        url: "turn:server", 
        username: "myuser", 
        credential: "******"
    }
];
var myVideoApp = new VideoRTC(endPoints, iceServers, debugLevel);

如果您在下方有任何问题或意见,或者只是想炫耀您使用我们的视频 RTC解决方案构建了哪些很棒的东西,请随时与我们联系。

什么是 STUN/TURN 服务器?
标签: