首页 > 自考资讯 > 自考知识

cdn入门,cdn 技术

头条共创 2024-07-05

我们专注于Java领域的高质量技术。欢迎关注来源:1:25 作者:1:25

最近在研究边缘计算,发现经常听到的CDN也是边缘计算的一部分。因此,大多数人只知道CDN中文称为内容分发网络。那么CDN 背后的原理到底是什么?它如何让用户在浏览网站时受益?本文的目的就是解决这两个问题。

CDN概念

CDN的正式名称是“Content Delivery Network”,中文称为内容分发网络。

事实上,CDN的概念是由美国麻省理工学院的一个研究团队于1996年提出的,旨在提高互联网的服务质量。那么如何提高互联网服务质量呢?

原理分析

当您使用域名访问网站时,例如“www.baidu.com”,实际上会通过网络向服务器发送请求包(例如HTTP请求)。 ”:

它首先解析域名对应的IP地址(DNS域名解析),然后将Http请求包通过网络路由到IP地址对应的服务器。这通常实际上称为“服务器的IP 地址”。 IP 地址不准确。网卡已绑定。这意味着您的服务器可能有多个网卡。我们先看第一步:域名解析

域名系统

域名解析有两种类型。

将域名解析为IP地址并不困难。从域名服务商处购买域名后,您需要映射IP地址。我们可以使用Map 来表示这种关系:{域名:IP}。

同时,您还可以为特定域名指定别名。例如,“www.baidu.com”的别名为“test.baidu.com”。这种关系也可以用一个名为{domain.名称:别名}。这里的别名在技术上称为CNAME,我相信每个人都熟悉这个术语,但这就是它的意思。

域名解析实际上就是解析给定域名对应的域名的IP地址或CNAME。

DNS系统负责域名解析。 DNS 服务接受外部请求并从请求中提取域名。

如果域名对应IP地址,则返回IP地址。如果域名对应于CNAME,则查找CNAME 域名的IP 地址,并将该地址返回给请求发送者。一旦请求发送者有了IP地址,实际的请求调用就完成了。

事实上,DNS系统非常庞大,这里我们不详细讨论。该框的功能如上所述。

如果您不使用CNAME:

CNAME 5b421e385f524796857f9b4134ffc694~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720724509&x-signature=I4muibzrgqdZ45ppyxtPwMDkqfE%3D

be15c01ce2d44d43b8db939113c51f17~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720724509&x-signature=YGDg49HZj3j5TOfm4b4e59awTbw%3D 特别说明:就CNAME而言,我们看到CNAME实际上在域名解析过程中扮演了中介(或代理)的角色,这是CDN实现的关键。

CDN原理

首先,CDN提高了互联网的服务质量。简单来说,就是访问速度更快。

假设百度网站目前只有一台服务器,目前有人在上海访问百度。如果服务器位于拉萨,访问通常会更快。所以,这个问题的根本原因就是网络传输依赖于网线,而网线越长,必然需要的时间就越长。

那么我们该如何解决这个问题呢?其实百度的想法很简单:只是在全国范围内部署服务器,技术上称为冗余。

虽然想法很简单,但是实现起来还是比较繁琐。服务器上的资源有两种类型:静态资源和动态资源。

静态资源:这些资源,例如图像、视频、CSS 和JavaScript,通常很少发生变化。 动态资源:这些资源在不同用户不同时间访问时通常是不同的,如ftl、jsp等。因此,如果百度要在全国范围内部署服务器,并且每个服务器都有相同的动态资源,那么动态资源记录的信息通常会存储在数据库中,因此也需要相应的数据库配置。由于数据同步和其他问题,这种方法成本高昂。这种方法更加专业化,目前集群架构分布在多达三个位置和五个中心。主要原因是成本太高。

那么有没有更便宜的方法呢?是的,在每台服务器上仅部署静态资源。静态资源通常不包括数据库,因此它们相对便宜并且为用户提供更快的访问。

到目前为止,我们已经介绍了CDN想要实现的目标,那么我们如何实现这个目标呢?

如果你想比较CDN 系统,你可以考虑两件事:

CDN系统中存储静态资源的服务器的性能和网络速度如何? CDN系统中服务器节点的数量和部署。全国或全世界。第一点很容易理解,但第二点也是:如果你有大量静态资源的服务器节点,每个用户都可以访问它们,而不必“跑很远的距离”来获取它们。这就是CDN系统的优势。

一些公司已经认识到了这一需求,现在很多CDN提供商都有自己的CDN服务,包括阿里巴巴和腾讯。只要你自己的系统连接到这些领先厂商提供的CDN服务,并将你的静态资源传递给CDN服务,这些静态资源就会自动分布到世界各地。

现在,这里的问题是,当用户访问静态资源时,域名被解析为特定的IP地址。关键问题是DNS 系统如何解析该IP 地址。进行域名解析时,与用户分开。最新的IP地址怎么样?

常规DNS 系统无法做到这一点。您需要了解这个特殊的DNS 服务器。

用户当前位置还需要知道与用户当前访问的域名对应的IP地址以及这些IP地址所在的位置。对于第一个问题,直接提取用户的IP地址就很容易解决问题。分析该IP地址等用户请求的有北京电信、上海移动等。

第二个问题是谁来解决这个问题?目前,CDN 提供商需要知道您的公司将您的机器放置在哪里及其IP 地址,因此只需让您的CDN 提供商提供此信息即可解决此问题。专用DNS服务器称为CDN专用DNS服务器。

在这种情况下,用户直接将自己计算机的DNS地址配置为CDN-only DNS服务器,只要使用特定的域名来访问静态资源即可。这显然解决了问题,但您需要考虑到您不能要求世界上的每个用户都更改其计算机的DNS 地址。所以这个时候我们需要使用CNAME配合DNS。

例如,用户使用特定域名访问静态资源(该域名在阿里巴巴CDN服务中称为“加速域名”),则该域名为“image.baidu.com”,对应CNAME。对于“cdn.ali.com”,当常规DNS 服务器(而不是仅使用CDN 的DNS 服务器)解析“image.baidu.com”时,它首先将其解析为“Masu”。一旦发现某个域名与某个DNS服务器兼容,它就会将域名解析工作转发给CDN的专用DNS服务器——DNS服务器。 CDN专用DNS服务器解析“cdn.ali.com”,根据服务器上记录的所有CDN服务器地址信息,选择距离用户最近的CDN服务器地址,返回给用户。这允许用户访问CDN 服务器。距离用户最近的地址。最近的CDN 服务器。

e20806cd14544dc089bd382cfb4058c9~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720724509&x-signature=zNFgcajtFAt0QVXPKId2D5gzrEk%3D

总结

从上面的文章中我们可以看出CDN的实现原理依赖于DNS。我不是互联网专家,所以文章中如果有任何错误,请告诉我。

专注

只有当存在挑战时,技术才应该出现来解决特定的挑战。

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