Webrtc从理论到实践三:角色

系列文章目录

Webrtc从理论到实践一:初识
Webrtc从理论到实践二: 架构


一、一对一通信架构图

图1.1  webrtc 一对一通信架构图

图1.1 webrtc一对一通信架构图


二、通信角色介绍

在正式讲解之前,我想先对Webrc针对不同人数的多人通信常用的架构做一个简单的介绍,主要有以下三种架构:

  1. Mesh架构,每个端都与其他端互连,主要适用于五人以下的通信
  2. MCU(MultiPoint Control Unit)架构,每个浏览器只与中心的MCU服务器相连,MCU服务器负责所有的视频编解码,转码,混合等复杂逻辑,适用于50人以下且带宽有限的通信。
  3. SFU(Selective Forwarding Unit)模式,所有的客户端也是只与中心的服务器相连接,但是中心节点只负责转发,不做太复杂的处理,这样可以减轻中心服务器不小的压力。

我们这里主要讨论的是一对一的通信,所以采用P2P的架构比较合适.P2P连接的优势在于运营成本更低,没有流媒体服务器,最大的成本就是带宽,并且隐私性更好,服务提供商无权访问流媒体。但是它的缺点在于所需的上下行带宽和编解码时所需的CPU资源都过高,无法大规模扩展。

    从上图我们可以看到, 在架构图中主要存在四个角色:客户端1,中继服务器(STUN/TURN),信令服务器和客户端2。两个客户端在这里就不多做介绍了,主要介绍一下另外两个角色。

信令服务器

    首先说一下信令服务器,要实现Webrtc的一对一通信,信令服务器是最重要的一环。信令服务器的作用主要有三个:

  1. 具体业务信息的交换:如创建房间,加入房间,退出房间等;
  2. 网络相关信息交换:最常见的就是交换通信双方的IP和端口。
  3. 媒体相关信息交换:发送SDP描述信息,是否支持音频或者视频以及支持的编解码器信息。

中继服务器

    再来说一下中继服务器,中继服务器的主要目的就是为了实现P2P连接,这里的STUN 和TURN 分别代表了两种协议。
     这里说一下为什么要引入中继服务器才能实现P2P连接,这得从NAT的历史和原理说起。

NAT

    1993年提出的NAT(Network Address Translation,网络地址转换)技术是为了解决当时IPV4地址不足,而IPV6短期内还无法替换IPV4的问题,同时它还能够有效地避免来自外部网络的攻击。
     NAT的原理简单来讲,就是主机处于局域网中使用私有地址,当它想要与外部网络进行通信时,会将内部地址转换成公有地址,用这种方式,就可以只申请一个合法的IP地址就可以将一整个局域网的计算机接入互联网中,从而可以缓解共有IP地址紧缺的问题。举个例子:比如主机A在局域网中的地址是192.168.1.2 ,如果A想要与公网中的服务器B(地址是 202.20.65.4)通信,那么A发送的IP数据包在 经过网关的时候,就会把源IP地址改为一个对应的全局IP地址202.20.65.5,这样就可以完成通信。
NAT可以分为三种类型:
1.静态NAT,私有IP地址和公有IP地址是一对一不变的
2.动态NAT,通过共享NAT地址池来动态建立NAT映射关系。在内网主机需要进行NAT转换时需要从连接池中选择空闲的全局地址进行映射,每条映射记录时动态建立的,在连接时也会被收回。
3.网路地址端口转换,则是把内部地址映射到外部网络的一个IP地址不同端口上。这个是目前是用最普遍的一种方式,如果两台主机访问同一服务器的源端口不同时,在Track Table里加入端口信息区分既可,当两台主机访问同一台服务器的源端口正好相同时,则需要对源端口进行相应转换。下图可以清晰的表现出这种转换。 在这里插入图片描述<

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值