《TCPIP协议(第五章)》由会员分享,可在线阅读,更多相关《TCPIP协议(第五章)(52页珍藏版)》请在金锄头文库上搜索。
1、第第 五五 章章 域名体系与域名系统域名体系与域名系统5.1 5.1 域名域名体系与域名体系与域名系统系统4IP地址由一组数据来表示。数字对计算机地址由一组数据来表示。数字对计算机来说是十分有意义的,但对人类的记忆行来说是十分有意义的,但对人类的记忆行为来说,则很不方便,因此需要用具有字为来说,则很不方便,因此需要用具有字面含义的名字来表现。面含义的名字来表现。用名字来代替用名字来代替IP地址地址, 以便于人们的记忆以便于人们的记忆 = 202.118.224.153Zhang DongyanTCP/IP Protocols 4域名(域名(domain name)在在Internet中,采用中
2、,采用IP地址可以直接访问网地址可以直接访问网络中的一切主机资源,但是络中的一切主机资源,但是IP地址难于记地址难于记忆,于是便产生了一套易于记忆的、具有忆,于是便产生了一套易于记忆的、具有一定意义的用字符来表示的一定意义的用字符来表示的IP地址,这就地址,这就是域名。是域名。4域名的特点域名的特点(1)易于记忆和理解易于记忆和理解;(2)使网络服务更易于管理使网络服务更易于管理;(3)在应用上与在应用上与IP地址等效。地址等效。5.1 5.1 域名域名体系与域名体系与域名系统系统Zhang DongyanTCP/IP Protocols 4IP地址到名字地址间的映射:便于记忆地址到名字地址间
3、的映射:便于记忆例:例:202.118.224.153==哈尔滨工业大学哈尔滨工业大学Web Mail服务器服务器4名字由名字由DNS服务器解析服务器解析4逆向层次型命名机制逆向层次型命名机制=Web服务器服务器.北京大学北京大学.教育机构教育机构.中中国国(162.105.129.12)4行业和组织顶级域名:行业和组织顶级域名:com,edu,gov,mil,net,org,int4国家和地区顶级域名:国家和地区顶级域名:au, cn, tw, hk, jp, it5.1 5.1 域名域名体系与域名体系与域名系统系统Zhang DongyanTCP/IP Protocols 5.1 5.1
4、域名域名体系与域名体系与域名系统系统4主机名必须满足三条准则:主机名必须满足三条准则:全球唯一性全球唯一性便于管理便于管理便于映射,效率高便于映射,效率高4单一域名服务器的问题:单一域名服务器的问题:随着网络数及主机数的增加,重名的可能性变大随着网络数及主机数的增加,重名的可能性变大域名服务器的负担过重域名服务器的负担过重跨网段域名服务器为网络负载带来负担跨网段域名服务器为网络负载带来负担管理权限不清晰管理权限不清晰Zhang DongyanTCP/IP Protocols 层次型命名机制层次型命名机制4名字空间分成若干个部分,并授权相应的名字空间分成若干个部分,并授权相应的机构进行管理;机构
5、进行管理;4各授权机构有权对其所管辖的名字空间进各授权机构有权对其所管辖的名字空间进一步划分,并再授权相应的机构进行管理;一步划分,并再授权相应的机构进行管理;4域名系统构造成一个树状分布式数据库,域名系统构造成一个树状分布式数据库,叶节点是主机名,中间节点是相应层次的叶节点是主机名,中间节点是相应层次的域名服务器,根节点为空。域名服务器,根节点为空。4域名之间用域名之间用“.”进行分割:进行分割:Zhang DongyanTCP/IP Protocols 4域名系统采用层次型命名机制,语法是:域名系统采用层次型命名机制,语法是:主机名主机名主机名主机名. . 第第第第n n级子域名级子域名级
6、子域名级子域名第第第第2 2级子域名级子域名级子域名级子域名. .顶级域顶级域顶级域顶级域名名名名4域名地址一般包含四部分内容,他们分别域名地址一般包含四部分内容,他们分别是:是:计算机名计算机名计算机名计算机名. .机构名机构名机构名机构名. .网络分类名网络分类名网络分类名网络分类名. .顶级域名顶级域名顶级域名顶级域名如:如:如:如:4顶级顶级域名域名(最高级域名最高级域名:top-level domain)是是一种标准化的标号以保证域名系统的通用一种标准化的标号以保证域名系统的通用性。性。域名系统的命名机制域名系统的命名机制Zhang DongyanTCP/IP Protocols 域
7、名系统的层次结构域名系统的层次结构主机名主机名. .组名组名. .网点名网点名. .顶级域名顶级域名主页服务器主页服务器教育网教育网哈工大哈工大中国中国“”cnedujpukhkcomeducomacorghitpkutsinghuaneuwwwmtlibmllibvtlib顶级顶级网点网点组组主机主机Zhang DongyanTCP/IP Protocols 域名系统的规定域名系统的规定4域名系统具有特定的保留字,且顶级域名系统具有特定的保留字,且顶级域名是确定的,由域名是确定的,由IAHC负责制定;负责制定;4顶级域名分为三类:通用顶级域名分为三类:通用(组织组织)、国、国家家(地域地域)
8、及国际组织;及国际组织;通用类由三个字母表示,表示组织,特通用类由三个字母表示,表示组织,特指美国机构,其它国家则出现在二级域指美国机构,其它国家则出现在二级域名名(网络名网络名)中中IAHC在世界的七个大区选择了不超过在世界的七个大区选择了不超过2828个注个注册中心来接收这七个通用型顶级域名的申请册中心来接收这七个通用型顶级域名的申请Zhang DongyanTCP/IP Protocols (1 1)一般地,)一般地,InternetInternet地址的最后一部分代表了最大地址的最后一部分代表了最大的区域,通常为国家代码。的区域,通常为国家代码。域名域名国家国家/ /地区代码地区代码a
9、u澳大利亚澳大利亚ca加拿大加拿大cn中中 国国fr法法 国国jp日日 本本hk香香 港港tw台台 湾湾域名域名国家国家/ /地区代码地区代码de德德 国国uk英英 国国fi芬芬 兰兰it意大利意大利es西班牙西班牙dk丹丹 麦麦nz新西兰新西兰有关有关顶级域名的规定顶级域名的规定Zhang DongyanTCP/IP Protocols (2 2)美国通常不使用国家代码作为地址的最后一部)美国通常不使用国家代码作为地址的最后一部分,而分别以:分,而分别以:域名域名意意 义义 com商商 业业 组组 织织edu教教 育育 部部 门门gov政政 府府 部部 门门mil军军 事事 部部 门门 ne
10、t网网 络络 组组 织织 org非赢利组织非赢利组织int国国 际际 组组 织织例例www.ims.orgwww.有关有关顶级域名的规定顶级域名的规定Zhang DongyanTCP/IP Protocols 域名域名意意 义义firm公司、企业公司、企业store销售经营公司销售经营公司webWWW WWW 机构机构arts 文化、娱乐文化、娱乐rec消遣、娱乐消遣、娱乐info信息服务信息服务nom个个 人人例例www.legend.firmwww.xxx.storewww.sina.webwww.www.internic.recwww.mis.infowww.starco.arts有关有
11、关顶级域名的规定顶级域名的规定(3 3)新增通用型顶级域名:)新增通用型顶级域名:Zhang DongyanTCP/IP Protocols 域名命名例子域名命名例子哈尔滨工业大学校园网内负责收发电子邮件哈尔滨工业大学校园网内负责收发电子邮件的主机代号为的主机代号为mail,mail,其域名为:其域名为: 其中,其中,“ cncn”代表中国(国家名),代表中国(国家名), “eduedu”代表代表教育机构的网络分类名教育机构的网络分类名, hit hit 代表代表哈尔滨工业哈尔滨工业大学(机构名),大学(机构名),“mailmail”则为邮件服务器的主机名(计算机名)。则为邮件服务器的主机名
12、(计算机名)。 前一个区域被后一个区域包含,是后一个区前一个区域被后一个区域包含,是后一个区域子域。域子域。Zhang DongyanTCP/IP Protocols 中国的顶级域名是中国的顶级域名是中国的顶级域名是中国的顶级域名是cncncncn, , , ,下属的二级域名分两类下属的二级域名分两类下属的二级域名分两类下属的二级域名分两类 机构机构类别域名类别域名 (最初为(最初为6 6个,个,19971997年后增加为年后增加为7 7个)个) : -用于科研机构用于科研机构 -用于工、商、金融企业用于工、商、金融企业用于工、商、金融企业用于工、商、金融企业 -用于教育机构用于教育机构用于教
13、育机构用于教育机构 -用于非赢利组织用于非赢利组织用于非赢利组织用于非赢利组织 -用于政府部门用于政府部门用于政府部门用于政府部门 -用于互联网用于互联网用于互联网用于互联网 行政区行政区类别类别域名域名(34343434个)个)个)个) : 适用于各省、市、直辖市,一般取地名前两个汉字的拼适用于各省、市、直辖市,一般取地名前两个汉字的拼适用于各省、市、直辖市,一般取地名前两个汉字的拼适用于各省、市、直辖市,一般取地名前两个汉字的拼 音缩写。如:音缩写。如:音缩写。如:音缩写。如: -北京北京 -上海上海上海上海Zhang DongyanTCP/IP Protocols 5.25.2 域名系统
14、域名系统与与域名解析域名解析4在在Internet上,上,“域名域名 IP地址地址”的映的映射或解析工作由一组既独立又协作的射或解析工作由一组既独立又协作的服务器来完成,并称为域名服务器服务器来完成,并称为域名服务器(Domain Name Server,简称简称DNS)。)。4域名服务器也称为名字服务器,相应域名服务器也称为名字服务器,相应地完成该映射工作的软件称为域名解地完成该映射工作的软件称为域名解析器(析器(Name Resolver)软件。软件。Zhang DongyanTCP/IP Protocols 5.25.2 域名系统域名系统与与域名解析域名解析4域名服务器的两种形式:域名服
15、务器的两种形式:主服务器,用于保存域名解析表,获得结果后主服务器,用于保存域名解析表,获得结果后发送给请求方。发送给请求方。转发服务器,用于保存转发服务器表,一旦收转发服务器,用于保存转发服务器表,一旦收到不是本域名服务器解析范围内的地址时则转到不是本域名服务器解析范围内的地址时则转交到其他域名服务器,如此直至得到肯定的答交到其他域名服务器,如此直至得到肯定的答复复(有或没有有或没有)为止。为止。4域名服务器的链的配置域名服务器的链的配置所有服务器必须知道其下一层服务器的位置所有服务器必须知道其下一层服务器的位置所有服务器必须知道根服务器的位置所有服务器必须知道根服务器的位置Zhang Don
16、gyanTCP/IP Protocols 5.25.2 域名系统域名系统与与域名解析域名解析4解析器解析器(Name Resolver)存在于客户存在于客户方,由客户提出查询申请并分析返回的解方,由客户提出查询申请并分析返回的解析后的结果并传送给应用程序。析后的结果并传送给应用程序。4与与DNS通信可以采用通信可以采用TCP协议或协议或UDP协议,协议,但通常解析器均配置为但通常解析器均配置为UDP协议,因为对协议,因为对于单个的请求于单个的请求UDP协议的开销比较小。协议的开销比较小。Zhang DongyanTCP/IP Protocols 4域名解析的含义域名解析的含义在在Interne
17、t中,当用户使用主机域名进行通信时,中,当用户使用主机域名进行通信时,系统必须将域名映射为系统必须将域名映射为IP地址或反之。这种将域地址或反之。这种将域名映射成相应的名映射成相应的IP地址的过程称为域名解析地址的过程称为域名解析(Name Resolution)。)。域名解析包含两个过程:域名解析包含两个过程:正向正向域名解析:将域名映射成域名解析:将域名映射成IP地址的过程,地址的过程,或者说或者说从域名得到从域名得到IP地址地址的过程的过程。即。即“域名域名地址地址 IP地址地址”。反向反向域名解析:将域名解析:将IP地址地址映射成域名映射成域名的过程,的过程,或者说或者说从从IP地址找
18、到相应的域名地址找到相应的域名的过程。这的过程。这种情况一般使用不多。种情况一般使用不多。5.25.2 域名系统域名系统与与域名解析域名解析Zhang DongyanTCP/IP Protocols 4域名服务器的分布结构域名服务器的分布结构与域名的层次结构类似,与域名的层次结构类似, Internet上众多上众多的的域名服务器也是按树型层次结构分布的。域名服务器也是按树型层次结构分布的。5.25.2 域名系统域名系统与与域名解析域名解析Zhang DongyanTCP/IP Protocols 一般来说,按上图中的域名服务器的层次结构,对一般来说,按上图中的域名服务器的层次结构,对于任何一个
19、域名只要从根服务器开始,自顶向下进行搜于任何一个域名只要从根服务器开始,自顶向下进行搜索,通过一次搜索就可找到与之相应的索,通过一次搜索就可找到与之相应的IPIP地址。域名解地址。域名解析的实际过程中,通常采用以下两种方法:析的实际过程中,通常采用以下两种方法: 1 1、递归解析法、递归解析法 从根服务器开始,自顶向下一级一级往下解析,直从根服务器开始,自顶向下一级一级往下解析,直到找到相应的到找到相应的IPIP地址为止。(地址为止。(我替你查询)我替你查询) 2 2、重复解析(或反复解析)法、重复解析(或反复解析)法 从本地的从本地的DNSDNS开始,若在本开始,若在本DNSDNS管理范围内
20、找不到相管理范围内找不到相应的域名,则将请求转向更高一层或最靠近的应的域名,则将请求转向更高一层或最靠近的DNSDNS;若若还是找不到,则再向高一层的还是找不到,则再向高一层的DNSDNS查询,直至最后找到查询,直至最后找到请求域名及相应的请求域名及相应的IPIP地址为止。(地址为止。(我告诉你找谁查询我告诉你找谁查询)域名的解析域名的解析方法方法Zhang DongyanTCP/IP Protocols 域名解析过程如下:域名解析过程如下:是否在本域?是否在本域?查询请求查询请求Y Y返回结果返回结果重复解析?重复解析?返回结果返回结果Y YN NN N递归解析递归解析返回结果返回结果域名的
21、解析域名的解析方法方法Zhang DongyanTCP/IP Protocols 域名解析(递归解析)过程举例域名解析(递归解析)过程举例4如从本地访问:如从本地访问:首先由本地的首先由本地的DNSDNS解析,若解析不了,将名字交给根中解析,若解析不了,将名字交给根中国国(cn)的的DNSDNS解析;解析;若中国(若中国(cncn)的)的DNSDNS解析不了,将名字交给根中国教育解析不了,将名字交给根中国教育科研网(科研网(eduedu)的)的DNSDNS解析;解析;若教育科研网(若教育科研网(eduedu)的)的DNSDNS解析不了,将名字交给根解析不了,将名字交给根北京大学(北京大学(pk
22、upku)的)的DNSDNS解析;解析;最后由北京大学最后由北京大学的的DNS DNS 解析出解析出的的IPIP地地址为:址为:202.112.7.12202.112.7.12,并将该并将该IPIP地址返回给用户。地址返回给用户。Zhang DongyanTCP/IP Protocols 4在域名的解析过程中,为提高速度,可以在两在域名的解析过程中,为提高速度,可以在两方面进行优化:方面进行优化:复制:复制:根根DNS可以被复制出若干副本,并存可以被复制出若干副本,并存放在世界各地的多处域名服务器中。实际应放在世界各地的多处域名服务器中。实际应用时,地理位置最近的域名服务器通常响应用时,地理位
23、置最近的域名服务器通常响应最快最快。缓存:缓存:在每个域名服务器内存中开辟一个在每个域名服务器内存中开辟一个“域名缓存区域名缓存区”,用来存放最近一段时间中解,用来存放最近一段时间中解析过的域名及相应的析过的域名及相应的IP地址,以及描述该域地址,以及描述该域名的服务器位置信息。名的服务器位置信息。域名解析性能的优化域名解析性能的优化Zhang DongyanTCP/IP Protocols 域名系统的工作原理域名系统的工作原理根服务器根服务器主机主机主服务主服务CNEDUUKACPKUACBRADHIT主机主机H服务器服务器服务器服务器cn服务器服务器Www.brad.ac.ukWww.br
24、ad.ac.ukWww.brad.ac.ukWww.brad.ac.ukWww.brad.ac.ukWww.brad.ac.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.xxx.ukxxx.xxx.ac.u
25、kxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.xxx.ac.ukxxx.brad.ac.u
26、kxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukxxx.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.b
27、rad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.ukwww.brad.ac.uk143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.
28、2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5143.53.2.5Zhang DongyanTCP/IP Protocols 4域名在整个域名在整个Internet中必须唯一。因此
29、当高级中必须唯一。因此当高级子域名相同时,低级子域名不允许重复。子域名相同时,低级子域名不允许重复。4在域名中字母的大写和小写没有区别。在域名中字母的大写和小写没有区别。4当一台主机从一处移到另一处时,当它属于当一台主机从一处移到另一处时,当它属于不同的网络时,其不同的网络时,其IP地址必须更换,但可以地址必须更换,但可以保留原来的域名,域名的解析(从域名查找保留原来的域名,域名的解析(从域名查找相应的相应的IP地址)仍依赖于原来的域名服务器。地址)仍依赖于原来的域名服务器。4主机的主机的IP地址和其域名对通信协议来说具有地址和其域名对通信协议来说具有相同的作用。如果你的系统没有域名服务器相同
30、的作用。如果你的系统没有域名服务器时,则只能时,则只能 使用使用IP地址不能使用域名。地址不能使用域名。关于域名服务器应注意的问题关于域名服务器应注意的问题Zhang DongyanTCP/IP Protocols 一个例子一个例子4Hosts.db文件里存储了域名的正向解析信息文件里存储了域名的正向解析信息4softwareINA202.118.250.94BlueLine IN CNAME software4hitsyINA202.118.250.1654laserlab IN A 202.118.250.183Zhang DongyanTCP/IP Protocols 一个例子一个例子4
31、250.rev文件文件49 IN PTR.4165 IN PTR .4183 IN PTR .4Zhang DongyanTCP/IP Protocols D N S定义了一个用于查询和响应的报文格式。下图显定义了一个用于查询和响应的报文格式。下图显示这个报文的总体格式示这个报文的总体格式。DNS查询和响应的一般格式查询和响应的一般格式DNSDNS的报文格式的报文格式Zhang DongyanTCP/IP Protocols 这个报文由这个报文由1 2字节长的首部和字节长的首部和4个长度可变的字段组成。个长度可变的字段组成。标识字段由客户程序设置并由服务器返回结果。客户程序标识字段由客户程序设
32、置并由服务器返回结果。客户程序通过它来确定响应与查询是否匹配。通过它来确定响应与查询是否匹配。16 bit的标志字段被划分为若干子字段,如下图所示。的标志字段被划分为若干子字段,如下图所示。从最左位开始依次介绍各子字段:从最左位开始依次介绍各子字段: QR 是是1 bit字段:字段:0表示查询报文,表示查询报文,1表示响应报文。表示响应报文。 o p c o d e是一个是一个4 bit字段:通常值为字段:通常值为0(标准查询),其(标准查询),其他值为他值为1(反向查询)和(反向查询)和2(服务器状态请求)。(服务器状态请求)。 A A是是1 bit标志,表示标志,表示“授权回答授权回答(a
33、uthoritative answer)”。该名字服务器是授权于该域的。该名字服务器是授权于该域的。DNSDNS的报文格式的报文格式Zhang DongyanTCP/IP Protocols 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)”。该比特能在一个查询中设置,并在响应中返回。这个标志该比特能
34、在一个查询中设置,并在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询。告诉名字服务器必须处理这个查询,也称为一个递归查询。如果该位为如果该位为0,且被请求的名字服务器没有一个授权回答,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的其他名字服务器列表,这称它就返回一个能解答该查询的其他名字服务器列表,这称为迭代查询。在后面的例子中,我们将看到这两种类型查为迭代查询。在后面的例子中,我们将看到这两种类型查询的例子。询的例子。DNSDNS的报文格式的报文格式Zhang DongyanTCP/IP Protocols R A是是1 bit字段,表示字段,表示“
35、可用递归可用递归”。如果名字服务器。如果名字服务器支持递归查询,则在响应中将该比特设置为支持递归查询,则在响应中将该比特设置为1。在后面的。在后面的例子中可看到大多数名字服务器都提供递归查询,除了某例子中可看到大多数名字服务器都提供递归查询,除了某些根服务器。些根服务器。随后的随后的3 bit字段必须为字段必须为0。 r c o d e是一个是一个4 bit的返回码字段。通常的值为的返回码字段。通常的值为0(没有(没有差错)和差错)和3(名字差错)。名字差错只有从一个授权名字(名字差错)。名字差错只有从一个授权名字服务器上返回,它表示在查询中制定的域名不存在。服务器上返回,它表示在查询中制定的
36、域名不存在。 随后的随后的4个个16 bit 字段说明最后字段说明最后4个变长字段中包含的个变长字段中包含的条目数。对于查询报文,问题条目数。对于查询报文,问题( q u e s t i o n )数通常是数通常是1,而其他,而其他3项则均为项则均为0。类似地,对于应答报文,回答数至。类似地,对于应答报文,回答数至少是少是1,剩下的两项可以是,剩下的两项可以是0或非或非0。DNSDNS的报文格式的报文格式Zhang DongyanTCP/IP Protocols DNS查询报文中的问题部分查询报文中的问题部分 问题部分中每个问题的格式如下图问题部分中每个问题的格式如下图DNS查询报文中问查询报
37、文中问题部分的格式所示,通常只有一个问题。题部分的格式所示,通常只有一个问题。 查询名是要查找的名字,它是一个或多个标识符的查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为符的字节长度,每个名字以最后字节为0结束,长度为结束,长度为0的标识符是根标识符。的标识符是根标识符。DNSDNS的报文格式的报文格式Zhang DongyanTCP/IP Protocols 下图显示了如何存储域名下图显示了如何存储域名g e m i n i . t u c . n o a o . e
38、d u。域名域名g e m i n i . t u c . n o a o . e d u 的表示的表示Zhang DongyanTCP/IP Protocols 每个问题有一个查询类型,而每个响应(也有一个每个问题有一个查询类型,而每个响应(也有一个类型。大约有类型。大约有2 0个不同的类型值,其中的一些目前已经个不同的类型值,其中的一些目前已经过时。下图显示了其中的一些值。过时。下图显示了其中的一些值。 最常用的查询类型是最常用的查询类型是A类型,表示期望获得查询名的类型,表示期望获得查询名的I P地址。一个地址。一个P T R查询则请求获得一个查询则请求获得一个I P地址对应的地址对应的
39、域名。域名。 查询类通常是查询类通常是1,指互联网地址(某些站点也支持其,指互联网地址(某些站点也支持其他非他非I P地址)地址)Zhang DongyanTCP/IP Protocols DNS问题和响应的类型值和查询类型值问题和响应的类型值和查询类型值Zhang DongyanTCP/IP Protocols DNS响应报文中的资源记录部分响应报文中的资源记录部分 D N S报文中最后的三个字段,回答字段、授权字段和报文中最后的三个字段,回答字段、授权字段和附加信息字段,均采用一种称为资源记录附加信息字段,均采用一种称为资源记录R R(Resource Record)的相同格式。下图显示了
40、资源记录的格式。)的相同格式。下图显示了资源记录的格式。DNS资源记录格式资源记录格式Zhang DongyanTCP/IP Protocols 域名是记录中资源数据对应的名字。它的格式和前面介域名是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式相同。绍的查询名字段格式相同。类型说明类型说明R R的类型码。它的值和前面介绍的查询类型的类型码。它的值和前面介绍的查询类型值是一样的。类通常为值是一样的。类通常为1,指,指I n t e r n e t数据。数据。生存时间字段是客户程序保留该资源记录的秒数。资源生存时间字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为记录通
41、常的生存时间值为2天。天。资源数据长度说明资源数据的数量。该数据的格式依赖资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型于类型字段的值。对于类型1(A记录)资源数据是记录)资源数据是4字字节的节的I P地址。地址。Zhang DongyanTCP/IP Protocols DNS应答的格式应答的格式Zhang DongyanTCP/IP Protocols 注意到注意到DNS名字服务器使用的熟知端口号无论对名字服务器使用的熟知端口号无论对U D P还是还是T C P都是都是53。这意味着。这意味着D N S均支持均支持U D P和和T C P访问,但我访问,但我们使用
42、们使用t c p d u m p观察的所有例子都是采用观察的所有例子都是采用U D P。那么这。那么这两种协议都在什么情况下采用以及采用的理由都是什么呢?两种协议都在什么情况下采用以及采用的理由都是什么呢? 当名字解析器发出一个查询请求,并且返回响应中的当名字解析器发出一个查询请求,并且返回响应中的T C(删减标志)比特被设置为(删减标志)比特被设置为1时,它就意味着响应的长度超时,它就意味着响应的长度超过了过了5 1 2个字节,而仅返回前个字节,而仅返回前5 1 2个字节。在遇到这种情况个字节。在遇到这种情况时,名字解析器通常使用时,名字解析器通常使用T C P重发原来的查询请求,它将允重发
43、原来的查询请求,它将允许返回的响应超过许返回的响应超过5 1 2个字节。既然个字节。既然T C P能将用户的数据流能将用户的数据流分为一些报文段,它就能用多个报文段来传送任意长度的用分为一些报文段,它就能用多个报文段来传送任意长度的用户数据。户数据。用用UDPUDP还是用还是用TCPTCPZhang DongyanTCP/IP Protocols 此外,当一个域的辅助名字服务器在启动时,将从该域的主此外,当一个域的辅助名字服务器在启动时,将从该域的主名字服务器执行区域传送。我们也说过辅助服务器将定时名字服务器执行区域传送。我们也说过辅助服务器将定时(通常是(通常是3小时)向主服务器进行查询以便
44、了解主服务器数小时)向主服务器进行查询以便了解主服务器数据是否发生变动。如果有变动,将执行一次区域传送。区域据是否发生变动。如果有变动,将执行一次区域传送。区域传送将使用传送将使用T C P,因为这里传送的数据远比一个查询或响,因为这里传送的数据远比一个查询或响应多得多。应多得多。用用UDPUDP还是用还是用TCPTCPZhang DongyanTCP/IP Protocols 让我们通过另一个例子将已经介绍的许多让我们通过另一个例子将已经介绍的许多D N S特性作特性作一个综合性回顾。先启动一个综合性回顾。先启动Rlogin 客户程序,然后连接到一个客户程序,然后连接到一个位于其他域的位于其
45、他域的R l o g i n服务器。下图显示了发生的分组交换服务器。下图显示了发生的分组交换过程。过程。 下面发生的下面发生的11个步骤都假定客户和服务器的高速缓存中个步骤都假定客户和服务器的高速缓存中没有任何信息。没有任何信息。1) 客户程序启动后,调用它的名字解析器函数将我们键入的客户程序启动后,调用它的名字解析器函数将我们键入的主机名转换为一个主机名转换为一个I P地址。一个地址。一个A类型的查询请求被送往一类型的查询请求被送往一个根服务器。个根服务器。2) 由根服务器返回的响应中包含为该服务器所在域服务的名由根服务器返回的响应中包含为该服务器所在域服务的名字服务器名。字服务器名。3)
46、客户端的名字解析器将向该服务器的名字服务器重发上述客户端的名字解析器将向该服务器的名字服务器重发上述A类型查询,这个查询通常是将期望递归标志设置为类型查询,这个查询通常是将期望递归标志设置为1。一个例子一个例子Zhang DongyanTCP/IP Protocols 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服务器收到来自客户的连接请求后,调用
47、它的名字服务器收到来自客户的连接请求后,调用它的名字解析器通过解析器通过T C P连接请求中的连接请求中的I P地址获得客户主机名。这地址获得客户主机名。这是一个是一个P T R查询请求,由一个根名字服务器处理。这个根名查询请求,由一个根名字服务器处理。这个根名字服务器可以不同于步骤字服务器可以不同于步骤1中客户使用的根名字服务器。中客户使用的根名字服务器。7) 这个根名字服务器的响应中含有为客户的这个根名字服务器的响应中含有为客户的i n - a d d r . a r p a域的名字服务器。域的名字服务器。8) 服务器上的名字解析器将向客户的名字服务器重传上述服务器上的名字解析器将向客户的
48、名字服务器重传上述P T R查询。查询。9) 返回的返回的P T R应答中含有客户主机的应答中含有客户主机的F Q D N。一个例子一个例子Zhang DongyanTCP/IP Protocols 10) 服务器的名字解析器向客户的名字服务器发送一个服务器的名字解析器向客户的名字服务器发送一个A类类型查询请求,查找前一步返回的名字对应的型查询请求,查找前一步返回的名字对应的I P地址。这可地址。这可能由服务器中的能由服务器中的g e t h o s t b y a d d r函数自动完成,否则函数自动完成,否则R l o g i n服务器将完成这一步。此外,客户的名字服务器服务器将完成这一步
49、。此外,客户的名字服务器常常就是客户的常常就是客户的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 DongyanTCP/IP Protocols 启动启动RloginRlogin客户和服务器的分组交换过程客户和服务器的分组交换过程一个例子一个例子Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols Zhang DongyanTCP/IP Protocols