文章目录
- 一、对DNS的感性认识
- 简介
- 特点
- 一些常见疑问
- 二、DNS
- DNS域名结构
- 域名的分级
- 三、域名服务器
- 四、域名解析过程
- 参考
一、对DNS的感性认识
简介
DNS,即Domain Name System,是域名系统的简称。它是Internet上解决网上机器命名的一种系统。
TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。
例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com,都可以访问其Web网站。
一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。当人们要访问一个公司的Web网站,又不知道其确切域名的时候,也总会首先输入其公司名称作为试探。
但是,由一个公司的名称或简称构成的域名,也有可能会被其他公司或个人抢注。甚至还有一些公司或个人恶意抢注了大量由知名公司的名称构成的域名,然后再高价转卖给这些公司,以此牟利。已经有一些域名注册纠纷的仲裁措施,但要从源头上控制这类现象,还需要有一套完整的限制机制,这个还没有。所以,尽早注册由自己名称构成的域名应当是任何一个公司或机构,特别是那些著名企业必须重视的事情。有的公司已经对由自己著名品牌构成的域名进行了保护性注册。
特点
- 分布式的
- 协议支持 TCP 和 UDP,常用端口是 53
- 每一级域名的长度限制是 63
- 域名总长度限制是 253
一些常见疑问
-
ARP协议是帮助ip地址和mac地址相互转化,DNS协议是帮助域名和IP地址相互转化。
-
为什么不直接用域名进行通信?
ip地址是定长的,域名是变长的,不方便计算机处理。
-
同一个服务器的ip地址和域名的对象是谁?
ip地址是面向主机的,域名是面向用户的。
-
hosts文件是什么?
hosts文件是由***写的,一个保存的域名和ip对应关系的没有扩展名的系统文件。
它的作用就是将一些常见的网址域名与其对应的ip地址建立一个关联的“数据库”,当用户在浏览器中输入一个需要登陆的网址时,系统就会首先自动的去hosts文件中寻找对应的ip地址,一旦找到,系统就会立即打开对应的网页,如果没有找到,则系统就会将网址再提交给DNS域名解析服务器进行ip地址的解析。
现在基本上就是hosts文件和DNS打配合的一个动作。
操作系统规定,在进行DNS请求以前,先检查系自己的Hosts文件中是否有这个域名和IP的映射关系。如果有,则直接访问这个IP地址指定的网络位置,如果没有,再向已知的DNS服务器提出域名解析请求。也就是说Hosts的IP解析优先级比DNS要高。
注意:hosts文件配置的映射是静态的,如果网络上的计算机更改了就需要及时更新ip地址,否则不能访问。就比如当时我一直打不开力扣一样。
-
DNS系统工作相关原理
如果新的计算机接入网络中,会将信息注册到数据库中。
用户输入域名的时候,如果在本地hosts文件找不到,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的ip地址。
二、DNS
DNS域名结构
域名具有唯一性,命名规则如下:【以英文域名为例】
-
每个域名都是一个标号序列(字母/数字/连接符(-));
-
总长度不超过255字符
-
由点号分割
-
每个标号在63字符内,每个标号可以看成一个层次
-
域名级别从左到右逐渐变大
域名服务主要基于UDP实现,服务器端口号为53.
eg :我们熟悉的,www.baidu.com
- com: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(⾮非盈利组织) 等。
- baidu: 二级域名,指公司名。
- www: 只是一种习惯用法。
域名的分级
域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
如上图所示。
另外,xxx.yyy.zzz.com。xxx是四级域名、yyy是三级域名、zzz是二级域名、com是顶级域名。
其中顶级域名又分为国际顶级域名(cn、us、uk)、通用顶级域名(com、edu、gov……)和反向域名(arpa,用于PTR查询,ip地址转换为域名)。
三、域名服务器
域名是分层结构,域名服务器也是对应的层级结构。
有了域名结构,还需要有一个东西去解析域名,域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。
由高向低进行层次划分,可分为以下几大类:
分类 | 作用 |
---|---|
根域名服务器 | 最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助 |
顶级域名服务器 | 负责管理在该顶级域名服务器下注册的二级域名 |
权限域名服务器 | 负责一个区(一个域名服务器所负责的范围/权限范围)的域名解析工作 |
本地域名服务器 | 当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器 |
- 每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
- 每一级域名服务器都知道下级域名服务器的IP地址
- 为了容灾, 每一级至少设置两个或以上的域名服务器参考
四、域名解析过程
相关前置知识:
🔺本地域名服务器的概念:
任何一台主机在网络地址配置时,都会配置一个域名服务器作为默认域名服务器,这个默认域名服务器通常称为本地域名服务器,是主机进行域名查询过程中首先被查询的域名服务器。
主机确定本地域名服务器的方法:
主机在任何时候需要进行域名解析都会将域名查询请求发送给该服务器,该服务器如果保存了被查询域名的信息,则直接做出响应,如果没有,则代理查询其他域名服务器,直到查询到结果,最后将查询结果发送给查询主机。
设置域名服务器的方式:
- 手动设置:以设置IPv4为例,就是在电脑中设置的DNS的内容;
- 动态设置:使用DHCP动态配置方式。
什么是解析器
解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。
整体来说,这是一个递归查找的过程。
域名解析总体可分为一下过程:
(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
以上内容引自此blog
上边是我是半懂,暂时先留在这,后续进行更正补充。
下边画图分析一个我比较理解的过程:
参考
DNS协议详解
DNS相关科普
关于DNS的特点
DNS拓展阅读(暂略)
域名类型相关阅读1
常见域名后缀介绍