Domain Name System

目录

一.Basic Function&Brief History

二.从数据库层面理解DNS

2.1 Domain Namespace&Resource Record

2.2 DNS server 

2.3 DNS resolver

三.从协议层面理解DNS

3.1 DNS server正确解析domain name返回IP地址的方法

3.1.1 递归方法解析域名

 3.1.2 迭代方法解析域名

3.2 DNS server提高域名解析效率的缓存机制

3.2 逆向解析:由域名返回IP地址


一.Basic Function&Brief History

互联网应用程序联系远程主机以获取资源时,往往得到的是该主机的主机名(hostname)或是该资源的域名,而不是IP地址。比如我们访问baidu.com,交给我们的应用程序也只是baidu.com这一域名(或主机名),而不是该(资源所在)主机对应的IP地址。

域名(或主机名)是以ASCII字符形式标识资源所在位置、人能够理解而机器无法理解的高级名;而IP地址是以二进制数形式标识(资源所在的)主机所在的位置、人不能理解而机器可以理解的低级名。类似于高级语言和机器语言的关系。

DNS的作用,就是用于进行对应的域名与IP地址的转化的。(不过转化是双向的,目前只遇到过由域名向IP地址的转化)

DNS协议是query/response形式的,基于UDP/TCP协议(客户端向DNS服务器请求使用UDP,DNS服务器之间互相备份使用TCP),主机端口号为53。

历史上,DNS sever是centralized control的,也就是大量域名归一个中心DNS server管理。而且域名空间是扁平化的,极易产生重复。所以现在的域名系统采用了层次化的结构,并且交由分布式的服务器进行维护。

现在再来理解一下什么是DNS。从数据上理解,它就是一个数据库,存放IP地址和域名的映射关系;从机制上理解,它就是一个协议,用于解析域名得到IP地址。

二.从数据库层面理解DNS

2.1 Domain Namespace&Resource Record

Domain Namespace是DNS数据库存储域名的方式,可以理解为树(tree)这个数据结构。每一个结点都对应一个域、域名和RR(resource record)。RR是这个域名对应的数据,往往是ipv4、ipv6的地址,这个我们在后面可以看到。

1.树的根节点通常记为.,被称为root domain。

2.每一个结点都称为一个domain(域),这和域名是不同的。

3.根节点下的结点被称为是top-level domains,不要叫做first-level domain。顶级域可以分为两类:一般域(generic domain)和国家域(country domain)。

4.如何获取结点(域)对应的域名?自下而上向根节点遍历,并将依次得到的域从左向右排列并用.分开。如xx域的域名为xx.cs.mit.edu。域名中的域从左往右愈来愈抽象。

5.域名不区分大小写。一个域至多63 char,一个域名至多255char。完整的域名也可以称为FQDN(fully qualified domain name)

 每一个结点对应着一个或多个RR,存储着与该domain有关的信息,比如ipv4地址,ipv6地址,别名,权威服务器等等。我们所需要的IP地址就存储在RR中。

RR可以理解为一个结构体,其数据域有:1.owner(RR所属域的域名);2.type(RR存储信息的类型,A代表ipv4的地址,AAAA代表ipv6的地址,MX代表该域名使用的邮箱服务器的域名,CNAME代表该域名的别名,NS表示该域名所在的DNS权威服务器的域名);3.class(该域名使用的协议族,通常是internet协议组,为IN);4.TTL(time to live作为缓存能够存在的时间,单位s);5.RDATA(存储的数据,类型由type定义了)。下面是例子。

2.2 DNS server 

上面

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值