DNS
DNS是什么?
DNS是一个域名系统,它的作用是进行主机名和IP地址的转换。一方面,它是一个分层的DNS服务器实现的分布式数据库,另一方面,它是一个使得主机能够查询分布式数据库的应用层协议。
一个具体实例,我们的客户端向Web服务器www.scuec.edu发送一个http请求,那么我们必须得知道这个域名的IP地址。DNS就是获取这个IP地址的过程。
除此之外DNS还提供了其他的服务:
- 主机别名:有着复杂主机名的主机可以拥有多个别名。
- 邮件服务器别名:一样的我们也希望邮件服务器也可以有多个名字
- 负载分配:DNS也可以在冗余的服务器之间进行负载分配。繁忙的站点均匀分布在多台服务器上。
DNS 工作机理
同样使用之前的那个实例,DNS会有如下操作:
- 同一台用户主机上运行着DNS应用的客户端;
- 浏览器从URI中提取主机名www.scuec.edu,并且将主机名传给DNS应用的客户端;
- DNS客户向DNS服务器发送一个包含主机名的请求;
- DNS客户收到回答报文,其中包含主机名的IP地址;
- 一旦浏览器接收到IP地址就会向对应IP地址的80端口的HTTP服务器发起TCP连接。
这是粗糙的大体过程,现在我们将注意力集中到主机名转换到IP地址也就是域名解析的过程。
为了处理拓展性问题,DNS使用了大量的DNS服务器,以层次(树形)结构组织。大致来说有三类DNS服务器:根服务器、顶级域(TLD)DNS服务器(com DNS服务器、org DNS服务器、edu DNS服务器等等)、权威DNS服务器(facebook.com、amazon.com、pbs.org、nyu.edu等)。
而我们需要域名解析的时候,我们先向本地DNS服务器询问,本地DNS服务器会查询缓存,如果缓存可以直接命中就直接返回。没有的话本地DNS服务器会先去询问根服务器、再询问TLD服务器、再询问权威DNS服务器(这一过程是逐一迭代的)。接着再递归的返回查询结果给本地主机。这是一种递归+迭代的方式,理论上我们也可以选择全部递归的方式。
需要主要的是DNS域名解析的过程使用的是UDP,主要原因是DNS协议只需要一个请求和一个应答,不需要TCP复杂的三次握手四次挥手过程。‘
标签:主机,IP地址,主机名,关于,DNS,edu,服务器 From: https://www.cnblogs.com/Paranoid5/p/16596716.html