CDN根本讲授

藏宝库编辑 2024-9-21 21:08:15 40 0 来自 中国
1 CDN

近来发现我们常常听说的CDN也是边缘盘算里的一部分。那么说到CDN,好像只知道它中文叫做内容分发网络。那么详细CDN的原理是什么?可以或许为用户在欣赏网站时带来什么利益呢?办理这两个问题是本文的目的。
1.1 CDN概念

CDN全称叫做Content Delivery Network,中文叫内容分发网络
现实上CDN这个概念是在1996年由美国麻省理工学院的一个研究小组为改善互联网的服务质量而提出的。那么它到底是怎么改善互联网服务质量的呢?
1.2 原理分析

我们知道,当我们利用域名访问某一个网站时,现实上就是将哀求包(以Http哀求为例)通过网络传输给某台服务器,好比访问www.baidu.com时:

  • 起首剖析出该域名所对应的IP所在(DNS域名剖析)
  • 然后将Http哀求包通过网络路由到IP所在所对应的服务器
我们通常说服务器的IP所在,这着实不太准确,IP所在是和网卡绑定的,一个服务器可以有多个网卡,也就是大概有多个IP所在。
我们先来看第一步:域名剖析
1.3 域名剖析

剖析域名分为两种:

  • 将一个域名剖析为一个IP所在
  • 将一个域名剖析为别的一个域名
着实剖析思绪不难,我们在域名服务商购买了一个域名之后,必要去映射一个IP所在,可以用Map来体现这个关系:{域名:IP}
同时我们也可以给某个域名取一个别名,好比www.baidu.com取一个别名test.baidu.com,这种关系也可以用Map来体现:{域名:别名}。这里的别名专业一点叫做CNAME,信托大家对这个词有点眼熟,它就是这个意思。
而域名剖析,现实上就是剖析出指定域名所对应的IP所在,大概该域名的一个CNAME
而域名剖析是由DNS体系来负责的,DNS服务担当外部哀求,从哀求里提取域名,假如这个域名对应的是IP所在,则返回这个IP所在,假如这个域名对应的是CNAME,则继承查找CNAME域名的IP所在,然后将该所在返回给哀求发送者。
哀求发送者拿到IP所在之后,完成真正的哀求调用。
现实上DNS体系黑白常巨大的,这里不去多讲,大家把它看成一个黑盒子,这个盒子的作用就是上文所形貌的,这里用一个简单的图来体现一下。
没有CNAME的环境:


有CNAME的环境:


特别留意:在有CNAME的环境下,我们可以发现,CNAME现实上在域名剖析的过程中负担了中心人(大概说署理)的脚色,这是CDN实现的关键。
1.4 CDN原理

起首CDN是为了改善互联网的服务质量的。普通一点说着实就是进步访问速率。
假设百度网站现在只有一台服务器,现在有一个人在上海访问百度,假如该服务器也在上海,那么通常来说访问比力快,假如该服务器在拉萨,那么相对而言访问就比力慢了。那么这个问题的根本原因是网络传输是依靠于网线的,网线越长,那么时间肯定就越久。
那么怎么办理这个问题呢?着实思绪很简单,百度在天下各地都摆设千篇同等的服务器就行了,专业一点叫冗余。
思绪很简单,但实现照旧比力贫困的,服务器上的资源分为两种:静态资源与动态资源

  • 静态资源:这种资源通常是很少变动的,好比图片,视频,css,javascript等等
  • 动态资源:这种资源差别用户差别时候访问通常是不一样的,好比ftl,jsp等等。
那么假如百度要在天下各地都摆设服务器,假如说每个服务器上都有雷同的动态资源,那么大概还必要设置相应的数据库,由于动态资源所记载的信息通常会存储在数据库中,那么这就涉及到了数据同步等等问题,这会导致资本很高,这种做法专业一点着实就是集群,而现在来说集群架构最多是三地五中心,不是说天下多地集群不大概,紧张是资本太高。
那么有没有资本比力低的方式呢,有,就是在每个服务器上只摆设静态资源,静态资源通常不涉及到数据库,以是资本也比力低,而且也能进步用户的访问速率。
到这里,先容了CDN想要到达的目的,那么怎么到达这个目的呢?
现在假如要比力CDN体系,我们可以思量两点:

  • CDN体系中存储静态资源服务器的性能以及网速怎么样。
  • CDN体系中天下以致举世范围内服务器节点的数目以及摆设环境。
第一点很好明确,第二点大家应该也能明确了,假如静态资源的服务器节点许多,可以或许让每个用户在访问这些静态资源时都不消“跑很远的旅程”才气获取到,那么自然这是CDN体系的优点。
有公司看到了这种需求,以是现在着实有许多CDN供应商,好比阿里,腾讯等等都有自己的CDN服务。只要你自己的体系接入了这些大厂所提供的CDN服务,你把自己的静态资源传给CDN服务,那么这些静态资源将主动的分布到全天下各地去。
好,那么现在的问题是,用户在访问静态资源时也是通过域名来访问的,域名会被剖析成某一个IP所在,关键的问题就是,DNS体系怎么在做域名剖析时,剖析出来一个离用户近来的一个IP所在呢。
平凡的DNS体系是做不到的,必要一个特别的DNS服务器,这个特别DNS必要知道 :

  • 用户当前所在位置
  • 还必要知道用户现在访问的这个域名对应哪些IP所在,以及这个IP所在分别在那里
对于第一个问题好办理,直接从用户哀求里提取出用户的ip所在,好比这个ip所在被剖析为北京电信、上海移动等等。
第二个问题由谁来办理,我们现在思量的是CDN,CDN提供商肯定知道他们公司在哪些地方摆设了呆板以及它们的IP所在,以是这个问题只能有CDN提供商来办理,CDN提供商会提供这个特别的DNS服务器,我们叫做 CDN专用DNS服务器。
如许的话,只要用户在利用某个域名访问静态资源时,假如用户直接设置自己电脑的DNS所在为CDN专用DNS服务器。那么自然办理了问题,但是我们必要思量的时,我们不能要求天下上全部的用户都去修改自己电脑的DNS所在。以是这个时间就要利用DNS中的CNAME了。
用户利用某个域名来访问静态资源时(这个域名在阿里CDN服务中叫做“加速域名”),好比这个域名为image.baidu.com,它对应一个CNAME,叫做cdn.ali.com,那么平凡DNS服务器(区别CDN专用DNS服务器)在剖析image.baidu.com时,会先剖析成cdn.ali.com,平凡DNS服务器发现该域名对应的也是一个DNS服务器,那么会将域名剖析工作转交给该DNS服务器,该DNS服务器就是CDN专用DNS服务器。CDN专用DNS服务器对cdn.ali.com进行剖析,然后依据服务器上记载的全部CDN服务器所在信息,选出一个离用户近来的一个CDN服务器所在,并返回给用户,用户即可访问离自己近来的一台CDN服务器了


转载于:https://mp.weixin.qq.com/s/t_cRSd-MW2zyuUPgXkT5uw
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 10:52, Processed in 0.177312 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表