什么是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. WPF开源的一款免费、开箱即用的翻译、OCR工具

    前言 今天大姚给大家分享一款由WPF开源的.免费的(MIT License).即开即用.即用即走的翻译.OCR工具:STranslate. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具 ...

  2. [学习笔记]在Linux中使用源码编译的方式安装Nginx

    ​准备工作 准备nginx源码包: http://nginx.org/en/download.html 准备相关的依赖包以及环境: gzip 模块需要 zlib 库  http://www.zlib. ...

  3. LosslessCut 视频 切割合并 - 软件推荐 - 非常好用

    LosslessCut 视频切割合并 - 软件推荐 - 非常好用 下载地址 https://n802.com/f/14902046-490311155-557856 参考文章 http://www.r ...

  4. win10 有 休眠 功能,将内存保存到文件,开机10秒左右,恢复之前idea等所有软件

    休眠 休眠 休眠 重要的事情说三遍. 提示,默认不显示,需要控制面板 电源里面设置下.

  5. 数据处理——IF函数求同时满足多个条件 多个条件满足一个以上

    以满足两个条件为例,满足多个条件类似 以如下案例为例进行说明: 一.IF公式同时满足多个条件 此例也可使用函数的嵌套,对于函数使用掌握不牢的新手,嵌套使用会有些困难,以下方法针对刚入门学习参考 1.利 ...

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

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

  7. Solon Web 文件上传的最佳实践

    文件上传是 Web 开发中最常见的一个应用场景.一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘. 1.如果是高频且文件极小 使用纯内存模式,默认即可.如果高频小 ...

  8. nginx 自定义日志格式输出

    修改 nginx.conf 自定义日志格式.路径 log_format my_format '$remote_addr $msec $http_host $request_uri'; 使用精准配准,对 ...

  9. Kingbase ES 游标跨事务及其案例一则

    前言 本文介绍游标在PLSQL和SQL层跨事务使用案例,及其案例一则. 本文验证版本: db0=# select version(); db0-# / version ---------------- ...

  10. KingbaseES V8R3 集群运维系列 -- failover切换后集群自动恢复

    ​ 案例说明: KingbaseES V8R3集群默认在触发failover切换后,为保证数据安全,原主库需要通过人工介入后,恢复为新的备库加入到集群.在无人值守的现场环境,需要在触发failover ...