今天很多人都在讲域名系统和互联网作为一个整体是如何工作的,域名系统---也就是大家所熟知的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. Python进行拉勾网数据爬取框架与思路

    爬取内容 用交互式的方式输入想查询的职位并循环输出职位简要信息,为了方便阅读,本文使用到的变量并不是以目标变量的英文来命名,而是为了方便而取的变量名,各位大牛请谅解.(因贵网站爬取一定量数据后需要登陆 ...

  2. C# 生成6位短信验证码

    1 private string VerifyCode() 2 { 3 Random random = new Random(); 4 return random.Next(100000, 99999 ...

  3. [.NET] - Enhanced Strong Naming (加强版的强签名程序集) – 如何迁移原有的强命名程序集

    依据文档: https://msdn.microsoft.com/en-us/library/hh415055(v=vs.110).aspx 虽然文档上给出了看似完整的步骤,但是如果按照上面的步骤,结 ...

  4. [.NET] - 在Create一个RSA密钥的是要注意的长度问题

    有时候我们需要自己手动的创建RSA密钥,但是在密钥创建之后,在使用的时候会有类似密钥长度不正确的错误信息被抛出,那可能就是在创建一个RSA密钥的时候,对于的elements长度没设置正确,所以的ele ...

  5. [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]

    [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I] 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出 ...

  6. saltstack批量管理文件和计划任务

    简介 saltstack是由thomas Hatch于创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统.用来管理你的基础架构,可轻松管理成千上万台服务器. 关于saltstack更多功能本 ...

  7. 图像处理 jpg png gif svg

    jpg 图像格式 高压缩的,除了文字,线条外,用jpg 处理 GIF 图像格式 高压缩的,动图  PNG 图像格式 PNG是一种可携式网络图像格式.PNG一开始便结合GIF及JPG两家之长,打算一举取 ...

  8. 解决surfacebook无法运行64位虚拟机的问题

    如果您嫌烦请直接看英文部分解决方案,另外windows专业版内置的hyper-v也是一款及其好用的虚拟机. 网上各种方案都尝试过,但是每次使用VMware创建64为虚拟机的时候总会显示不支持64位虚拟 ...

  9. 【JDBC核心】操作 BLOB 类型字段

    操作 BLOB 类型字段 MySQL BLOB 类型 MySQL 中,BLOB 是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据. 插入 BLOB 类型的数据必须使用 Pre ...

  10. 【C++】《Effective C++》第三章

    第三章 资源管理 条款13:以对象管理资源 当申请一块动态内存时,可能会发生内存泄漏. class Investment {}; void f() { Investment* pInv = creat ...