TCP/IP协议学习记录之十四:DNS--域名系统

     域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。分布式是指在Internet上的单个站点不能拥有所有的信息,每个站点(大学,校园。公司或者部门)保留自己的数据库,并运行一个服务器供internet上的其他系统查询。DNS提供了允许服务器和客户程序相互通信的协议;

   对DNS的访问是通过一个地址解析器来完成的,可以实现主机名字和IP地址之间的转换,也可以实现IP地址和主机名字zh间的转换。解析器通过一个或者多个名字服务器来完成这种相互转换;

    在一个应用程序请求TCP打开一个连接或使用UDP发送一个数据报前,必须将主机名转换IP地址。

DNS基础

    DNS的名次空间具有层次结构,命名树上的任何一个节点的域名就是将从该结点到最高层的域名串连起来。域名树中的每个结点必须有一个唯一的域名,但域名树中的不同结点可使用相同的标识;

    以点“.”结尾的域名称为绝对域名或完全合格的域名,如果一个域名不以点结尾,则认为该域名是不完全的。

 顶级域被分成三个部分:

1)arpa是一个用作地址到名字转换的特殊域;

2)7个3字符长的普通域,也称为组织域;

3)所有2字符长的域均值国家代码,称为国家域,或者地理域;

        一个独立管理的DNS子树称为一个区域,常见的区域二级域,可以被划分成更小的域。一旦一个区域的授权机构被委派后,由它负责向该区域提供多个名字服务器。当一个新的系统加入到一个区域时,该区域的DNS管理者为该新系统申请一个域名和一个IP地址,并将它们加入到名字服务器的数据库中。

    一个名字服务器负责一个或者多个区域,一个区域的管理者必须为该区域提供一个主名字服务器或者至少一个辅助名字服务器,他们是相互独立且冗余的。主,辅名字服务器的主要区别在于主名字服务器从磁盘文件中调入该区域的所有信息,而辅名字服务器则是从主服务器调入所有信息。

    当一个新主机加入一个区域时,区域管理者将适当的信息(最少包括名字和 I P地址)加入到运行在主名字服务器上的一个磁盘文件中,然后通知主名字服务器重新调入它的配置文件。辅名字服务器定时向主名字服务器询问是否有新数据。如果有新数据,则通过区域传送方式获得新数据。
    DNS的分布特性:当一个名字服务器没有请求的信息时,它必须与其他的名字服务器联系。但是是通过根服务器来与其他名字服务器联系;

 DNS的另一个特性是使用超高速缓存,即当一个名字服务器收到有关映射的信息(主机名字到 I P地址)时,它会将该信息存放在高速缓存中。

DNS的报文格式

 DNS查询报文中的问题部分

    查询名是要查找的名字,它是一个或多个标识符的序列。最常用的查询类型是A类型,表示期望获得查询名的IP地址;

PTR查询则请求获得一个IP地址对应的域名;

DNS响应报文中的资源记录部分

     域名是记录中资源数据对应的名字。

      名字解析器是客户程序的一部分,并且在客户程序与服务器建立TCP连接之前,名字解析器就能通过名字服务器获取IP地址;

   

  指针查询 

     即给定一个IP地址,返回与该地址对应的域名;

        对于I P地址为1 4 0 . 2 5 2 . 1 3 . 3 3的s u n主机,它的D N S名字为3 3 . 1 3 . 2 5 2 . 1 4 0 . i n - a d d r . a r p a。从应用的角度看,正常的名字解析器函数(gethostbyaddr)将接收一个IP地址并返回对应主机的有关信息(域名)。翻转这些字节和添加inaddr.arpa均由该函数自动完成;

    主机名检查

    当一个I P数据报到达一个作为服务器的主机时,无论是 U D P数据报还是T C P连接请求,服务器进程所能获得的是客户的 I P地址和端口号(U D P或T C P)。某些服务器需要客户的 I P地址来获得在D N S中的指针记录。其他的一些服务器如 R l o g i n服务器不但需要客户的 I P地址来获得指针记录,还要向D N S询问该 I P地址所对应的域名,并检查返回的地址中是否有地址与收到的数据报中的源I P地址匹配。


高速缓存

     为了减少 I n t e r n e t上D N S的通信量,所有的名字服务器均使用高速缓存。在标准的 U n i x实现中,高速缓存是由名字服务器而不是由名字解析器维护的。

用UDP还是TCP

      注意到D N S名字服务器使用的熟知端口号无论对 U D P还是T C P都是5 3。这意味着 D N S均支持U D P和T C P访问。

     当名字解析器发出一个查询请求,并且返回响应中的 T C(删减标志)比特被设置为 1时,它就意味着响应的长度超过了 5 1 2个字节,而仅返回前 5 1 2个字节。在遇到这种情况时,名字解析器通常使用T C P重发原来的查询请求;

    当一个域的辅助名字服务器在启动时,将从该域的主名字服务器执行区域传送。辅助服务器将定时(通常是 3小时)向主服务器进行查询以便了解主服务器数据是否发生变动。如果有变动,将执行一次区域传送。区域传送将使用 T C P,因为这里传送的数据远比一个查询或响应多得多。

       D N S主要使用 U D P,无论是名字解析器还是名字服务器都必须自己处理超时和重传;
NOTES:

域名:是指向一个网站(或博客、空间等)的网址,举例如:http://hi.baidu.com/wmnet/,域名有顶级域名、二级域名、三级域名等。
DNS:是一个域名系统 (Domain Name System),它是由域名解析器和域名服务器组成。域名服务器中保存着所属网络中所有主机域名和对应的IP地址,具有将域名转换为IP地址的功能,一个域名对应一个IP地址。域名解析器的作用是把域名指向网站所在空间的IP地址;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值