首页 > 代码库 > 《TCP/IP详解卷1:协议》第14章 DNS:域名系统---读书笔记

《TCP/IP详解卷1:协议》第14章 DNS:域名系统---读书笔记

《TCP/IP详解卷1:协议》第14章 DNS:域名系统---读书笔记

1、引言


5、指针查询

DNS中一直难于理解的部分就是指针查询方式,即给定一个IP地址,返回与该地址对应的域名。

当一个组织加入Internet,并获得DNS域名空间的授权,如noao.edu,则它们也获得了对应IP地址的in-addr.arpa域名空间的授权。在noao.edu这个例子中,它的网络号是140.252的B类网络。在DNS树中结点in-addr.arpa的下一级必须是该IP地址的第一字节(例中为140),再下一级为该IP地址的下一个字节(252),以此类推。但应牢记的是DNS名字是由DNS树的底部逐步向上书写的。这意味着对于IP地址为140.252.13.33的sun主机,它的DNS名字为33.13.252.140.in-addr.arpa

必须写出4字节的IP地址,因为授权的代表是基于网络号:A类地址是第一字节,B类地址是第一、二字节,C类地址是第一、二、三字节。IP地址的第一字节一定位于in-addr的下一级,但FQDN却是自树底往上书写的。

只有在使用host程序或者tcpdump程序直接同DNS打交道时,才会担心in-addr域和反写IP地址影响我们。从应用的角度上看,正常的名字解析器函数(gethostbyaddr)将接收一个IP地址并返回对应主机的有关信息。反转这些字节和添加in-addr.arpa域均由该函数自动实现。

6、资源记录

我们已经见到了一些不同类型的资源记录(RR,resouce record):IP地址查询为A类型,指针查询为类型PTR。也见到过由服务器返回的资源记录:回答RR、授权RR和附加信息RR。现有大约20种不同类型的资源记录,下面将介绍其中的一些常用的。

A一个A记录定义了一个IP地址,它存储32bit的二进制数。
PTR指针记录用于指针查询。IP地址被看作是in-addr.arpa域下一个域名(标识字符串)
CNAME
这表示“规范名字(canonical name)”。它用来表示一个域名(标识串),而有规范名字的域名通常被称为别名(alias)。某些FTP服务器使用它向其他的系统提供一个易于记忆的别名。
HINFO
表示主机信息:包括说明主机CPU和操作系统的两个字符串。并非所有的站点均提供它们系统的HINFO记录,并且提供的信息也可能不是最新的。
MX

邮件交互记录。用于一下一些场合:

  1. 一个没有连到Internet的站点能将一个连到Internet的站点作为它的邮件交换器。这两个站点能够用一种交替的方式交换到达邮件,而通常使用的协议是UUCP协议。

  2. MX记录提供了一种将无法到达其目的主机的邮件传送到一个替代主机的方式。

  3. MX记录允许机构提供供他人发生邮件的虚拟主机。

  4. 防火墙网关能使用MX记录来限制外界与内部系统的连接。

NS
名字服务器记录。它说明一个域的授权名字服务器。它由域名表示(符号串)。
7、高速缓存

为了减少Internet上的DNS的通信量,所有的名字服务器均使用高速缓存。在标准的UNIX实现中,高速缓存是由名字服务器而不是由名字解析器维护的。

8、用UDP还是TCP

DNS名字服务器使用的熟知端口53。DNS均支持UDP和TCP访问。

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

此外,当一个域的辅助名字服务器在启动时,将从该域的主名字服务器指向区域传送。

既然DNS主要使用UDP,无论是名字解析器还是名字服务器都必须自己处理超时和重传。DNS查询和响应通常经过广域网。分组丢失和往返时间的不确定性在广域网上比局域网更大。这样对于DNS客户程序,一个好的重传和超时程序就显得更重要了。


本文出自 “做最好的自己” 博客,请务必保留此出处http://qiaopeng688.blog.51cto.com/3572484/1889808

《TCP/IP详解卷1:协议》第14章 DNS:域名系统---读书笔记