DNS:因特网的目录服务——DNS 提供的服务
因特网上的主机 可以使用多种方式进行标识。主机的一种标识方法是用它的主机名(hostname),如cnn.com、www.yahoo.com,google.com等,这些名字便于记忆。然而,主机名几乎没有提供(即使有也很少)关于主机在因特网中位置的信息。(一个名为www.erecomt.fr的主机以国家码.fr结束告诉我们该主机很可能在法国,仅此而已。)况且,因为主机名可能由不定长的字母数字组成,路由器难以处理。由于这些原因,主机也可以使用所谓IP地址(IPaddress)进行标识。
一个IP地址由4个字节组成,并有着严格的层次结构。例如121.7.106.83这样一个地址,其中的每个字节都被句点分隔开来,表示了0~255的十进制数字。我们说IP地址具有层次结构,是因为当我们从左至右扫描它时,我们会得到越来越具体的关于主机位于因特网何处的信息(即在众多网络的哪个网络里)。类似地,当我们从下向上查看邮政地址时,我们能够获得该地址位于何处的越来越具体的信息。
人们喜欢便于记忆的主机名标识方式,而路由器则喜欢定长的、有着层次结构的IP地址。为了折衷这些不同的偏好,我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统(Domain Name System,DNS)的主要任务。DNS是:①一个由分层的DNS服务器(DNS server)实现的分布式数据库;②一个使得主机能够查询分布式数据库的应用层协议。
DNS服务器通常是运行BIND(Berkeley Internet Name Domain)软件的UNIX机器。DNS协议运行在UDP之上,使用53号端口。
实 践 原 则 |
DNS:通过客户-服务器模式提供的重要网络功能 与HTTP、FTP和SMTP协议一样,DNS协议是应用层协议,其原因在于:①使用客户-服务器模式运行在通信的端系统之间;②在通信的端系统之间通过下面的端到端运输协议来传送DNS报文。然而,在其他意义上,DNS的作用非常不同于Web应用、文件传输应用以及电子邮件应用。与这些应用程序不同之处在于,DNS不是一个直接和用户打交道的应用。相反,DDNS是为因特网上的用户应用程序以及其他软件提供一种核心功能,即将主机名转换为其背后的地址。因特网体系结构的复杂性大多数位于网络的“边缘”。DNS通过采用了位于网络边缘的客户和服务器,实现了关键的名字到地址转换功能,它还是这种设计原理的另一个范例。 |
DNS通常是由其他应用层协议所使用的,包括HTTP、SMTP和FTP,将用户提供的主机名解析为IP地址。举一个例子,考虑当某个用户主机上的一个浏览器(即一个HTTP客户)请求 URL www.someschool.edu/index.html页面时会发生什么现象。为了使用户的主机能够将一个HTTP请求报文发送到Web服务器www.someschool.edu,该用户主机必须获得www.someschool.edu的IP地址。其做法如下。
- 同一台用户主机上运行着DNS应用的客户端。
- 浏览器从上述URL中抽取出主机名www.someschool.edu,并将这台主机名传给DNS应用的客户端。
- DNS客户向DNS服务器发送一个包含主机名的请求。
- DNS客户最终会收到一份回答报文,其中含有对应于该主机名的IP地址。
- 一旦浏览器接收到来自DNS的该IP地址,它能够向位于该IP地址80端口的HTTP服务器进程发起一个TCP连接。
从这个例子中,我们可以看到DNS给使用它的因特网应用带来了额外的时延,有时还相当可观。幸运的是,想获得的IP地址通常就缓存在一个“附近的”DNS服务器中,这有助于减少DNS的网络流量和DNS的平均时延。
除了进行主机名到IP地址的转换外,DNS还提供了一些重要的服务:
- 主机别名(host aliasing)。有着复杂主机名的主机能拥有一个或者多个别名。例如,一台名为relayl.west-coast.enterprise.com的主机,可能还有两个别名为enterprise.com和www.enterprise.com,在这种情况下,relayl.west-coast.enterprise.com也称为规范主机名(canonical hostname)。主机别名(当存在时)比主机规范名更加容易记忆。应用程序可以调用DNS来获得主机别名对应的规范主机名以及主机的IP 地址。
- 邮件服务器别名(mail server aliasing)。显而易见,人们也非常希望电子邮件地址好记忆。例如,如果 Bob在Hotmail 上有一个账户,Bob 的邮件地址就像 bob@ hotmail.com 这样简单。然而,Hotmail 邮件服务器的主机名可能更为复杂,不像hotmail.com那样简单好记(例如,规范主机名可能像relayl.west-coast.hotmail.com那样)。电子邮件应用程序可以调用DNS,对提供的邮件服务器别名进行解析,以获得该主机的规范主机名及其IP地址。事实上,MX记录允许一个公司的邮件服务器和Web服务器使用相同(别名化的)的主机名; 例如,一个公司的Web服务器和邮件服务器都能叫做enterprise.com。
- 负载分配(load distribution)。DNS也用于在冗余的服务器(如冗余的Web服务器等)之间进行负载分配。繁忙的站点(如cnn.com)被冗余分布在多台服务器上,每台服务器均运行在不同的端系统上,每个都有着不同的IP地址。由于这些冗余的Web服务器,一个IP地址集合因此与同一个规范主机名相联系。DNS数据库中存储着这些IP地址集合。当客户对映射到某地址集合的名字发出一个DNS请求时,该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址次序。因为客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文,所以DNS就在所有这些冗余的Web服务器之间循环分配了负载。DNS的循环同样可以用于邮件服务器,因此,多个邮件服务器可以具有相同的别名。一些内容分发公司如Akamai也以更加复杂的方式使用DNS,以提供 Web 内容分发。
原文地址:https://blog.csdn.net/goTsHgo/article/details/140372369
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!