简介

  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. 如图所示:
    2. 浏览器访问站点的步骤:
      1. 用户在浏览器的地址栏中输入www.web.com,然后回车,浏览器发现本地没有DNS缓存,就向网站的DNS服务器请求
      2. 网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com(CDN只能接职能负载均衡系统)
      3. 职能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户
      4. 浏览器向该IP节点发送请求
      5. 第一次访问的时候,CDN服务器请求原web站点,得到内容后一方面将得到的内容缓存到本地;另一方面将请求的结果返回给客户端(下次访问的时候,如果节点的缓存内容可用的话,就不会再请求原web站点了)
  4. 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

CDN(Content Delivery Network)技术原理概要的更多相关文章

  1. web网站加速之CDN(Content Delivery Network)技术原理

    在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度.优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的 ...

  2. CDN(Content Delivery Network)内容分发网络

    CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...

  3. CDN(Content Delivery Network)原理

    CDN即内容分发网络,一般包括分发服务系统,负载均衡系统和管理系统. 分发服务系统,其基本的工作单元就是各个cache服务器.负责直接响应用户请求,将内容快速分发到用户:同时还负责内容更新,保证和源站 ...

  4. CDN的全称是Content Delivery Network,即内容分发网络

    CDN的全称是Content Delivery Network,即内容分发网络 http://baike.baidu.com/link?url=Wd-IGGgslfJemdpuT3Y0BUi88RPQ ...

  5. 深度剖析:CDN内容分发网络技术原理--转载

    1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...

  6. CDN(Content Distribution Network)概念

    CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...

  7. Content Delivery Network

    Coding Standards & Best Practices 7 Reasons to use a Content Delivery Network CDN公共库汇总

  8. CDN(内容分发网络)技术原理

    1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...

  9. [转]CDN(内容分发网络)技术原理

    1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...

随机推荐

  1. Java基础11-List;Set;Map

    作业解析: remove(int index); //删除指定位置的元素 List list = new ArrayList(); list.add("s1"); list.add ...

  2. Springboot2新特性概述

    官方说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes 起码 JDK 8 和支持 ...

  3. 洛谷P4774 [NOI2018]屠龙勇士 [扩欧,中国剩余定理]

    传送门 思路 首先可以发现打每条龙的攻击值显然是可以提前算出来的,拿multiset模拟一下即可. 一般情况 可以搞出这么一些式子: \[ atk_i\times x=a_i(\text{mod}\ ...

  4. Unity中各种格式计时器

    问题背景: 在开发游戏过程中,很多地方需要倒计时,但是各种地方要的倒计时格式不同,倒计时都会写,在这里不详细介绍,写的目的就是为了记录一下,方便复用(为了在开发过程中不为了小问题浪费不必要脑细胞) 1 ...

  5. laravel call传参

    public function index(Request $request, ApplicationContract $app) { $type = $request->query('type ...

  6. MySQL存储过程(PROCEDURE)(一)

    一.定义与目的: 定义:存储过程是数据库 SQL 语言层面的代码封装与重用(是数据库中存储复杂程序,以便外部程序调用的一种数据库对象): 目的:我们为了完成特定功能的SQL语句集,经编译创建并保存在数 ...

  7. UNIX哲理名言(中英文对照)

    UNIX 的特点: Everything (including hardware) is a file.所有的事物(甚至硬件本身)都是一个的文件. Configuration data stored ...

  8. python常见排序算法解析

    python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

  9. 重磅推出:AutoProject Studio 自动化项目生成器

    AutoProject Studio 自动化项目生成器 核心架构图 AutoProject Studio 自动化项目生成器是一款基于C#.Net Framework 4.0为平台自主研发.专为软件设计 ...

  10. windows配置ssh免密登录linux

    客户端(windows)要做的事情 默认机器上已安装git,若没有,请先安装git 查看本地是否有ssh公钥文件夹,若没有,则创建文件夹 mkdir ~/.ssh //创建文件夹 生成公钥 邮箱最好为 ...