&2应用层 - DNS:因特网的目录服务

DNS

  • DNS提供的服务
    • 用户主机将一个HTTP请求报文发送到Web服务器的过程
    • DNS服务
  • DNS工作机理概述
    • DNS的一种简单设计(集中式设计)
    • 分布式、层次数据库
      • 3种类型的DNS服务器交互的方式
      • 本地DNS服务
    • DNS缓存
  • DNS记录报文
    • 记录例子(忽略TTL)

标识主机的两种方式:

  • 主机名:由不定长的字母和数字组成。便于记忆。
    如www.yahoo.com
    路由器处理困难。
  • IP地址:由4个字节组成,有着严格的层次结构。
    路由器容易处理。
    &2应用层 - DNS:因特网的目录服务_第1张图片

DNS提供的服务

报文在网络中传输,使用IP地址

  • 域名系统DNA(Domain Name System):进行主机名到IP地址的转换。
  • 一个由分层的DNS服务器实现的分布式数据库
  • 允许主机查询分布式数据库的应用层协议。

说明:
运行BIND软件的UNIX机器;
DNS协议运行在UDP之上,使用53号端口。
DNS通常直接由其他的应用层协议(包括HTTP、SMTP和FTP)使用,以将用户提供的主机名解析为IP地址。用户只是间接使用。

用户主机将一个HTTP请求报文发送到Web服务器的过程

若某个用户主机上的一个浏览器访问某个Web页,www.someschool.edu/index.html
用户主机要将一个HTTP请求报文发送到Web服务器 www.someschool.edu,需先得到相应的IP地址。

过程如下

  1. 用户主机上运行DNS应用的客户机端
  2. 浏览器从URL中解析出主机地址,传给DNS客户机端。
  3. DNS客户机向DNS服务器发送一个包含主机名的请求;
  4. DNS客户机收到含有对应主机名的IP地址的回答报文;
  5. 浏览器向该IP地址指定的HTTP服务器发起一个TCP连接。

增加一定时延。

DNS服务

  • 主机名到IP地址的转换
  • 主机别名
    规范名和别名:通过DNS可以得到主机别名(别名更 易记)对应的规范主机名及IP地址。
  • 邮件服务器别名
    电子邮件应用程序调用DNS,对提供的邮件服务器 别名进行解析,以获得该主机的规范主机名及其IP 地址。
  • 负载分配
    冗余服务器:一个IP地址集合和一个规范主机名

DNS工作机理概述

DNS工作过程:

  1. 某个应用程序调用DNS的客户端,并指明需要被转换的主机名
  2. 用户主机上的DNS客户端接收到后,向网络中发送一个DNS查询报文
  3. 经过若干毫秒到若干秒的时延后,用户主机上的DNS客户端接收到一个提供所希望映射的DNS回答报文
  4. 映射结果被传递到调用DNS客户端的应用程序
    DNS查询/回答报文使用UDP数据报,从53号端口发送

从用户主机调用应用程序的角度看,DNS是一 个提供简单、直接的转换服务的黑盒子。

DNS的一种简单设计(集中式设计)

假设因特网上只使用一个DNS服务器,该服 务器包含所有的映射。

工作过程

  1. 用户直接将所有查询直接发往单一的DNS服务器
  2. 该DNS服务器直接对所有的查询客户做出响应

优点
设计简单,具有吸引力

问题

  1. 单点故障:若该DNS服务器崩溃,整个因特网随 之瘫痪。
  2. 通信容量:单个DNS服务器要处理所有的DNS查 询。
  3. 远距离的集中式数据库:单个DNS服务器不可能 “邻近”所有查询客户,远距离查询将导致严重 时延。
  4. 维护:单个DNS服务器要为所有的因特网主机保 留记录。

分布式、层次数据库

单一DNS服务器上运行集中式数据库完全没有可扩展 能力
为了处理扩展性问题,DNS使用了大量的DNS服务器, 它们以层次方式组织,并且分布在全世界范围内

注意
没有一台DNS服务器拥有因特网上所有主机的映射
该映射分布在所有的DNS服务器上

