0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在架构尺度上的部分技术经验与积累分享

LiveVideoStack 来源:YXQ 2019-08-14 17:08 次阅读

分布式无级联的RTC架构

首先,为大家介绍分布式无级联的RTC架构。对于RTC的架构,在WebRTC中的定义是一个Peer到Peer的通信。其中并没有直接给出一个明确的标准来告诉你如何去做信令服务、媒体服务等。那么,一个最简单的分布式媒体服务是什么样的呢?

一般的基本模式是,A用户和B用户首先通过一个信令服务,信令服务为A和B分别分配媒体服务,然后帮助它们之间建立一个联系。对于这种简单分布式但并不支持级联的RTC架构,它的优点是每一个媒体服务本身都不需要和其它的媒体服务建立连接,并且不会进行网络优化。但是,它最大的问题就是当我们给A客户端分配一个媒体服务后,B客户端也是需要连接同一媒体服务的。假如我们先给A客户端就近分配一个媒体服务,此时A客户端和媒体服务之间连接的质量是非常好的,但是如果A客户端和B客户端不在同一地区,B客户端也许距离这个媒体服务非常远,中间的网络就可能会非常不稳定,此时A客户端和B客户端通过这个媒体服务建立的通信就是存在问题的。因此,这种模式只适用小规模范围的通信,如城域或者是公司内部的私网。

下面将介绍有级联的RTC架构是如何实现的。

分布式有级联的RTC架构

有级联的RTC架构则要求A客户端和B客户端分别找到不同的媒体服务来进行通信,媒体服务之间也要做级联的通信,这样就能解决上述无级联RTC架构存在的问题。如上图所示,我们可以先为左边的Client找到一个对它来讲质量最好的媒体服务,然后再为右边的Client找到一个质量最好的媒体服务,两个媒体服务之间还要再通过一些网络优化的手段来保证它们的通信质量。上图系统中的蓝色部分叫做Signal Server,Client可以通过Signal Server和Media Server进行SDP交换。

分布式有级联的RTC架构可以实现链路的优化,但同时我们也不难发现,Signal Server和Media Server之间存在的耦合问题。这是因为所有的Media Server都需要在Signal Server中进行注册登记以进行管理,并且Signal Server还要和Media Server之间保持一个健康状态的检查,比如做一个TCP的长连接、做一个心跳包。此外,Signal Server不仅需要知道Media Server里有哪些用户正在使用流媒体通信,还需要知道它的用户状态。一方面,对于紧的耦合,当部署一个新的媒体服务时,就会需要很复杂的工程实施,因为在很多地方均要Update配置。另一方面,如果在通话过程中发现媒体服务或者信令服务之间存在一些异常状态,则会导致整个通话断掉,因为他们两个之间的耦合非常紧密。到目前为止,大家能够在市面上看到的开源解决方案基本上都是按这个模式去设计的。在电信运营商领域,Signal Server最典型的就是用SIP协议来实现的,包括我们之前做飞信也是用的一个SIP的简化协议SIPC。还有一种方案就是,可以搭一个XMPP的服务器,用它来实现Presence管理,所谓的Presence管理与SIP一样,就是用一条IM通道来做Signal Server。

在这一部分,我们分析了分布式有级联RTC架构的优点和缺点。接下来,我们一起来看看融云对分布式RTC网络的思考。

四、融云对分布式RTC网络的思考

如上所述,由于信令服务器和媒体服务是有耦合的,我们上线或下线任何一个媒体服务器均要在Signal Server里Update相关状态和配置。因此,我们的第一个诉求就是要设计一种将信令服务和媒体服务解耦开来的架构;第二个诉求就是要使得我们的信令服务和媒体服务之间能不管对方的状态如何,让它们不需要状态同步;第三个诉求就是让每一个媒体中心都是独立的;第四个诉求就是要降低新建与维护媒体中心的成本,因为通信云服务有数以千计或万计的机器和节点要管理;最后一个诉求就是要全面复用融云即时通讯通道。

上图是融云的分布式RTC网络架构,我们将Signal Server换成了融云的IM基础设施。简单来说,IM是用来发消息的,它实际上就是把一段数据通过一个长连接的、永远在线的通道从一端推送到另外一端,而且该服务要保证这条通道永远是可用的,同时发的每一个信令、指令都不能丢失,并且要以最快的速度到达。总的来说,这就是Signal Server的使命。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5700

    浏览量

    134368
  • RTC
    RTC
    +关注

    关注

    2

    文章

    484

    浏览量

    65436
  • 去中心化
    +关注

    关注

    0

    文章

    69

    浏览量

    8882

