第 五 章
域名体系与域名系统
Zhang Dongyan TCP/IP Protocols 2
5.1 域名 体系与域名 系统
?IP地址由一组数据来表示。数字对计算机
来说是十分有意义的,但对人类的记忆行
为来说,则很不方便,因此需要用具有字
面含义的名字来表现。
Zhang Dongyan TCP/IP Protocols 3
?域名( domain name)
– 在 Internet中,采用 IP地址可以直接访问网
络中的一切主机资源,但是 IP地址难于记
忆,于是便产生了一套易于记忆的、具有
一定意义的用字符来表示的 IP地址,这就
是域名。
?域名的特点
– (1)易于记忆和理解 ;
– (2)使网络服务更易于管理 ;
– (3)在应用上与 IP地址等效。
5.1 域名 体系与域名 系统
Zhang Dongyan TCP/IP Protocols 4
? IP地址到名字地址间的映射:便于记忆
– 例,202.118.224.153=mail.hit.edu.cn=哈尔滨工业大学
Web Mail服务器
? 名字由 DNS服务器解析
? 逆向层次型命名机制
– www.pku.edu.cn=Web服务器,北京大学,教育机构,中国
(162.105.129.12)
? 行业和组织顶级域名:
– com,edu,gov,mil,net,org,int
? 国家和地区顶级域名:
– au,cn,tw,hk,jp,it
5.1 域名 体系与域名 系统
Zhang Dongyan TCP/IP Protocols 5
5.1 域名 体系与域名 系统
?主机名必须满足三条准则:
– 全球唯一性
– 便于管理
– 便于映射,效率高
?单一域名服务器的问题:
– 随着网络数及主机数的增加,重名的可能性变大
– 域名服务器的负担过重
– 跨网段域名服务器为网络负载带来负担
– 管理权限不清晰
Zhang Dongyan TCP/IP Protocols 6
层次型命名机制
?名字空间分成若干个部分,并授权相应的
机构进行管理;
?各授权机构有权对其所管辖的名字空间进
一步划分,并再授权相应的机构进行管理;
?域名系统构造成一个树状分布式数据库,
叶节点是主机名,中间节点是相应层次的
域名服务器,根节点为空。
?域名之间用,,”进行分割,www.hit.edu.cn
Zhang Dongyan TCP/IP Protocols 7
?域名系统采用层次型命名机制,语法是:
主机名, 第 n级子域名 …… 第 2级子域名,顶级域

?域名地址一般包含四部分内容,他们分别
是:
计算机名,机构名,网络分类名,顶级域名
如,www.pku.edu.cn
?顶级 域名 (最高级域名,top-level domain)是
一种标准化的标号以保证域名系统的通用
性。
域名系统的命名机制
Zhang Dongyan TCP/IP Protocols 8
域名系统的层次结构
主机名,组名,网点名,顶级域名
主页服务器 教育网哈工大 中国
“”
cnedu jp ukhkcom
educom ac org
hitpku tsinghua neu
www mtlib mllib vtlib
顶级
网点
组主机
Zhang Dongyan TCP/IP Protocols 9
域名系统的规定
?域名系统具有特定的保留字,且顶级
域名是确定的,由 IAHC负责制定;
?顶级域名分为三类:通用 (组织 )、国
家 (地域 )及国际组织;
– 通用类由三个字母表示,表示组织,特
指美国机构,其它国家则出现在二级域
名 (网络名 )中
IAHC在世界的七个大区选择了不超过 28个注
册中心来接收这七个通用型顶级域名的申请
Zhang Dongyan TCP/IP Protocols 10
( 1)一般地,Internet地址的最后一部分代表了最
大的区域,通常为国家代码。
域名 国家 /地区代码
au 澳大利亚
ca 加拿大
cn 中 国
fr 法 国
jp 日 本
hk 香 港
tw 台 湾
域名 国家 /地区代码
de 德 国
uk 英 国
fi 芬 兰
it 意大利
es 西班牙
dk 丹 麦
nz 新西兰
有关 顶级域名的规定
Zhang Dongyan TCP/IP Protocols 11
( 2)美国通常不使用国家代码作为地址的最后一
部分,而分别以:
域名 意 义
? com 商 业 组 织
edu 教 育 部 门
gov 政 府 部 门
mil 军 事 部 门
? net 网 络 组 织
? org 非赢利组织
int 国 际 组 织

www.microsoft.com
www.mit.edu
www.whitehouse.gov
www.
www.internic.net
www.ims.org
www.
有关 顶级域名的规定
Zhang Dongyan TCP/IP Protocols 12
域名 意 义
firm 公司、企业
store 销售经营公司
web WWW 机构
arts 文化、娱乐
rec 消遣、娱乐
info 信息服务
nom 个 人

