1. 首页 > 电脑知识

计算机网络——域名服务 计算机网络第八版谢希仁课后答案

作者:admin 更新时间:2025-06-14
摘要:一、为什么需要DNS?(问题的起源) 我们首先要明白DNS是为了解决什么问题而诞生的。 在互联网世界里,每一台计算机(或服务器)都有一个独一无二的、由数字组成的地址,叫做IP地址(比如 202.118.1.80)。计算机之间的通信就是依靠这些IP地址来找到对方的,就像打电话需要知道对方的电话号码一样。 但是,让你记住一长串无规律的数字是非常困难的。相反,我们更容易记住有意义的名字,比如 www.g,计算机网络——域名服务 计算机网络第八版谢希仁课后答案

 

一、 何故需要DNS?( 难题的起源)

我们首先要明白DNS是为了解决 何 难题而诞生的。

在互联网 全球里,每一台计算机(或服务器)都有一个 完美无缺的、由数字组成的地址,叫做IP地址(比如 202.118.1.80)。计算机之间的通信就是依靠这些IP地址来找到对方的,就像打电话需要知道对方的电话号码一样。

然而,让你记住一长串无规律的数字是非常困难的。相反,我们更容易记住有意义的名字,比如 .google.com。这就产生了一个矛盾:人喜欢用名字,而机器需要用地址。

DNS(Do in Name System,域名 体系) 就是为了解决这个矛盾而生的。它的核心任务就是充当一个“翻译官”或者“电话簿”,负责将人类易于记忆的域名(如 .google.com)翻译成机器能够识别的IP地址(如 172.217.160.78)。


二、DNS的核心构成:域名与域名服务器

要 领会DNS的 职业原理,我们首先要了解它的两大核心组成部分:域名的层次结构和域名服务器的体系。

1. 域名的层次结构 (Hierarchical Structure)

互联网的域名并不 一个杂乱无章的列表,而是像一棵倒过来的树,具有非常清晰的层次化结构。 一个域名由多个部分组成,各部分之间用点“.”隔开,从右到左,级别越来越低。

例如域名: il.pku.edu.cn

. (根域):树的根,通常省略不写。 .cn: 顶级域名 (Top-Level Do in, TLD)。它表示这 一个注册在中国的域名。 .edu:二级域名。在.cn下,.edu表示这 一个教育机构。 .pku:电影域名。这里指代北京大学。 il:四级域名(也称主机名)。这里指代北京大学的邮件服务器。

顶级域名 (TLD) 主要分为三类:

民族 顶级域名 (nTLD / ccTLD): 如 .cn (中国), .us (美国), .uk (英国)。 通用 顶级域名 (gTLD): 如 .com (商业公司), .org (非营利组织), .net (网络服务机构)。 后来还增加了许多新的通用 顶级域名,如 .biz, .info 等。 基础设施域 (.arpa): 一个 独特域,用于互联网内部基础设施。

这种分层的结构使得域名的管理可以分级负责,高效且有序。例如,全球的 顶级域名由 ICANN 这样的国际机构管理,而 .cn 下的域名则由我国的 CNNIC (中国互联网络信息中心) 负责管理。

2. 域名服务器的体系 (Hierarchy of Name Servers)

由于互联网上的域名实在太多了,不可能用一台服务器存下所有的“域名-IP”对应关系。 因此,DNS采用了一个分布式的数据库 体系,域名服务器也按照域名的层次结构进行组织,主要分为四类:

根域名服务器 (Root Name Server)

它是最 高 质量别的服务器,全 全球只有13套(不是13台,而是13个IP地址,背后是庞大的服务器集群)。 它不直接“翻译”域名,但它知道所有 顶级域名服务器的IP地址。 当有服务器不认识某个域名时,第一个求助的就是它。

顶级域名服务器 (TLD Name Server)

负责管理所有以特定 顶级域名 小编觉得的域名,比如 .com 的 顶级域名服务器知道所有注册在 .com 下的二级域名的信息(比如 google.com 应该去问谁)。

权限域名服务器 (Authoritative Name Server)

