6.1 网络应用模型与域名系统 DNS
客户/服务器模型与 P2P 模型;DNS 的层次域名空间、四类域名服务器、递归查询与迭代查询以及高速缓存。
网络应用模型
客户/服务器(C/S)模型
在客户/服务器模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。其工作流程如下:服务器处于接收请求的状态;客户机发出服务请求,并等待接收结果;服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
- 网络中各计算机的地位不平等,服务器可以通过对用户权限的限制来达到管理客户机的目的,使它们不能随意存储/删除数据,或进行其他受限的网络活动;整个网络的管理工作由少数服务器担当,因此网络的管理非常集中和方便;
- 客户机相互之间不直接通信;可扩展性不佳,受服务器硬件和网络带宽的限制,服务器支持的客户机数有限;
- 常见应用:Web、FTP、远程登录、电子邮件。
P2P 模型
在 P2P 模型中,各计算机没有固定的客户和服务器划分。相反,任意一对计算机——称为对等方(Peer)——直接相互通信。实际上,P2P 模型从本质上来看仍然使用客户/服务器方式,但强调的是通信过程中的对等,这时每台主机既是客户机又是服务器。
- 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,大大提高了系统效率和资源利用率;
- 多个客户机之间可以直接共享文档;可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求;
- 网络健壮性强,单个结点的失效不会影响其他部分的结点;
- 缺点:在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度。
域名系统 DNS
域名系统 DNS 是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如 www.example.com)转换为便于机器处理的 IP 地址。DNS 系统采用客户/服务器模型,其协议运行在 UDP 之上,使用 53 号端口。
层次域名空间
因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。域名中的标号都由英文字母和数字组成,每个标号不超过 63 个字符,不区分大小写;级别最低的域名写在最左边,级别最高的顶级域名写在最右边;完整的域名不超过 255 个字符。
顶级域名(TLD)分为三大类:国家顶级域名(如 .cn、.us、.uk)、通用顶级域名(如 .com、.net、.org、.gov、.edu)和基础结构域名(.arpa,用于反向域名解析)。
域名服务器
因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到 IP 地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区(不以”域”为单位),各单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有结点必须是能够连通的。
- 根域名服务器:是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上共有 13 个不同 IP 地址的根域名服务器(每个都以服务器集群的方式存在)。根域名服务器并不直接把待查询的域名直接转换成 IP 地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询;
- 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址);
- 权限域名服务器:每台主机都必须在权限域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个权限域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和权限域名服务器。权限域名服务器总能将其管辖的主机名转换为该主机的 IP 地址;
- 本地域名服务器:当一台主机发出 DNS 查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。每个因特网服务提供者(ISP),一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。
域名解析过程
域名解析是指把域名映射成为 IP 地址或把 IP 地址映射成域名的过程,前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的 DNS 客户端构造一个 DNS 请求报文,以 UDP 数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合的查询。
- 主机向本地域名服务器的查询总是采用递归查询:如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步查询;
- 本地域名服务器向根域名服务器的查询通常采用迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器”你下一步应当向哪个域名服务器进行查询”,然后让本地域名服务器进行后续的查询。
高速缓存:为了提高 DNS 的查询效率,并减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。由于名字到地址的绑定并不经常改变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项。主机中同样也有 DNS 高速缓存。
即时练习
- 1(408 真题 2010)如果本地域名服务器无缓存,当采用递归方法解析另一网络某主机域名时,用户主机、本地域名服务器发送的域名请求消息数分别为( )。
- 2(408 真题 2016)假设所有域名服务器均采用迭代查询方式进行域名解析。当主机访问规范域名为 www.abc.xyz.com 的网站时,本地域名服务器在完成该域名解析的过程中,可能发出 DNS 查询的最少和最多次数分别是( )。
- 3下列关于 DNS 的说法中,错误的是( )。
- 4与客户/服务器模型相比,P2P 模型的主要优点是( )。
标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。