www.legend.firm
www.xxx.store
www.sina.web
www.
www.internic.rec
www.mis.info
www.starco.arts
有关 顶级域名的规定
( 3)新增通用型顶级域名:
Zhang Dongyan TCP/IP Protocols 13
域名命名例子
哈尔滨工业大学校园网内负责收发电子邮件
的主机代号为 mail,其域名为:
mail.hit.edu.cn
其中,,cn” 代表中国(国家名),
,edu” 代表 教育机构的网络分类名,hit
代表 哈尔滨工业 大学(机构名),,mail”
则为邮件服务器的主机名(计算机名)。
前一个区域被后一个区域包含,是后一个区
域子域。
Zhang Dongyan TCP/IP Protocols 14
中国的顶级域名是 cn,下属的二级域名分两类
?机构 类别域名 (最初为 6个,1997年后增加为 7个),
ac.cn---用于科研机构
com.cn--用于工、商、金融企业
edu.cn--用于教育机构
org.cn--用于非赢利组织
gov.cn--用于政府部门
net.cn--用于互联网
?行政区 类别 域名 ( 34个),
适用于各省、市、直辖市,一般取地名前两个汉字的拼
音缩写。如,bj.cn------北京
sh.cn------上海
Zhang Dongyan TCP/IP Protocols 15
5.2 域名系统 与 域名解析
?在 Internet上,,域名 ?IP地址, 的
映射或解析工作由一组既独立又协作
的服务器来完成,并称为域名服务器
( Domain Name Server,简称 DNS)。
?域名服务器也称为名字服务器,相应
地完成该映射工作的软件称为域名解
析器( Name Resolver)软件。
Zhang Dongyan TCP/IP Protocols 16
5.2 域名系统 与 域名解析
?域名服务器的两种形式:
– 主服务器,用于保存域名解析表,获得结果后
发送给请求方。
– 转发服务器,用于保存转发服务器表,一旦收
到不是本域名服务器解析范围内的地址时则转
交到其他域名服务器,如此直至得到肯定的答
复 (有或没有 )为止。
?域名服务器的链的配置
– 所有服务器必须知道其下一层服务器的位置
– 所有服务器必须知道根服务器的位置
Zhang Dongyan TCP/IP Protocols 17
5.2 域名系统 与 域名解析
?解析器 ( Name Resolver) 存在于客户
方,由客户提出查询申请并分析返回的解
析后的结果并传送给应用程序。
?与 DNS通信可以采用 TCP协议或 UDP协议,
但通常解析器均配置为 UDP协议,因为对
于单个的请求 UDP协议的开销比较小。
Zhang Dongyan TCP/IP Protocols 18
?域名解析的含义
– 在 Internet中,当用户使用主机域名进行通信时,
系统必须将域名映射为 IP地址或反之。这种将域
名映射成相应的 IP地址的过程称为域名解析
( Name Resolution)。
– 域名解析包含两个过程:
? 正向 域名解析:将域名映射成 IP地址的过程,
或者说 从域名得到 IP地址 的过程 。即, 域名
地址 → IP地址, 。
? 反向 域名解析:将 IP地址 映射成域名 的过程,
或者说 从 IP地址找到相应的域名 的过程。这
种情况一般使用不多。
5.2 域名系统 与 域名解析
Zhang Dongyan TCP/IP Protocols 19
?域名服务器的分布结构
– 与域名的层次结构类似,Internet上众多
的 域名服务器也是按树型层次结构分布的。
5.2 域名系统 与 域名解析
......
......
.....,P K U,E D U,C N 子域服务器,......
E D U,C N 子域服务器
2 6 3,C O M 子域服务器 2 1 C N,C O M 子域服务器,............
C O M,C N 子域服务器 GO V,C N 子域服务器,...........
CN 域服务器 C O M 域服务器 E D U 域服务器,........
中央根服务器
Zhang Dongyan TCP/IP Protocols 20
一般来说,按上图中的域名服务器的层次结构,对
于任何一个域名只要从根服务器开始,自顶向下进行搜
索,通过一次搜索就可找到与之相应的 IP地址。域名解
析的实际过程中,通常采用以下两种方法:
1、递归解析法
从根服务器开始,自顶向下一级一级往下解析,直
到找到相应的 IP地址为止。( 我替你查询)
2、重复解析(或反复解析)法
从本地的 DNS开始,若在本 DNS管理范围内找不到相
应的域名,则将请求转向更高一层或最靠近的 DNS;若
还是找不到,则再向高一层的 DNS查询,直至最后找到
请求域名及相应的 IP地址为止。( 我告诉你找谁查询 )
域名的解析 方法
Zhang Dongyan TCP/IP Protocols 21
?域名解析过程如下:
是否在本域?
查询请求
Y
返回结果
重复解析?
返回结果
Y
N
N 递归解析
返回结果
域名的解析 方法
Zhang Dongyan TCP/IP Protocols 22
域名解析(递归解析)过程举例
?如从本地访问,www.pku.edu.cn
? 首先由本地的 DNS解析,若解析不了,将名字交给根中
国 ( cn) 的 DNS解析;
? 若中国( cn)的 DNS解析不了,将名字交给根中国教育
科研网( edu)的 DNS解析;
? 若教育科研网( edu)的 DNS解析不了,将名字交给根
北京大学( pku)的 DNS解析;
? 最后由北京大学的 DNS 解析出 www.pku.edu.cn的 IP地
址为,202.112.7.12,并将该 IP地址返回给用户。
Zhang Dongyan TCP/IP Protocols 23
?在域名的解析过程中,为提高速度,可以在两
方面进行优化:
– 复制,根 DNS可以被复制出若干副本,并
存放在世界各地的多处域名服务器中。实
际应用时,地理位置最近的域名服务器通
常响应最快 。
– 缓存,在每个域名服务器内存中开辟一个
,域名缓存区,,用来存放最近一段时间
中解析过的域名及相应的 IP地址,以及描
述该域名的服务器位置信息。
域名解析性能的优化
Zhang Dongyan TCP/IP Protocols 24
域名系统的工作原理
根服务器
主机
主服务
CN
EDU
UK
AC
PKU
AC
BRADHIT
主机
Hit.edu.cn服务器
edu.cn服务器
cn服务器
Www.brad.ac.ukWww.brad.ac.uk
Www.brad.ac.ukWww.brad.ac.uk
Www.brad.ac.ukww.brad.ac.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.uk
xxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.uk
xxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.uk
xxx.xxx.xxx.ukxxx.xxx.xxx.uk
xxx.xxx.xxx.ukxxx.xxx.xxx.uk
xxx.xxx.xxx.uk
xx, x,ac.ukxx,xxx.ac.uk.,ac.ukx,x.ac.ukx,x.ac.uk,xx.ac.ukx,xxx.ac.uk,xx.ac.ukx.xxx.ac.ukx, xx.ac.uk
xxx.xxx.ac.uk,x.ac.ukxxx.xxx.ac.ukx, xx.ac.ukxxx.xxx.ac.ukx, xx.ac.uk
xxx.xxx.ac.ukx, xx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.uk
xxx.xxx.ac.ukxxx.xxx.ac.uk
x,brad.ac.ukbrad.ac.x,brad,c.brad.ac.uk.brad.ac.ukx.brad.ac.uk.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.uk
xxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukx.brad.ac.uk
www ukw brad.ww brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukww.brad.ac.ukww.brad.ac.ukww.brad.ac.ukwww.brad.ac.ukww.brad.ac.ukww.brad.ac.ukww.brad.ac.ukwww.brad.ac.uk143.53.2.5143.53.2.5143.53.2.5143.5 2.5143.5 2.5143.5 2.5143.5 2 5143.5 2.5143.5 2.5143.53.2.5143 53.2.5143.5 2 5143.5,2.5143.5 2.5143.5 2.5143.5 2.5143.5 2 5143.53.2.5143.53.2.5143.5 2.5143 5 2.5143.5 2 5143.5,2.5143.5 2.5143.53.2.5143 53.2.5143.5 2.5143.5,2.5143.5 2.5143 5 2.5143.5 2.5143.5,2.5143.53.2143.53 2.5143.53.2.5143.53.2.5
143.53.2.5143.53.2.5143.53.2.5143.53.2.5
143.53.2.5143.53.2.5143.53.2.5143.53.2.5
Zhang Dongyan TCP/IP Protocols 25
?域名在整个 Internet中必须唯一。因此当高
级子域名相同时,低级子域名不允许重复。
?在域名中字母的大写和小写没有区别。
?当一台主机从一处移到另一处时,当它属于
不同的网络时,其 IP地址必须更换,但可以
保留原来的域名,域名的解析(从域名查找
相应的 IP地址)仍依赖于原来的域名服务器。
?主机的 IP地址和其域名对通信协议来说具有
相同的作用。如果你的系统没有域名服务器
时,则只能 使用 IP地址不能使用域名。
关于域名服务器应注意的问题
Zhang Dongyan TCP/IP Protocols 26
一个例子
?Hosts.db文件里存储了域名的正向解析信

