速读原著-TCP/IP(DNS示例)
第14章 DNS:域名系统
14.9 另一个例子
让我们通过另一个例子将已经介绍的许多 D N S特性作一个综合性回顾。先启动 Rlogin 客户程序,然后连接到一个位于其他域的 R l o g i n服务器。图 1 4 - 1 6显示了发生的分组交换过程。下面发生的11个步骤都假定客户和服务器的高速缓存中没有任何信息。
- 客户程序启动后,调用它的名字解析器函数将我们键入的主机名转换为一个 I P地址。
一个A类型的查询请求被送往一个根服务器。 - 由根服务器返回的响应中包含为该服务器所在域服务的名字服务器名。
- 客户端的名字解析器将向该服务器的名字服务器重发上述 A类型查询,这个查询通常是将期望递归标志设置为1。
- 返回的应答中包含R l o g i n服务器的I P地址。
- Rlogin客户和R l o g i n服务器建立一个 T C P连接(第1 8章将提供该步骤的细节)。客户和服务器的T C P模块间将交换3个分组。
- Rlogin服务器收到来自客户的连接请求后,调用它的名字解析器通过 T C P连接请求中的I P地址获得客户主机名。这是一个 P T R查询请求,由一个根名字服务器处理。这个根名字服务器可以不同于步骤1中客户使用的根名字服务器。
- 这个根名字服务器的响应中含有为客户的 i n - a d d r . a r p a域的名字服务器。
- 服务器上的名字解析器将向客户的名字服务器重传上述 P T R查询。
- 返回的P T R应答中含有客户主机的F Q D N。
- 服务器的名字解析器向客户的名字服务器发送一个 A类型查询请求,查找前一步返回的名字对应的I P地址。这可能由服务器中的 g e t h o s t b y a d d r函数自动完成,正如我们在 1 4 . 5节中介绍的那样,否则 R l o g i n服务器将完成这一步。此外,客户的名字服务器常常就是客户的i n - a d d r . a r p a名字服务器,但这不是必需的。
- 从客户的名字服务器返回的响应含有客户主机的 A记录。R l o g i n服务器将客户的 T C P连接请求中的I P地址与A记录作比较。高速缓存将减少这个图中交换的分组数目。