CDN原来是这样的
不使用CDN的话会存在哪些问题?
- 资源最终是通过物理层网络线路和设备传输的,所以客户端和服务器相距越远,网站打开速度就越慢。
为什么会想到CDN呢?
- 就好比我在广州,要买北京的一件物品,恰好广州的仓库就有,那我是不是就可以很快收到货了呢。回到网络上,用户是通过域名访问网站的,那能不能通过DNS服务器来实现这个功能呢?
回顾一下DNS原理:
- 客户端访问某个域名的时候,会先查找本地的 hosts文件,如果能查到 IP 就直接访问。
- 否则会向本地DNS服务器发请求,这个是移动、电信等运营商提供的每个城市都有的DNS服务器。由它向域名服务器发送解析域名的请求,然后把结果返回给客户端。
- 域名是分层解析的。由根域名服务器、顶级域名服务器、权威域名服务器三层。比如 image.baidu.com 会先向根域名服务器发请求查询 com 的顶级域名服务器的 ip,然后再向 com 的顶级域名服务器查询 image.baidu.com 的权威域名服务器的 ip。查询到 权威域名服务器 之后,任意层次的域名都会在这里解析。
CDN的目的和功能:
- 为了加快网站打开速度,我们会使用CDN服务。而且要明确,它并不是一个网络协议,只是基于DNS协议实现的加速功能的网络。
原理:
- 域名的权威DNS服务器把请求转给CDN的负载均衡的DNS服务器。然后根据 IP 返回不同城市的DNS服务器,再根据负载来选择一台就近的服务器的 IP 返回。
结果:
- 客户端能从最近的负载最小的服务器拿到资源。
使用场景:
- CDN网络的建设成本还是很大的,只有大公司会自建,一般我们会买三方服务,而且国内国外的CDN是分开的。