什么是CDN?

CDN的全称是Content Delivery Network,即内容分发网络。其实现是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",这些“边缘”一般称为“边缘节点”或“CDN节点”。利用这些节点,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术层面,解决了网络带宽小,用户访问量大,网点分布不均等原因所造成的用户访问网站响应速度慢的问题。

为什么要使用CDN?

减轻源站服务器压力

什么是源站?

源站就是“源头的站点“,也就是CDN上面的资源,最初来自哪里。如KS3,服务器(不建议)等。

什么是回源?

当用户访问CDN一个图片时,于是就跑到”源站“去找那张图片,找到后就给用户返回,并在本地缓存住。下次再有访问请求过来,直接就返回缓存的图片。

这就是”源站“的作用,上面的过程就是”回源“。大致的流程是 “用户 --> CDN服务器 --> 源站”。

减少源站服务器压力的原因

在做一个web应用时,CDN能处理整个网站页面的70%~95%的内容访问量,从而解决了网站的并发量,由此减轻了源服务器的访问压力。

提高用户访问速度,优化用户体验

将网站原服务器中的内容存储到分布于各地的缓存服务(Cache Server)中(也就是CDN的节点),通过智能的中心管理系统对网络的动态流量进行分配控制,使用户能以最快的速度从最接近用户的地方获得所需的信息,一般的静态数据,如图片、多媒体资料等将基本从CDN节点上读取,这使得从源文件服务器上读取的数据量大大减少,从而提高用户访问的响应速度和服务的可用性,解决Internet网络拥塞状况,提高用户访问网站的响应速度。

降低成本

使用CDN进行下发的内容,一般都是静态资源,如图片,安装包,压缩包等比较大的资源。使用CDN下载这些大资源,会比使用服务器下载节省不少成本,因为CDN 带宽6元/M,服务器进出网带宽40-50元/M。

使用场景

1.网络加速

主要针对门户网站、电商等业务场景,如网易、淘宝等站点。这类站点往往有着非常多的的静态内容文件(文本、图片等),CDN可对其进行加速处理,从而显著改善页面响应时间,提升用户的使用体验。

2. 文件下载加速

文件下载加速是CDN的一项重要功能,常见的场景有软件补丁包发布、游戏安装包获取等,这类文件容量大,下载的过程中容易给源站带来性能和带宽压力。通过CDN的方式,可以有效分担这些压力,并提高客户端的下载效率。

3. 流媒体加速

流媒体加速的方式是通过将流媒体内容推送到离用户最近的边缘节点,使得用户可以就近获取内容,从而提高视频传输质量、缩短访问时间,节省骨干网络的流量。流媒体加速包含直播和点播两种,此类模式适用于各类音视频网站和应用,如:抖音、爱奇艺等。

4. 全站加速

主要针对动态内容较多的站点,通过智能路由、协议优化等动态加速技术,提升客户端到源站的网络效率,便于快速获取动态资源。

CDN带宽峰值影响因素

并发量

并发量的大小,会直接影响到带宽的峰值。如客户端下载请求全集中在一个小时内,那么这一小时的带宽峰值就会很高,而把这部分下载请求,平均到一天,那带宽峰值就会平均下来。蜂巢会在发配置之后的一个小时内,带宽峰值会在这段时间内被打上来。

下载速度

下载速度越块,在文件足够大的情况下,带宽会越来越高。

文件大小

文件越大,在下载速度一定的情况下,带宽越来越高,因为文件大需要的下载时间更长。

限流限速策略

厂商提供的限流限速策略,如果效果好,会从厂商环节限制住带宽峰值。

厂商CDN成本计算方式

95带宽计费

  • 计算所有带宽点,从小到大排序,取低 (95% * 带宽点总数) + 1 的带宽 / 整月天数 * 当月实际使用天数
  • 实际计算时,是从大到小排序,直接取 5% * 带宽点总数 的带宽 / 整月天数 * 当月实际使用天数
    • 实际计算从大到小计算,是因为实际的数据点为0时可能会直接漏过那个数据点,导致需要补点,而从大到小计算则不需要补点

带宽第四峰值(去三峰)

  • 按天计算每日带宽,从大到小排序,取第四大的带宽值 / 整月天数 * 当月实际使用天数

带宽日峰月均值(目前使用的计费方式)

  • 按天计算每日带宽,将计费周期内的每日带宽峰值求和 / 整月天数

