一、什么是DNS?
DNS:域名系统,应用层协议,是互联网的一项服务。用于TCP/IP网络,将名称转化(解析)为IP地址,例如,将我们访问x.acme.com,通过DNS查出它的IP是38.25.63.10,本地名称解析配置文件:hosts
Linux:/etc/hosts
windows:C:\Windows\System32\drivers\etc\hosts
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
二、DNS域名结构
- 全球根服务器节点只有13个
- 最多可达到127级域名
- 级别最低的域名写在左边,级别最高的域名写在右边
- 域名服务主要是基于UDP实现的,服务器的端口号为53
- 例如com(商业组织),edu(教育机构),
- gov(其他美国政府部门),int(国际组织),mil(美国军事网点),net(网络),org(其他组织)
域名结构如图:参考博文介绍
三、DNS工作原理
- 递归查询:一般客户机和本地DNS服务器之间属于递归查询,当客户机向DNS服务器发出请求后,若DNS服务器无法解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。
- 迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,即本地DNS服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
通俗的讲,递归就是把一件事情交给别人,中间过程不重要,只要最终结果;如果你没办完,请你找别人办完,无论怎样,反馈最终结果。迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。 - 完整的查询请求过程
Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递
归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…
在学习中进步,如有错误,请多多批评指正