webrtc在服务器端通信协议,什么是WebRTC,以及如何为WebRTC通信设置STUN / TURN服务器?...

f1d8da0970e48a623eb89c15e1b92b66.png

在本文中,让我们详细了解如何为WebRTC通信设置STUN / TURN服务器。在深入探讨它之前,让我们详细讨论什么是WebRTC,STUN,TURN,以及它们如何相互链接。

什么是WebRTC?

WebRTC(Web实时通信)是一项技术,允许Web浏览器流式传输音频或视频媒体,以及在不需要中介的情况下在浏览器,移动平台和IoT设备之间交换随机数据。

WebRTC允许Web应用程序运行以下功能:

视频会议

文件共享

屏幕共享

广播等

在实时通信中,必须在Internet上部署视频网关,因此任何用户都必须通过RTP(实时传输协议)端口连接并发送媒体片段,而不会出现特定问题。

555d7351be7c1736d5cf67b6209961a8.png

c42aadafec7402fb564efb8879d77a92.png

但是有时这还不够,因为有些用户可能会因为不同的IP网络而面临连接问题,其中防火墙和NAT(网络地址转换器)可能包含不允许RTC通信的特定网络策略。

为了解决这种网络连接情况,我们需要使用ICE(交互式连接建立)协议,它定义了一种系统的方式来查找对等方和视频网关(WebRTC)之间的可能的通信选项。

ICE(交互式连接建立)是用于生成可在WebRTC应用程序中使用的媒体遍历候选者的协议,并且可以使用STUN和TURN通过网络地址转换(NAT)成功发送和接收它。

什么是STUN?

STUN(用于NAT的会话遍历实用程序)通过UDP协议通过NAT对ICE进行补充。STUN允许应用程序发现它们之间以及公共Internet上NAT和防火墙的存在和类型。任何设备都可以使用它来确定NAT分配给它的IP地址和端口。

ecf4f2405d981d1d941a237aed29fcbc.png

7320fef828f99771367d04a0061eef7d.png

通常,STUN客户端可以将消息发送到STUN服务器以获得公共IP和端口信息,然后STUN服务器检索该信息。使用此公共IP和端口信息,客户端将通过Internet进行对等通信。

什么是TURN?

TURN(使用围绕NAT的中继进行遍历)是一种协议,可帮助遍历网络地址转换器(NAT)或webRTC应用程序的防火墙。TURN服务器允许客户端通过中间服务器发送和接收数据。TURN协议是STUN的扩展。

在某些情况下,客户端通信终结点卡在不同类型的NAT后面,或者在使用对称NAT时,通过中继服务器及其称为TURN服务器发送媒体可能会更容易。

a9845f397905fc53e842a50517d5f4d9.png

27ef35ac165d8e24af644ed350519884.png

通常,TURN客户端首先将消息发送到TURN服务器,以在TURN服务器上分配IP地址和端口。分配成功后,客户端将使用IP地址和端口号与对等方进行通信。TURN数据包包含对等方的目标地址,然后将这些数据包转换为UDP协议数据包并将其发送给对等方。

TURN对于对称NAT设备伪装的网络上的Web,移动和IoT客户端最有用。但是在建立更多客户端连接的情况下,由于服务器利用率和巨大的带宽利用率,TURN服务器成本很高。

使用Coturn设置STUN / TURN服务器

在这里,您可以找到以下步骤来安装和配置Coturn服务器。

步骤1:开放端口的防火墙规则:

首先,请确保在防火墙或云安全组中打开以下端口。

3478 TCP & UDP

49152–65535 UDP

步骤2:Coturn安装

Coturn可以直接从Ubuntu软件包存储库中安装,因此请使用以下命令进行安装。

$ sudo apt-get update

$ sudo apt-get install coturn

步骤3:在启动时启动Coturn守护程序

要使其在系统引导时自动启动,请修改/ etc / default / coturn文件。

sudo nano /etc/default/coturn

查找以下行,并通过删除#取消注释以将Coturn作为自动系统服务守护程序运行。

#TURNSERVER_ENABLED=1

保存并关闭文件。然后您可以通过运行启动Coturn服务

$ systemctl start coturn

步骤4:创建TURN用户,然后单击下一步,编辑主配置文件。

然后打开或创建/etc/turnserver.conf文件并粘贴以下内容。将,和值替换为您各自的值。

fingerprint

user=:

lt-cred-mech

realm=kurento.org

log-file=/var/log/turnserver/turnserver.log

simple-log

external-ip=

在这里,您可以找到以下我自己的示例详细信息示例,以供参考。

fingerprint

user=kavirajan:123456

lt-cred-mech

realm=flickin.io

log-file=/var/log/turnserver/turnserver.log

simple-log

external-ip=98.112.65.70

步骤5:重新启动Coturn服务

您可以使用以下命令重新启动服务。

$ sudo service coturn restart

步骤6:测试时间

转到Trickle ICE页面,然后输入您自己的TURN服务器详细信息。

STUN or TURN URI: turn::3478

TURN username:

TURN password:

然后单击添加服务器,然后单击“收集候选者”按钮。如果正确配置了所有内容,则最终结果应为“完成”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值