硬核讲解:编译webrtc协议为什么需要turn服务器?

Posted 风风风啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬核讲解:编译webrtc协议为什么需要turn服务器?相关的知识,希望对你有一定的参考价值。

大家知道我们的WebRTC开发已经到达一个新的阶段了,目前EasyGBS国标视频云服务内已经支持WebRTC协议视频流的输出了,欢迎大家体验。

搭建webrtc不得不提的就是turn服务器了,在webrtc中,每当两个设备之间无法直接连接时,就需要一个turn服务器来进行中转,同时,在点对点的服务中,也需要安装并运行turn服务器。

但是如果将设备连接到媒体服务器(无论是用于群呼的SFU还是其他类型的服务器),仍然需要一个turn服务器,这又是为什么?实际上,这主要是因为某些防火墙会阻止某些类型的流量。大多数只会阻止UDP,但是有些甚至可能会阻止TCP,这样webrtc就不会建立通信连接。

turn服务器是webrtc基础设施的重要组成部分,因为它们有助于NAT网络穿透。

有一种称为ICE-TCP的机制,可以在webrtc中使用,本质上,它使媒体服务器能够使用TCP传输在sdp中提供ICE候选。这使着媒体服务器将在TCP端口上主动等待来自设备的传入连接。它是Chrome的一项功能,但是现在已在所有支持webrtc的网络浏览器中都可使用。这样是不是TURN/TCP变的不必要呢?这样显然不是,但我们仍然需要TURN/TLS服务。

原因是:先尝试直接UDP到服务器,然后直接ICE-TCP到服务器,最后才TURN/TLS服务器。如果最后TURN/TLS没有连接上,这样就说明webrtc设备与设备直接连接失败。如果使用的是本地网络连接,这意味着在这种情况下不需要使用TURN服务器在进行中继。

如果大家对我们的webrtc编译感兴趣,欢迎持续关注我们的更新。

关键词:站长资讯中心站长资讯站长新闻

以上是关于硬核讲解:编译webrtc协议为什么需要turn服务器?的主要内容,如果未能解决你的问题,请参考以下文章

使用WebRTC搭建turn服务编译报错openssl路径找不到问题排查

Webrtc、websockets、Stun/turn 服务器,一起工作?

WebRTC 协议介绍--一篇读懂ICESTUN NAT TURN

WebRTC 协议介绍--一篇读懂ICESTUN NAT TURN

Twilio WebRTC TURN 中继在几分钟后随机停止工作

WebRTC - 我需要指定多少 STUN/TURN 服务器?