DNS是如何工作的?
今天很多人都在讲域名系统和互联网作为一个整体是如何工作的,域名系统---也就是大家所熟知的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是如何工作的?的更多相关文章
- DNS查询的工作原理
二.DNS查询的工作原理 1.DNS查询过程按两部分进行 1.名称查询从客户端计算机开始, 并传送给本机的DNS客户服务程序进行解析 2.如果不能再本机解析查询, 可根据设定的查询DN ...
- DNS 到底怎么工作的? (How does dns work?)
其实这个问题每次看的时候都觉得很明白,但是很久之后就忘记了,所以这次准备记录下来.深入到这个过程的各个细节之中,以后多看看. Step 1 请求缓存信息: 当你在开始访问一个 www.baidu.co ...
- DNS 系列(二):DNS 记录及工作方式,你了解吗?
在上一篇<DNS 系列(一):为什么更新了 DNS 记录不生效?>中,我们主要讲解了 DNS 和 DNS 传播,知道了网络通信主要通过 IP 地址来进行,而域名系统(DNS)则是保证用户在 ...
- 如何简单的测试kubernetes的dns add-ons是否工作正常?
1,新建一个yaml文件. apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: containers: ...
- 简单谈谈DNS的工作原理及实践
DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...
- DNS的工作原理及解析
DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...
- DNS工作流程及原理 域名、IP与DNS的关系
转自:http://blog.csdn.net/maminyao/article/details/7390208 一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其 ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
- DNS知识指南
1. 什么是记录? 记录的实质是存在DNS服务器叶结点上的一条映射(只讨论权威DNS,不讨论Local DNS). A记录:(域名:IP地址) 例:cnblogs.com A 42.121.25 ...
随机推荐
- 程序猿的浪漫:用python画动态爱心
初级画心 学Python,感觉你们的都好复杂,那我来个简单的,我是直接把心形看作是一个正方形+两个半圆:
- python 做回归
1 一元线性回归 线性回归是一种简单的模型,但受到广泛应用,比如预测商品价格,成本评估等,都可以用一元线性模型.y = f(x) 叫做一元函数,回归意思就是根据已知数据复原某些值,线性回归(regre ...
- 【命令】ps命令
1.功用: <---用于报告当前系统的进程状态,实际是将/proc/目录下的各个进程的相关信息转换为我们易读的模式展现出来:可以搭配kill指令随时中断.删除不必要的程序---> 语法格式 ...
- Mybatis【8】-- Mybatis返回List或者Map以及模糊查询怎么搞?
使用mybatis的时候,经常发现一个需求,我怎么知道自己是不是增加/修改/删除数据成功了? 好像执行sql之后都没有结果的.其实不是的,增删改的sql执行之后都会有一个int类型的返回值,表示的意思 ...
- input输入框输入中文时,监听的input事件 屏蔽拼音状态
$(function () { $('#jh').off().on({ //中文输入开始 compositionstart: function () { cpLock = false; }, //中文 ...
- JAVA_JNI字段描述符“([Ljava/lang/String;)V”(Android)
JNI字段描述符"([Ljava/lang/String;)V "([Ljava/lang/String;)V" 它是一种对函数返回值和参数的编码.这种编码叫做JNI字段 ...
- git分支的创建与分支之间合并的底层原理
开发一个版本,采用的发布流程: (1).从master的最新代码拉取一个开发分支,在上面进行开发(这里假设开发分支为dev) (2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版 ...
- 手摸手带你用Hexo撸博客(三)之添加评论系统
原文地址 注: 笔者采用的是butterfly主题, 主题内置集成评论系统 butterfly主题开启评论 开启评论需要在comments-use中填写你需要的评论. 以Valine为例 commen ...
- notapai++ 使用小技巧
alt+鼠标右键 建 实现整体添加字符 例: 25001510153394032 25001510153394034 25001510153393963 25001510153392080 25001 ...
- shellSyntax.md
shell #! /bin/bash 头文件 echo -e 若字符串出现特殊字符,则特别处理 -n 不要在最后自动换行 ./filename.sh sh filename.sh r ...