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. 6. Go 语言中结构体的使用

    1. 结构体的定义格式 在go语言中结果的定义格式如下: 123 type structName struct { filedList} 列子如下: 1234 type Person struct { ...

  2. MyEclipse下Spring+Hibernate整合

    目前,SSH(Struts+Spring+Hibernate)是Web开发的一种常用框架组合,Struts实现了MVC,Hibernate实现了关系对象映射,Spring实现了基于Bean的配置管理. ...

  3. ZeroMQ,史上最快的消息队列

    一.ZMQ 是什么 阅读了 ZMQ 的 Guide 文档后,我的理解是,这是个类似于 Socket 的一系列接口,他跟 Socket 的区别是:普通的 socket 是端到端的(1:1的关系),而 Z ...

  4. 运输层协议TCP和UDP

    运输层协议TCP和UDP 一.用户数据报协议 UDP 1.1.UDP 概述 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能. 虽然 UDP 用户数据报只能提供不 ...

  5. scrapy爬虫-代理IP中间件

    class ProxyDownloaderMiddleware(object): # Not all methods need to be defined. If a method is not de ...

  6. Docker: Error response from daemon: Get.........unauthorized: incorrect username or password

    今天在Centos中使用docker拉取redis镜像时报Error response from daemon: Get https://registry-1.docker.io/v2/library ...

  7. iOS应用构建与部署小结

    注:本文首发于我的个人博客:https://evilpan.com/2019/04/06/ios-basics/ 上篇文章介绍了Objective-C的基本概念,本文就来接着看如何创建我们的第一个简单 ...

  8. safari坑之 回弹

    博客地址: https://www.seyana.life/post/20 今天在使用safari浏览博客的时候, 发现在拉至顶部并产生回弹之后,头部导航隐藏了, 除非在上拉的时候,刚好达到顶部而不超 ...

  9. PHP8年开发经验原创开发文档教程

    订阅微信公众号: gzgwgas 每天为你分享PHP开发经验,坚决不踩坑,坚决不入坑. 微信扫码,关注公众号有惊喜!

  10. 【05】openlayers 网格图层

    效果: 创建地图: //创建地图 var map = new ol.Map({ //设置显示地图的视图 view: new ol.View({ projection: 'EPSG:4326', //投 ...