今天很多人都在讲域名系统和互联网作为一个整体是如何工作的,域名系统---也就是大家所熟知的DNS。不幸的是,对于天龙人和普通人来说,他们并不了解DNS到底是什么鬼。今天就来聊聊DNS,和那些想了解DNS工作原理的人聊一聊它是如何工作的。

什么是DNS?

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

看到了上面百度百科的解释,好像大概知道了DNS有什么用,至少我们可以对如下问题做出回答了。

为什么需要DNS?

因为人的脑力有限,我们无法记住每个我们使用的网站的每个IP地址,记住一些有含义的字符串(如:百度网址www.baidu.com)貌似容易的多,DNS把域名和IP做了一个映射,我们在浏览器输入域名,DNS就可以帮我们把对应的域名解析成真实的IP地址,从而请求IP地址对应的网站。这就是DNS的作用。

但是工作原理是什么?是不是还不清楚,那么就看看下面通俗的解释吧。

DNS无无疑是互联网中最重要也最容易被忽略的部分。如果没有DNS,我们今天互联网的使用体验肯定会很糟糕,因为我们得记住我们使用网站的IP地址(淘宝、微信、支付宝、钉钉等),这么多的IP地址,想想自己是不是很头大,毕竟你现在连你不常用的账号密码都已经忘了qwq!。

我们都知道或者都应该知道电脑组成了互联网,组成了大型网络,并且通过地下电缆或水下电缆相互通信。并且通过一串数字相互识别,这串数字也就是IP地址。由于大部分人脑力有限,无法对成百上千个数字系列进行分类并且一一记住,DNS的实际作用就是将域名翻译成对应的IP地址。

但是DNS究竟是如何工作的呢???

当你在浏览器的地址栏输入www.baidu.com,你实际上访问的是www.baidu.com.,没错,在域名后面还有一个点(.),你从来不会看到,也从来不会输入。当你输入www.baidu.com你实际上访问的是 www.baidu.com.。 的页面,真的是这样的,不信你可以试一下。总之,最后的那个点代表着互联网命名空间的根。为什么这个点这么重要?因为它是一切开始的地方。当你第一次搜索www.baidu.com.时,你的浏览器和操作系统会首先判断它们知不知道这个域名对应的IP地址是啥,它可能会在你的计算机里配置也可能在内存里,很多人称之为cache。总之,你的浏览器会问操作系统,如果它们都不知道www.baidu.com.是什么,然后会怎么样呢? 操作系统会配置为当它不知道某个IP地址时去询问解析域名服务器,解析域名服务器就是承担DNS查询重任的,它会在你的操作系统里进行手动或自动配置。你的操作系统会向解析域名服务器询问www.baidu.com.的IP地址。解析域名服务器的内存或者缓存里可能有这个IP地址,也可能没有。为了这次说明,假如它没有这个IP地址,所有解析域名服务器必须知道的一件事就是知道去哪里查找根域名服务器。是的,这个神秘的点会出现在你输入的地址栏的每一个域名的最后,根域名服务器回复到:“我也不知道,但我知道去哪里找com的域名服务器,去哪里问一下吧”。com域名服务器叫做顶级域名服务器,也就是TLD域名服务器。解析域名服务器会记住根域名服务器提供的所有信息,并且添加到缓存里,然后直接去找TLD域名服务器。当解析域名服务器询问www.baidu.com时,TLD域名服务器回答说:“我不知道,但我知道去哪里找example.com域名服务器,你去那里问一下“。下一组域名服务器叫做主域名服务器,那么TLD域名服务器怎么知道用哪个主域名服务器呢,这得借助于域名注册公司了。当一个域名被购买时,域名注册公司就会被告知那个域名应该使用哪一个主域名服务器,注册公司就会将这次注册信息告知负责根域名的机构,并且告诉它更新TLD域名服务器。总之,解析域名服务器记下TLD域名服务器的回复,存储到缓存里,然后去询问example.com域名服务器,这个时候,主域名服务器就会说:“哈,我知道他在哪里”。告诉你的浏览器去访问192.168.1.1这个IP地址。解析域名服务器记下了主域名服务器提供的信息添加到缓存里,然后回复给操作系统,操作系统就会告诉浏览器,浏览器就会连接到请求页面,www.baidu.com的IP地址。很有意思,对不对?这个过程看起来好像很复杂,但是相信我,整个过程在你眨眼之间就能完成,建立DNS就是为了快速高效的工作,它是互联网必须的组成部分。一旦你理解了这一点,你会清楚的看到一次DNS查询就会由多个层面和多个机构负责。仅仅是一次DNS查询啊!由解析域名服务器根域名服务器TLD域名服务器、还有主域名服务器。如果任何人改变或者去除了这个过程中的任意一个部分,这会导致一场灾难。

