首页 > 其他分享 >CDN在直播中的运用(转载)

CDN在直播中的运用(转载)

时间:2024-07-18 11:57:54浏览次数:13  
标签:缓存 CDN 网络 直播 DNS 转载 节点 客户端

1.CDN技术原理

CDN的全称为Content Delivery Network,即内容分发网络,是一个策略性部署的整体系统,主要用来解决由于网络带宽小、用户访问量大、网点分布不均匀等导致用户访问网站速度慢的问题。这中间就有了很多的CDN节点,简单一点理解就相当于我们开始学习计算机选择网络。具体实现是通过在现有的网络中,增加一层新的网络架构,将网站的内容发布到离用户最近的网络节点上,这样用户可以就近获取所需的内容,解决之前网络拥塞、访问延迟高的问题,提高用户体验。

上图中,不同的流媒体走的节点和协议做了区分,网络拥塞减少,访问延迟降低,带宽得到良好的控制等等。 CDN直播中常用的流媒体协议包括RTMP,HLS,HTTP FLV等。

RTMP(Real Time Messaging Protocol)是基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议。 HLS(HTTP Live Streaming)是基于HTTP的,是Apple公司开放的音视频传输协议。 HTTP FLV则是将RTMP封装在HTTP协议之上的,可以更好的穿透防火墙等。

2.CDN的常用架构

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

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

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

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

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

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

用图表示如下:

整个流程描述如下:

主播开始进行直播,向智能DNS发送解析请求; 智能DNS返回最优CDN节点IP地址; 主播端采集音视频数据,发送给CDN节点,CDN节点进行缓存等处理; 观众端要观看此主播的视频,向智能DNS发送解析请求; 智能DNS返回最优CDN节点IP地址; 观众端向CDN节点请求音视频数据; CDN节点同步其他节点的音视频数据; CDN节点将音视频数据发送给观众端;

## 采用CDN的缺点

大概了解了CDN的技术原理后,我们在做直播选型时,还需要了解一个方案优缺点。接下来,我们来分析一下CDN的短板。

总结一下主要有如下短板:

### 播放延时(网络延时)

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

### 网络抖动

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

### 网络丢包

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

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

原文作者: HugoforAndroid

标签:缓存,CDN,网络,直播,DNS,转载,节点,客户端
From: https://www.cnblogs.com/zeliangzhang/p/18309225

相关文章

  • 直播类小程序发展前景的分析
    直播类小程序作为近年来兴起的一种新型营销和互动方式,在移动互联网时代具有显著的发展前景。直播功能与小程序的结合,不仅为用户提供了便捷的观看和互动平台,同时也为商家带来了新的营销渠道和收入来源。以下是对直播类小程序的发展前景的分析:增强品牌的社会属性:小程序直播凭......
  • 直播概念和流程框架(转载)
    1.直播初识热门直播产品:映客,斗鱼,熊猫,虎牙,花椒等等1.1一个完整直播app功能1.聊天私聊、聊天室、点亮、推送、黑名单等;2.礼物普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;3.直播列表关注、热门、最新、分类直播用户列表等;4.自己直播录制、推......
  • 【转载】浅谈 pb_ds 库及其在OI其他算竞中的应用
    【原链接】这篇太叼了!pb_ds,比STL更强大的模板库。upd.on10.27更新了优先队列的常数分析,增加了“万能头文件”的内容。前言之前看到过一篇关于pb_ds写得很好的文章,但现在找不到了;OI-wiki上的内容的不太完整。那不如自己动手,丰衣足食。当然,pb_ds库中有很多东西算......
  • PCDN技术如何应对网络延迟问题?
    PCDN技术通过以下几种方式应对网络延迟问题:去中心化分发:与传统的CDN不同,PCDN利用用户的闲置带宽和存储资源来共享和传递内容。这意味着内容不再仅仅依赖于中心化的服务器进行分发,而是可以通过多个用户设备同时进行分发。这种去中心化的分发方式有效分散了网络流量,降低了服......
  • iOS开发基础107-直播
    在iOS平台上,直播技术已经很成熟,有许多强大的第三方框架可以帮助开发者轻松实现直播功能。当前主流的直播第三方框架包括但不限于:LFLiveKit:一款开源的直播推流SDK。PLMediaStreamingKit:由云天存提供的一站式音视频解决方案。AliyunPlayer:阿里云提供的音视频播放解决方案。A......
  • BGP 协议(转载)
    BGP协议BGP协议介绍BGP全称是BorderGatewayProtocol,对应中文是边界网关协议。BGP是互联网上一个核心的去中心化自治路由协议。从这个解释来看,首先这是一个用于互联网(Internet)上的路由协议。它的地位是核心的(目前是最重要的,互联网上唯一使用的路由协议),它的目的是去中......
  • web直播
    步骤一:开通腾讯云直播服务步骤二:获取推流URL想要简单获取一个推流URL,可以参考文档:快速获得地址想要了解推流地址和直播间ID的关系,可以参考文档:后台自动拼装想要了解如果保护自己的推流地址不被盗用,可以参考文档:防盗链签名步骤三:获取播放URL步骤四:配置推流端测试时使用ObsS......
  • 直播预约丨《指标体系建设实战》第四期:如何构建全面的指标管理体系
    指标是反映企业的各项核心业务活动、管理成效的数据体系,指标体系作为联结业务逻辑与数据实体的关键桥梁,是构建高质量数据统计的基础单元,并在量化业务绩效和效果评估中扮演着核心角色。为了更好地服务于客户并提供切实可行的实践指导,自4月24日起,袋鼠云将推出全新《指标体系建设实......
  • Cilium Gateway API 特性(转载)
    CiliumGatewayAPI特性(转载)一、环境信息主机IPubuntu10.0.0.234软件版本docker26.1.4helmv3.15.0-rc.2kind0.18.0kubernetes1.23.4ubuntuosUbuntu22.04.6LTSkernel5.15.0-106二、CiliumGatewayAPI流程图Cilium现在......
  • 音视频同步原理及实现(转载)
    #音视频同步原理及实现本文主要描述音视频同步原理,及常见的音视频同步方案,并以代码示例,展示如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放。内容如下:*1.音视频同步简单介绍*2.DTS和PTS简介*2.1I/P/B帧*2.2时间戳DTS、PTS*3.常用同步策略*4.音视......