域名系统-DNS
域名系统DNS
- 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名转化为IP地址,域名系统就是名字系统。
很多应用层的软件经常直接使用DNS。DNS为互联网的各种网络提供了核心服务。 - 用户和主机通信的时候,通常是很难记住IP地址,但应用层为了便于用户记住各种网络应用,连接在互联网上的
主机不仅有IP地址,还有便于记忆的主机名字。域名系统就是把互联网上的主机名字转化为IP地址。 - 为什么主机在IP数据报的时候要使用IP地址而不是域名呢?这是因为IP地址的长度是固定的32位(IPV6是固定的128位),
而域名的长度并不是固定的,及其处理起来比较困难。 - 从理论上来讲,整个互联网可以只使用一个域名服务器,使它装入互联网上的所有主机名,
并回答所有对IP地址的查询,但是这种做法简直太蠢,这样的域名服务器肯定会因为过负荷工作而无法正常工作,而且一旦这个域名服务器出现故障,
整个互联网就会瘫痪。因此早在1983年就开始采用层次树状结构的命名方法,并使用分布式的域名系统DNS
。DNS互联网标准是RFC[1034],RFC[1035]。 - 互联网的DNS被设计为成为一个联机分布式数据库系统,并采用客户服务器方式。DNS使大多数名字都在本地进行解析(resolve)
仅有少量解析在互联网上通信,因此DNS系统的效率很高,由于DNS是分布式系统,即使是单个计算机出现了故障,也不会妨碍整个DNS系统的正常运行。 - 域名到IP地址的解析过程是由分布式在互联网上的许多域名服务程序共同完成的。域名服务程序在专设的结点上运行,
人们把运行域名服务器程序的机器称之为域名服务器。 - 域名到IP地址解析过程的要点如下:
- 当某一个用用进程需要把主机名解析为IP地址时,该用用进程就调用解析程序(resolver),
并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据包方式发给本地域名服务器
(使用UDP的好处是减少开销)。 - 本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获取到目标主机的IP地址就可以进行通信。
- 当某一个用用进程需要把主机名解析为IP地址时,该用用进程就调用解析程序(resolver),
- 若本地域名服务器不能回答该请求,则该域名服务器就暂时成为DNS中的另一个客户,并向其他域名服务器发出查询请求。
这种过程直至找到能够回答该请求的域名服务器为止。
互联网的域名结构
- 每一个域名都是由标号(label)序列组成,各标号之间使用.隔离开,例如:
- 一级域名又称顶级域名。从右往左依次增大。
- DNS规定,域名中的符号,都是由英文字母和数字组成,每一个标识符不能超过63个字符(为了记忆方便,不能超过12个字符)不区分大小写
标点符号只能使用英文.号。级别最低的域名写左边,级别最高的域名写右边,由多个标号组成的完整域名不超过255个字符, - 各级域名由上一级的域名管理机构管理,最高级的顶级域名则由ICANN进行管理。
- 域名只是个逻辑概念,并不能代表计算机所在的物理地点,
- 互联网的名字空间是按照机构的组织来划分的,与物理的网络无关。
- 域名服务器
- 一个服务器所负责的范围叫做区(zone)。但在区中的所有节点都必须是能够联通的。每一个区设置相应的
权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射, - 根据域名服务器的作用,可以把域名服务器划分为以下四种不同的类型:
- 根域名服务器(root name server):根域名服务器是最高层次的域名服务器,若要对互联网上的任何一个域名进行解析(即转化为IP地址)
只要自己无法解析,就首先要求助于根域名服务器,假如根域名服务器都瘫痪了,那么整个互联网的DNS就瘫痪了。 - 顶级域名服务器(TLD服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询的请求的时候,就会给出相应的应答
(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。 - 权限域名服务器:负责一个区的域名服务器。
- 本地域名服务器(local name server):当一台主机发出DNS查询的时候,这个查询请求报文就发送给本地域名
服务器,本地域名服务器距离用户比较近,一般不超过几个路由的距离。当所要查询的主机也属于同一个本地ISP时候,
该本地域名服务器立即就能讲所查询的主机名转化为它的IP地址,而不再需要询问其他的域名服务器。
- 根域名服务器(root name server):根域名服务器是最高层次的域名服务器,若要对互联网上的任何一个域名进行解析(即转化为IP地址)
- 为了提高域名的可靠性,DNS域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(master name server),
其他的是域名域名服务器(secondary name server)。当主域名服务器出现故障的时候,福主域名服务器可以保证DNS查询工作不会瘫痪。
主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,这样就保证了数据的一致性。
- 一个服务器所负责的范围叫做区(zone)。但在区中的所有节点都必须是能够联通的。每一个区设置相应的
- 域名的解析过程
- 主机向本地域名服务器的查询一般采用的是递归查询,所谓递归查询就是:如果主机所询问的本地域名服务器不知道被域名查询的IP地址,那么本地域名服务器就以DNS客户的身份
,向其他根域名服务器继续发出查询请求报文(替该主机继续查询),而不是让主机自己进行下一步查询,递归查询的结果就两种:- 查询成功,查询出IP地址。
- 查询失败(报错),无法查询到。
- 本地域名服务器向根域名服务器查询采用的是迭代查询:当根域名服务器收到本地域名服务器发出的
迭代请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器地址:"你下一步应该去哪一个域名服务器查询",然后让本地域名服务器进行后续的查询,接着如何上面的操作,直至找到IP地址。
- 为了提高DNS查询速率,并减轻根域名服务器的负荷,在域名服务器广泛使用高速缓存(高速缓存域名服务器),高速缓存用来存放最近查询过的域名以及从何处获取到该映射。
- 主机向本地域名服务器的查询一般采用的是递归查询,所谓递归查询就是:如果主机所询问的本地域名服务器不知道被域名查询的IP地址,那么本地域名服务器就以DNS客户的身份
域名系统-DNS的更多相关文章
- 关于域名系统DNS解析IP地址的一些总结
关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...
- 套接字和域名系统DNS
套接字产生的原因: 当应用进程通过传输层进行通信时 ,TCP和 UDP将面临同时为多个应用进程提供并行通信的问题.多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据. 为了区别每 ...
- 域名系统DNS和FTP
域名系统概述 域名系统DNS(Domain Name System)是英特网使用的命名系统,用于把便于人们使用机器名字转化为IP地址. 为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?IP地 ...
- 域名系统DNS
一.域名系统是什么 域名系统其实就是一个把主机名解析为IP地址的名字系统. 因特网使用层次树状结构的命名方法,并使用分布式的域名系统DNS.因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采 ...
- 计算机网络之域名系统DNS
域名系统DNS 域名系统DNS(Domai NameSystem)是因特网使用的命名系统,用于把便于人们使用的机器名字转换为IP地址. 许多应用层软件经常直接使用域名系统,但计算机的用户只是间接而不是 ...
- 第9章 应用层(1)_域名系统DNS
1. 域名系统DNS 1.1 主机名和域名的关系 (1)完全限定域名(Fully Qualified Domain Name, FQDN) = 主机名 + 域名 ①一个域名下可以有多个服务器/主机(如 ...
- 带你简单了解域名系统DNS
带你简单了解域名系统DNS 一.域名简介 1.1.DNS服务的作用 负责解析域名,将域名解析成IP地址. 1.2.域名系统概述 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名.所以当我们 ...
- 域名系统DNS简介
域名系统(Domain Name System, DNS)是互联网的核心应用层协议之一, 它用于查询域名对应的IP地址.在使用域名访问任何网络资源时都需要先进行域名解析. www.cnblogs.co ...
- 域名系统DNS以及跨域问题
域名到Ip地址解析是由分布在因特网上的许多域名服务器程序共同完成的.运行域名服务器程序的机器是域名服务器 域名到ip地址的解析过程: 当一个应用进程需要把主机名解析为ip地址时,该应用就调用解析程 ...
随机推荐
- 梯度下降做做优化(batch gd、sgd、adagrad )
首先说明公式的写法 上标代表了一个样本,下标代表了一个维度: 然后梯度的维度是和定义域的维度是一样的大小: 1.batch gradient descent: 假设样本个数是m个,目标函数就是J(th ...
- 传统表单提交文件上传,以及FormData异步ajax上传文件
传统的文件上传: 只用将form表单的entype修改成multipart/form-data,然后就可以进行文件上传,这种方式常用并且简单. 以下是另一种方式FormData,有时候我们需要ajax ...
- transient用法
1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.FileOutpu ...
- xv6学习笔记(5) : 锁与管道与多cpu
xv6学习笔记(5) : 锁与管道与多cpu 1. xv6锁结构 1. xv6操作系统要求在内核临界区操作时中断必须关闭. 如果此时中断开启,那么可能会出现以下死锁情况: 进程A在内核态运行并拿下了p ...
- jq的常用事件及其案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 高德地图——控件的添加&删除
控件属性 visible //bool 默认true ov=new AMap.OverView(); ov.hide(); //ov.show(); 显示/隐藏---表示控件的添加与删除 <!D ...
- 并发编程之:CountDownLatch
大家好,我是小黑,一个在互联网苟且偷生的农民工. 先问大家一个问题,在主线程中创建多个线程,在这多个线程被启动之后,主线程需要等子线程执行完之后才能接着执行自己的代码,应该怎么实现呢? Thread. ...
- Redis集群的搭建及与SpringBoot的整合
1.概述 之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题. 但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模 ...
- C# HttpWebResponse 请求常见的状态码
Accepted 202 等效于 HTTP 状态 202. Accepted 指示已接受请求做进一步处理. AlreadyReported 208 等效于 HTTP 状态 208. AlreadyRe ...
- 前端--jstree--异步加载数据
利用回调来处理服务器返回的数据, 默认只能解析固定格式的返回值 <div class=""> <div id="div-jstree"> ...