从DNS域名系统到CDN内容分发网络
- DNS
- 什么是DNS
- 直接使用DNS的缺点
- CDN
- CDN加速过程
- 使用CDN的优势
DNS
什么是DNS
输入域名www.baidu.com后,浏览器先检查缓存和本地Host文件,看有没有对应的ip地址,有则直接使用,没有就会向本地DNS服务器发送请求询问域名对应ip地址,本地DNS服务器也是先查缓存,没有的话则向根域名服务器询问.com顶级域名服务器的ip地址,根域名服务器返回.com顶级域名服务器的ip地址后,本地DNS向.com顶级域名服务器询问baidu.com权威域名服务器地址,顶级域名服务器返回baidu.com权威域名服务器地址后,本地DNS向baidu.com权威域名服务器询问www.baidu.com的IP地址,然后baidu.com权威域名服务器会返回www.baidu.com的ip地址,然后DNS将该ip地址返回给主机。
需要注意的是,静态DNS是事先配置的,它总是返回相同的IP地址,而动态DNS则会考虑到地理位置,负载均衡等因素为不同用户返回不同的IP地址,从而保证响应速度和服务器负载的正常
直接使用DNS的缺点
1.跨地域访问时延迟仍然会很大(服务器数量有限,可能只有几个区域有服务器)
2.集中访问源站服务器,服务器负载很大
CDN
内容分发网络(Content Delivery Network,CDN)是在现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性能的服务节点都会按照一定的缓存策略存储您的业务内容,当您的用户向您的某一业务内容发起请求时,请求会被调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。
主要是用来加速访问的
CDN加速过程
这里直接引用该文章:CDN简介
假设您的业务源站域名为 www.test.com ,当域名接入 CDN 开始使用加速服务后,您的用户发起 HTTP 请求,实际的处理流程如图所示:
- 用户向 www.test.com 下的某图片资源,如 1.jpg 发起请求,先要向 Local DNS 发起域名解析请求;
- 当 Local DNS 解析 www.test.com 时,会发现配置了 CNAME,域名变为www.test.com.cdn.dnsv1.com(CNAME的作用是将原域名请求跳转到调度器),访问该域名时请求会发送至 Tencent DNS(GSLB),GSLB为腾讯云自主研发的调度体系,会为请求分配最佳节点 IP(这个IP对应的是某个CND节点);
- Local DNS 获取 Tencent DNS 返回的解析 IP;
- 用户测获取解析 IP;
- 用户向获取的 IP 发起对资源 1.jpg 的访问请求;
- 若该 IP 对应的节点缓存有 1.jpg,则会将数据直接返回给用户(10),此时请求结束。若该节点未缓存1.jpg,则节点会向业务源站发起对 1.jpg 的请求(6、7、8),获取资源后,结合用户自定义配置的缓存策略(可参考用户指南中缓存时间设置章节内容),将资源存储(9),并返回给用户(10),此时请求结束。
使用CDN的优势
缓存技术:CDN节点会缓存一些内容,一方面可以让用户离它们最近的节点获取内容,另一方面这些CDN节点也可以保障整体的可靠性(一个出问题还可以从其他的获取)。
负载均衡(加强):当源服务器面临突然的流量高峰时,CDN可以通过其全球节点分摊流量,避免源服务器被淹没。
此外还提供文件压缩,连接优化等加速访问速度,还可以通过一些技术提高系统安全性。