BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

8.8.8.8——用于快速浏览的DNS服务器

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 崔康 关注 1 他的粉丝 发布于 2009年12月11日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

谷歌提供了两台公共DNS服务器,分别是8.8.8.8和8.8.4.4,以进一步提高浏览网页的速度。

DNS服务器的作用是,把网站名字——文字标识符转换为底层网络协议使用的数字标识符。根据谷歌统计,平均每位用户每天需要数百次的这种转换服务。如今,很多网页都很复杂,包含了来自不同域名的内容,每一个域名都需要一次解析。域名解析过程——连接DNS服务器、找到数字ID、返回结果——增加了网页浏览的延迟, 导致加载网页需要数秒钟的时间,甚至11秒(如本例)。

谷歌认为这种DNS延迟是不可接受的,它开通了两个分布于全球的公共DNS服务器以提高浏览速度。他们试图解决三个主要问题

  • 速度:解析器端的缓存丢失是导致DNS反应缓慢的主要原因。出色的缓存技术能够提高响应速度。谷歌公用DNS实施了预取技术:在记录的TTL过期之前,我们会不断异步、独自地刷新大量流行域名的记录。这使得谷歌公用DNS能够在数据包访问服务器并返回的单次往返时间内处理很多DNS请 求。
  • 安全:DNS容易受到欺骗性攻击,这种攻击会破坏解析服务器的缓存并把所有用户路由到一个恶意网站。除非新的协议如DNSSEC得到广泛应用,解析器需要采取进一步措施保证它们的缓存安全。谷歌公共DNS通过打乱域名查询记录和在DNS消息中包含额外数据等措施使攻击者难以欺骗有效的响应。
  • 有效性:谷歌公共DNS符合DNS标准,提供给用户期望的准确反馈,不会阻碍、过滤或者重定向请求从而损害用户的浏览体验。

谷歌声称它们的DNS更优秀,因为

  • 充分利用服务器处理来自客户的流量负载,包括恶意访问。
  • 防止Dos攻击和放大攻击。虽然这主要是一个安全问题并对封闭的解析器影响更大一些,但是防止Dos攻击也有利于性能,因为这消除了DNS承担的额外流量负载。更多有关我们降低攻击机会的办法的信息,请查看安全优势
  • 针对共享缓存的负载平衡,以提高服务集群间的聚合缓存命中率。
  • 预取名字解析,克服传统的、被动的缓存机制,致力于处理缓存之外的大多数请求。我们正在测试一种DNS预取技术,认为很可能会大幅提高DNS速度。我们给出了其优势概况、限制和挑战,以及我们准备如何利用流量优先设置和缓存分区等技术应对这些挑战。

在一个类似但不同的说明中,谷歌解释了Chrome如何处理名字解析以提高浏览速度。Chrome软件工程师Jim Roskind给出了一些提示:

  • 当页面加载时,Chrome分析页面的所有链接,同时提前要求操作系统解析这些名字以得到IP地址。当操作系统完成时,反馈被丢弃了,因为这些反馈现在已经存储到了操作系统的缓存中。因此,当用户点击某个链接时,浏览器会询问对应的IP,结果会从这些缓存中返回,而不需要再次解析。
  • 另一个解决方案是监控鼠标。当用户想要点击某链接时,他需要花费200毫秒停留并实际点击它。在这段时间内,Chrome尝试获取该链接的IP。
  • 还有一个解决办法是长时间的缓存之前的名字解析,当用户重访这个特定页面时。Chrome已经准备好了IP。
  • Chrome要求操作系统在浏览器加载之前先解析主页的IP。当浏览器的加载完成后,主页能够快速加载,因为其IP已经存储在操作系统的缓存中。这减少了250-500毫秒的启动时间。
关于未来:1-2%的TCP/IP数据包会在传输中丢失,TCP/IP栈在Windows上3秒后会超时重发。当第一个数据包丢失后,用户等待页面加载,但是目标网站还没有真正连接。3秒对于谷歌来说太长了,因此他们将在Chrome中采取一种机制:当服务器在一定的时间内没有响应的时候,要么重新发送TCP/IP数据包,要么重新发起一个新的连接。
 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

评论 by 铭 刘

前两天的反馈说google的这两个域名还没有为中国做好准备,比如一些dns请求会被解析到国外的站点,而不是国内的cache,或者一些dns请求会被解析到被墙的网站中,总之有问题。

不过,就我个人使用的感觉,还没有什么问题,很快的说

Re: 评论 by Hao Sun

haha

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT