当前的互联网基础架构是以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网络中进行存储,扩散,解析,下面我们就用一个简单的例子来解释下,当你输入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服务器是按照目录层次安排的,每一个域名服务器只对域名体系中的一部分进行管辖,因此每个服务器内部每天都在进行域名数据的同步,缓存,更新操作。
以太坊域名服務 ENS 引熱議,其空投模式哪些值得借鑒?
三分鐘學會如何將 DNS 域名導入 ENS?
以太坊域名系统 ENS 完全集成 DNS 域名空间,允许将任何「.com」域名关联到以太坊地址
改变世界的全球网络:Visa、DNS、Sabre/Amadeus和区块链
MyEtherWallet遭遇DNS攻击 用户报告丢失资金
网页钱包MyEtherWallet用户遭DNS服务器劫持,价值15万美元资金被盗 ...
直接注册顶级域名?了解去中心化域名系统 Handshake
基于波卡的 DNS NFT 域名市场 Polka.Domain 完成 40 万美元私募轮融资,将空投 20 万枚 NAME 代币
多个 DeFi 协议的网站被劫持,团队提醒用户不要提交私钥
以太坊域名系统已在测试网集成 DNS 命名空间,可通过 .com 等域名接受加密货币支付
加密货币经纪商 Voyager Digital 曾短暂遭遇网络攻击,用户资金和个人信息未泄漏
区块链域名项目 Unstoppable Domains 浏览器正式上线



