域名里的门道

本文讲述了域名的由来,包括其作为IP地址替代品的优势,域名的形式(顶级域、二级域和子域),以及域名解析的过程和DNS的分布式结构。还介绍了域名缓存的原理,包括非权威服务器、操作系统缓存和主机映射,以提高访问速度和减轻DNS服务器压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、域名的由来


        随着接入互联网的计算机越来越多,IP地址的缺点也就逐渐暴露出来,主要原因在于,对人不够友好,主要有以下几个缺点:

  1. IP地址是一串数字,难于记忆和输入;
  2. IP地址可能会随时变化,因为服务器可能会更换位置和网络供应商;
  3. IP地址不能包含多个网站或子域名;

        如何解决此问题?就在IP地址之上再来一次抽象,把数字形式的IP地址转换成更有意义的名字,在字符串的层面上增加新的玩法,于是就出现了DNS域名系统。相比于IP地址,域名有以下有点:

  1. 域名是字母和数字的组合,更方便人类使用 ;
  2. 域名可以保持不变,只需要更新DNS记录;
  3. 域名可以通过URL来区分不同的页面或内容;

二、域名的形式


        域名是一个有层次的结构,由多个分段分段组成,每个分组间用 . 来分割,下面是域名的构成和每个分段的意义:

  1. 顶级域(Top-Level Domain,TLD):域名的最高级别分段,表示域名的分类或者国家,如.com表示商业网站,.org表示非营利组织,.cn表示中国。常见的顶级域还包括.net、.gov及.edu等。
  2. 二级域(Second-Level Domain,SLD):紧接顶级域,通常用于标识特定的组织、公司、品牌或者个人,如www.baidu.com,baidu就是二级域。
  3. 子域(Subdomain):二级域下面的一级,可根据需要添加多个子域。子域能进一步细分和组织网站的内容,常见的www就是一个子域。
  4. 主机名(Hostname):最低级别的分段,表示特定的服务器和设备,如mail.example.com,mail一般代表邮件服务。主机名的作用是让我们更容易记忆。

        域名的本质其实是名字空间系统,使用多级域名可以换分出不同的国家、地区、组织、公司和部门等。所以每个域名都是独一无二的,可作为一种身份的标识。

        因为域名的这个特性,域名也被扩展到了其他应用领域,如Java的包机制就采用域名作为命名空间,只是采用了反序,如常见的应用包名:org.apache.catalina.webresources.*

三、域名的解析


        域名必须转换成IP地址,这个过程就叫做域名解析。全球每天发生的网络流量高达百亿次,绝大部分请求都是基于域名来访问的。所以DNS就成了互联网重要的基础设施,必须要保证域名解析稳定可靠,快速高效。

        DNS的核心系统是一个三层树状结构的分布式服务,基本对应域名的结构,如下图:

  1. 根域名服务器:管理顶级域名,返回com、org、cn等顶级域名的IP地址;
  2. 顶级域名服务器:管理各自域名下的权威域名服务器,比如com顶级域名服务器可以返回apple.com域名服务器的IP地址;
  3. 权威域名服务器:管理自己域名下的主机的IP地址,如apple.com权威域名服务器可以返回www.apple.com的IP地址;

        根域名服务器最为关键,必须是众所周知的,否则下面的各级服务器就无从谈起。在此架构下,任何一个域名都可以在此树状结构里从顶至下进行查询,最终就获得了域名对应的IP地址。

        现要访问www.apple.com这个域名,就要进行如下三个步骤:

  1. 向根域名服务器发送查询请求,获得com顶级域名服务器的IP地址;
  2. 向com顶级域名服务器发送查询请求,即可获得apple.com域名服务器的IP地址;
  3. 最后访问apple.com域名服务器,就得到了www.apple.com的IP地址;

四、域名的缓存


        虽然核心的DNS系统遍布全球,服务能力很强也很稳定,但网民如果全往这一个系统里挤,即使不瘫痪,访问的速度也会很慢。

        所以在核心DNS系统之外,要有一些手段来减轻域名解析的压力,并且能够快速的获取结果,基本思路就是缓存。

        一般大公司及网络运营商都会建立自己的DNS服务器,作为用户DNS查询的代理,代替用户访问核心DNS系统。这类“野生”的服务器被称为“非权威域名服务器”,可以缓存之前的查询结果。如果已经有了记录,就无需在从根服务器发起查询,直接返回对应的IP地址。这类DNS服务器要比核心DNS系统的服务器多很多,且大多数都部署在离用户很近的地方,较为知名的DNS服务器有Goole的8.8.8.8。

        其次,操作系统也会对DNS解析结果做缓存,之前访问过的地址,下一次浏览器访问该网址时就不会再跑到DNS里访问了,直接在操作系统中就可以拿到。

        另外,操作系统中还会有一个特殊的“主机映射”文件,通常是一个可编辑的文本,如果操作系统中找不到相关DNS缓存记录,就会在这个文件中找。

        有了上面的非权威域名服务器、操作系统缓存及主机映射文件后,绝大多数的域名解析工作就不用“跋山涉水”了,直接在本地或者本机就能解决。不仅方便了用户,也极大的减轻了各级DNS服务器的压力,大大提升了访问效率。具体架构如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值