某天下午,有同事说网络突然很慢,我随即点开百度,访问不了。试了其他网站也不行。浏览器提示错误是DNS_PROBE_FINISHED_BAD_CONFIG。我看了下网络连接图标

一切正常。并且微信也能正常发消息。我又试了试手机连接无线,发现一切正常,网页也可以访问。通过浏览器报错,容易想到可能是DNS服务器出问题了。但这一切现象该如何解释呢?

1、DNS简介

DNS-Domain Name System 直译就是域名系统,就是说这个系统会给你提供域名服务。这个世界,越是基础且重要的东西,我们越是容易忽略它的存在。因为它们让你很轻松地使用,以至于感受不到它们的存在。比如空气,比如这个DNS。

我们在浏览器输入www.xx.com的时候,计算机其实是无法理解的。网络通信是基于IP地址寻址的。因此,就需要有一张映射表,把我们输入的域名转换成对应的IP地址。DNS实际上就是在维护这样一个映射资源。

实际的DNS是一种多层、分布式的数据库。之所以这样设计,主要就是考虑其请求量大、请求用户分部广(全球各地)。为了高效、稳定地提供服务。其结构示意如下:

基于IPV4的根域名服务器全球共13台,10台在美国(1台主根服务器,9台辅根)。后来IP不够用了,扩充到IPV6,有2台增加的根服务器在中国。层级越高的服务器其管理的数据越少,就像总经理只需要管几个部长。除了图中这些域名服务器,还有一个离我们更近的-本地域名服务器。

基于以上知识,我们可以这样描述一个网页请求。

之所以能做到有值直接返回,是因为域名服务器会进行一定缓存。之前请求过的域名会被短期存储。

2、现象分析

现在,回到我们一开始提到的各种现象。

(1)无法访问网页

因DNS服务器宕机或其他原因,导致你无法正常使用域名解析服务,进而网页无法访问。就像你和翠花打电话,结果通讯录出问题,又不记得号码,那这个电话肯定打不出去的。这里我通过手动指定DNS地址解决了问题。其他情况请搜索相应文章解决。

(2)微信、QQ等聊天工具可以正常通讯

这些即时通讯工具,都依靠一个中间服务器。这里用户的数量太大,状态变化大(同时在线的很多,下一时刻也可能不在线),所以,B用户不可能拥有一个固定IP让A用户去联系。所以DNS那一套用不着。而为了保证信息发送的准确性,应用必然需要维护一个自己的协议。

或者说,微信、QQ在应用内自己维护了一个映射关系。能让你准确地给你的好友张三发送消息。微信名和QQ号不能重复也是协议能实现的基础,就像IP是唯一的一样。

(3)手机能访问网页

其实,不管你是PC还是手机或是平板,你要想访问网页,都是需要域名解析的。之所以这个场景下,手机能正常访问网页,一定是手机能正常使用域名解析服务。我将手机无线网络设置为静态,发现直接出现了两个域名服务器地址。我猜想,手机系统的DNS管理进程监测到自动获取DNS出错,会使用默认的固定DNS。因此,手机可以正常访问网页。

通过一个网络错误简述DNS相关推荐

  1. Qt 在线安装程序出现网络错误

    最近安装Qt时,遇到了一个网络错误: 下载https://mirrors.aliyun.com/....时出现网络错误:Error transferring https://mirrors.aliyu ...

  2. 盘点一个网络爬虫中常见的一个错误

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 圣朝无阙事,自觉谏书稀. 大家好, ...

  3. 简述DNS进行域名正向解析的过程。

    简述DNS进行域名正向解析的过程. 参考答案: 首先,客户端发出DNS请求翻译IP地址或主机名.DNS服务器在收到客户机的请求后: (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出 ...

  4. wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法

    Win7系统​网络诊断提示DNS服务器未响应的解决方法 昨天小编的朋友Win7系统​网络诊断提示DNS服务器未响应的解决方法说,她win7系统电脑在开机的过程中,怎么都连接不上网络了,并且出现dns服 ...

  5. 由于在客户端检测到一个协议错误_HTTP协议,你了解多少?

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

  6. python网络通信传输的数据类型_Python网络编程中的网络数据和网络错误。

    上一个章节我们说的是套接字名和DNS.这篇文章我们主要解决下面问题. 我们在两台主机之间建立与关闭TCP流连接以及UDP数据报连接后.我们应该怎么准备我们需要传输的数据,该怎么对数据进行编码与格式化. ...

  7. Linux就这个范儿 第12章 一个网络一个世界

    Linux就这个范儿 第12章 一个网络一个世界 与Linux有缘相识还得从一项开发任务说起.十八年前,我在Nucleus  OS上开发无线网桥AP,需要加入STP生成树协议(SpanningTree ...

  8. 第四课 k8s网络基础学习-DNS和DHCP学习

    第四课 k8s网络基础学习-DNS和DHCP学习 tags: k8s网络 DNS DHCP 文章目录 第四课 k8s网络基础学习-DNS和DHCP学习 第一节 DNS介绍 第二节 DNS的linux使 ...

  9. 一个网络请求的历险之旅

    本文来自公众号 "寒食君" 的投稿 对于互联网,人们总是高谈阔论,却很少有人愿意去了解电脑.手机.电视这些设备到底是如何被"连接"起来的. 人们动动手指,点点鼠 ...

最新文章

  1. easymock 图片_easy-mock的使用
  2. [UGUI]圆形Image
  3. windows下使用svn命令行
  4. 蛋糕是叫胚子还是坯子_教你做巧克力淋面蛋糕,掌握这个配比,好看又好吃,10分钟做一个...
  5. 【转】Java 8十个lambda表达式案例
  6. 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)
  7. matlab intersect
  8. a标签传值到另一个页面_用大头儿子和小头爸爸举例,就讲明白 vue 中父子组件的传值? | 原力计划...
  9. 标准正态分布怎么算_标准正态分布表怎么看
  10. 晶体表面原子结构和一篇论文
  11. cAdvisor源码分析
  12. RUOK的完整形式是什么?
  13. 云服务器最重要的特点,云服务的优势是什么(云服务的主要特点)
  14. 社工库寻求帮助可以下载
  15. 自学软件测试,缺少项目实战怎么办?
  16. Ubuntu+Windows双系统,开机默认启动项设置Windows优先
  17. EasyPay(易支付)Android超简单微信支付宝支付接入
  18. Metal 框架之创建纹理及纹理采样
  19. 计算机 路由器教案,路由器培训教材
  20. 【Kotlin 协程】Flow 异步流 ⑤ ( 流的上下文 | 上下文保存 | 查看流发射和收集的协程 | 不能在不同协程中执行流的发射和收集操作 | 修改流发射的协程上下文 | flowOn函数 )

热门文章

  1. linux三种网络模式
  2. 为什么独热编码会引起维度诅咒,以及避免他的几个办法
  3. alevel计算机教材答案,alevel计算机教材电子版及内容和目录大纲
  4. python的价值观_朴素的DevOps价值观
  5. 关于SG/SP, GG/GP的一点个人理解
  6. 视频深度学习:行为识别指南
  7. 无线猫能做打印服务器,光猫能做服务器用吗
  8. Python实现json数据清洗、json数据去重、json数据统计
  9. Apache修改服务器监听端口,练习 - 04 - 配置 Apache 服务器的监听端口
  10. 创客平台靠什么盈利?