这是真正“拥有”并负责维护特定区域(如 pku.edu.cn)内所有主机“域名-IP”映射关系的服务器。 比如, il.pku.edu.cn 的确切IP地址,就记录在 pku.edu.cn 的权限域名服务器上。每个域名都必须在某个权限域名服务器上注册。

本地域名服务器 (Local Name Server)

它不属于上述层次结构,但离用户最近,是用户进行DNS查询的第一站。 通常由你的网络服务提供商(ISP,如电信、移动)提供。它像一个“中介”或“代理”,负责帮助用户完成整个查询 经过。 它还具有高速缓存 (Caching) 功能,可以记下最近查询过的域名和IP地址,下次再有相同请求时,就可以直接返回答案,大大 进步效率。


三、DNS的 职业原理 (The Working Principle)

这部分是 的重中之重。DNS的查询 经过主要有两种方式:递归查询和迭代查询。 在实际应用中,这两种方式是结合使用的。

让我们通过一个完整的例子来 领会这个 经过:假设你在连 接着校园网的电脑上,首次访问 .abc.com。

整个流程如下(结合了递归和迭代查询):

[主机 -> 本地域名服务器] (递归查询)

你的电脑首先会向你的本地域名服务器(校园网提供的)发送一个DNS请求,问:“ .abc.com 的IP地址是 何?” 这种查询方式是递归查询 (Recursive Query)。意思是,你的电脑把任务完全委托给了本地域名服务器,说:“请你务必帮我找到答案,我等着就行”。

[本地域名服务器 -> 根域名服务器] (迭代查询)

本地域名服务器收到请求后,先检查自己的缓存里有没有记录。 由于是首次访问,缓存里没有。 于是,本地域名服务器向一台根域名服务器发起请求。 根域名服务器回答:“我不认识 .abc.com,但它 一个 .com 域名,你可以去问负责 .com 的 顶级域名服务器,它的IP地址是 X.X.X.X。”

[本地域名服务器 -> 顶级域名服务器] (迭代查询)

本地域名服务器 接着向IP地址为 X.X.X.X 的 .com 顶级域名服务器发起请求。 顶级域名服务器回答:“我也不知道,但我知道管理 abc.com 这个域的权限域名服务器的IP地址是 Y.Y.Y.Y,你应该去问它。”

[本地域名服务器 -> 权限域名服务器] (迭代查询)

本地域名服务器再向IP地址为 Y.Y.Y.Y 的 abc.com 权限域名服务器发起请求。 权限域名服务器一查自己的记录,找到了!它回答:“ .abc.com 的IP地址是 Z.Z.Z.Z。”

[本地域名服务器 -> 主机] (递归查询的响应)

本地域名服务器终于得到了最终答案 Z.Z.Z.Z。它将这个 结局返回给你的电脑,并将这个映射关系存入自己的高速缓存中,以便下次再有相同请求时能快速响应。

[主机 -> Web服务器]

你的电脑拿到了IP地址 Z.Z.Z.Z,现在就可以通过这个地址与 .abc.com 的Web服务器建立TCP连接,开始请求网页内容了。

拓展资料一下查询方式:

递归查询 (Recursive Query):主机向本地域名服务器的查询通常是递归的。主机当“甩手掌柜”,本地服务器必须返回最终 结局。 迭代查询 (Iterative Query):本地服务器向其他域名服务器的查询通常是迭代的。本地服务器当“跑腿的”,每次都只得到“下一步该去哪”的线索, 接着自己再去问下一家,直到找到答案。


四、DNS报文格式 (DNS Message For t)

DNS的查询和响应都是通过特定的报文格式来传输的。这个报文格式分为五个部分,非常重要,需要牢记。

[ 报文首部 | 难题部分 | 回答部分 | 授权部分 | 附加信息部分 ]

1. 报文首部 (Header) – 12字节

首部是定长的,包含了报文的控制信息。

标识 (ID) (2字节): 一个随机数,用来匹配请求和响应。响应报文会原封不动地 请求报文中的ID,这样客户端就知道这个响应是针对 何者请求的。 标志 (Flags) (2字节): 这是最重要的字段,包含了很多子字段,用来控制查询和响应的行为。