?software IN A 202.118.250.9
?BlueLine IN CNAME software
?hitsy IN A 202.118.250.165
?laserlab IN A 202.118.250.183
Zhang Dongyan TCP/IP Protocols 27
一个例子
?250.rev文件
?9 IN PTR software.hit.edu.cn.
?165 IN PTR hitsy.hit.edu.cn.
?183 IN PTR laserlab.hit.edu.cn.
?……
Zhang Dongyan TCP/IP Protocols 28
D N S定义了一个用于查询和响应的报文格式。下图显
示这个报文的总体格式 。
DNS查询和响应的一般格式
DNS的报文格式
Zhang Dongyan TCP/IP Protocols 29
这个报文由 1 2字节长的首部和 4个长度可变的字段组成。
标识字段由客户程序设置并由服务器返回结果。客户程序
通过它来确定响应与查询是否匹配。
16 bit的标志字段被划分为若干子字段,如下图所示。
从最左位开始依次介绍各子字段:
? QR 是 1 bit字段,0表示查询报文,1表示响应报文。
? o p c o d e是一个 4 bit字段:通常值为 0(标准查询),其
他值为 1(反向查询)和 2(服务器状态请求)。
? A A是 1 bit标志,表示, 授权回答 (authoritative answer)”。
该名字服务器是授权于该域的。
DNS的报文格式
Zhang Dongyan TCP/IP Protocols 30
? T C是 1 bit字段,表示, 可截断的 ( t r u n c a t e d )”。使
用 U D P时,它表示当应答的总长度超过 5 1 2字节时,只返
回前 5 1 2个字节。
? R D是 1 bit字段表示, 期望递归( recursion desired), 。
该比特能在一个查询中设置,并在响应中返回。这个标志
告诉名字服务器必须处理这个查询,也称为一个递归查询。
如果该位为 0,且被请求的名字服务器没有一个授权回答,
它就返回一个能解答该查询的其他名字服务器列表,这称
为迭代查询。在后面的例子中,我们将看到这两种类型查
询的例子。
DNS的报文格式
Zhang Dongyan TCP/IP Protocols 31
? R A是 1 bit字段,表示, 可用递归, 。如果名字服务器
支持递归查询,则在响应中将该比特设置为 1。在后面的
例子中可看到大多数名字服务器都提供递归查询,除了某
些根服务器。
?随后的 3 bit字段必须为 0。
? r c o d e是一个 4 bit的返回码字段。通常的值为 0(没有
差错)和 3(名字差错)。名字差错只有从一个授权名字
服务器上返回,它表示在查询中制定的域名不存在。
随后的 4个 16 bit 字段说明最后 4个变长字段中包含的
条目数。对于查询报文,问题 ( q u e s t i o n )数通常是 1,
而其他 3项则均为 0。类似地,对于应答报文,回答数至少
是 1,剩下的两项可以是 0或非 0。
DNS的报文格式
Zhang Dongyan TCP/IP Protocols 32
DNS查询报文中的问题部分
问题部分中每个问题的格式如下图 DNS查询报文中问
题部分的格式所示,通常只有一个问题。
查询名是要查找的名字,它是一个或多个标识符
的序列。每个标识符以首字节的计数值来说明随后标
识符的字节长度,每个名字以最后字节为 0结束,长度
为 0的标识符是根标识符。
DNS的报文格式
Zhang Dongyan TCP/IP Protocols 33
下图显示了如何存储域名 g e m i n i, t u c, n o a o, e d u。
域名 g e m i n i, t u c, n o a o, e d u 的表示
Zhang Dongyan TCP/IP Protocols 34
每个问题有一个查询类型,而每个响应(也有一个
类型。大约有 2 0个不同的类型值,其中的一些目前已经
过时。下图显示了其中的一些值。
最常用的查询类型是 A类型,表示期望获得查询名的
I P地址。一个 P T R查询则请求获得一个 I P地址对应的
域名。
查询类通常是 1,指互联网地址(某些站点也支持其
他非 I P地址)
Zhang Dongyan TCP/IP Protocols 35
DNS问题和响应的类型值和查询类型值
Zhang Dongyan TCP/IP Protocols 36
DNS响应报文中的资源记录部分
D N S报文中最后的三个字段,回答字段、授权字段和
附加信息字段,均采用一种称为资源记录 R R( Resource
Record)的相同格式。下图显示了资源记录的格式。
DNS资源记录格式
Zhang Dongyan TCP/IP Protocols 37
?域名是记录中资源数据对应的名字。它的格式和前面介
绍的查询名字段格式相同。
?类型说明 R R的类型码。它的值和前面介绍的查询类型
值是一样的。类通常为 1,指 I n t e r n e t数据。
?生存时间字段是客户程序保留该资源记录的秒数。资源
记录通常的生存时间值为 2天。
?资源数据长度说明资源数据的数量。该数据的格式依赖
于类型字段的值。对于类型 1( A记录)资源数据是 4字
节的 I P地址。
Zhang Dongyan TCP/IP Protocols 38
DNS应答的格式
Zhang Dongyan TCP/IP Protocols 39
注意到 DNS名字服务器使用的熟知端口号无论对 U D P还是 T
C P都是 53。这意味着 D N S均支持 U D P和 T C P访问,但我
们使用 t c p d u m p观察的所有例子都是采用 U D P。那么这
两种协议都在什么情况下采用以及采用的理由都是什么呢?
当名字解析器发出一个查询请求,并且返回响应中的 T C
(删减标志)比特被设置为 1时,它就意味着响应的长度超过
了 5 1 2个字节,而仅返回前 5 1 2个字节。在遇到这种情况时,
名字解析器通常使用 T C P重发原来的查询请求,它将允许返
回的响应超过 5 1 2个字节。既然 T C P能将用户的数据流分为
一些报文段,它就能用多个报文段来传送任意长度的用户数
据。
用 UDP还是用 TCP
Zhang Dongyan TCP/IP Protocols 40
此外,当一个域的辅助名字服务器在启动时,将从该域的
主名字服务器执行区域传送。我们也说过辅助服务器将定
时(通常是 3小时)向主服务器进行查询以便了解主服务器
数据是否发生变动。如果有变动,将执行一次区域传送。
区域传送将使用 T C P,因为这里传送的数据远比一个查询
或响应多得多。
用 UDP还是用 TCP
Zhang Dongyan TCP/IP Protocols 41
让我们通过另一个例子将已经介绍的许多 D N S特性作
一个综合性回顾。先启动 Rlogin 客户程序,然后连接到一个
位于其他域的 R l o g i n服务器。下图显示了发生的分组交换
过程。
下面发生的 11个步骤都假定客户和服务器的高速缓存中
没有任何信息。
1) 客户程序启动后,调用它的名字解析器函数将我们键入的
主机名转换为一个 I P地址。一个 A类型的查询请求被送往一
个根服务器。
2) 由根服务器返回的响应中包含为该服务器所在域服务的名
字服务器名。
3) 客户端的名字解析器将向该服务器的名字服务器重发上述
A类型查询,这个查询通常是将期望递归标志设置为 1。
一个例子
Zhang Dongyan TCP/IP Protocols 42
4) 返回的应答中包含 R l o g i n服务器的 I P地址。
5) Rlogin客户和 R l o g i n服务器建立一个 T C P连接。客户
和服务器的 T C P模块间将交换 3个分组。
6) Rlogin服务器收到来自客户的连接请求后,调用它的名字
解析器通过 T C P连接请求中的 I P地址获得客户主机名。这
是一个 P T R查询请求,由一个根名字服务器处理。这个根名
字服务器可以不同于步骤 1中客户使用的根名字服务器。
7) 这个根名字服务器的响应中含有为客户的 i n - a d d r, a r
p a域的名字服务器。
8) 服务器上的名字解析器将向客户的名字服务器重传上述 P
T R查询。
9) 返回的 P T R应答中含有客户主机的 F Q D N。
一个例子
Zhang Dongyan TCP/IP Protocols 43
10) 服务器的名字解析器向客户的名字服务器发送一个 A类
型查询请求,查找前一步返回的名字对应的 I P地址。这可
能由服务器中的 g e t h o s t b y a d d r函数自动完成,否则
R l o g i n服务器将完成这一步。此外,客户的名字服务器
常常就是客户的 i n - a d d r, a r p a名字服务器,但这不是
必需的。
11) 从客户的名字服务器返回的响应含有客户主机的 A记录。
R l o g i n服务器将客户的 T C P连接请求中的 I P地址与 A
记录作比较。
一个例子
Zhang Dongyan TCP/IP Protocols 44
启动 Rlogin客户和服务器的分组交换过程
一个例子
Zhang Dongyan TCP/IP Protocols 45
Zhang Dongyan TCP/IP Protocols 46
Zhang Dongyan TCP/IP Protocols 47
Zhang Dongyan TCP/IP Protocols 48
Zhang Dongyan TCP/IP Protocols 49
Zhang Dongyan TCP/IP Protocols 50
Zhang Dongyan TCP/IP Protocols 51
Zhang Dongyan TCP/IP Protocols 52