CDN(Content Delivery Network, 内容分发网络)是为加快网络访问速度而建立在现有网络之上的分布式网络,它依靠部署在全球各地边缘节点的服务器群,通过负载均衡,内容发布,内容管理和内容存储的功能,由CDN服务器集群分担源站点服务器集群的压力,使用户可以就近获取已缓存的访问资源,避免网络拥堵,加快访问速度。与此同时,CDN是基于DNS解析进行管理的,其利用DNS技术和HTTPS协议确保了传输内容的安全性,保障用户的访问内容的安全性。
CDN的访问过程/加速原理
CDN的基本原理是依靠部署在各个区域大量缓存服务器的响应。当用户访问网站时,不需要访问站点的DNS服务器,而是利用全局负载技术将用户的请求直接指向最近的缓存服务器上,且保证服务器是正常工作的,访问的路径和内容是传输安全的,由此缓存服务器直接响应客户的请求。访问缓存服务器可以尽可能地避免网络拥堵状况,使传输的内容更加迅速和稳定。
CDN的访问过程依赖于DNS的重定向技术,即将用户定向至地理位置上距离其最近的边缘CDN节点服务器上。用户首先向根DNS服务器发送域名解析请求,根DNS服务器向授权DNS服务器发送域名解析请求,请求中包含了根服务器的IP地址,当域名解析服务器/根DNS服务器接受到一个CNAME类的DNS记录,域名解析服务器会重定向到CDN节点网络层中的智能CDN域名服务器上,CDN域名服务器将进行一系列的智能解析操作,根据本地DNS域名解析服务器的IP地址,分析各个网络线路的拥堵情况和负载情况,将最适合的CDN节点服务器IP地址返还给根DNS服务器,用户接受到CDN节点的IP地址后,直接向CDN节点服务器发送请求获取网站内容(图1, CDN的加速原理)。
注:
步骤2与步骤3,若本地DNS中的数据缓存过期或已经失效,本地服务器向根服务器发出请求,根服务器返回可查询的授权DNS服务器地址;若本地DNS服务器缓存中可直接查询到IP地址,无需向根服务器发出请求。
步骤10与步骤11,如果CDN节点并没有用户所需的缓存资源或是资源已经失效,节点将向源服务机集群发出请求,CDN节点将结合用户定制的缓存策略将源服务器集群返回的资源缓存至CDN节点,再返回内容给用户;若访问的CDN节点可调取缓存资源,将直接返回用户访问内容。