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的作用)的更多相关文章

  1. 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)

    紧接着:网络知识学习1 1.IP地址    IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...

  2. 网络知识学习1---(基础知识:ISO/OSI七层模型和TCP/IP四层模型)

    以下的内容和之后的几篇博客只是比较初级的介绍,想要深入学习的话建议自己钻研<TCP/IP详解 卷1:协议> 1.ISO/OSI七层模型    下四层是为数据传输服务的,物理层是真正的传输数 ...

  3. 网络协议学习笔记(八)DNS协议和HttpDNS协议

    概述 上一篇主要讲解了流媒体协议和p2p协议,现在我给大家讲解一下关于DNS和HttpDNS的相关知识. DNS协议:网络世界的地址簿 在网络世界,也是这样的.你肯定记得住网站的名称,但是很难记住网站 ...

  4. 网络 - 网关的作用、DNS的作用

    DNS的作用 域名系统.负责把域名翻译成ip,或者把ip翻译成域名. hosts文件用于静态的域名解析.优先级高于DNS解析. DNS服务器,负责解析域名到ip地址上. 114.114.114.114 ...

  5. 转 网络编程学习笔记一:Socket编程

    题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有 ...

  6. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  7. [转] - Linux网络编程 -- 网络知识介绍

    (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...

  8. Linux实战教学笔记19:Linux相关网络知识梳理

    第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...

  9. Vue2基础知识学习

    Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...

随机推荐

  1. elipse 从eclipse导入maven项目

    1. 使用Eclipse通过Svn导入项目 2.cmd 在项目目录下执行 mvn eclipse:eclipse 3. 然后在项目上点击右键 configure ->convert to mav ...

  2. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  3. 解决:Windows 开机弹出AotuIt ERROR 错误

    AutoIt是个脚本语言,常被用于自动化安装.网络上有些系统镜像里含有AutoIt脚本,用于系统的自动配置.出现这种问题往往有两种可能的原因: 1)做系统的时候没搞好.这种情况就需要换一个镜像文件. ...

  4. _UICreateCGImageFromIOSurface 使用API

    上传的时候,苹果发送邮件 Non-public API usage: The app references non-public symbols in DUO-LINK 4: _UICreateCGI ...

  5. Mysql 视图 游标 触发器 存储过程 事务

    Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...

  6. firefox屏蔽广告真是太好了

    在ubuntu上使用firefox有些页面的广告很多,很讨厌. 突然想到是否可以把这些广告屏蔽掉.在网上搜索了一下,发现有个 adblock plus插件,安装上发现广告没有了,很干净. 开源软件就是 ...

  7. 搭建spring mvc项目

    在之前搭建maven项目这篇的基础上继续集成,引入spring mvc支持 一.添加jar包引用 修改pom.xml文件,加入:(其他关联的jar包maven会自动引用) <!-- 项目属性 - ...

  8. oracle---jdbc--laobai

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  9. CSS 概念 & 作用

    http://www.cnblogs.com/moveofgod/archive/2012/09/18/2691101.html 式样定义   如何显示 HTML内容 通常存储在式样表中 作用 : 解 ...

  10. php工厂方法

    <?php interface db{ function conn(); } interface Factory{ function createDB(); } class dbmysql im ...