试想一个问题,我们人类可以有多少种识别自己的方式?可以通过身份证来识别,可以通过社保卡号来识别,也可以通过驾驶证来识别,尽管有多种识别方式,但在特定的环境下,某种识别方法会比其他方法更为适合 。因特网上的主机和人类一样,可以使用多种方式进行标识 。互联网上主机的一种标识方法是使用它的主机名,比如 www.baidu.com、www.google.com 等 。这是我们人类习惯的记忆方式,因特网中的主机却不会这么记忆,它们喜欢定长的、有层次结构的 IP 地址 。
那么路由器如何把 IP 地址解析为我们熟悉的网址呢?这时候就需要 DNS 出现了 。
文章插图
图 7-1
DNS 的全称是 Domain Name Systems,它是一个由分层的DNS 服务器(DNS server)实现的分布式数据库;它还是一个使得主机能够查询分布式数据库的应用层协议 。DNS 协议运行在 UDP 协议上,使用 53 端口 。
DNS 基本概述
与 HTTP、FTP 和 SMTP 一样,DNS 协议也是一种应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过 UDP 运输层协议来传送 DNS 报文 。
DNS 通常不是一门独立的协议,它通常为其他应用层协议所使用,这些协议包括 HTTP、SMTP 和 FTP,将用户提供的主机名解析为 IP 地址 。
下面根据一个示例来描述一下 DNS 解析过程:
你在浏览器键入 www.someschool.edu/index.html 时会发生什么?为了使用户主机能够将一个 HTTP 请求报文发送到 Web 服务器 www.someschool.edu,会经历如下操作:
- 同一台用户主机上运行着 DNS 应用的客户端 。
- 浏览器从上述 URL 中抽取出主机名 www.someschool.edu,将这台主机名传给 DNS 应用的客户端 。
- DNS 客户端向 DNS 服务器发送一个包含主机名的请求,请求 DNS 服务器解析这个主机名的 IP 地址 。
- DNS 客户端最终会收到一份回答报文,其中包含该目标主机的 IP 地址 。
- 一旦浏览器收到目标主机的 IP 地址后,它就能够向位于该 IP 地址 80 端口的 HTTP 服务器进程发起一个 TCP 连接 。
除了提供 IP 地址到主机名的转换,DNS 还提供了下面几种重要的服务:
- 主机别名(host aliasing),有着复杂主机名的主机能够拥有一个或多个其他别名,比如说一台名为 relay1.west-coast.enterprise.com 的主机,同时会拥有 enterprise.com 和 www.enterprise.com 的两个主机别名,在这种情况下,relay1.west-coast.enterprise.com 也称为规范主机名,而主机别名要比规范主机名更加容易记忆 。应用程序可以调用 DNS 来获得主机别名对应的规范主机名以及主机的 IP地址 。
- 邮件服务器别名(mail server aliasing),同样的,电子邮件的应用程序也可以调用 DNS 对提供的主机名进行解析 。
- 负载分配(load distribution),DNS 也用于冗余的服务器之间进行负载分配,这种负载又叫做内部负载 。繁忙的站点例如 cn com 被冗余分布在多台服务器上,每台服务器运行在不同的端系统,每个都有着不同的 IP 地址 。由于这些冗余的 Web 服务器,一个 IP 地址集合因此与同一个规范主机名联系 。DNS 数据库中存储着这些 IP 地址的集合 。由于客户端每次都会发起 HTTP 请求,所以 DNS 就会在所有这些冗余的 Web 服务器之间循环分配了负载 。还有一种负载是全局负载,全局负载一般部署在多个机房之间,每个机房都会有自己的 IP 地址,当用户访问某个域名时,会在这些 IP 之间进行轮询,如果某个数据中心挂了,就会将对应的 IP 地址删除,比如某个 DNS 客户端会轮询访问北京和上海的机房,一个挂了会直接使用另外一个,这就是全局负载的概念 。
假设运行在用户主机上的某些应用程序(如 Web 浏览器或邮件阅读器) 需要将主机名转换为 IP 地址 。这些应用程序将调用 DNS 的客户端,并指明需要被转换的主机名 。DSN 客户端收到 DNS 后,会使用 UDP 通过 53 端口向网络上发送一个 DNS 查询报文,经过一段时间后,DNS 客户端会收到一个主机名对应的 DNS 应答报文 。因此,从用户主机的角度来看,DNS 就像是一个黑盒子,其内部的操作你无法看到 。但是实际上,实现 DNS 这个服务的黑盒子非常复杂,它由分布于全球的大量 DNS 服务器以及定义了 DNS 服务器与查询主机通信方式的应用层协议组成 。
推荐阅读
- 不同车系润滑油如何选?收好这篇指南!
- 我的榜样作文高中作文?我的榜样这篇作文怎么写
- 我喜爱的书刊读后感?我所能带给你们的事物读后感
- 我们会像童话故事里?这篇童话故事
- 手机能赚钱的5个方法分享给你 用手机怎么可以赚钱
- CoreDNS粗解
- 民间故事|民间故事:光棍半夜钓鱼,一群女子围上来,光棍:我给你看样东西
- 我变成了一只小猪作文?我变成了一头猪这篇作文400字
- 女人可以通过嫁人改变命运?当一个女生想嫁给你的时候
- 圣诞节祝福语恶搞?恶搞圣诞祝福语
