精华内容
下载资源
问答
  • cdn原理

    2011-09-13 11:24:36
    cdn原理
  • CDN原理

    2021-01-09 22:49:42
    CDN技术详解及实现原理:https://www.cnblogs.com/zousong/p/10925445.html CDN系统一般由分发服务系统,负载均衡系统和运营管理系统组成。 分发服务系统:最基本的工作单元就是Cache设备,cache(边缘cache)...

    CDN技术详解及实现原理:https://www.cnblogs.com/zousong/p/10925445.html

    CDN系统一般由分发服务系统,负载均衡系统和运营管理系统组成。

    • 分发服务系统最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用户。

      同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。

      Cache设备的数量、规模、总服务能力是衡 量一个CDN系统服务能力的最基本的指标

    • 负载均衡系统主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址

      两级调度体系分为全局负载均衡(GSLB)本地负载均衡(SLB)

      GSLB主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。一般通过DNS解析或者应用层重定向的方式实现。

      SLB主要负责节点内部的设备负载均衡

    • 运营管理系统:分为运营管理网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

    展开全文
  • CDN原理与使用

    千次阅读 2018-03-13 22:40:27
    一、概述 背景: 当下的互联网应用都包含大量的静态内容,但静态内容以及一些准动态内容又是最耗费带宽的,特别是针对全国甚至全世界的大型网站,如果这些请求都指向主站的... 简单的说CDN就是让原本上海的浏览...

    一、概述

    背景:

    当下的互联网应用都包含大量的静态内容,但静态内容以及一些准动态内容又是最耗费带宽的,特别是针对全国甚至全世界的大型网站,如果这些请求都指向主站的服务器的话,不仅是主站服务器受不了,单端口500M左右的带宽也扛不住,所以大多数网站都需要CDN服务。

    CDN,Content Delivery Network:基于内容的分布式分发网络。 简单的说CDN就是让原本上海的浏览器要访问北京主站内容的请求转而由部署在上海或南京的缓存来受理,这样请求的数据只需经过一跳或有限的几跳就能到达请求端,有效利用带宽并且降低主站压力,对于电子商务网站和搜索引擎网站以及门户网站,CDN的合理应用显得尤为重要。

    一般需要CDN服务的网站会选择以下的组织方案:

    1. 通过租用的IDC提供额外的CDN服务;
    2. 购买专业的CDN服务商的服务;
    3. 自己组建CDN网络;

    成本依次增高。

    CDN设计目的是实现WEB内容的负载均衡,防止出现访问请求热点,延时响应等WEB请求通病。基于此,CDN的特点可以说有:

    1. 分布式存储
    2. 通过智能 DNS解析http重定 向实现内容分发的负载均衡
    3. 全局负载均衡管理与内容管理

    二、原理

    2.1 网络结构

    CDN网络一般分为中心边缘节点两部分,中心负责全局负载均衡内容管理。中心节点的功能如下:

    • 随时监控边缘节点的健康状况(可用性,拥塞程度);
    • 根据边缘节点到请求端的距离,以及边缘节点的健康状况,按一定的策略重定向请求;
    • 与客户主站进行数据同步。

    负责为用户提供内容服务的cache设备应部署在物理上的网络边缘位置,即CDN边缘层。CDN系统中负责全局性管理和控制的设备组成中心层(二级缓存),中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站 回源。(如果是流媒体,代价很大)

    CDN**骨干点和CDN **POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point of presence)节点,CDN POP点主要作为直接向用户提供服务的节点。


    2.2 CDN的效果

    传统的未加缓存服务的访问过程:

    1. 用户向浏览器提供要访问的域名;
    2. 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
    3. 浏览器使用所得到的IP地址向的服务主机发出数据访问请求;
    4. 浏览器根据域名主机返回的数据显示网页的内容。

    CDN网络是在用户和服务器之间增加Cache层, 如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,访问使用CDN缓存后的网站的过程:

    1. 用户向浏览器提供要访问的域名。
    2. 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实 际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
    3. 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求。
    4. 缓存服务器根据浏览器提供的要访问的域名,通过Cache**内部专用DNS解析**得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求。
    5. 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程。

    2.3 A记录和CNAME记录

    (1)什么是域名解析?
    域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。

    (2)什么是A记录?
    A (Address) 记录是用来指定域名对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。

    A记录是IP解析,直接将域名指向某个IP,如果IP有所变动,那么A记录那边也必须更改。

    (3)什么是CNAME记录?
    别名记录。这种记录允许我们将多个域名映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就 http://www.mydomain.com/mail.mydomain.com。实际上他们都指向host.mydomain.com

    CNAME是别名解析,别名解析是先将域名解析到另一个域名再转跳到IP。

    (4)使用A记录和CNAME进行域名解析的区别
    A记录就是把一个域名解析到一个IP地址(Address,特制数字IP地址),而CNAME记录就是把域名解析到另外一个域名。其功能是差不多,CNAME将几个主机名指向一个别名,其实跟指向IP地址是一样的,因为这个别名也要做一个A记录的。但是使用CNAME记录可以很方便地变更IP地址。

    如果一台服务器有100个网站,使用A记录的情况下变更IP则需要修改100条A记录;如果使用CNAME,该台服务器变更IP时,只需要变更一条A记录就可以了。


    2.4 动态资源加速

    动态缓存一般是对链路进行缓存,用到动态路由和协议栈优化等,不是传统的静态加速,所谓的全站加速是指静态内容可以缓存,其它交互内容还是要回源。

    CDN给动态网站加速使用以下技术加速了动态资产的交付:

    1. 路由优化
    2. TCP优化

    路由优化是非常重要的,因为互联网是一个动态的网络,流量会不断地改变网络拓扑。边界网关协议(BGP)是Internet的路由协议,但通过中间点(PoP)服务器可能会有更快的路由。 路由优化选择到达原点的最佳路径,以便站点可以连续访问,动态内容通过尽可能最快,最可靠的路由传送给最终用户。


    三、使用CDN服务(阿里云)

    本文档将帮助你快速开始使用CDN服务,流程如下,请按步骤操作:
    这里写图片描述

    步骤 1:开通CDN服务

    1. 在阿里云官网CDN产品详情页快速了解产品,之后单击 立即开通。
    2. 在购买页面选择适合计费方式,确认订单,CDN服务即开通。接下来就能开始接入您要加速的域名了。

    步骤 2:添加加速域名

    1.登录 CDN控制台 ,选择域名管理,这个页面可以查看您添加的所有加速域名和状态。点击 添加域名
    这里写图片描述

    2.填写基本信息:输入加速域名(一般使用 子域名 或泛域名,例如 cdntest.example.com)、选择合适的业务类型、源站。点击下一步,等待审核(源站为阿里云ECS、OSS可免审核):

    这里写图片描述

    业务类型说明:

    阿里云CDN调度系统会根据用户选择的不同业务类型做针对性的调度优化:

    业务类型说明
    图片小文件若加速内容多为 小型的静态资源 (如小文件、图片、网页样式文件等),推荐选择“图片小文件”业务类型。
    大文件下载若加速内容为 较大的文件(大于20MB的静态文件),例如游戏安装包、应用更新、手机ROM升级、应用程序包下载等场景,推荐选择“大文件下载”业务类型。
    视音频点播若大文件为 音频、视频 文件,例如音乐、视频的点播业务场景,推荐使用“视音频点播”业务类型。
    直播流媒体提供 直播流媒体 加速服务,目前支持 RTMP 和 HLS 方式的直播加速,直播业务类型不支持自定义源站,目前统一提供直播中心服务器:video-center.alivecdn.com
    全站加速融合了 动态加速静态加速,适用于动静态内容混合、含较多 动态资源请求 的站点。通过简单配置即可智能分别加速动静态内容,静态内容高速缓存,动态内容通过阿里云的最优链路算法及协议层优化快速回源获取。

    源站类型说明:

    源站类型说明
    IP支持 多个 服务器外网 IP, 阿里云ECS的IP可免审核
    源站域名支持 多个 源站域名。注意:源站域名 不能 与加速域名相同,否则会造成循环解析,无法回源。例如您的 源站域名 为img.yourdomain.com,则 加速域名 可设置为cdn.yourdomain.com
    OSS可手动输入 阿里云OSS Bucket 的外网域名如:xxx.oss-cn-hangzhou.aliyuncs.com,OSS外网域名可前往 OSS控制台 查看。也可直接选择同账号下的 OSS Bucket

    注意:CDN 回源暂不支持 SNI

    3.添加成功:加速域名审核通过后,会出现在 域名管理 的域名列表中,状态为 正常运行 即添加成功。

    注意:添加完加速域名后,阿里云CDN会给您分配对应的CNAME地址,还需要 配置CNAME 后CDN服务才生效,请继续参考下方步骤3


    步骤 3:配置 CNAME

    1.在控制台 域名管理 的域名列表中复制加速域名对应的CNAME地址:
    这里写图片描述

    2. 前往你的 域名解析(DNS)服务商(如万网、阿里云解析、DNSPod、新网、腾讯云解析、route 53、godaddy等),添加该CNAME记录。现提供以下服务商的示例:


    验证CDN服务是否生效

    配置CNAME后,不同的服务商CNAME生效的时间也不同,一般新增的CNAME记录会立即生效,修改的CNAME记录会需要较长时间生效。您可以pingdig您所添加的加速域名,如果被解析至*.*kunlun*.com的域名,即表示CNAME配置已经生效,CDN功能也已生效:

    这里写图片描述

    展开全文
  • CDNCDN 原理和使用

    2020-08-09 18:03:13
    一、CDN 是什么 1.1 概念 CDN(content delivery network)即内容分发网络,通过在各个地方部署 CDN 镜像服务器,并复制源服务器的应用内容,让用户可以从最合适的镜像服务器中获取资源内容。 最合适的镜像服务器...

    目录

    一、CDN 是什么

    二、CDN 由来

    三、CDN 原理

    3.1 概念

    3.2 一般的 web 请求过程

    3.3 CDN 加速的 WEB 请求过程

    3.4 二者区别

    四、CDN 分类

    4.1 网页加速

    4.2 流媒体加速

    4.3 大文件加速

    4.4 应用协议加速

    五、 CDN 的推送类型

    5.1 主动推送

    5.2 被动获取


    一、CDN 是什么

    CDN(content delivery network)即内容分发网络,通过在各个地方部署 CDN 镜像服务器,并复制源服务器的应用内容,让用户可以从最合适的镜像服务器中获取资源内容。

    最合适的镜像服务器包括:

    • 访问本地区的服务器并获取所需内容 
    • 根据宽带类型使用部署对应类型宽带的服务器(如移动、联通、铁通等)

    如下图中的  表示 CDN 镜像服务器,则用户可以访问最近的镜像服务器,快速地获取资源内容。

    二、CDN 由来

     初始阶段: 1台服务器,面向所有用户

            分析:这个阶段仅需要管理单台服务器,技术成本低,资金需求也较低。

            问题: 全国各地的用户都访问北京用户,受到地域和运营商的限制,较远的地方或运营商的不同都会导致用户

    的网络访问速度变慢。若服务器宕机,则内容易丢失或损坏,并导致用户难以访问。

    扩大阶段: 多台服务器,面向不同地区的用户

            分析: 根据用户集中的地区,在不同地区部署服务器,使更多用户能就近地访问服务器,有效降低服务器压力,并提高用户访问速度。同时,当部分服务器发生故障无法使用时,可以快速引导用户访问其他服务器,提高访问内容的稳定性和安全性。

     

    三、CDN 原理

    3.1 概念

    实现 CDN 加速,需要提前将原始服务器的内容拷贝到 CDN 镜像服务器上,在镜像服务器上产生副本,以此让用户直接访问镜像服务器上的镜像文件。

     

    3.2 一般的 web 请求过程

    • 用户在浏览器中输入域名如cloude.tencent.com,浏览器将域名发送到 DNS 服务器,让其对域名进行解析得到域名指向的 IP 地址或二级域名。
    • DNS 服务器将解析后的地址返回给用户浏览器
    • 浏览器在获取到真实地址后,会根据真实地址向原服务器请求数据
    • 源服务器在获取到请求后返回相应数据。

    3.3 CDN 加速的 WEB 请求过程

    • 用户依旧在浏览器中输入域名如cloude.tencent.com,浏览器将域名发送到 DNS 服务器,但此时 DNS 服务器并不会将其解析到对应的 IP 地址。而是将其解析到智能 DNS 服务器( CDN 加速服务商提供的 DNS 服务器)。
    • 智能 DNS 服务器会判断用户的位置和运营商,并返回最合适的服务器 IP
    • 智能DNS服务器将该 IP 返回到用户请求的 DNS 服务器
    • DNS 服务器将该 IP 地址返回给用户浏览器
    • 用户浏览器根据 IP 地址请求 CDN 镜像服务器,请求访问数据内容
    • CDN 镜像服务器获取到相应请求,并查询到相应的资源副本文件,并返回给用户

    3.4 二者区别

    ● 对用户

    对用户来说,是没有任何区别的,都是输入网址即可访问到相应的资源。但由于是从最合适的节点拿到的内容,且是从内存中获取,故速度会快很多。

    ● 对网络服务商

    对于网址服务商来说,将原来的解析地址转换成智能 DNS 服务器,并提前将副本文件备份到镜像 CDN 服务器。

     

    四、CDN 分类

    按内容区分,可分为:网页加速、流媒体加速、大文件加速、应用协议加速

    4.1 网页加速

    网页加速即对html、css、js等不易变动的静态资源文件做加速,将这些文件备份到 CDN 缓存服务器中,让用户直接访问 CDN 缓存服务器的静态资源,从而快速获取到资源内容。

    而动态资源如视频、应用程序等动态生成的内容,则不会被备份到 CDN 缓存服务器中。

     

    4.2 流媒体加速

            当前大部分流媒体平台都采用了分片处理技术,即用一个xmp文件记录整个文件的大小和文件完整性的校验戳、视频持续长度、视频名称等。之后的 ts 文件则为视频的分片文件(可加密,保护知识),

            由于用户可能只看一个视频的前几分钟,而后面不会看,通过分片的方式可以极大提高服务器读写文件速度(文件更小)。而 CDN 对流媒体的加速正是加速这些分片文件(不易变化)。

     

    4.3 大文件加速

    大文件即安装包、视频、压缩包或大批量的数据等完整的文件,通过 CDN 可以让用户快速地访问到文件数据,并减轻原站压力。

         

    4.4 应用协议加速

    应用协议加速更多应用于BT下载软件中。如要下载一个大文件,受源服务器的网络带宽影响,下载速度会受到较大限制。而 CDN 镜像服务器可能已经将这个大文件从源服务器中备份完毕了,用户只需要从备份服务器中下载即可。而镜像服务器的带宽通常远远大于源服务器。

    当用户访问的这个镜像服务器没有用户要的文件时,会使用多台镜像服务器同时下载资源,并同时传输给用户,提高下载速度。

     

    五、 CDN 的推送类型

    CDN 的推送可续分为:主动推送和被动获取两种

    5.1 主动推送

    将源服务器的资源分发至节点,同时智能 DNS 服务器会引导用户访问相应的节点,从而拿到最新的资源数据

    5.2 被动获取

            智能 DNS 服务器先引导用户访问镜像服务器,镜像服务器通过查看索引的方式查找是否有这个文件,若没有则向源站获取,获取成功后返回数据给请求的用户。这种方式,第一个访问这台镜像服务器的用户是没有任何加速效果的(仍是向源站请求数据),但之后访问的用户则会被 CDN 加速。

    展开全文
  • 从直播CDN原理说起

    千次阅读 2017-08-03 10:00:15
    本次分享主要介绍直播的一般流程,CDN的技术原理及架构,CDN直播技术的难点和对应的解决方案。希望能够给大家带来帮助,更希望能推动实时直播技术的改进和改革。下面是本文的要点: 直播的一般流程; ...

    原文链接


    到处都在谈直播,直播技术目前越来越大众化,但也面临着更多的挑战。本次分享主要介绍直播的一般流程,CDN的技术原理及架构,CDN直播技术的难点和对应的解决方案。希望能够给大家带来帮助,更希望能推动实时直播技术的改进和改革。下面是本文的要点:

    • 直播的一般流程;

    • CDN的技术原理及架构;

    • CDN直播的技术难点和应对方案;

    • 基于SD-RTN的,针对低延迟、强互动场景的直播技术。

    直播的流程

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    正如上图所示,整个直播流程分为以下几个关键步骤:

    • 主播客户端,将本地采集的视频推送到CDN;

    • CDN对视频流进行缓存以及转发;

    • 观众客户端,拉取CDN中缓存视频流进行播放;

    可以看到CDN在这里起到了关键的作用,2016也是一个CDN崛起的年代,网宿、快网、七牛、高升、蓝汛、观止云、腾讯云、百度云、阿里云等CDN纷纷表示对直播进行了支持,直播也逐渐成为了CDN的标配。

    那么接下来了解一下CDN的技术原理。

    CDN技术原理

    CDN的全称为Content Delivery Network,即内容分发网络,是一个策略性部署的整体系统,主要用来解决由于网络带宽小、用户访问量大、网点分布不均匀等导致用户访问网站速度慢的问题。

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    CDN的技术原理见上图,具体实现是通过在现有的网络中,增加一层新的网络架构,将网站的内容发布到离用户最近的网络节点上,这样用户可以就近获取所需的内容,解决之前网络拥塞、访问延迟高的问题,提高用户体验。

    对于直播来说,则将Web服务器换作主播客户端,如下图所示。

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    由于视频占用带宽较大,与普通的Web服务差别较大,这样CDN的优势更能体现出来:网络拥塞减少,访问延迟降低,带宽得到良好的控制等等。

    另外,CDN直播中常用的流媒体协议包括RTMP、HLS、HTTP FLV等。

    • RTMP(Real Time Messaging Protocol)是基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议。

    • HLS(HTTP Live Streaming)是基于HTTP的,是Apple公司开放的音视频传输协议。

    • HTTP FLV则是将RTMP封装在HTTP协议之上的,可以更好的穿透防火墙等。

    CDN的常用架构

    CDN架构设计比较复杂,并且不同的CDN厂商,对其架构进行不断的优化,所以架构也不能统一而论。这里只是对一些基本的架构进行简单的剖析。

    CDN主要包含源站、缓存服务器、智能DNS、客户端等几个主要组成部分。

    源站是指发布内容的原始站点。添加、删除和更改网站的文件,都是在源站上进行的;另外缓存服务器所抓取的对象也全部来自于源站。对于直播来说,源站为主播客户端。

    缓存服务器是直接提供给用户访问的站点资源,由一台或数台服务器组成;当用户发起访问时,他的访问请求被智能DNS定位到离他较近的缓存服务器。如果用户所请求的内容刚好在缓存里面,则直接把内容返还给用户;如果访问所需的内容没有被缓存,则缓存服务器向邻近的缓存服务器或直接向源站抓取内容,然后再返还给用户。

    智能DNS是整个CDN技术的核心,它主要根据用户的来源,以及当前缓存服务器的负载情况等,将其访问请求指向离用户比较近且负载较小的缓存服务器。通过智能DNS解析,让用户访问同服务商下、负载较小的服务器,可以消除网络访问慢的问题,达到加速作用。

    客户端即发起访问的普通用户。对于直播来说,就是观众客户端。

    对于直播来说,CDN整体架构如下图:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    主要流程为:

    1. 主播开始进行直播,向智能DNS发送解析请求;

    2. 智能DNS返回最优CDN节点IP地址;

    3. 主播端采集音视频数据,发送给CDN节点,CDN节点进行缓存等处理;

    4. 观众端要观看此主播的视频,向智能DNS发送解析请求;

    5. 智能DNS返回最优CDN节点IP地址;

    6. 观众端向CDN节点请求音视频数据;

    7. CDN节点同步其他节点的音视频数据;

    8. CDN节点将音视频数据发送给观众端;

    说了这么多CDN的技术和原理,不知道您看累了没,那么CDN直播是否万事大吉了呢?接下来分析一下CDN的难点和解决方案。

    CDN难点:播放延时

    一提到直播,大家肯定会想到播放延时的问题,那为什么会播放延时了?我们从以下几个方面分析:

    1. 网络延时

    网络延时这里指的是从主播端采集,到观众端播放,之间的时间差。这里不考虑主播段采集对视频进行编码的时间,以及观众端观看对视频进行解码的时间,仅考虑网络传输中的延时。例如说下图中的网络延时:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    假设在该链路上有缓存,时间为Tmax_cache,那么从主播到观众的延时Tdelay为:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    另外,数据传输过程中还涉及到逻辑上的交互,例如包的重传以及确认,以及缓存上的一些逻辑等,会在这个基础上又增加很多。

    那么来简单估算一下大概的网络延时。众所周知,光在真空中的速度约为300,000km/s,而在其他介质中光速会大大降低,所以在普通光纤中,工程上一般认为传输速度是200,000km/s。从现实上来说,可以参考如下:

    路线距离(km)往返时延(ms)北京到上海1,20012北京到纽约11,000110赤道周长40,000400

    所以说,在节点较少、网络情况较好的情况下,那么网络延时对应也是最小,加上一定的缓存,可以控制延时在1s~2s左右。但是节点多、网络差的情况下,网络延时会对应增大,经验来说延时可以达到15s以上。

    2. 网络抖动

    网络抖动,是指数据包的到达顺序、间隔和发出时不一致。比如说,发送100个数据包,每个包间隔1s发出。结果第27个包在传输过程中遇到网络拥塞,造成包27不是紧跟着26到达的,而是延迟到87后面才达。在直播中,这种抖动的效果实际上跟丢包是一样的。因为你不能依照接收顺序把内容播放出来,否则会造成失真。

    网络抖动,会造成播放延时对应增大。如果网络中抖动较大,会造成播放卡顿等现象。

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    如上图所示,主播端t3和t5发出的包,分别在t3'和t5'到达,但是中间延时增大,即发生了网络抖动。这样造成观众端观看视频的延时会不断增大。

    3. 网络丢包

    CDN直播中用到的RTMP、HLS、HTTP FLV等协议都是在TCP的基础之上。TCP一个很重要的特性是可靠性,即不会发生数据丢失的问题。为了保证可靠性,TCP在传输过程中有3次握手,见下图。首先客户端会向服务端发送连接请求,服务端同意后,客户端会确认这次连接。这就是3次握手。接着,客户端就开始发送数据,每次发送一批数据,得到服务端的“收到”确认后,继续发送下一批。TCP为了保证传到,会有自动重传机制。如果传输中发生了丢包,没有收到对端发出的“收到”信号,那么就会自动重传丢失的包,一直到超时。

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    由于互联网的网络状况是变化的,以及主播端的网络状况是无法控制的。所以当网络中丢包率开始升高时,重传会导致延时会不断增大,甚至导致不断尝试重连等情况,这样不能有效的缓存,严重情况下会导致观众端视频无法观看。

    解决方案

    抛弃传统的基于TCP协议的方案,从底层协议和布网上开始,使用基于UDP协议的方案。SD-RTN(Software-Defined Real Time Net work),软件定义实时传输网络,是一种新型的专为内容实时传输而设计,基于UDP协议的网络架构。SD-RTN通过在互联网上不同地区的数据中心放置软件组网单元,相互连接互相调度,在现有的公共互联网基础上构建一层新的虚拟网络。能够实时根据各节点的连接、传输状况、负载状况、到用户的距离和响应时间,自动分配最优最通畅的传输路径,达到实时传输需要的质量保障级别。

    CDN与SD-RTN对比情况如下:

    • 基本原理不同。CDN是存储转发结构,设计目的是在各个边缘节点缓存待分发内容,结构上从源站到观众是伞状多级缓存放大方式。SD-RTN本质上一个实时传输网络,用户的数据在网络单元内部和传输线路上都以实时交换方式传送,UDP实现的传输协议,不会因为前一个包的丢失或延迟导致下后续包的延迟送达,而丢包可以用对延迟更友好的方式修复或补偿出来,从而能够保证最低延迟。

    • 底层协议不同。SD-RTN采用了专为实时传输设计的UDP协议,避免了采用TCP的延时不可控缺点。能够大大缩短交互延时,延时可从CDN方案的数秒,降低到数百毫秒。

    • 内容分发机制不同。SD-RTN是基于自定义路由,选择最优传输路径,直接将内容端到端传输,数据在网络单元中从不缓存,从而最大可能的降低延迟,同时内容安全性也更好。CDN是将内容缓存于缓存服务器中,再将内容就近下发,所以CDN更适合做内容分发,一对多的场景。

    • 使用场景不同。SD-RTN适用于要求极低时延的实时互动场景,例如网络电话、视频会议、有主播与观众交互需求的互动直播等。CDN适用于对时延要求不高的场景,例如对延时要求不高、类似电视的单点直播、网站加速等。

    SD-RTN的优势如下:

    • 时延大大缩短。直播延时可从基于TCP的方案的数秒,降低到数百毫秒。这一延迟范围,属于实时通信或准实时通信延迟的范畴。在这一级别上,主播和观众可以基本重现在现场活动中的交互体验,从而大大释放了内容制作者的潜力,也为业务运营者创造新业务形式打开了无限的空间和可能。

    • 抗丢包能力强。一般来说,SD-RTN中可以针对用户网络使用更多的策略模型和技术,这样在30%丢包时,依然能够进行正常直播。而基于TCP的直播方案在丢包2%时就明显卡顿,达到30%经常已断开连接,无法进行直播。

    CDN难点:连麦

    直播中,主播如果要与用户交互,常见有两种方式:

    • 第一种方式:文字,这种比较常见,实现也比较简单,这里不再进行分析;

    • 第二种方式:连麦,这样主播可以面对面与观众进行交互,增加了互动性;

    由于连麦方式比较复杂,这里进行详细分析。

    1. 多路RTMP流实现

    前面提到,RTMP是目前主播中最常用的协议,使用RTMP协议,可以实现最简单的一种连麦方式,如下图。

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    当有连麦者时,则主播端和连麦者端,都分别推一路RTMP流到CDN,CDN再将这两路RTMP流发送给观众端,观众端将两路RTMP流合成为一个画面。这种方式的优点是实现简单,但缺点比较多:

    • 主播与连麦者如果要进行交互,则考虑到上面分析的延时问题,在这里延时需要至少加大一倍,这样对于实时交互来说,完全无法接受;

    • 主播与连麦者交互时,声音会产生干扰,形成回音;

    • 观众端要接收两条视频流,带宽、流量消耗过大,并且两路视频流解码播放,耗费CPU等资源也非常多;

    这样看来,这种方式弊大于利,基本不可取。

    2. 主播端与连麦者P2P

    第二种方式,是主播端与连麦者之间使用P2P方式进行交互,然后主播端将自己和连麦者的视频进行合并,再推到CDN上,CDN再发送给观众端,如下图:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    这种方式的优点有两个,一是主播和连麦者之间使用P2P,网络质量较好,延迟较小,保证了两者之间交互不会有非常大的延时;二是可以解决声音的干扰问题,消除回声。缺点是:

    • P2P在某些网络下无法穿透,有些观众根本无法与主播端进行交互;

    • 主播端需要上传两路视频:一路P2P与连麦者进行交互,一路使用RTMP推到CDN。还要下载一路视频:连麦者P2P发送过来的交互数据。所以主播端要求带宽需要较高,网络较差时无法进行主播;

    • 主播端要进行多路视频的编码、解码,要求主播端设备配置比较高,较差的设备也无法进行主播;

    • 只能支持一个连麦者,不能支持多个连麦者;

    • 由于主播端和连麦者经过CDN合并成一路,因此,不能实现主播端和连麦者视频大小窗口切换。

    综合来说,P2P方式在一定程度上可以解决连麦的问题。

    3. 服务器端合图

    另外一种方式,是主播和连麦者都将视频推送到CDN中,然后CDN内部对这几路视频进行合图,再将其发送给观众端。如下图:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    这种方式的优缺点如下:

    优点

    • 主播和连麦者各路视频都使用RTMP推送到CDN,可以保证延时较小;

    • 由于CDN进行视频合图和发送,所以主播不需要很高的带宽;

    • 由于CDN进行视频合图,所以主播的设备不需要配置非常高;

    • 没有声音干扰问题;

    • 可以支持多个连麦者连麦;

    缺点

    • CDN需要进行视频的合图,需要额外开发工作,并且逻辑比较复杂;

    • CDN需要进行视频的合图,需要消耗较高服务器资源;

    • CDN合图后的布局难控制;

    • 据目前所知,还没有CDN支持这种方案;

    解决方案

    使用前文中提到的SD-RTN方案,由于其延迟较低,主播和观众可以通过音频实时交互,而不会感到延迟过大而不自然。使用SD-RTN,可以很好的解决多路RTMP、P2P连麦、服务器端合图这几种方案的弱势,并且开发难度降低,合图布局等都可以很好的在客户端上进行控制。

    具体SD-RTN的架构可以参考下图:

    从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

    客户端均通过UDP连接SD-RTN架构服务,通过SD-RTN的就近接入策略,让使用者就近接入质量最好的数据节点,经过传输延迟和质量优化的最优路径,自动避免网络拥塞和骨干网络故障的影响,将数据发送给其他客户端。若有常规的长延迟旁路直播,则可以将主播与连麦者合成一路直播流,通过RTMP推到CDN,进行下发。连接这一路的观众,不能参与连麦互动,达到了最佳直播效果。


    展开全文
  • 互联网加速CDN原理-PPT

    2018-02-22 17:14:24
    互联网加速的来源,CDN相关的工作原理、及互联网加速的未来
  • 内容分发网络CDN原理

    千次阅读 2018-08-16 17:55:59
    由上图可见,用户访问未使用CDN缓存网站的过程为: 用户向浏览器提供要访问的域名; 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址; 浏览器使用所得到的IP地址,域名的服务主机发出数据访问...
  • cdn:当终端用户请求访问和获取该资源时,无需回源,系统自动调用离终端用户最近的CDN节点上已缓存的资源 流程图 首先去点开通cdn cdn域名管理-添加域名-回到列表-复制CNAME 域名管理列表-域名...
  • CDN原理,缓存技术,防盗链

    千次阅读 2019-09-16 11:05:14
    一、CDN请求原理: 1)上海电信用户,通过其配置的电信的DNS,要求解析www.163.com这个域名。 2)如果电信的DNS本地没有这个域名解析,则会去163.com对应的权威域名服务器上去解析。 3)163.com的权威域名服务器会...
  • CDN原理详细解析

    2017-05-13 14:36:01
    2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP...4.用户向该IP节点(CDN服务器)发出请求;5....
  • cdn原理的理解

    2018-12-10 16:04:00
    今天要做个小笔记,浅谈一下对cdn的一些理解,在工作中我们经常用到cdn代理访问,那他的原理是什么不知道大家有没有考虑过 CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区...
  • 内容分发网络(Content delivery network或Content distribution network,缩写:CDN)是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他...
  • CDN原理简介

    千次阅读 2016-06-09 23:33:56
    CDN原理简介 CDN的百度百科的解释为:  CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过...
  • CDN 原理,TCP/IP协议族

    2021-02-27 14:53:56
    CDN 原理,TCP/IP协议族CDN 原理分发服务系统负载均衡系统管理系统TCP / IP协议族应用层协议—文件传输服务(FTP)应用层协议—远程登录协议(Telnet)应用层协议—电子邮件协议(SMTP)传输层协议—TCP传输层协议—UDP...
  • 关于CDN
  • 内容包括:srs3.0源代码分析,SRS4.0 GB28181对接,ps流压测工具,cdn原理实现,连麦,会议直播录相,微信小程序会议接收,sip客户端会议接收等方案文档,物联网调查报告,深度学习教材,等。 开源中国: ://gitee....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,795
精华内容 17,518
关键字:

cdn原理