一、域名系统是什么

域名系统其实就是一个把主机名解析为IP地址的名字系统。

因特网使用层次树状结构的命名方法,并使用分布式的域名系统DNS。因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采用客户-服务器方式。

二、域名结构

因特网使用层次树状结构的命名方法,级别最低的域名写在最左边,级别最高的顶级域名写在最右边。DNS既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。域名中的“点”和点分十进制IP地址中的“点”并无一一对应关系。

因特网树状域名空间的根是没有对应的名字的,根下面一级的节点就是最高一级的顶级域名。一旦一个单位拥有了一个域名,它就可以自己决定是否要进一步划分其下属的子域,而且不必由其上级机构批准。

因特网的名字空间是按照机构的组织来划分的,与物理的网络无关,与IP地址中的“子网”也没有关系。

三、域名服务器

域名系统的具体实现是使用分布在各地的域名服务器。

DNS并不是让每一级的域名都有一个相对应的域名服务器(这样会使域名服务器的数量太多,使域名系统的运行效率降低),而是使用划分区的办法,即DNS的服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区可能等于或者小于域,但一定不可能大于域。每一个区设置相应的权限域名服务器。

域名服务器的分类:

  1. 根域名服务器:最高层次、最重要的域名服务器。所有的根域名服务器都知道所有的顶

级域名服务器的域名和IP地址。在因特网上共有13个不同IP地址的根

域名服务器,他们的名字是一个英文字母,从a到m,如:a.rootservers

.net。这些根域名服务器并不是简单地由13个机器组成,而是13套装置。

本地域名服务器无法解析一个域名时首先要求助于根域名服务器。

2. 顶级域名服务器

3. 权限域名服务器:负责一个区

4. 本地域名服务器

为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保护,其中的一个是主域名服务器,其他的就是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中而更改数据只能在主域名服务器中进行,保证了数据的一致性。

四、域名解析

当某一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析进程,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发送给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。

主机向本地域名服务器的查询一般都是采用递归查询,而本地域名服务器向根域名服务器的查询通常是采用迭代查询。当然,本地服务器也可以使用递归查询,这取决于最初的查询请求报文的相关设置。

为了提高DNS查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文的数量,在域名服务器中广泛使用了高速缓存,存放最近查询过的域名以及从何处获得域名映射信息的记录(设置了过期时间)。在主机中也使用了高速缓存。

域名系统DNS的更多相关文章

  1. 关于域名系统DNS解析IP地址的一些总结

    关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...

  2. 套接字和域名系统DNS

    套接字产生的原因: 当应用进程通过传输层进行通信时 ,TCP和 UDP将面临同时为多个应用进程提供并行通信的问题.多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据. 为了区别每 ...

  3. 域名系统DNS和FTP

    域名系统概述 域名系统DNS(Domain Name System)是英特网使用的命名系统,用于把便于人们使用机器名字转化为IP地址. 为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?IP地 ...

  4. 计算机网络之域名系统DNS

    域名系统DNS 域名系统DNS(Domai NameSystem)是因特网使用的命名系统,用于把便于人们使用的机器名字转换为IP地址. 许多应用层软件经常直接使用域名系统,但计算机的用户只是间接而不是 ...

  5. 第9章 应用层(1)_域名系统DNS

    1. 域名系统DNS 1.1 主机名和域名的关系 (1)完全限定域名(Fully Qualified Domain Name, FQDN) = 主机名 + 域名 ①一个域名下可以有多个服务器/主机(如 ...

  6. 带你简单了解域名系统DNS

    带你简单了解域名系统DNS 一.域名简介 1.1.DNS服务的作用 负责解析域名,将域名解析成IP地址. 1.2.域名系统概述 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名.所以当我们 ...

  7. 域名系统-DNS

    域名系统DNS 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名转化为IP地址,域名系统就是名字系统. 很多应用层的软件经常直接使用DNS.DN ...

  8. 域名系统DNS简介

    域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析. www.cnblogs.co ...

  9. 域名系统DNS以及跨域问题

    域名到Ip地址解析是由分布在因特网上的许多域名服务器程序共同完成的.运行域名服务器程序的机器是域名服务器   域名到ip地址的解析过程: 当一个应用进程需要把主机名解析为ip地址时,该应用就调用解析程 ...

随机推荐

  1. 多线程面试题系列(5):经典线程同步 关键段CS

    上一篇提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题.本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理.关键段CRITIC ...

  2. dup和dup2详解

    C语言中dup和dup2函数的不同和使用 发表时间: 2012年11月15日 | 作者: 陈杰斌 | 所属分类: C语言 | 评论: 0 | 浏览: 1024 在unix高级编程中有介绍dup和dup ...

  3. 磁盘管理之inode与block

    索引式文件系统 什么是inode? Inode其实就是索引号,便于我们寻找我们文件所存储的数据块block,索引式文件系统在查找信息,读写操作上都比原来的文件系统要快,我们可以通过inode中记录的b ...

  4. mybatis 自动生成代码(mybatis generator)

    pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...

  5. Zabbix 添加脚本检测IP变化

    监控环境 IP和HOSTNAME 有时会有变化.但目前是通过IP地址监控,不是DNS名,添加一个外部脚本,发现IP和HOSTNAME发生变化时告警. vim /usr/local/etc/zabbix ...

  6. python基础之条件循环语句

    前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...

  7. C#单例测试(懒汉式双锁保证线程安全)

    单例模式的概念 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 关键点: 这个类只有一个实例,这是最基本的 它必须自行创建 ...

  8. 使用paramiko远程执行

    写部署脚本时,难免涉及到一些远程执行命令或者传输文件. 之前一直使用sh库,调用sh.ssh远程执行一些命令,sh.scp传输文件,但是实际使用中还是比较麻烦的,光是模拟用户登陆这一点,还需要单独定义 ...

  9. 支持向量机SVM(一)

    [转载请注明出处]http://www.cnblogs.com/jerrylead 1 简介 支持向量机基本上是最好的有监督学习算法了.最开始接触SVM是去年暑假的时候,老师要求交<统计学习理论 ...

  10. 【机器学习实战】第6章 支持向量机(Support Vector Machine / SVM)

    第6章 支持向量机 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/lates ...