[计算机网络-应用层] DNS:因特网的目录服务
我们知道有两种方式可以识别主机:通过主机名或者IP地址。人们喜欢便于记忆的主机名标识,而路由器则喜欢定长的、有着层次结构的IP地址。为了折中这些不同的偏好,我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统(Domain Name System,DNS)的主要任务。
DNS运行在UDP上,使用53端口。
除了进行主机名到IP地址的转换外,DNS还提供了一些重要的服务:
·主机别名。有着复杂主机名的主机可以拥有一个或多个别名。原复杂主机名也叫规范主机名。主机别名(如果有的话)比主机规范名更容易记忆。应用程序可以调用DNS来获得主机别名对应的规范主机名以及主机的IP地址。
·邮件服务器别名。同主机别名类似,电子邮件应用程序调用DNS,对提供的邮件服务器别名进行解析,以获得该主机的规范主机名以及其IP地址。MX(Mail Exchanger,邮件交换)记录允许一个公司的邮件服务器和Web服务器用相同的(别名化的)主机名。
·负载分配。DNS也用于在冗余的服务器(如冗余的Web服务器等)之间进行负载分配。对于这些冗余的Web服务器,一个IP地址集合对应于同一个规范主机名。DNS数据库中存储着这些IP地址集合。当客户机为映射到这个IP地址集合的名字发出一个DNS请求时,该服务器用包含全部这些地址的报文回答,但在每个回答中旋转这些地址排放顺序。因为客户机通常总是向IP地址排在最前面的服务器发送HTTP请求报文,所以DNS就在所有这些冗余的Web服务器之间旋转分配负载。DNS旋转同样适用于邮件服务器,因此,多个邮件服务器可以具有相同的别名。
DNS工作机理:
DNS采用分布式的设计方案。
下面是DNS服务器的部分层次结构(由上到下,每层分别是根服务器、TLD服务器、权威服务器):
1.分布式、层次数据库
大致来说,有3种类型的DNS服务器:根DNS服务器、顶级域(Top Level Domain,TLD)DNS服务器和权威DNS服务器。
假设一个DNS客户机要确定主机名www.amazon.com的IP地址。粗略来讲,将发生下列事件:
·客户机请求根服务器以发现com TLD服务器
·客户机请求com TLD服务器以得到 amazon.com 权威服务器
·客户机请求amazon.com 权威服务器以得到对 www.amazon.com的IP地址
下面来详细介绍一下这三种类型的DNS服务器:
·根DNS服务器
在因特网上有13个根DNS服务器(标号为a到m),尽管我们将这13个根DNS服务器中的每个都视为单个的服务器,但每台“服务器”实际上是冗余服务器的群集,以提供安全性和可靠性。
·顶级域(TLD)服务器
负责com, org, net, edu等,以及所有顶级国家域 uk, fr, ca, jp.
·权威DNS服务器
组织的DNS服务器为组织的服务器(如Web和电子邮件)提供对IP映射的权威主机名。
能够由组织或服务提供商维护。
·本地DNS服务器
本地DNS服务器严格来说并不属于DNS服务器的层次结构,但它对DNS层次结构是很重要的。
图 1 图 2
在图1的例子中用到了递归查询和迭代查询。从cis.poly.edu到dns.poly.edu发出的查询是递归查询,因为该查询请求dns.poly.edu以自己的名义获得该映射。而后继的三个是迭代查询,因为所有的回答都是直接返回给dns.poly.edu。
从理论上,所有的DNS查询既可以是迭代的也可以是递归的。例如,图2显示了一条DNS查询链,其中所有查询都是递归的。
实际中,查询通常遵循图1中的模式:从请求主机到本地DNS服务器的查询是递归的,其余查询是迭代的。
2.DNS缓存
为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用缓存技术。
原理:当一个DNS服务器接收一个DNS回答(例如,包含主机名到IP地址的映射)时,DNS服务器能将回答中的信息缓存在本地存储器。由于主机与主机名的IP地址映射决不是永久的,所以DNS服务器在一段时间后(通常设置为两天)将丢弃缓存的信息。
DNS记录:
实现DNS分布式数据库的所有DNS服务器共同存储着资源记录(Resource Record,RR),RR提供了主机名到IP地址的映射。下面是RR的基本格式:
Type=A name 是主机名
Value是IP地址
Type=NS name 是域 (如 foo.com)
Value是该域的权威名字服务器的IP地址
Type=MX Value是与name相联系的邮件服务器
Type=CNAME Value是别名为name的主机对应的规范主机名
注:通过使用MX记录,一个公司的邮件服务器和其他服务器(如它的Web服务器)可以使用相同的别名
DNS报文:
DNS只有两种报文,即查询和回答报文,并且这两种报文有着相同的格式。
下图是DNS报文格式:
[计算机网络-应用层] DNS:因特网的目录服务的更多相关文章
- 【计算机网络】2.5 DNS:因特网的目录服务
第二章第五节 因特网的目录服务 DNS(域名系统)提供了一种能运行主机名到IP地址转换的因特网目录服务:一方面,他让人能够记住如taobao.com这样的主机别名:另一方面,他提供给路由器可理解的IP ...
- 【计算机网络】 DNS学习笔记 (>﹏<)
参考书籍 <计算机网络-自顶向下> 作者 James F. Kurose DNS的作用 DNS是因特网的目录服务 DNS是因特网的目录服务,它提供了主机名到IP地址映射的查询服务 ...
- DNS:因特网的目录服务
作者:华科小涛,http://www.cnblogs.com/hust-ghtao/ 有两种方式来识别主机:通过主机名或IP地址.人们当然喜欢便于记忆的主机名,而路由器则喜欢定长的.有层次结构的IP地 ...
- 计算机网络-应用层(4)DNS协议
域名系统(Domain Name System, DNS):一个分层的由DNS服务器实现的分布式数据库+一个使得主机能够查询分布式数据库的应用层协议 DNS服务器通常是运行BIND (Berkeley ...
- 第六章 应用层(DNS和http协议详解)
序言 这是计算机网络基础的最后一篇博文了,大体的从物理层到最上层的应用层做了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给你们我学习该课程的视频资料,我希望能帮到所有想学习想提高自己技术的同 ...
- 计算机网络-应用层之HTTP协议
1.概念 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写:HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). ...
- 计算机网络之互联网|因特网|万维网|HTTP|HTML之间的关系辨析
本博文基于知乎"Web 是什么意思?"一问而引起.(本文均属于博主从知乎上自身所答搬运而至). 如无特殊声明,括号()内以分号分隔的名词均等效. 本文如无特殊引用声明,则所有内容版 ...
- [计算机网络-应用层] HTTP协议
1.HTTP概况 Web的应用层协议是超文本传输协议(HTTP),它是Web的核心. HTTP由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行对话. ...
- 计算机网络之DNS常见攻击
DNS欺骗 在Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同 ...
随机推荐
- solr环境搭建及java小demo
一配置solr环境 1.下载solr 2.配置solr(最好单独分离出一个tomcat,一台机器启动多个tomcat参见:http://www.cnblogs.com/lxlwellaccessful ...
- CSS-cascading stle sheets
CSS-cascading stle sheets 1. CSS 什么是CSS?CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式 ...
- Caliburn.Micro 项目文档(翻译):Screens, Conductors and Composition
原文地址(项目说明文档):[Documentation Screens, Conductors and Composition]http://caliburnmicro.codeplex.com/w ...
- 苏州Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 4567: [Scoi2016]背单词
4567: [Scoi2016]背单词 https://www.lydsy.com/JudgeOnline/problem.php?id=4567 题意: 题意看了好久,最后在其他人的博客里看懂了的. ...
- 安装wamp后,其显示目录的图标显示不出来
解决办法:wamp的安装目录中,到 wamp\bin\apache\Apache2.2.21\conf \extra下打开httpd-autoindex.conf文件,这里是索引文件图标的配置文件.修 ...
- 抽样分布(3) F分布
定义 设U~χ2(n1), V~χ2(n2),且U,V相互独立,则称随机变量 服从自由度为(n1,n2)的F分布,记为F~F(n1,n2),其中n1叫做第一自由度,n2叫做第二自由度. F分布的概率密 ...
- 聊一聊session
最近从上家公司离职了,到了一家新公司,这几天一直在了解他们的项目,所以我自己的那个小项目也暂时搁浅了.. 今天差不多把他们的项目了解了,来院子写写我在这里边遇到的问题,影响最深刻的是seesion的. ...
- 【未完】训练赛20190304:KMP+树状数组+线段树+优先队列
头炸了啊,只做出L题,前两天刚看的Shawn zhou的博客学习的,幸亏看了啊,否则就爆零了,发现题目都是经典题,线段树,KMP,我都没看过,最近又在复习考研,真后悔大一大二没好好学习啊,得抽时间好好 ...
- Java并发简介
年轻的时候学会了“使用”Servlet后,感觉自己什么都会做了,之后就不停的写所谓的业务逻辑,框架(这里说的不是structs,spring等,就是说servlet)给人们屏蔽了很多复杂性(更别说构建 ...