前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1分钟了解CDN内容分发技术

1分钟了解CDN内容分发技术

作者头像
运维部落
发布2020-04-26 15:00:41
2K0
发布2020-04-26 15:00:41
举报
文章被收录于专栏:运维部落运维部落

1分钟了解CDN内容分发技术

这是一个缓存为王的互联网世界

缓存为王

互联网从引入国内开始到现在,一眨眼已经30余年的时间了。这期间互联网的内容形态已经有万千变化。

从最开始的 hao123,yahoo, souhu 等静态新闻类网站,到现在图片、视频、直播、游戏等内容和形式富文本交互式的内容生态,已然百花齐放,即内容从静态为主,转向动态为主

优秀产品全球化,光纤入户,手机游戏对战等等,这些10年前起来还是奢望的技术,现在已经普及众生。即产品全球化,传输速率和质量受到新挑战。

以淘宝为例,为了能承载中国近14亿人,淘宝可谓淋漓尽致的发挥CDN的功用:

  • 500T的原图+500T的缩略图
  • 700亿左右的缓存图片
  • 100余CDN节点
  • 峰值流量TB级别

而这已经是几年的数据。

淘宝CDN应用

与此同行,超大流量即对电信、联通等运营商骨干网提出了新的要求,如何将产品第一时间送达终端用户,各家想尽了办法,CDN功不可没。

用户访问流程

  • 网页加速
  • 流媒体加速
  • 文件传输加速
  • 应用协议加速

CDN在这些领域时至今日,依然有着不可撼动的地位。这一些都缘由用户对于网速的追求,有数据表示:

响应时间

用户感觉

0-1s

很快

1-2s

一点点慢

2-4s

机器在工作

4-6s

先开点别的吧

>6s

网站坏了吧

CDN对我们生活有如此大影响,作为IT,了解其工作原理还有很有必要的。我们会从如下三方面着手了解。

  • CDN发展史及工作方式
  • CDN的关键技术
  • 加速新技术

1、CDN发展史及工作方式

Content Distribute Network:内容分发网络,又名Content Delivery Network(内容交付网络),旨在解决第一公里的带宽问题。

服务成功率、建连时间、时延、视听播放卡顿度、图像清晰度的好坏决定互联网应用的生死。

  • CDN的用户终端访问数据走向
代码语言:javascript
复制
用户 -> 互联网 -> 服务商
  • CDN的用户终端访问数据走向
代码语言:javascript
复制
用户 -> 互联网 -> CDN 或 服务商

1.1 CDN的工作原理

CDN工作原理

CDN的最终目标是尽可能将数据放离用户尽可能近的地方。 了解CDN的工作原理有助于理解其如何实现该想法:

  • DNS解析地址为CNAME指向的CDN专用dns服务器
  • CDN返回全局负载均衡设备IP
  • 用户向全局负载均衡设备发起请求
  • 全局负载均衡设备根据用户IP地址,以及用户请求内容,选择用户所属区域的负载均衡设备,告诉用户向这台设备发起请求
  • 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务。选择依据包括:用户IP,用户距离,请求内容,服务器负载情况
  • 全局负载均衡设备把服务器的IP地址返回给用户
  • 用户向缓存服务器发起请求,缓存服务器返回用户请求内容。如果缓存用品没有请求内容,则依次向上级缓存服务器追溯,直至将网站的源服务器拉到本地。

凡对互联网有一定基础,理解起来都不是难事,但事实上,CDN的资源调度和实施还是存在一定实现复杂度。看了CDN逻辑框架及相关服务接口,会有所体会。

CDN逻辑框架及相关服务接口

1.3 CDN可承载的内容

静态内容是早期 CDN 主要承载的内容,以文字、图片、动画等内容为主。随着互联网不断演化,近年来,流媒体、视频、SSL认证、HTTPS加速等也已经成为CDN的业务范畴。

  • 网页加速
  • 流媒体加速
  • 文件传输加速
  • 应用协议加速

不同内容的加速方式也有差别:

流媒体CDN与web

应用技术也多种多样,主要还是以开源技术为主:

  • squid
  • quagga
  • lvs
  • keepalived
  • nginx
  • lua

1.4 内容接入方式

  • 内容存储接入 源站发布内容前,提前把内容注入到CDN。业务系统会期望用户访问的请求指向CDN,引导用户终端直接向CDN发起请求,无需从源站获取内容,提升终端用户体验
  • 内容预注入 方式和内容存储接入类似,但不进行内容长久存储,只会把热点内容临时缓存。根据热点智能增删
  • 实时回源 事先不做缓存,当用户发起请求时,实时从源站获取,随即分发至站点。终端用户的再次请求会将提速