QR (1位): 0表示查询报文,1表示响应报文。 Opcode (4位): 0表示标准查询。 AA (1位): 授权回答标志。只有权限域名服务器返回的响应中,此位才为1。 TC (1位): 截断标志。如果响应报文太长(超过UDP的512字节限制),此位为1,表示报文被截断了。 RD (1位): 期望递归标志。在查询报文中设为1,表示希望目标服务器进行递归查询。我们向本地域名服务器发出的请求就是这样的。 RA (1位): 可用递归标志。在响应报文中由服务器设置,如果为1,表示该服务器支持递归查询。 Rcode (4位): 返回码。0表示没有差错;3 (NXDo in) 表示域名不存在。

难题数 (Questions) (2字节): 难题部分中的 难题数量(通常为1)。 资源记录数 (Answer RRs) (2字节): 回答部分中的资源记录数量。 授权资源记录数 (Authority RRs) (2字节): 授权部分中的资源记录数量。 附加资源记录数 (Additional RRs) (2字节): 附加信息部分中的资源记录数量。

2. 难题部分 (Question Section)

这部分包含了客户端想要查询的信息。

查询名 (Query Name): 要查询的域名,格式比较 独特,比如 .google.com会被编码成3 6google3com0。 查询类型 (Query Type): 指明想要查询哪种类型的资源记录。 查询类 (Query Class): 通常是IN (值为1),表示互联网地址。

3. 回答、授权、附加信息部分 (Answer, Authority, Additional Sections)

这三个部分的格式是相同的,都采用资源记录 (Resource Record, RR) 的格式。

资源记录 (RR) 的格式:

域名 (Name): 该记录所属的域名。 类型 (Type): 资源记录的类型,决定了“资源数据”字段的含义。 类 (Class): 同样,通常是 IN。 生存 时刻 (TTL – Time to Live): 一个数值(单位:秒),告诉接收方这个记录可以在缓存中保留多久。TTL过期后,缓存中的记录将被丢弃。 资源数据长度 (RDLength): “资源数据”字段的长度。 资源数据 (RDATA): 核心数据,其内容由“类型”字段决定。

重要的资源记录类型 (Type):

A: RDATA 一个 IPv4 地址。这是最常见的查询类型。 AAAA: RDATA 一个 IPv6 地址。 NS (Name Server): RDATA 是负责该域的权限域名服务器的主机名。 CNAME (Canonical Name): RDATA 一个别名对应的规范主机名。比如 .example.com 可能是 server1.example.com 的一个别名。 MX (Mail eXchanger): RDATA 是负责接收该域邮件的邮件服务器的主机名。


五、 要点 拓展资料

DNS的核心功能:将域名翻译成IP地址,方便人类使用。它 一个分层、分布式的数据库 体系。 两大支柱:域名的层次结构(根-> 顶级->二级…)和域名服务器体系(根-> 顶级->权限,以及旁路的本地域名服务器)。 查询 经过:

记住“主机到本地服务器是递归,本地服务器到其他服务器是迭代”这个典型模式。 领会每种服务器在查询链中的 影响:根服务器指路给 顶级, 顶级指路给权限,权限给出最终答案。 高速缓存 (Caching) 是 进步DNS效率的关键,TTL决定了缓存的有效期。

报文格式:

熟悉五个部分的顺序:首部、 难题、回答、授权、附加。 掌握首部中标志字段(Flags) 的含义,特别是 QR、AA、RD、RA 和 Rcode。 了解资源记录(RR) 的通用格式,并记住 几许关键的RR类型:A (IPv4), AAAA (IPv6), NS (域名服务器), CNAME (别名), MX (邮件服务器)。

DNS vs. ARP:这 一个常见的比较题。

DNS:实现应用层地址(域名)到网络层地址(IP)的翻译,是全局性的服务。 ARP:实现网络层地址(IP)到数据链路层地址(MAC)的翻译,是局域性的服务(仅在同一个局域网内有效)。