DNS是如何工作的?的更多相关文章

  1. DNS查询的工作原理

    二.DNS查询的工作原理 1.DNS查询过程按两部分进行     1.名称查询从客户端计算机开始, 并传送给本机的DNS客户服务程序进行解析     2.如果不能再本机解析查询, 可根据设定的查询DN ...

  2. DNS 到底怎么工作的? (How does dns work?)

    其实这个问题每次看的时候都觉得很明白,但是很久之后就忘记了,所以这次准备记录下来.深入到这个过程的各个细节之中,以后多看看. Step 1 请求缓存信息: 当你在开始访问一个 www.baidu.co ...

  3. DNS 系列(二):DNS 记录及工作方式,你了解吗?

    在上一篇<DNS 系列(一):为什么更新了 DNS 记录不生效?>中,我们主要讲解了 DNS 和 DNS 传播,知道了网络通信主要通过 IP 地址来进行,而域名系统(DNS)则是保证用户在 ...

  4. 如何简单的测试kubernetes的dns add-ons是否工作正常?

    1,新建一个yaml文件. apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: containers: ...

  5. 简单谈谈DNS的工作原理及实践

    DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...

  6. DNS的工作原理及解析

    DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...

  7. DNS工作流程及原理 域名、IP与DNS的关系

    转自:http://blog.csdn.net/maminyao/article/details/7390208 一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其 ...

  8. DNS原理及其解析过程 精彩剖析

    本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...

  9. DNS知识指南

    1. 什么是记录? 记录的实质是存在DNS服务器叶结点上的一条映射(只讨论权威DNS,不讨论Local DNS). A记录:(域名:IP地址) 例:cnblogs.com   A  42.121.25 ...

随机推荐

  1. 【命令】top命令

    功用: <---实时动态地查看系统的整体运行情况,两个命令都是查看运行状况,但是htop更加易用---> TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命 ...

  2. CVE-2017-12149 JBOOS反序列化漏洞复现

    一.漏洞描述 2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告.该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccess ...

  3. VS Code 自动化连接非固定IP地址EC2实例的解决方案

    问题描述 大家可能和我一样,平时在AWS上启动一台安装有Linux EC2实例作为远程开发机. (注:这里的EC2实例是配置用私钥进行登录的) 通常,你可以选择申请一个Elastic IP绑定到这台开 ...

  4. 微信小程序-页面下拉

    微信小程序当滑动到最顶部和最底部时,继续下拉,会将整个页面拉下去或者拉上去,本来以为是客户端自有的特性,就没去管他,直到我的禅道出现了这个记录... 其实这个问题是可以解决的,只需要在你不想出现在此情 ...

  5. 痞子衡嵌入式:Farewell, 我的2020

    -- 题图:苏州大学老校门 2020年的最后一天,痞子衡驱车300多公里从苏州赶回了苏北老家(扬州某边陲小镇),连镇铁路虽然新通车了,解决了苏南苏北多年的铁路不直通问题,但奈何痞子衡老家小镇离最近的火 ...

  6. Vue概述

    Vue.js是一套构建用户界面的渐进式框架,采用自底向上增量开发的设计.Vue的核心库关注于视图(html),不仅易上手,还便于与第三方库或项目整合. 渐进式:一步一步,不是将所有的东西都学完才能使用 ...

  7. 前端面试题归类-css的flex相关

    Flex布局 常见父项的属性: ●flex-direction :设置主轴的方向 Row 默认值从左到右 row-reverse 从右到左 column 从上到下 column-reverse 从下到 ...

  8. 项目实战--idea中使用Git遇到的坑

    问题 在一次代码的更新中,我按照以往的操作点,菜单中VCS下的Update Project,结果报错了,idea自动将我未提交的所有代码驻藏了stash了,全部代码还原了,心里慌了一下,去GitLab ...

  9. Study_way

    一.Study 学习通Java基础视频.语法 开源中国 (Git)版本控制 读懂程序.源代码 相关资源 百度网盘 程序:方法(数学) 二.参数传递 基本数据的传参:虚参改变影响实参 引用数据的传参:数 ...

  10. Faceto_object_programdesign

    一面向对象程序设计思想 1 和面向过程关注点不同 过程: 程序执行流程和逻辑 (局部功能) 对象: 程序中的对象 (程序结构) 2 对象 现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件 ...