3种类型的DNS服务器交互的方式

假定一个DNS客户要决定主机名www.amazon.com 的IP地址。

  1. 客户首先与根服务器之一联系,它将返回顶级域名com 的TLD服务器的IP地址
  2. 该客户则与这些TLD服务器之一联系,它将为 amazon.com返回权威服务器的IP地址。
  3. 最后,该客户与amazon.com权威服务器之一联系,它 为主机名www.amazon.com返回其IP地址。

本地DNS服务

(local DNS server):

  1. 严格来说,不属于DNS服务器的层次结构
  2. 每个ISP都有一台本地DNS服务器(也叫默认DNS服务 器)
  3. 主机的本地DNS服务器通常“邻近”本主机
  4. 当主机发出DNS请求时,该请求被发往本地DNS 服务 器,它起着代理的作用,并将该请求转发到DNS服务器 层次结构中。

假设主机cis.poly.edu想知道主机 gaia.cs.umass.edu的IP地址。 同时假设理工大学的本地DNS服务器为
dns.poly.edu,并且gaia.cs.umass.edu的权 威DNS服务器为dns.umass.edu

交互过程

DNS缓存

作用:
改善时延性能、减少在因特网上到处传输的DNS报文数量

原理:
在一个请求链中,当某DNS服务器接收一个DNS回答时, 它能将该回答中的信息缓存在本地存储器中。

注意:
由于主机和主机名与IP地址间的映射并不是永久的,DNS服 务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

举例:

  1. 假定主机apricot.poly.edu向dns.poly.edu 查询主机名cnn.com的IP地址
  2. 假定过了几个小时,理工大学的另外一台主 机也向dns.poly.edu查询相同的主机名
  3. 因为有了缓存,该本地DNS服务器可以立即 返回cnn.com的IP地址,而不必查询其他任 何DNS服务器。

DNS记录报文

资源记录(RR):由DNS服务器储存,提供 了主机名到 IP地址的映射。
(每个DNS回答报文包含了一条或多条资源记录)
资源记录是一个包含了下列字段的4元组:
( N a m e , V a l u e , T y p e , T T L ) (Name,Value,Type,TTL) Name,Value,Type,TTL
&2应用层 - DNS:因特网的目录服务_第2张图片

记录例子(忽略TTL)

&2应用层 - DNS:因特网的目录服务_第3张图片
&2应用层 - DNS:因特网的目录服务_第4张图片
注意:
通过使用MX记录,一个公司的邮件服务器和其他服务器(如Web服务器)可以使用相同的别名

例:假设一台edu TLD服务器不是主机 gaia.cs.umass.edu的权威DNS服务器,则该服务器将
包含一条包括主机cs.umass. edu的域记录,如 (umass.edu,dns.umass.edu,NS);还将包含一条类
型A记录,如(dns.umass.edu,128.119.40.111, A),该记录将名字dns.umass.edu映射为一个IP地址。

服务器不是用于某主机名的权威服务器,则该 服务器会有一条类型NS记录,该记录对应于 包含主机名的域;还将包含一条类型A记录

总结例子:澳大利亚的Alice观看www.networkutopia.com的Web页面

  1. Alice主机向本地DNS服务器发送请求。
  2. 本地服务器接着联系一个TLD com服务器。(如果TLD com服 务器地址没有被缓存,该本地DNS服务器也将必须与根DNS服 务器相联系。)
  3. 该TLD com服务器包含前面列出的类型NS和类型A资源记录, 向Alice的本地DNS服务器发送一个回答,该回答包含这两条资 源记录。
    • networkutopia.com, 权威服务器DNS名字, NS
    • 权威服务器DNS名字, 212.212.212.1, A
  4. 该本地DNS服务器向212.212.212.1发送一个DNS查询,请求 应对与www.networkutopia.com( 212.212.71.4 )的类型A 记录。
  5. Alice的浏览器此时能够向主机212.212.71.4发起一个TCP连接, 并在该连接上发送一个HTTP请求。

你可能感兴趣的:(计算机网络,网络,服务器,网络协议)