DNS提供的服务

DNS是:1.一个由分层的DNS服务器实现的分布式数据库;2. 一个使主机能够查询分布式数据库的应用协议。
DNS协议运行在UDP上,使用53号端口。

与http,FTP,SMTP协议一样,DNS协议是应用层协议,其原因在于:1. 使用客户-服务器模式运行在通信的端系统之间;2. 在通信的端系统之间通过下面的端到段运输协议来传送DNS报文。

考虑当某个用户主机上的一个浏览器(即一个HTTP客户请求URLwww.someschool.edu/index.html页面时会发生什么现象。为了使主机能够请求报文发送到web服务器www.someschool.edu,该用户需要获取其IP地址。做法入下:

  • 同一台用户主机上运行着DNS应用的客户端。
  • 浏览器从上述URL中抽取出主机名www.someschool.edu,并将这台注记名传给DNS应用的客户端。
  • DNS客户向DNS服务器发送一个包含主机名的请求
  • DNS客户最终会收到一份回答报文,其中含有对应于该主机名的IP地址。
  • 一旦浏览器接收到来自DNS的该IP地址,他能够向位于该IP地址的80断后的HTTP服务器进程发起一个TCP连接。

DNS的工作机理概念

在单一DNS服务器上运行集中式数据库完全没有可扩展能力。因此,DNS采用了分布式的设计方案。事实上,DNS是一个在因特网上实现分布式数据库的精彩范例。

分布式、层次数据库

为了处理扩展性问题,DNS使用了大量DNS服务器,他们以层次方式组织并且分布在全世界范围内。大致来说有3中类型的DNS服务器:根DNS服务器、顶级域(TLD)DNS服务器和权威DNS服务器。

假定一个DNS客户要决定主机名www.amazon.com的IP地址。粗略说来将发生下列事件: 客户首先与根服务器之一联系,它将返回顶级域名com的TLD服务器的IP地址。该客户则与这些TLD服务器之一联系,它将为amazon.com返回权威服务器的IP地址。最后该客户与amazon.com权威服务器之一联系,它为主机名www.amazon.com返回其IP地址。
根服务器->TLD服务器->权威服务器

  • 根服务器:因特网一共有13个根DNS服务器,我们将每个服务器视为单个服务器,但每台服务器都是一个冗余服务器的网络。
  • 顶级域(DNS)服务器。这些服务器负责顶级域名如com、org、net、edu以及所有国家的顶级域名如uk、fr、ca和jp等等
  • 权威DNS服务器 因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机名映射为以IP地址。多数大学和大公司实现和维护他们自己基本和辅助(备份)的权威DNS服务器。
  • 本地DNS服务器:不属于该服务器的层次结构,但是对DNS层次结构是最重要的。每个ISP都有一台本地DNS的服务器。

DNS缓存

在一个请求链中,当某DNS服务器接收一个DNS回答时,它能将该回答中的信息缓存在本地存储器中。

DNS记录和报文

资源记录(RR)是一个包含了下列字段的4元组(Name,Value,Type,TTL) TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。Name和Value的值取决于Type:

    • 如果Type=A,则Name是主机名,Value是该主机名对应的IP地址
    • 如果Type=NS,则Name是一个域,而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。
    • 如果Type=CNAME,则Value是别名为Name的主机对应的规范主机名。
    • 如果Type=MX,则Value是个别名为Name的邮件服务器的规范主机名。

DNS提供的服务的更多相关文章

  1. Windows Azure HandBook (2) Azure China提供的服务

    <Windows Azure Platform 系列文章目录> 对于传统的自建数据中心,从底层的Network,Storage,Servers,Virtualization,中间层的OS, ...

  2. 第13章 使用Bind提供域名解析服务

    章节简述: 本章节将让您理解DNS服务程序的原理,学习正向解析与反向解析实验,掌握DNS主服务器.从服务器.缓存服务器的部署方法. 够熟练配置区域信息文件与区域数据文件,以及通过使用分离解析技术让不同 ...

  3. Windows 端口和所提供的服务

    一 .端口大全 端口:0 服务:Reserved 说明:通常用于分析操作系统.这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果.一种典型的扫描,使 ...

  4. 《Linux就该这么学》培训笔记_ch13_使用Bind提供域名解析服务

    <Linux就该这么学>培训笔记_ch13_使用Bind提供域名解析服务 文章最后会post上书本的笔记照片. 文章主要内容: DNS域名解析服务 安装并部署Bind服务程序 部署从服务器 ...

  5. 提供RESTful服务

    RESTful广泛运用于互联网服务,而在企业应用中,大部分场景仍然是RPC服务,这是由于企业应用的业务复杂性造成的.但是基于SOAP的RPC服务也存在很多的弊端,比如服务异步处理比较麻烦,大部分RPC ...

  6. 服务器 tfs不提供 TeamFoundation服务。基础连接已经关闭

    服务器 tfs(服务器名或url)不提供 TeamFoundation服务.基础连接已经关闭,发送时发生错误.TFS突然间连接不上到,到服务器上配置团队项目的组成员资格提示这样的错误,客户端连接的时候 ...

  7. 搭建自己的XenServer+CloudStack云平台,提供IaaS服务(一)环境搭建

    目标 搭建一个完整的基于XenServer和CloudStack的虚拟化平台,提供IaaS服务. 搭建三台安装了XenServer的服务器 搭建一台安装了CloudStack的服务器用以管理云平台 搭 ...

  8. Android该系统提供的服务--Vibrator(振子)

    Android该系统提供的服务--Vibrator(振子) --转载请注明出处:coder-pig Vibrator简单介绍与相关方法: watermark/2/text/aHR0cDovL2Jsb2 ...

  9. poptest分享计划以及提供的服务

    poptest分享计划以及提供的服务 POPTEST致力于测试开发工程师的培养,能让学员经过系统培训后从事自动化测试工作,包括功能自动化.性能自动化.接口自动化以及移动端系统的自动化测试等,由于移动端 ...

随机推荐

  1. react-native start 启动错误解决方法

    ERROR Error watching file for changes: EMFILE {"code":"EMFILE","errno" ...

  2. django--ajax的使用,应用

    Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...

  3. Python——10模块

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. XML的相关基础知识分享(二)

    前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义 ...

  5. Ribbon进行服务调用/负载均衡以及请求重试配置

    Ribbon负载均衡 经过对Eureka的认识,及Eureka集群的搭建,已经基本可以入门Eureka的使用.之前对于服务调用者我们是直接获取注册列表后通过 get(0) 的方式来获取第一个注册信息. ...

  6. java基础进阶篇(四)_HashMap------【java源码栈】

    目录 一.前言 二.特点和常见问题 二.接口定义 三.初始化构造函数 四.HashMap内部结构 五.HashMap的存储分析 六.HashMap的读取分析 七.常用方法 八.HashMap 的jav ...

  7. 为什么MySQL分库分表后总存储大小变大了?

    1.背景 在完成一个分表项目后,发现分表的数据迁移后,新库所需的存储容量远大于原本两张表的大小.在做了一番查询了解后,完成了优化. 回过头来,需要进一步了解下为什么会出现这样的情况. 与标题的问题的类 ...

  8. .NET异步程序设计之async&await

    目录 0.背景引入 1.async和await基本语法 2.异步方法的执行顺序 3.取消一个异步操作 4.同步和异步等待任务 5.异步操作中的异常处理 6.多线程和异步的区分 7. 在 .NET MV ...

  9. VUE实现Studio管理后台(十三):按钮点选输入控件,input输入框系列

    按钮点选输入,是一个非常简单的控件,20分钟就能完成的一个控件.先看效果: 根据以前的设定,通过json数据动态生成这两个按钮,示例中这两个按钮对应的json代码: { label:'标题', val ...

  10. 量子计算机编程(二)——QPU基础函数

    第二部分主要是QPU的基础功能,第一部分就像是我们有了哪些基本的语句,第二部分就是我们能写一些简单基础的函数,一些小模块,第三部分就是他的应用了. 先来看一下一个简单量子应用的结构: 第一步,将量子态 ...