TSINGSEE青犀视频编译webrtc协议为什么需要turn服务器?

Posted TSINGSEE

tags:

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

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

 

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

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

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

image.png

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

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

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

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

TSINGSEE青犀视频开发webrtc中SDP信息解析

TSINGSEE青犀视频开发WebRTC时通过哪些技术来创建WebRTC链接?

TSINGSEE青犀视频webrtc相关内容编译如何在c++端编码出H264?

TSINGSEE青犀视频编译Winsock2 websocket服务端连接异常断开问题排查

TSINGSEE青犀视频webrtc相关内容编译如何在c++端编码出H264?

TSINGSEE青犀视频开发Webrtc建立P2P的流程分享