周期内流量

  • 将计费周期内的所有流量进行累加

CDN策略

缓存策略

  1. 回源正常时的缓存策略,资源缓存节点的有效时长。
  2. 回源异常(如404等)时,CDN节点的缓存策略。如出现404后,是缓存一分钟呢,还是都不缓存,每次都会回源。
  3. 上传时,是否有设置不缓存。

限流限速策略

  1. 带宽超过多少G,进行限流,返回429。
  2. 带宽超过多少G,进行限速,降低下载速度,速度可以跟厂商沟通并设置。
  3. 限流限速组合使用,如超过30G,就进行限速;超过35G,就对后来进行限流。

回源策略

  1. 回源异常(如404)时,CDN节点的缓存策略。如出现404后,是缓存一分钟呢,还是都不缓存,每次都会回源。
  2. 由中心节点进行回源,再自行分发到所有边缘节点。
  3. 所有节点自行回源。

黑白名单策略

  1. 添加白名单,默认对白名单进行放行。
  2. 添加黑名单,对黑名单全部禁止访问下载。
    • IP
    • 链接资源
  3. 单位时间内,单个IP访问超过一定次数,拉入黑名单并禁止一段时间(时间可设置)。

CDN基础知识的更多相关文章

  1. YUM源、磁盘基础知识 CDN概念

    第1章 YUM源 1.1 什么是yum源 Yellowdog Updater, Modified 一个基于RPM包管理的字符前端软件包管理器.能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性 ...

  2. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  3. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  4. Vue快速上门(1)-基础知识图文版

    VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.基本概念 1.1.先了解下MVVM VUE是基于MVVM思想实现的,那什么是M ...

  5. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  6. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  7. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  8. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  9. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  10. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. DOSBox0.74使用Debug时p命令报错

    环境 操作系统:Windows 10 DOSBox 0.74 DEBUG.EXE 从 Windows XP 或其他复制到的DOSBox下 问题 在学习到 王爽的<汇编语言>时,第 4章,第 ...

  2. xxl-job的基本使用

    xxl-job的基本使用 xxl-job是分布式的调度平台调度执行器执行任务,使用的是DB锁(for update)来保证集群分布式调用的一致性,学习简单,操作容易,成本不高. 准备阶段 服务端配置 ...

  3. Zabbix6.0使用教程 (五)—zabbix从二进制包安装上篇

    大家好,我是乐乐.上一期我们已经讲过从源代码安装zabbix,本期着重讲从二进制包安装zabbix. 当我们在ZABBIX官方存储库可以看到,Zabbix SIA 提供如下官方RPM和DEB包: ·R ...

  4. Word中的公式复制到Visio中乱码问题

    将word中编辑好的公式复制到Visio中出现乱码问题 如图所示问题: 解决方案(Visio 选项 --> 高级 --> 显示 ->勾选禁用增强元文件优化) 具体的公式导入和解决操作 ...

  5. vue入门教程之-属性、事件和双向绑定

    vue入门教程之-属性.事件和双向绑定 欢迎关注博主公众号「java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 htt ...

  6. Window快速切换工作目录命令

    原文: Window命令行快速切换工作目录命令 - Stars-One的杂货小窝 以往,在cmd命令行里,如果是当前在C盘,想切换到D盘的某个文件夹,得这样写: cd D:/temp D: PS: D ...

  7. 没想到三天10KStar的营销利器MediaCrawler开源作者已经删库了

    前言 一站式社交平台数据抓取利器,带你玩转小红书.抖音.快手.B站和微博数据分析 不经意间,来查看MediaCrawler仓库源码,发现作者已经删库了.看来是领奖了.才几天不到的时间Star数量已经直 ...

  8. 记录--用JS轻松实现一个录音、录像、录屏的工具库

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 最近项目遇到一个要在网页上录音的需求,在一波搜索后,发现了 react-media-recorder 这个库.今天就跟大家一起研究一 ...

  9. vue中$forceUpdate()的使用

    刷新数组的作用 this.$forceUpdate(); 具体请看:vue中$forceUpdate()的使用 - 简书 (jianshu.com)

  10. ZYNQ系列学习GPIO实验

    GPIO实验 一.实验原理 调用GPIO实现PS对引脚的控制 二.实验步骤 1.建立工程 这部分是ivado的操作内容,这里不做过多说明. 2.添加ZYNQ处理器IP 在左侧菜单栏中双击Create  ...