浏览器输入URL回车后会发生什么?(从DNS角度解读)

提前了解下DNS服务器——分布式、层次数据库

在这里插入图片描述
为了处理扩展性问题,DNS使用了大量的 DNS服务器,它们以层次方式组织,并且分布在全世界范围内。没有一台DNS服务器拥有因特网上所有主机的映射。相反,该映射分布在所有的DNS服务器上。大致说来,有3种类型的DNS服务器:根DNS服务器顶级域(TLD)DNS服务器和权威DNS服
务器
。它们像上图所示组织起来。

根 DNS服务器:到2011年秋季,共有247个根服务器。尽管我们将这些根 DNS服务器中的每个都视为单个的服务器,但每台“服务器”实际上是一个冗余服务器的网络,以提供安全性和可靠性。
顶级域(DNS)服务器:这些服务器负责顶级域名如com、org、net、edu和 gov,以及所有国家的顶级域名如uk、fr、ca和jp。

权威 DNS 服务器:在因特网上具有公共可访问主机(如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。一个组织机构的权威DNS服务器收藏了这些DNS记录。一个组织机构能够选择实现它自己的权威 DNS服务器以保存这些记录;另一种方法是,该组织能够支付费用,让这些记录存储在某个服务提供商的一个权威DNS服务器中。

还有另一类重要的DNS,称为本地DNS服务器。一个本地DNS服务器严格说来并不属于该服务器的层次结构,但它对DNS层次结构是重要的。每个ISP(如一个大学、一个公司或一个居民区的ISP)都有一台本地DNS服务器。当主机与某个ISP连接时,该ISP提供一台主机的IP地址,该主机具有一台或多台其本地 DNS 服务器的IP地址。

浏览器输入URL回车后会发生什么?

  1. 浏览器从上述 URL中抽取出主机名www.someschool. edu,并将这台主机名传给用户主机上运行着DNS应用的客户端。
  2. DNS客户首先向本地DNS服务器发送一个包含主机名的查询报文,如果有映射直接返回IP地址。
  3. 如果本地DNS服务器没有,那么它就把DNS查询报文发到根DNS服务器。
  4. 根DNS服务器注意到其主机名由edu结尾,并向本地DNS服务器返回负责edu的TLD的IP地址列表。
  5. 本地DNS服务器再次向这些TLD服务器之一发送查询报文,如果主机名包含二级域名,那么TLD就把负责这个二级域名的权威DNS服务器IP地址。
  6. 最后本地DNS服务器直接发送查询报文给权威服务器,它把主机名的IP地址返回给本地DNS服务器。
  7. DNS客户最终会收到一份回答报文,其中含有对应于该主机名的P地址。
  8. 一旦浏览器接收到来自 DNS的该P地址,它能够向位于该IP地址80端口的HTTP服务器进程发起一个 TCP连接。

注意到在上述过程中全程没有使用到DNS缓存,为了获得一台主机名的映射,共发送了8份 DNS报文:4份查询报文和4份回答报文!
接下来补充下利用DNS缓存减少这种查询流量的方法。

DNS缓存

为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用了缓存技术。

DNS缓存的原理

在一个请求链中,当某 DNS服务器接收一个DNS回答(例如,包含主机名到IP地址的映射)时,它能将该回答中的信息缓存在本地存储器中。例如,当本地 DNS服务器dns. poly.edu从某个DNS 服务器接收到一个回答,它能够缓存包含在该回答中的任何信息。如果在DNS服务器中缓存了一台主机名IP地址对,另一个对相同主机名的查询到达该DNS服务器时,该DNS服务器就能够提供所要求的P地址,即使它不是该主机名的权威服务器。由于主机和主机名与P地址间的映射并不是永久的,DNS服务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值