原文标题:去中心化的 RTC 通信平台架构设计

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    2017年VR进入技术积累

    时间。纵观以往新兴行业的发展经验不难发现,产业发展至一定程度时均会出现某个拐点,这个拐点也是一个洗牌期。也就是说,接下来的时间 VR 进入了技术积累期。
    发表于 02-16 18:53 910次阅读

    经验积累

    :“师傅领进门,修行靠自己”,要做好还得靠自己,名师固然重要,但每个人的发展还是要靠自己去修行。labview编程从入行到灵活应用是一个经验积累过程,这个经验积累过程一过,谁都会很轻
    发表于 04-05 16:48

    尺度变换

    请问labview中如何实现信号的尺度变换啊
    发表于 05-05 15:47

    招嵌入式架构讲师

    招嵌入式架构讲师短周期的培训,如您想挣点外块,积累资源,充实生活,请联系我。多年的集成电路设计与开发经验,并作为主要研发者拥有多次成功流片经验精通自动控制理论、嵌入式软件和硬件产品
    发表于 11-15 10:49

    13年华为工程师分享:持续积累经验才能做好硬件技术

    的IPD开发流程经验和项目管理经验,深厚的大硬件领域的DFX设计积累。离开华为后,IoT技术行业担任5年多的
    发表于 12-17 16:01

    关于labview中使用连续小波变换后接强度图得到时间-尺度图,如何将尺度转换为频率

    labview中使用连续小波变换得到时间-尺度图,如何将尺度转换为频率?我在网上查了一下,说是尺度对应的实际频率Fa=(Fc×fs)/a,其中Fa为实际频率,Fc为小波中心频率,fs
    发表于 05-12 17:39

    分享电源工作中积累的一些实用经验

    将为大家分享自己十年研发电源工作中,积累的一些实用经验,希望对大家有所帮助。1. 变压器图纸、PCB、原理图这三者的变压器飞线位号需一致,这是安规认证要求。很多工程师申请安规认证提
    发表于 12-30 07:42

    基于Kalman滤波的多尺度融合估计新算法

    将信号的多尺度分析方法与多传感器数据融合技术相结合,基于某一尺度上给定的状态模型和在不同尺度上拥有不同采样率的多传感器分布式动态系统,提出了一种新的基于Kalman 滤波
    发表于 06-22 13:15 21次下载

    基于多尺度几何分析的复杂网络压缩策略

    自然界许多系统都具有多尺度效应,人们对系统的观察或测量也往往是在不同尺度上进行的。复杂网络可视为描述复杂系统的抽象模型,多尺度几何分析提供一种有效刻画复杂系统
    发表于 11-19 15:55 5次下载

    电路板绘制经验积累

    电路板绘制经验积累
    发表于 02-07 15:53 0次下载

    基于多尺度HOG的草图检索

    草图检索是图像处理领域中的重要研究内容。提出了一种将高斯金字塔和局部HOG特征融合的特征提取改进方法,并将其用于草图检索。采用高斯金字塔将图像分解到多尺度空间,在所有尺度上进行兴趣点提取,获得
    发表于 12-04 09:56 0次下载

    基于多尺度残差网络的边缘检测技术

    面向对象的边缘检测技术是智能视觉处理领堿的关键基础技术,然而目前基于卷积神经网络的边缘检测结果存在分辨率低、噪声较多等问题。因此,文中提出了一种基于多尺度残差网络的对象级边缘检测算法。首先
    发表于 05-29 14:27 2次下载

    欧拉(openEuler)开发者峰会:SUSE积累操作系统研发与开源经验

    欧拉(openEuler)开发者峰会:SUSE积累操作系统研发与开源经验,贡献openEuler社区。
    的头像 发表于 11-09 11:41 1732次阅读
    欧拉(openEuler)开发者峰会:SUSE<b class='flag-5'>积累</b>操作系统研发与开源<b class='flag-5'>经验</b>

    通过多尺度说话人分解实现动态尺度加权

    在本文中,我们讨论了如何通过引入一种称为多尺度方法和多尺度二值化解码器( MSDD )的新技术来处理多尺度输入来解决这个问题。
    的头像 发表于 10-11 11:46 894次阅读
    通过多<b class='flag-5'>尺度</b>说话人分解实现动态<b class='flag-5'>尺度</b>加权

    在微米尺度上引导分子运动

    在微米尺度上引导分子运动(molecular movement)有可能将光转化为可持续能源(sustainable energy)。
    的头像 发表于 01-11 10:49 416次阅读