50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2009-12-10
  • 本文字数:1421 字

    阅读完需:约 5 分钟

谷歌提供了两台公共 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 数据包,要么重新发起一个新的连接。

2009-12-10 02:568257
用户头像

发布了 501 篇内容, 共 279.1 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

程序员应该专注技术还是转管理?

石云升

职业规划 职场经验 8月日更

百分点感知智能实验室:语音识别技术发展阶段探究

百分点科技技术团队

语音识别 百分点科技 感知智能

跨越AI天堑时:行动代号“盘古大模型”

脑极体

netty系列之:自建客户端和HTTP服务器交互

程序那些事

Java Netty 程序那些事

读书笔记 -《数据密集型应用系统设计》- 数据编码

KayTin

区块链技术发展趋势与银行业探索实践

CECBC

新时代大视频产业的底座,视频云创变了什么?

阿里云CloudImagine

阿里云 直播技术 视频制作 视频流 视频云

webrtc 即时带宽评估器(BitrateEstimator)

webrtc developer

WebRTC

区块链盲盒游戏app软件开发|盲盒游戏软件介绍

量化系统19942438797

区块链 智能合约 盲盒

我遇到的那些工长

escray

生活记录 8月日更

模块1-作业

笑看风雨情

中证协组织专题座谈会,加快推进区块链技术在证券行业应用

CECBC

分享 10 个高星的创意项目!

程序员鱼皮

Java Python 数据库 大前端 Go 语言

融云 X-Live 系列直播启动,遇见通信的无限可能

融云 RongCloud

开发者 音视频 通信 融云 即时通信

快手平台严管售卖“仿黄金类饰品”,直播带货在收割消费者

石头IT视角

架构设计-模块一

逝水流

架构

百分点大数据技术团队:BI嵌入式分析实践

百分点科技技术团队

BI 百分点科技 嵌入式分析

网络攻防学习笔记 Day122

穿过生命散发芬芳

网络安全 8月日更

Linux之last命令

入门小站

Linux

算法毕业总结

Geek_Gu

SharingSphere 源码解析 -- 真实SQL生成探索

数据库 源码

AlphaFold2“登陆”北鲲云平台,云计算助力科研大放异彩

北鲲云

07. 图灵测试与第一次AI浪潮

Databri_AI

人工智能

Google官方bazel构建工具的安装

Changing Lin

8月日更

ipfs矿机是什么?ipfs矿机挖出的币能交易吗?

区块链 分布式存储 ipfs挖矿 ipfs矿机 filecoin挖矿

疫情下的人生百态

6979阿强

图计算 GraphScope 新冠

Tapdata Cloud 版本上新!率先支持数据校验、类型映射等6大新功能

tapdata

MySQL nosql schema

细思极恐!Alibaba新产SpringBoot深度历险(嵩山版)开源

Java 编程 架构 面试 架构师

GitHub获120w+star的JDK源码剖析手册,竟出自Alibaba高管之手?

Java 架构 面试 程序人生 Alibaba

不用手机,如何让猫给你打视频电话丨日常小技

声网

物联网 目标检测 目标跟踪

数字化时代商业银行客户触达策略研究 从数据到服务 由场景到生态

CECBC

8.8.8.8——用于快速浏览的DNS服务器_Google_Abel Avram_InfoQ精选文章