1.5 用户请求调度

  • 全局 根据用户所在地理位置不同,在各节点之间分析决策,最终将用户请求转移至整个网络中距离用户最近的节点。主要基于DNS调度和基于应用层重定向两种方式
  • 本地 局限在一定地理范围内,更注重一定区域内服务器健康和负载状况。将请求分发给状态最佳,最轻闲的服务器,充分利用现有设备,有效解决用户请求过多引发系统过载的问题。

1.6 内容分发

  • PUSH 一种智能主动的分发策略:由CDN管理系统主动发起。将内容从源站或中心内容库主动分发至边缘节点。主要协议有HTTP,FTP等。
  • PULL 被动策略,根据用户请求,边缘CDN节点向中心节点或源站发起内容请求的过程。
  • 混合

2、CDN的关键技术

CDN的关键技术我们主要关注:

  • 用户统一ID
  • 用户请求调度规则
  • 内容缓存技术
  • 服务鉴权技术

2.1 用户统一ID

针对不同业务需要有唯一ID标识。在CDN总体架构设计之初就需考虑到. 有如下两种思路:

  • 在内容进入CDN之前按规律统一编码
  • 不对内容编码,而是针对每个接入的业务编码

如果出现重复ID,CDN会把错误的内容发给用户

2.2 用户请求调度规则

  • 智能DNS调度 普通DNS只解析IP地址,而智能DNS系统会判断用户源IP地址,分配最优最近资源的IP地址给用户。
  • 基于DNS重定向调度 将域名解析到CDN友商,由友商根据自己的资源情况完成用户的最优资源调度
  • 基于HTTP重定向 301,302,meta fresh。相比DNS智能解析,更精准、更精细、更了解用户。但也HTTP重定向需多一步解析,链路长,GLSB可能会成为瓶颈,核心设备承压大等问题

2.3 内容缓存算法

  • Least Frequrently Used: 最少频率使用
  • Low Inter-Reference Recency Set
  • Least Recently Used: 最近最少使用
  • Leaste Recently Frequently Used
  • Frequently Based Replacement

2.4 服务鉴权技术

对于友商蹭流量的行为给予严厉谴责,技术上严厉打击,常用打击方式:

  • 判断引用地址
  • 用户身体验证
  • 使用cookies携带验证信息
  • 使用POST
  • 使用验证码
  • 使用动态密钥
  • 在内容中随机插入数据加密
  • 打包下载

3、加速新技术

互联网不断成熟的过程,对行业也做了精细化分工。绝大多数应用均分为前后端,其中前端最接近用户。作为接近用户的第一层,FEO的优化显得尤为重要。

3.1 前端优化技术FEO(Front-End Optimization)

  • 合并HTTP请求
  • 使用浏览器缓存 cache-control , expires控制
  • 压缩组件减少通信传输
  • 使用外部JavaScript和CSS HTML文档通常不会被配置为可缓存。外部的可以缓存到本地。
  • 减少COOKIES传输
  • 避免CSS表达式

3.2 动态加速技术

动态内容CDN不会缓存,但请求如果还到CDN再回源,会有传输延迟和数据传输失败的问题。

动态加速技术解决方案:

  • 差异化缓存
  • 传输加速技术(减少源到用户的时延和带宽)
  • 动态内容加速技术(提高服务端生成动态网页的性能),主要有预取技术DUP(Data Update Propagation)和DC2CP(Dynamic Content Caching Protocol)技术

加速技术主要有:

  • ESI片段缓存
  • CDE增量编码

3.2 传输加速技术

利用CDN的站点多的优势,帮助终端用户利用CDN链接,找到触达源站的最优路径。

3.3 SDN调度技术

控制平面和数据转发平面分离,不再耦合在一起。优势:

  • 整个网络状态均由SDN控制器收集
  • 网络管理控制通过软件编程实现,灵活且无需关注底层实现细节。

3.4 P2P流媒体技术

借用终端用户宽带,效果待估量。用户隐私泄密,安全隐患,带宽被占满,消耗较多,用户感知较大会刻意关闭软件会失效等问题,都被一一验证。

3.5 应用协议加速技术

  • 广域网加速
  • SSL应用加速 硬件加解密
  • HTTPS加速 拆分HTTP请求
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1分钟了解CDN内容分发技术
    • 1、CDN发展史及工作方式
      • 1.1 CDN的工作原理
      • 1.3 CDN可承载的内容
      • 1.4 内容接入方式
      • 1.5 用户请求调度
      • 1.6 内容分发
    • 2、CDN的关键技术
      • 2.1 用户统一ID
      • 2.2 用户请求调度规则
      • 2.3 内容缓存算法
      • 2.4 服务鉴权技术
    • 3、加速新技术
      • 3.1 前端优化技术FEO(Front-End Optimization)
      • 3.2 动态加速技术
      • 3.2 传输加速技术
      • 3.3 SDN调度技术
      • 3.4 P2P流媒体技术
      • 3.5 应用协议加速技术
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档