关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

通过直播cdn架构分析直播cdn原理让直播更流畅!

发布时间:2023-11-22 10:45:11

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


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

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

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

CDN在这里起到了关键的作用,,直播也逐渐成为了CDN的标配。


所以我们要了解一下CDN的技术原理。


CDN技术原理


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

这里我们就不做过多介绍了。

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


1. 网络延时


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

 假设在该链路上有缓存,时间为Tmax_cache ,那么从主播到观众的延时Tdelay为:另外,数据传输过程中还涉及到逻辑上的交互,例如包的重传以及确认,以及缓存上的一些逻辑等,会在这个基础上又增加很多。那么来简单估算一下大概的网络延时。众所周知,光在真空中的速度约为300,000km/s,而在其他介质中光速会大大降低,所以在普通光纤中,工程上一般认为传输速度是200,000km/s。 

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


3. 网络丢包

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



/template/Home/Zkeys/PC/Static