一、什么是 cdn
cdn的全称是(content delivery network),即内容分发网络。其目的是通过在现有的internet中增加一层新的cache(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
简单的说,cdn的工作原理就是将您源站的资源缓存到位于全球各地的cdn节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验
cdn节点
cdn对网络的优化作用主要体现在如下几个方面
解决服务器端的“第一公里”问题
缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
减轻了各省的出口带宽压力
缓解了骨干网的压力
优化了网上热点内容的分布
二、cdn工作原理
传统访问过程
传统访问过程
由上图可见,用户访问未使用cdn缓存网站的过程为:
1.用户输入访问的域名,操作系统向 localdns 查询域名的ip地址。
2.localdns向 root dns 查询域名的授权服务器(这里假设localdns缓存过期)
3.root dns将域名授权dns记录回应给 localdns
4.localdns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后,回应给 localdns
6.localdns 将得到的域名ip地址,回应给 用户端
7.用户得到域名ip地址后,访问站点服务器
8.站点服务器应答请求,将内容返回给客户端。
cdn访问过程
cdn访问过程
通过上图,我们可以了解到,使用了cdn缓存后的网站的访问过程变为:
1.用户输入访问的域名,操作系统向 localdns 查询域名的ip地址。
2.localdns向 root dns 查询域名的授权服务器(这里假设localdns缓存过期)
3.root dns将域名授权dns记录回应给 localdns
4.localdns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后(一般是cname),回应给 localdns
6.localdns 得到域名记录后,向智能调度dns查询域名的ip地址
7.智能调度dns 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的cdn节点ip地址回应给 localdns
8.localdns 将得到的域名ip地址,回应给 用户端
9.用户得到域名ip地址后,访问站点服务器
10.cdn节点服务器应答请求,将内容返回给客户端。(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)
通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用dns(域名解析)来引导用户来访问cache服务器,以实现透明的加速服务。 由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问是最简单有效的方式。
cdn网络的组成要素
对于普通的internet用户,每个cdn节点就相当于一个放置在它周围的网站服务器。 通过对dns的接管,用户的请求被透明地指向离他最近的节点,节点中cdn服务器会像网站的原始服务器一样,响应用户的请求。 由于它离用户更近,因而响应时间必然更快。
从上面图中 虚线圈起来的那块,就是cdn层,这层是位于 用户端 和 站点服务器 之间。
智能调度dns(比如f5的3dns)
智能调度dns是cdn服务中的关键系统。当用户访问加入cdn服务的网站时,域名解析请求将最终由 “智能调度dns”负责处理。它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务。同时它需要与分布在各地的cdn节点保持通信,跟踪各节点的健康状态、容量等信息,确保将用户的请求分配到就近可用的节点上。
缓存功能服务
负载均衡设备(如lvs,f5的big/ip)
内容cache服务器(如squid)
共享存储
三、名词解释
cname记录(cname record)
cname即别名( canonical name );可以用来把一个域名解析到另一个域名,当 dns 系统在查询 cname 左面的名称的时候,都会转向 cname 右面的名称再进行查询,一直追踪到最后的 ptr 或 a 名称,成功查询后才会做出回应,否则失败。
例如,你有一台服务器上存放了很多资料,你使用docs.example.com去访问这些资源,但又希望通过documents.example.com也能访问到这些资源,那么你就可以在您的dns解析服务商添加一条cname记录,将documents.example.com指向docs.example.com,添加该条cname记录后,所有访问documents.example.com的请求都会被转到docs.example.com,获得相同的内容。
cname域名
接入cdn时,在cdn提供商控制台添加完加速域名后,您会得到一个cdn给您分配的cname域名, 您需要在您的dns解析服务商添加cname记录,将自己的加速域名指向这个cname域名,这样该域名所有的请求才会都将转向cdn的节点,达到加速效果。
dns
dns即domain name system,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认ip地址,域名与ip地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的www.baidu.com会自动转换成为220.181.112.143。
常见的dns解析服务商有:阿里云解析,万网解析,dnspod,新网解析,route53(aws),dyn,cloudflare等。
回源host
回源host:回源host决定回源请求访问到源站上的具体某个站点。
例子1:源站是域名源站为www.a.com,回源host为www.b.com,那么实际回源是请求到www.a.com解析到的ip,对应的主机上的站点www.b.com
例子2:源站是ip源站为1.1.1.1, 回源host为www.b.com,那么实际回源的是1.1.1.1对应的主机上的站点www.b.com
协议回源
指回源时使用的协议和客户端访问资源时的协议保持一致,即如果客户端使用 https 方式请求资源,当cdn节点上未缓存该资源时,节点会使用相同的 https 方式回源获取资源;同理如果客户端使用 http 协议的请求,cdn节点回源时也使用http协议。
责编ajx
LoRaWAN网络技术_物联网技术为人类的未来带来的重要改变
iOS 14的与以前的版本速度有什么区别
华为被转运至美国是什么梗?华为鸿蒙系统把传说化奇迹?
机器人行业行业似乎一片繁荣,但背后的真相是怎样的呢?
Xilinx可编程逻辑器件设计与开发(基础篇)连载47:Spartan
一文详谈CDN的工作原理和应用
科大讯飞智能演示器使用nRF52810 SoC实现无线远程控制、记录配音并执行语音命令
积分超市进入工地只为安全生产作业
MediaTek推出最新5G芯片天玑700
简易脉搏血氧计:使用简单,功能强
阀门锁的选择以及日常护理常识的介绍
基于stm32实现DMX512协议发送与接收详解
奥士康:泰国基地一期已封顶,预计明年Q2试产
在变革与自救中 彩电市场必将迎来新一轮的清洗
车载无线充电技术与标准化研究
OSVR将获得Steam平台的支持 扩展大量VR内容的来源
secunet的新产品可使汽车电子部件安全测试自动化
华为终端拓展云服务生态:10亿支持开发者 加快全球化
京东方携前沿显示技术亮相CES 2024
切粒机滚刀电路图原理是什么