三分钟了解DSP(网络篇)——DNS(上)

DSP 发布在 海盗号 23164

浏览器是怎么找到dsplabs.io的?

DNS是什么?

当前的互联网基础架构是以TCP/IP协议为核心,不同的服务之间用IP地址来互相交互,每个在网络中的服务器都会有属于自己的IP地址,比如192.168.1.1或者fe80::d0f1:f2ff:feba:3a88,可以想象到,在网络刚诞生的时候,这种命名方式非常符合IT工程师的思维方式。在开展更多复杂的业务时,人们发明了DNS(Domain Name System),来帮助人们无需记忆IP地址也可以方便的访问网络上的资源。

简单的说DNS 是一个分布式的树状命名系统,一个去中心化的分布式数据库,存储着从url到 IP 地址的映射,人们通过特定的字符串(url)就可以找到对应的IP地址。它就像互联网上的电话本,当你的浏览器想找到Google时,DNS在自己的数据库中会找到Google对应的IP地址,然后告诉浏览器它该向哪个地址发出请求。

 DNS一般是怎么工作的?

其实DNS的工作方式比上面提到的过程会稍微复杂一些。在整个互联网中国分布着数以几十亿记的服务器,域名系统通过规定的格式来区别不同类型的地址类型,这些类型又被分散到目录式的DNS网络中进行存储,扩散,解析,下面我们就用一个简单的例子来解释下,当你输入dsplabs.io点击回车后发生了什么。

1. 本地的 DNS 客户端向服务器发出解析dsplabs.io 域名的请求

2. 解析服务器首先会向附近的根DNS 服务器请求顶级域名DNS 服务io的地址

3. 根DNS服务返回顶级顶级域名 io 的服务地址

4. 解析服务器向顶级域名服务请求dsplabs.io 域名解析服务

5. 顶级域名服务返回dsplabs.io 对应的命名服务地址

6. 向命名服务请求dsplabs.io的解析服务,

7. 命名服务器根据记录向客户端返回域名对应的 IP 地址

8. 解析服务器向客户端返回具体IP地址

从上面的流程我们可以发现,DNS是一种类似目录型的服务,查找IP地址的过程就像在一本通讯录中找到电话号码。实际上一个域名有可能对应很多个IP地址信息。作为一种每天会被属于百亿次调用的服务,DNS在互联网中以一种中心化治理,分布式部署的方式进行运作。域名具有可读性,因此人们设计了一套命名规则规范地址的组成,并要求DNS地址在中心化服务器中注册,同时地址拥有自己的有效时间,超过有效时间的域名就不能被正常解析。互联网域名系统由名称注册机构负责维护分配由组织和国家/地区的顶级域在 Internet 上进行管理。 顶级域名主要由英文缩写组成,比如com,edu, net,gov,cn等等。

每次请求地址时也不都是需要上面八个步骤才能请求到真实的IP地址,那样上网时延时会特别明显,在DNS服务器中,都会对最近访问的数据进行缓存,好比导航地图的缓存,不用每次去请求上一级DNS服务,只在本地查找就直接返回解析内容,大大提高了服务效率。这里我们要提到TTL(Time To Live)参数,它告诉本地DNS服务器,域名缓存的最长时间。一般解析默认的TTL是10分钟,10分钟的含义是本地DNS服务器对于域名的缓存时间是10分钟,10分钟之后,服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述流程。因为互联网上的DNS服务器是按照目录层次安排的,每一个域名服务器只对域名体系中的一部分进行管辖,因此每个服务器内部每天都在进行域名数据的同步,缓存,更新操作。

本文链接:https://www.8btc.com/media/618841
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册