域名系统(D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地
址之间的转换及有关电子邮件的选路信息。这里提到的分布式是指在 I n t e r n e t上的单个站点不
能拥有所有的信息。每个站点(如大学中的系、校园、公司或公司中的部门)保留它自己的
信息数据库,并运行一个服务器程序供 I n t e r n e t上的其他系统(客户程序)查询。 D N S提供了
允许服务器和客户程序相互通信的协议。
从应用的角度上看,对 D N S的访问是通过一个地址解析器( r e s o l v e r)来完成的。在U n i x
主机中,该解析器主要是通过两个库函数 g e t h o s t b y n a m e(3) 和g e t h o s t b y a d d r( 3 )来访问
的,它们在编译应用程序时与应用程序连接在一起。前者接收主机名字返回 I P地址,而后者
接收I P地址来寻找主机名字。解析器通过一个或多个名字服务器来完成这种相互转换。
图4 - 2中指出了解析器通常是应用程序的一部分。解析器并不像 T C P / I P协议那样是操作系
统的内核。该图指出的另一个基本概念就是:在一个应用程序请求 T C P打开一个连接或使用
U D P发送一个数据报之前。心须将一个主机名转换为一个 I P地址。操作系统内核中的 T C P / I P
协议族对于D N S一点都不知道。
RFC 1034 [Mockapetris 1987a] 说明了D N S的概念和功能,RFC 1035 [Mockapetris 1987b]
详细说明了DNS 的规范和实现。D N S最常用的版本(包括解析器和名字服务器)是 B I N D —
伯克利I n t e r n e t域名服务器。该服务器称作 n a m e d。[ D a n z i g、O b r a c z k a和Kumar 1992]分析了
DNS 在广域网中产生的通信量。
14.2 DNS 基础
D N S的名字空间和U n i x的文件系统相似,也具有层次结构。这种层次的组织形式

每个结点(图1 4 - 1中的圆圈)有一个至多 6 3个字符长的标识。这颗树的树根是没有任何
标识的特殊结点。命名标识中一律不区分大写和小写。命名树上任何一个结点的域名就是将
从该结点到最高层的域名串连起来,中间使用一个点“.”分隔这些域名(注意这和 U n i x文件
系统路径的形成不同,文件路径是由树根依次向下的形成的)。域名树中的每个结点必须有一
个唯一的域名,但域名树中的不同结点可使用相同的标识。
以点“.”结尾的域名称为绝对域名或完全合格的域名 F Q D N(Full Qualified Domain
N a m e),例如s u n . t u c . n o a o . e d u .。如果一个域名不以点结尾,则认为该域名是不完全的。
如何使域名完整依赖于使用的 D N S软件。如果不完整的域名由两个或两个以上的标号组成

则认为它是完整的;或者在该域名的右边加入一个局部后缀。例如域名 s u n通过加上局部后
缀. t u c . n o a o . e d u .成为完整的。

顶级域名被分为三个部分:
1) a r p a是一个用作地址到名字转换的特殊域(我们将在 1 4 . 5节介绍)。
2) 7个3字符长的普通域。有些书也将这些域称为组织域。
3) 所有2字符长的域均是基于I S O 3 1 6 6中定义的国家代码,这些域被称为国家域,或地理
域。

DNS域名解析系统介绍的更多相关文章

  1. C++实现DNS域名解析

    一.概述 现在来搞定DNS域名解析,其实这是前面一篇文章C++实现Ping里面的遗留问题,要干的活是ping的过程中画红线的部分: cmd下域名解析的命令是nslookup,比如“nslookup w ...

  2. DNS域名解析过程

    图1-10是DNS域名解析的主要请求过程实例图. 如图1-10所示,当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体描述如下.当用户在浏览器中输入域名并按 ...

  3. 配置DNS域名解析服务器

    bind这个DNS域名解析服务器解析好后,执行下面的语句实现开启服务 named -c named.conf & -c指配置脚本named.conf的文件地址 named.conf主要有下面几 ...

  4. 域名下Web项目重定向出现DNS域名解析错误问题

    问题: 项目使用的是阿里云的ESC,前几天为IP地址添加了域名 发现发送正常请求时跳转没问题,但发送重定向请求时,页面就会出现DNS域名解析错误的情况 1.我在Tomcat的server.xml中配置 ...

  5. 每天进步一点点——负载均衡之DNS域名解析

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027     在上一篇文章(http://blog.csdn.net/cywosp/ ...

  6. 一张图看懂DNS域名解析全过程

    DNS域名解析是互联网上非常重要的一项服务,上网冲浪(还有人在用这个词吗?)伴随着大量DNS服务来支撑,而对于网站运营来说,DNS域名解析的稳定可靠,意味着更多用户的喜欢,更好的SEO效果和更大的访问 ...

  7. DNS域名解析过程,域名的认识

    DNS域名解析过程 参考知乎:https://www.zhihu.com/question/23042131 当你通过浏览器输入url访问资源时,会请求DNS解析域名成对应的IP地址,由IP地址在去与 ...

  8. 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)

    (借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro        ...

  9. DNS域名解析之搭建公司内部域--技术流ken

    什么是DNS DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换 ...

随机推荐

  1. 不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串

    需求:不使用局部变量和for循环或其它循环打印形如:2 4 8 16 16 8 4 2 这样的串 代码MainTest.java package com.szp.study.javase.specia ...

  2. springboot集成webSocket能启动,但是打包不了war

    1.pom.xml少packing元素 https://www.cnblogs.com/zeussbook/p/10790339.html 2.SpringBoot项目中增加了WebSocket功能无 ...

  3. sklearn.feature_extraction.text.CountVectorizer 学习

    CountVectorizer: CountVectorizer可以将文本文档集合转换为token计数矩阵.(token可以理解成词) 此实现通过使用scipy.sparse.csr_matrix产生 ...

  4. php取上个月月初和月末时间戳

    $thismonth = date('m');$thisyear = date('Y');if ($thismonth == 1) { $lastmonth = 12; $lastyear = $th ...

  5. CentOS使用yum安装jdk

    1.查看系统版本命令 cat /etc/issue 2.查看yum包含的jdk版本 yum search java 或者 yum list java* 版本 jre jdk 1.8 java-1.8. ...

  6. Linux精简版系统安装网络配置问题解决

    参考文档:https://www.jianshu.com/p/7579a2ad1c92 通过链接中的文档配置linux系统的时候,在执行命令yum install net-tools的这里提示错误,是 ...

  7. JDBC(Java项目使用Oracle数据库)

    Java项目中使用Oracle数据库(Eclipse) 前言 这学期选了Oracle数据库这门课,于是自己下载了Oracle11gR2版本的数据库.在这之前我一直用的是MySQL.虽然两者教程差不多, ...

  8. Python之对象持久化笔记

    pickle 序列化为字符串 .dumps(obj): 将对象序列为字符串 .loads(s): 从字符串反序列化对象 例如 import pickle person = {'name': 'Tom' ...

  9. MyBatis 源码篇-MyBatis-Spring 剖析

    本章通过分析 mybatis-spring-x.x.x.jar Jar 包中的源码,了解 MyBatis 是如何与 Spring 进行集成的. Spring 配置文件 MyBatis 与 Spring ...

  10. C# SHA512和Base64加解密方法

    /// <summary> /// Get SHA512 Hash From String /// </summary> /// <param name="or ...