DNS 域名系统

来源:互联网 发布:navicat 编写sql语句 编辑:程序博客网 时间:2024/05/29 16:59

DNS是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。

对DNS的访问是通过一个地址解析器来完成的,在*nix主机中,主要通过两个库函数gethostbyname和gethostbyaddr来访问。

DNS的名字空间与*nix文件系统类似,也具有层次结构,其结构如下图:


每个节点有一个至多63个字符长得标示,根是没有任何标示的特殊节点,标示不区分大小写。

这颗树很想一棵trie树,树上任何一个节点的域名就是将从该节点到最高层的域名串联起来,中间加一个点(.)来分隔。

树种的每个节点必须有一个唯一的域名,但是域名树种的不同节点可使用相同的标识。

一个独立管理的DNS子树称为一个zone。

一旦一个zone的授权机构被委派后,由它负责向该zone提供多个名字服务器。当一个新系统加入到一个zone中时,该区域的DNS管理者为该新系统申请一个域名和一个IP,并将他们添加到名字服务器的数据库中。

一个名字服务器负责一个或多个zone,一个zone的管理者必须为该zone提供一个主名字服务器和至少一个辅助名字服务器。

主辅彼此独立,主辅的区别是主服务器从磁盘文件调入该zone所有信息,而辅服务器则从主服务器调入所有信息,是为zone传送

辅助服务器定时向主服务器询问是否有新数据,如有新数据,通过zone传送更新之。

DNS的一个基本特性是使用超高速缓存,即当一个名字服务器收到有关主机和IP地址的映射信息时,会被保存在cache中。


DNS报文由12个字节长得首部和4个长度可变的字段组成,具体格式如下图:


其中,标识字段由客户程序设置并由服务器返回结果,客户程序通过它来确定查询是否匹配。







0 0