网络知识学习4---(DNS的作用)
1.DNS
简介
DNS是域名解析协议
在互联网中通过IP 地址来进行通信。但是IP 地址的表示形式是数字,很难进行记忆(比如116.213.120.232),所以为每个 IP取一个人类更易记忆的域名形式(比如www.google.com),而通过DNS 来把解析域名成为 IP(将方便人理解的命名格式解析成计算机能够理解的格式,也可以将IP 翻译成域名)
hosts文件
在Windows中,在C:\Windows\System32\drives\etc\下有一个 hosts 文件这里面配置的是静态的IP和域名的配置(一个IP对应一个域名),如果你的计算机想要访问互联网上的域名时,会首先解析hosts 文件,看看这里面有没有配置相应的域名的IP,如果有就直接使用这里的,如果没有则通过DNS 在网络上获取,所以hosts 的优先级高,也存在一个隐患,假如你不小心在hosts 里面配置错了,而你又没有检查出来就可能导致你配置错误的域名一直无法打开
那为什么从hosts 转而使用DNS:
一方面是因为现在域名的数量实在是太多了(如果都放在hosts中,那么该文件可能达到几十个GB),那么名称解析效能下降
因为hosts 是在用户的机器上的,如果我的IP地址或者域名更改了,那么需要更改所有用户的hosts 文件,所以主机维护相当困难
所以虽然当前还是可以使用hosts,但是已经成为了一种非主流的选择,主要是用来进行实验使用
DNS服务的作用
将域名解析为IP 地址
客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求
DNS服务器告知客户机Web服务器的IP 地址
客户机与Web 服务器通信
DNS查询过程(这是很重要的了解DNS原理的一个过程)
通过分级管理可以有效的管理全球上亿的域名信息(类似于在公司中,CEO只管理各个部门的经理;各个部门的经理只管理自己部门中的各个组长;各个组长只管理自己组的组员。至少这是一种比较有效的管理方式)
下面以一个客户机想要访问 www.benet.com 这个WEB服务器的过程来理解DNS的原理
1.客户机(PC)向首选DNS服务器发起请求:”你知道www.benet.com的IP吗?“如果首选DNS服务器知道(一般如果首选DNS服务器曾经解析过,那么会进行一段时间内的缓存,默认三天,如果正好在缓存时间内,那么首选服务器就会知道这个域名的IP),那么首选DNS 服务器就会直接给客户机返回域名的IP 地址
2.若首选DNS 服务器上没有相关信息,就不能直接返回域名的IP 地址,这时候,首选DNS 服务器就会去询问根DNS服务器(所有的DNS 服务器都知道全球的13 台DNS根服务器在哪里),根服务器可能不知道这个具体的 www.benet.com 的IP地址,但是它知道一级域 com 的IP(也就是说根服务器只负责维护所有的一级域,所以也就几百条数据在这里,虽然数据量少,但是它接受来自全球的请求,所以负载也很大)
3.根服务器将com 的IP地址返回给 首选DNS 服务器
4.首选DNS服务器再去请求 "com" DNS服务器:”你知道 www.benet.com的IP吗“,但是com DNS服务器也不知道 www.benet.com 的IP,但是com DNS 服务器知道 benet.com 的IP,
5.”com“DNS服务器将这个信息返回给 首选DNS 服务器
6.首选DNS服务器再去请求 "benet.com" DNS服务器,这时候 benet.com 服务器当然就会知道 www.benet.com的IP地址
7.”benet.com“DNS服务器将这个信息返回给首选DNS 服务器
8.首选DNS 服务器将获取到的 www.benet.com的IP返回给客户机
9.客户机根据获取到的www.benet.com 的IP地址来访问WEB服务器
10.WEB服务器返回相关的数据
域名空间结构
DNS查询类型
从查询方式上分
递归查询:要么做出查询成功的响应,要么做出查询失败的响应。一般客户机和服务器之间属于递归查询,即当客户机向DNS 服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS 服务器发出查询的请求,得到结果后转交给客户机
迭代查询:服务器受到一次迭代查询回复一次结果,这个结果不一定是目标IP 与域名的映射关系,也可以时其他DNS服务器的地址(为了更进一步的获取目标IP)
从查询内容上分
正向查询由域名查询IP 地址
反向查询由IP 地址查询域名
网络知识学习4---(DNS的作用)的更多相关文章
- 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)
紧接着:网络知识学习1 1.IP地址 IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...
- 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)
以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型 下四层是为数据传输服务的,物理层是真正的传输数 ...
- 网络协议学习笔记(八)DNS协议和HttpDNS协议
概述 上一篇主要讲解了流媒体协议和p2p协议,现在我给大家讲解一下关于DNS和HttpDNS的相关知识. DNS协议:网络世界的地址簿 在网络世界,也是这样的.你肯定记得住网站的名称,但是很难记住网站 ...
- 网络 - 网关的作用、DNS的作用
DNS的作用 域名系统.负责把域名翻译成ip,或者把ip翻译成域名. hosts文件用于静态的域名解析.优先级高于DNS解析. DNS服务器,负责解析域名到ip地址上. 114.114.114.114 ...
- 转 网络编程学习笔记一:Socket编程
题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有 ...
- (转)Linux基础知识学习
Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...
- [转] - Linux网络编程 -- 网络知识介绍
(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...
- Linux实战教学笔记19:Linux相关网络知识梳理
第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...
- Vue2基础知识学习
Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...
随机推荐
- [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
原文地址:http://blog.csdn.net/ycb1689/article/details/22928519 最新版Struts2+Hibernate+Spring整合 目前为止三大框架最新版 ...
- Python 面向对象 中高级
类成员: #字段 普通字段 属于对象 执行只能通过对象访问 静态字段 属于类 执行 既可以通过对象访问,也可以通过类访问 class Foo: def __init__(self,name): # 字 ...
- Python操作RabbitMQ
RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消 ...
- Java并发编程之阻塞队列
1.什么是阻塞队列? 队列是一种数据结构,它有两个基本操作:在队列尾部加入一个元素,从队列头部移除一个元素.阻塞队里与普通的队列的区别在于,普通队列不会对当前线程产生阻塞,在面对类似消费者-生产者模型 ...
- poj 1390 Blocks
poj 1390 Blocks 题意 一排带有颜色的砖块,每一个可以消除相同颜色的砖块,,每一次可以到块数k的平方分数.问怎么消能使分数最大.. 题解 此题在徐源盛<对一类动态规划问题的研究&g ...
- nltk27_NLTK聚类分析
http://www.pythontip.com/blog/post/10044/ Python自然语言处理(三) -- 利用NLTK进行聚类 这篇文章介绍如何利用NLTK进行聚类,和上两篇文章Pyt ...
- windows系统在python3.5环境下安装mysql组件
折腾了一个多小时,终于把连接Mysql的模块装好了,由于我的环境是python3.5,Mysql官方支持到python3.4,后面google查到有pymysql模快支持python3.5,这个模块是 ...
- Mongo DB 2.6 需要知道的一些自身限定
在现实的世界中,任何事情都有两面性,在程序的世界中,亦然! 我们不论是在使用一门新的语言,还是一门新的技术,在了解它有多么的让人兴奋,让人轻松,多么的优秀之余,还是很有必要了解一些他的局限性,方便你在 ...
- cpu对各种运算的速度对比
今天忽然想到cpu对各种基本运算的速度对比,我对比了异或,加法和乘法,结果发现速度时间,加法小于乘法小于异或, 原本我以为异或会是最快的,结果异或是最慢的,这跟cpu中的alu算术逻辑单元的实现有关, ...
- FindWindowEx用法
函数原型:HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow): 参数 ...