通过一个网络错误简述DNS
某天下午,有同事说网络突然很慢,我随即点开百度,访问不了。试了其他网站也不行。浏览器提示错误是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相关推荐
- Qt 在线安装程序出现网络错误
最近安装Qt时,遇到了一个网络错误: 下载https://mirrors.aliyun.com/....时出现网络错误:Error transferring https://mirrors.aliyu ...
- 盘点一个网络爬虫中常见的一个错误
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 圣朝无阙事,自觉谏书稀. 大家好, ...
- 简述DNS进行域名正向解析的过程。
简述DNS进行域名正向解析的过程. 参考答案: 首先,客户端发出DNS请求翻译IP地址或主机名.DNS服务器在收到客户机的请求后: (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出 ...
- wdns服务器未响应,Win7系统网络诊断提示DNS服务器未响应的解决方法
Win7系统网络诊断提示DNS服务器未响应的解决方法 昨天小编的朋友Win7系统网络诊断提示DNS服务器未响应的解决方法说,她win7系统电脑在开机的过程中,怎么都连接不上网络了,并且出现dns服 ...
- 由于在客户端检测到一个协议错误_HTTP协议,你了解多少?
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...
- python网络通信传输的数据类型_Python网络编程中的网络数据和网络错误。
上一个章节我们说的是套接字名和DNS.这篇文章我们主要解决下面问题. 我们在两台主机之间建立与关闭TCP流连接以及UDP数据报连接后.我们应该怎么准备我们需要传输的数据,该怎么对数据进行编码与格式化. ...
- Linux就这个范儿 第12章 一个网络一个世界
Linux就这个范儿 第12章 一个网络一个世界 与Linux有缘相识还得从一项开发任务说起.十八年前,我在Nucleus OS上开发无线网桥AP,需要加入STP生成树协议(SpanningTree ...
- 第四课 k8s网络基础学习-DNS和DHCP学习
第四课 k8s网络基础学习-DNS和DHCP学习 tags: k8s网络 DNS DHCP 文章目录 第四课 k8s网络基础学习-DNS和DHCP学习 第一节 DNS介绍 第二节 DNS的linux使 ...
- 一个网络请求的历险之旅
本文来自公众号 "寒食君" 的投稿 对于互联网,人们总是高谈阔论,却很少有人愿意去了解电脑.手机.电视这些设备到底是如何被"连接"起来的. 人们动动手指,点点鼠 ...
最新文章
- easymock 图片_easy-mock的使用
- [UGUI]圆形Image
- windows下使用svn命令行
- 蛋糕是叫胚子还是坯子_教你做巧克力淋面蛋糕,掌握这个配比,好看又好吃,10分钟做一个...
- 【转】Java 8十个lambda表达式案例
- 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)
- matlab intersect
- a标签传值到另一个页面_用大头儿子和小头爸爸举例,就讲明白 vue 中父子组件的传值? | 原力计划...
- 标准正态分布怎么算_标准正态分布表怎么看
- 晶体表面原子结构和一篇论文
- cAdvisor源码分析
- RUOK的完整形式是什么?
- 云服务器最重要的特点,云服务的优势是什么(云服务的主要特点)
- 社工库寻求帮助可以下载
- 自学软件测试,缺少项目实战怎么办?
- Ubuntu+Windows双系统,开机默认启动项设置Windows优先
- EasyPay(易支付)Android超简单微信支付宝支付接入
- Metal 框架之创建纹理及纹理采样
- 计算机 路由器教案,路由器培训教材
- 【Kotlin 协程】Flow 异步流 ⑤ ( 流的上下文 | 上下文保存 | 查看流发射和收集的协程 | 不能在不同协程中执行流的发射和收集操作 | 修改流发射的协程上下文 | flowOn函数 )