一 互联网应用质量概述

1.1 互联网应用质量

互联网应用质量指标——QoE,其主要指标:
服务成功率:指用户所请求的服务成功完成的几率。
服务建立时间:指从服务请求到服务呈现所花费的时间,并且会因为用户请求服务内容的不同而表现出微妙到秒级的区别。
时延:指用户从发出请求到获得结果的时间。
视听播放卡顿:指播放音频或视频时,由于没有接收到足够的数据或较低的帧传输速率而引起的播放暂停的现象。
图像清晰度:指图片会视频画面上的细节信息和边界信息的清晰程度以及精确还原实物色彩的能力。

1.2 网络性能——时延

完整时延:终端处理指令时延——>网络时延——>服务器响应时延——>网络时延——>终端处理响应时延。
网络时延:指数据分组穿越一个或多个网段所经历的时间。其中路由处理、ADU(用户数据单元)的传输、服务器对用户请求的处理以及距离产生的网络传输时延,构成了网络时延的主要因素。
发送时延:指在发送数据时,数据从发送端进入传输介质所消耗的时间。发送时延=数据帧长度/发送速率。
传播时延:指电磁波在传播过程中消耗的时间。传播时延=传播距离/传播速率。
处理时延:指服务器或路由器接收到数据分组时,会检测数据分组的头部,决定将该数据分组传输到哪一个链路上所需的时间。
排队延时:指PDU在传输链路上每一个排队等待所引起的时间延时的集合。

1.3 网络性能——QoS

网络的时延、抖动、带宽以及分组丢失统称为服务性能(QoS)指标,可理解为底层分组数据传输的性能指标。

二 常见互联网应用部署

2.1 集中式部署

集中式部署存在单点问题,同时不利益系统的扩容,也会带来网络时延过大的问题。

2.2 利用网站镜像加速

网站镜像是通过复制整个网站或部分网页内容并将其重新存储到其他服务器,让用户在新服务器依然能够访问想获得的内容,并且为主站分担了网络流量。
网络镜像在需要重复上传的内容过多时会显得非常麻烦,通常商业网站一般并不采用镜像的方法。

2.3 CDN进行加速

CND=智能的镜像+缓存+流量调度,CND主要优势如下:

  • 缓解源站服务器访问压力;
  • 优化热点内容的分布,合理缓存,减轻骨干网传输的流量压力;
  • 提升用户的访问质量和体验,全面提高网站访问速度;
  • 增强网站服务的可靠性,解决网站突发峰值流量问题;
  • 解决不同运营商之间互联互通问题造成的影响;
  • 提高安全性,有效防止异常流量对源站的攻击。

三 CDN基本概念

3.1 CDN的定义

内容分发网络(Content Delivery Network)是在现有网络中增加一层新的网络架构,从而实现将源站内容发布和传送到最靠近用户的边缘地区,使用户可以就近访问想要的内容,提高用户访问的响应速度。
内容:CDN的内容通常是以下两种:静态内容以及动态内容。
分发:CDN的分发是指利用一定的传送策略,将用户请求的内容发布到距离该用户最近的节点。
网络:CDN由多个(通常成千上万)分布式服务器组成,通过服务器的通信,把内容分发和传送给终端用户。CDN各节点之间是通过电信运营商的宽带网络进行通信,即CDN网络是在电信运营商的网络之上的一层网络。

3.2 CDN基本原理

依靠放置在各地的缓存服务器,通过全局调度以及内容分发等功能,将用户需要的部分内容部署到最贴近用户的地方,将原本低效、不可靠的IP网络转变成高效、可靠的智能网络,满足用户对内容访问质量的更高要求,改善互联网网络拥塞问题,提高用户访问网站的响应速度。

四 CDN工作过程

4.1 基本工作过程

  • 内容注入:内容注入是CDN能为用户提供服务的第一步,是内容从源站注入CDN的过程,使得用户能从CDN系统中获取源站的内容;
  • 用户请求调度:用户请求调度是用户向网站发起请求,最终用户被引导到最佳的有内容的CDN节点的过程。
  • 内容分发:将用户所需访问的内容分发到用户,或从上级节点拉去内容后,将内容分发到下级节点。
  • 内容服务:将找到的最靠近用户的CDN节点中的内容交付给终端用户。

4.2 CDN内容接入

  • 内容存储接入:指源站在发布内容前,提前将内容注入到CDN中。采取此方式接入的内容将永久存储在CDN中,直到通过内容接入操作指令对该内容显式删除。
  • 内容预注入:指源站在发布内容前,提前将内容注入到CDN中。但采用此方式接入的内容并不会永久存储在CDN中,而仅仅是进行内容缓存,CDN会根据内容访问的热度情况对缓存的内容进行智能删除。
  • 实时回源:指源站在内容发布之前不向CDN注入内容,但当用户内容访问请求时,CDN实时地从源站拉取内容。

4.3 CDN用户请求调度

