音视频架构的三部分之CDN(二)

CDN就是内容分发网络,这是一个策略性部署的整体系统,专门用来解决网络带宽小、用户访问量大、网点分布不均匀造成访问慢的问题。它的具体实现是通过在现有的网络中增加一层新的网络架构,将网站内容发布在离用户最近的网络节点上,这样用户就能就近获取网站资源。

CDN大致包源站、缓存服务器、智能DNS、客户端等几个部分:

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

缓存服务器:是直接提供给用户访问的站点资源,由一台或多台组成。工作过程如下:

  1. 用户发起请求,其访问请求将会发送到智能DNS;
  2. 智能DNS将用户的请求定向到离用户最近的缓存服务器;
  3. 如果用户所请求的内容恰好在缓存服务器中,则直接将内容返回给用户;
  4. 如果访问的内容不在缓存服务器中,则此缓存服务器会向邻近的缓存服务器或直接向源站抓取内容,然后返回给用户。

智能DNS:这是整个CDN的技术核心,它主要根据用户的来源和当前缓存服务器的负载情况等,将用户的请求导向至离用户比较近且负载较小的缓存服务器上。这样的处理可以达到加速的作用。

客户端就是发起请求的普通用户,如手机、PC等客户端。

我们来看看当一个主播发起直播时,会发生哪些事?

  1. 主播客户端开始进行直播,首先向智能DNS发送请求;
  2. 智能DNS返回最优CDN节点的IP地址;
  3. 主播端开始采集音视频数据;
  4. 然后,把采集的数据发送到刚刚得到的CDN节点上;
  5. CDN节点会对数据进行缓存等处理;

我们再来看看当一个普通用户观看直播时,会发生哪些事?

  1. 观众要观看这个主橎的视频,首先会向智能DNS发送请求;
  2. 智能DNS返回最优CDN节点的IP地址;
  3. 观众客户端向得到的CDN节点请求音视频数据;
  4. CDN节点同步其他节点的音视频数据;
  5. 最后,CDN节点将音视频数据发送给观众客户端。

CDN的缺点:

  • 播放时延(网络时延):从主播端采集到观众播放之间的时差。
  • 网络抖动:数据包的到达顺序、间隔等与发出时不一致。这种抖动,虽然只是顺序乱了,但最后都会全部达到,但是效果却与丢包差不多,都会造成播放失真。
  • 网络丢包:CDN中用到的RTMP、HLS、HTTP-FLV等协议都是建立在TCP协议的基础上的,因为TCP是可靠的,所以它们都是可靠的。
    TCP的三次握手这样的:
    1、首先客户端向服务器端发送连接请求;
    2、服务器端发信息告知客户端同意本次连接请求;
    3、客户端会再发多一次消息给服务器确认本次连接。
    TCP协议为了保证数据传到目的地,会有自动重传机制。如果传输中途丢了包,没有收到对方端发出的“确认收到“信号,那么就会自动开始重传。当丢包率上升时,重传将会导致延时不断增大,甚至不断重连,这样就不能有效缓存,严重点就会导致视频无法观看。

谢谢阅读。

你可能感兴趣的:(音视频开发,CDN)