提示网站速度方法之CDN 与 DNS搭配技巧
齐普夫定律 揭示了一个引人深思的现象:最受欢迎的电影的流行程度是排名第7名电影的7倍。 这个定律表示,在大段文字中,某个字的使用频率与其排名成反比关系。比如,排名第 40 的常用字的使用次数通常是排名第 80 的常用字的两倍多,是排名第 120 名常用字的三倍多。 这种分布形式意味着受欢迎的项目数量较少,而不受欢迎的项目数量较多。 这一现象在多个领域都有体现,如城市人口和财富的分布、足球员的名气和奖金、书籍的销量等等。在互联网上,80% 流量通常来自于 20% 网站,而其他 80% 网站则只能分享剩余 20% 流量。 流量的倾斜 互联网上的流量分布呈现出明显的倾斜。在 1994 年之前,大部分流量主要用于传统文件传输和电子邮件。随着 Web 的出现,流量成倍增长。大约在 2000 年左右,共享音乐开始占据大量流量,现在视频网站占据大多数流量。 流量倾斜的一个显著问题是,流行网站吸引了大部分流量。然而,没有一台单独的计算机能够承载所有流行网站的运行。如果依赖单一服务器,一旦发生故障,就会导致数百万用户无法访问网站。为了解决这个问题,内容分发系统应运而生。 内容分发网络 内容分发网络(CDN,Content Delivery Network)是一组分布在不同地点的节点服务器,这些节点存有所请求页面的副本,并指示客户端使用附近的节点作为服务器。 CDN 网络分发方式遵循类似「树结构」模式,源服务器将内容副本分发到 CDN 中的其他节点,这些节点位于不同地区,比如悉尼、波士顿和阿姆斯特丹。 客户端可以从就近的 CDN 节点获取页面,因此悉尼客户端会获取存储在悉尼节点的页面副本,而不需要直接从源服务器获取,即使源服务器位于欧洲。 CDN 的核心是 DNS 方法,它允许不同客户端通过不同的服务器访问相同的网站,从而提高了访问效率和速度。 随着客户端需求的增加,可以增加更多的 CDN 节点。当 CDN 节点同级分发流量遇到瓶颈时,可以增加树的层次,这种树结构的扩展是有效的。源服务器不会超载,因为它通过 CDN 与客户端进行通信,不需要对每个客户端进行响应。 每个客户端都能获得良好的访问体验,因为它们从最近的服务器获取页面,连接路径越短,速度越快,并且遇到拥塞的可能性越小。 DNS 重定向(DNS redirection) 假设一个客户端需要获取 https://www.cdn.com/page.html 页面的信息。 首先,浏览器会通过 DNS 解析将 www.cdn.com 解析为一个IP地址,通过 DNS 协议完成,浏览器会获取到 cdn.com 域名服务器的 IP 地址。 接着,浏览器会连接这个域名服务器,请求它解析目标地址,这个域名服务器通常作为 CDN 节点运行,它的工作方式与传统的 DNS 解析有所不同,它并不会为每个请求返回相同的 IP 地址,而是根据发出请求的客户端的 IP 地址返回不同的查询结果。 它会选择并返回最靠近客户端的 CDN 节点的 IP 地址,这样客户端就可以通过最优路径连接到 CDN 网络中最适合它的节点,从而获得最佳的服务质量和性能。 什么是最近节点? 定义最近节点时,它并不完全与地理位置相关。将客户端映射到某个节点时,至少考虑以下两个因素: 网络距离:客户端应该通过一条距离短、网络容量高的路径连接到节点,以实现快速下载。CDN使用事先计算的网络地图,将客户端的 IP 地址转换为网络地址。选定的节点要综合考虑网络路径长度和传输中拥塞情况。 当前节点的负载情况:如果当前节点已经超载,传输速度会变慢,类似于 Web 服务器超载的情况。我们应该避免使用负载过重的节点,并通过延迟均衡整个连接点的负载来确保服务稳定性。因此,一些客户端可能会映射到稍微远一点但负载较轻的节点上。 DNS 重定向在两个层面体现着重要作用:一是将客户端映射到就近的网络位置,以减少访问延迟;二是将负载分布在该位置上的各个节点,以确保整个 CDN 网络的平衡和稳定运行。 通过使用 CDN,一个网站能够提供超大规模的内容服务,节点可以部署并分布在世界各地的不同国家和地区。 内容优化:ChatGPT图片来源:Pixabay内容来源:《计算机网络》