全局调度:根据用户所在地理位置不同,在各个节点之间进行分析决策,将用户请求转移到整个网络中最靠近用户的节点。
本地调度:通常被限制在一顶地区范围内,并且更加关注CDN服务器设备具体的健康情况与负载情况,根据实时响应时间,将任务分配给最适合的服务器设备进行处理,实现更精细粒度的调度决策。

4.4 CDN内容分发

Push方式:一种主动分发的方式,由CDN内容管理系统发起,将内容从源站或者中心内容库主动分发到各边缘的CDN节点,分发协议通常有HTTP、FTP等。
提示:通过Push分发的内容一般是比较热点的内容,通过Push方式预先主动分发到边缘CDN节点,可实现有针对性的内容提供,属于一种智能的主动分发策略。
Pull方式:一种被动分发的方式,由用户请求驱动,当用户请求的内容在本地的边缘CDN节点上不存在(未命中)时,该CDN节点启动Pull方式从内容源或其他CDN节点实时拉取内容,在Pull方式下,内容是按需分发的。
提示:通过Pull分发的内容一般访问比较集中,例如热点的流媒体内容,Pull方式比较适合内容访问分散的情况。


混合分发方式:Push和Pull两种方法结合的一种机制。一般利用Push方法进行内容预推,Pull方式拉取。

4.5 CDN内容服务

CDN内容服务根据用户访问的内分为静态内容服务、动态内容服务。

001.CDN概述的更多相关文章

  1. 【java基础学习001】概述

    001.1    一个简单的Java程序 public class hello { public static void main(String[] args) { System.out.printl ...

  2. CDN 概述

    占位 CDN(Content Delivery Network)内容发布网络 推荐Blog: CDN 学习笔记

  3. 001 Security概述

    1.Spring Security概述 Spring Security是用于解决认证与授权的框架 SpringSecurity默认要求所有的请求都是必须先登录才允许的访问 BCrypt加密算法 BCr ...

  4. 李洪强漫谈iOS开发[C语言-001]-开发概述

  5. CDN概述

  6. 001.ActiveMQ概述

    1. 概念 ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware ...

  7. Java Part 001( 01_01_Java概述 )

    Java作为编程语言, 甚至超出了语言的范畴, 成为一种开发平台, 一种开发规范. Java语言相关的JavaEE规范里, 包含了时下最流行的各种软件工程理念, 学习Java相当于系统的学习了软件开发 ...

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

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

  9. CDN架构以及原理分析

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61  在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应 ...

随机推荐

  1. 闭包&装饰器

    闭包 1.函数引用 def test(): print('--test--') # 调用函数 test() # 引用函数 ret = test print(id(ret)) print(id(test ...

  2. vsftp日志xferlog格式分析

    vsftp日志xferlog格式分析 [日期:2014-06-25] 来源:Linux社区  作者:Linux [字体:大 中 小]   1.开始vsftp记录日志.修改/etc/vsftpd/vsf ...

  3. K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》

    0.存储过程开头变量定义 @FBeginDate varchar(10), --单据起始日期 @FEndDate varchar(10), --单据截止日期. @FItemID varchar(50) ...

  4. StackService.Redis 应用

    如今StackService.Redis已经转向商业版本.4.0以下的低版本依然免费和开源. 吴双,Redis系列命令拾遗分享 http://www.cnblogs.com/tdws/tag/NoSq ...

  5. Go语言之闭包

    闭包的最初目的是为了减少全局变量,在函数调用过程中,隐式的传递共享变量. 但这样的编辑,带来的坏处是不够直接清晰. 所以,如非必要,不要使用. 对象是附有行为的数据,它在类中集中定义, 而闭包是附有数 ...

  6. Give root password for maintenance(or type control -D to continue)

    2017-09-30 18:12:08 1:错误如图,本来开机准备用一下虚拟机,就出现一个这,为啥记录一下呢,因为网上好多不是很靠谱. 原因可能是之前关闭虚拟机的时候不小心出现异常了: 2:解决办法: ...

  7. mysql存储过程的学习(mysql提高执行效率之进阶过程)

    1:存储过程: 答:存储过程是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理:存储过程存储在数据库内,可以由应用程序调用执行,而且允许用户声明变量以及进行流程控制,存储类型可以接受 ...

  8. JavaScript数组去重的6个方法

    方法一无需思考,我们可以得到 O(n^2) 复杂度的解法.定义一个变量数组 res 保存结果,遍历需要去重的数组,如果该元素已经存在在 res 中了,则说明是重复的元素,如果没有,则放入 res 中. ...

  9. tornado中form表单验证详解

    #!/usr/bin/env python# _*_ coding:utf-8 _*_import tornado.webimport tornado.ioloopimport re class Ba ...

  10. keepalived当主节点切换时脚本通知 lvs

    脚本 在keepalived.conf中添加 mail  查看邮件 实验dr实验模型 给director 做主从 4台服务器 rip:192.168.0.103 rip2:192.168.0.104 ...