CDN(Content Delivery Network)技术原理概要

简介

  1. CDN(Content Delivery Network)即内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,提高用户访问响应速度和命中率。---- 来自:CDN百度百科 举个简单的例子:让原本上海的浏览器要访问北京主站内容的请求,转而由部署在上海或其他地方的缓存来受理,这样请求的数据只需要经过很短的距离就能够到达请求端,有效利用带宽并降低主站压力

工作原理

  1. CDN网络一般分为中心节点和边缘节点
    1. 中心节点功能:监控边缘节点的情况(可用性,拥塞程度),全局负载均衡管理,与主站点进行数据同步
  2. CDN工作原理: 浏览器访问一个网站所经历的步骤
    1. 未加CDN缓存的网站
      1. 用户在浏览器地址栏输入要访问的域名
      2. 浏览器解析域名得到对应的IP地址,再向此IP地址的服务器发出访问请求
      3. 浏览器根据服务器返回的东西显示网页内容
    2. 加CDN缓存的网站
      1. 用户在浏览器中输入要访问的域名
      2. 浏览器对域名解析,(CDN对域名解析过程进行了调整)得到该域名的CNAME记录,然后利用全局的负载均衡DNS解析得到实际的IP地址
      3. 浏览器在得到了实际的IP地址(缓存服务器的IP)后向缓存服务器发出访问请求
      4. 缓存服务器根据浏览器提供的要访问的域名通过DNS解析得到该域名对应的实际的IP地址,然后该缓存服务器向此实际IP地址提交访问请求
      5. 缓存服务器从实际IP地址得到内容后,进行两个操作:
        1. 将得到的内容保存到本地,以便以后使用
        2. 将获取的内容返回给客户端,完成数据服务过程
  3. 示例:
    1. 如图所示:
  1. CDN关键技术 CND关键技术有:内容路由技术、内容分发技术、内容存储技术、内容管理技术
    1. 内容路由功能
      1. CDN的负载均衡系统实现CDN的内容路由功能。CDN内容路由功能作用使用户请求到达CDN网络中的最佳节点
      2. 全局负载均衡主要目的是让用户的请求到达CDN网络中最近的节点
      3. 局部负载均衡 在特定的范围内寻找一台合适的节点提供服务(要考虑到节点的健康性、负载情况、支持的媒体格式等运行状态)
    2. 内容分发技术 内容分发技术主要是PUSH和PULL
      1. PUSH是一种主动分发的技术,通常由内容管理系统发起,将内容从源或者中心媒体资源库发布到各个边缘的Cache节点(HTTP/FTP)
      2. PULL 是一种被动的分发技术,当用户请求的内容不在请求所达到的边缘Cache的节点上时,该节点会从内容源或其他节点PULL下所需的内容(按需分发)
    3. 内容存储技术
      1. 内容源的存储 通常采用海量存储架构(内容的规模及吞吐量较大)
      2. 在Cache节点中的存储 Cache节点的存储要考虑:
        1. 功能上,对各种内容格式的支持、对部分缓存的支持
        2. 性能上,容量大小,吞吐率、可靠性及稳定性
    4. 内容管理技术 本地内容管理(对Cache节点而言)的目标是提高内容服务的效率,提高本地节点的存储利用率。
      1. 本地内容索引是实现基于内容感知调度的关键
      2. 本地内容的复制。通常为了提高存储的效率,同一个内容只在某个特定的节点中存储一份,当对该内容的访问超过这个节点的能力范围,就将该内容进行分发到其他节点上
      3. 本地内容访问状态的收集。搜集各个节点上各个内容访问的统计信息,节点可用服务能力及内容变化的情况

    注:在这里只是简单介绍了一下这几种技术,并不是特别详细,先对这些有个大概了解,方便以后的学习,如果感觉本文的内容说的不具体的话可以看一下这篇文章:CDN技术详解及实现原理,因为有些东西我还不懂,所以有些内容还未涉及到,请大家见谅。

注:本文参考 CDNCDN的四大关键技术 如需转载请注明出处:http://www.cnblogs.com/zhuchenglin/p/8978600.html

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=24pg1rt5k61ws

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

PHP网络技术(三)——CURL实现跨服务取接口功能

PHP网络技术(三)——CURL实现跨服务取接口功能 (原创内容,转载请注明来源,谢谢) PHP的curl类库,可以实现远程访问、页面抓取、表...

4444
来自专栏Linyb极客之路

分布式之数据库和缓存双写一致性方案解析

首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。

2511
来自专栏编程坑太多

『高级篇』docker之kubernetes环境搭建与预先环境准备(32)

kubernetes的安装有几种方式,不管是kube-admin还是社区贡献的部署方案都离不开这几种方式:

1242
来自专栏Java进阶

zookeeper的zab协议工作原理之 崩溃恢复模式

4357
来自专栏风中追风

分布式进阶__zookeeper的zab协议工作原理之 崩溃恢复模式

上篇 zookeeper的zab协议工作原理之 原子广播 介绍了 zookeeper 广播的原理。

36610
来自专栏腾讯移动品质中心TMQ的专栏

接口测试理论与实践 ——PiTest + GT双管齐下,专治各种接口测试

最近做接口测试比较多,这里做一个小小的总结,也可以帮助接口测试的同学快速上手。 首先,在做接口测试前,我们来想一想: 接口测试是什么?——含义 接口测试测什么...

2587
来自专栏北京马哥教育

Linux性能及调优指南(翻译)之Linux内存架构

本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译 原文地址:http://www.re...

3875
来自专栏程序员宝库

每个系统管理员都要知道的 30 个 Linux 系统监控工具

? 您需要监控 Linux 服务器的性能吗?试试用这些内置命令和附加工具吧!大多数 Linux 发行版都附带了大量的监控工具。这些工具提供了获取系统活动的相关...

5349
来自专栏java技术学习之道

分布式之数据库和缓存双写一致性方案解析

3323
来自专栏编程

Python的黑客技能:快速提取Windows密码和Wi-Fi密钥凭证!

LaZagne比较适合黑客和安全管理员,可以在Linux,Windows和MacOS上运行,而且几乎适用于每一个目标。Lazagne是后期开发模块,包含在远程访...

4887

扫码关注云+社区

领取腾讯云代金券