定义:是一种用于TCP/IP应用程序的分布式数据库。(分布式数据库:指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以提高存储性和并发访问性。)

从应用的角度上看,对DNS的访问是通过一个地址解析器来完成,在Unix主机中,该解析器主要是通过两个库函数gethostbyname和gethostbyaddr来访问的,在编译应用程序时与应用程序连接在一起。详情可以参考《Unix环境高级编程》16.3-Socket一章。

顶级域名分为3部分:

1)  arpa是一个用作地址到名字转换的特殊域

2)  7个3字符长的普通域(也叫组织域),包括:com、edu、gov、int、mil、net、org

3)  2字符长的域属于国家代码(也叫国家域或地理域)

关于高速缓存:

一个名字服务器不应该向一个根名字服务器发出期望递归的查询。因为期望递归查询要求服务器必须处理这个查询,而根名字服务器一般会返回一个能解答该查询的其他名字服务器列表,这称为迭代查询。如果强行把这个RD(期望递归)标志位置1,会严重影响性能。下面这张图是借用百度的一张,浅显易懂的说明了域名的解析过程:

DNS同时占用UDP和TCP的53端口,是为数不多的单个应用协议同时使用两种传输协议的例子。首先我们要明确,在绝大多数的情况下,我们都是把DNS报文封装在UDP的数据报中,那么什么时候它才使用TCP的封装呢?

一个名字服务器负责一个或多个区域,一个区域的管理者必须为该区域提供主、辅名字服务器,且必须是独立且冗余的,主名字服务器从磁盘文件中调入该区域的所有信息,而辅名字服务器定时(通常每隔3小时)向主名字服务器询问是否有新数据到来,如有新数据,则会执行一次区域传送,这个区域传送将使用TCP,因为传送的数据量比较大。即,当名字解析器发出查询请求,并且当响应的长度超过512字节时,udp方式无法完成,它的最大长度被规定为512字节,所以名字解析器采用TCP来重发原来的查询请求,它将允许返回的响应超过512字节。既然TCP能将用户的数据流分为一些报文段(segment),它就能用多个报文段来传送任意长度的用户数据。

由此可以看出,由于DNS主要使用UDP,无论是名字服务器还是名字解析器都必须自己处理超时和重传,并且,DNS的查询和响应通常要经过广域网,所以,会存在一定的分组丢失率和往返时间的不确定性,这样对于DNS客户程序,一个好的重传和超时程序就显得更为重要。

DNS--域名系统 随笔的更多相关文章

  1. DNS 域名系统 (Domain Name System)

      DNS 域名系统 (Domain Name System) 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统. 因 ...

  2. DNS 域名系统的简介

    一.DNS域名系统简介 1.网络中为了区别各个主机,必须为每台主机分配一个唯一的地址, 这个地址即称为“IP 地址.但这些数字难以记忆, 所以采用“域名” 的方式来取代这些数字. 2.当某台主机要与其 ...

  3. 【RL-TCPnet网络教程】第27章 DNS域名系统基础知识

    第27章      DNS域名系统基础知识 本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识. (本章的知 ...

  4. DNS 域名系统与邮件服务器

    目录 DNS 域名系统 定义 域名分类 解析流程 DNS分类 资源记录 格式 资源记录类型 用bind搭建一台DNS服务器 安装bind 创建自己的zone文件 在主配置文件中,增加自己的zone 检 ...

  5. python 网络编程(五)---DNS域名系统

    1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...

  6. TCP/IP详解 卷一(第十四章 DNS:域名系统)

    域名系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 从应用角度上看,对DNS的访问时通过 ...

  7. DNS域名系统

    1. 什么是DNS? DNS是域名系统的缩写,DNS通过将域名与实际的Web服务器连接来帮助引导Internet上的流量.从本质上讲,它需要一个人性化的请求 – 像simcf.cc这样的域名 – 并将 ...

  8. TCP/IP详解学习笔记(8)-DNS域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  9. DNS:域名系统

    概述: DNS的作用在于将域名转换为对应的IP地址. DNS名字空间和UNIX文件系统相似,也是树形结构.以"."结尾的域名称为FQDN(Full Qualified Domain ...

  10. DNS域名系统,简述工作原理

    DNS工作原理: 当DNS客户端需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户端发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别.基于UDP服务, ...

随机推荐

  1. 【转载】NonEmpty和Non Empty的区别

    转载来源:http://www.ssas-info.com/analysis-services-articles/50-mdx/2196-mdx-non-empty-vs-nonempty One o ...

  2. Decrease (Judge ver.)

    题目描述 We have a sequence of length N consisting of non-negative integers. Consider performing the fol ...

  3. [CF665F]Four Divisors

    题目大意: 给定$n(n\leq10^{11})$,求$\displaystyle\sum_{i=1}^n[\tau(i)=4]$. 思路: 设$p,q$为不相等的质数,则满足$\tau(i)=4$的 ...

  4. workflow engine Ruote 安装

    今天在安装gem安装Ruote的过程中遇到问题,改用bundle安装: steven@steven-Latitude-D630:/usr$ sudo mkdir bundel [sudo] passw ...

  5. Learn How To Create Trigger In Oracle Forms

    I have written many posts related to triggers in Oracle Forms, I have given examples for Form Level ...

  6. 【svn】idea上svn 忽略文件不提交

    可以自己新建一个更改文件列表,名字叫忽略 这样 你就可以 单纯的 管理剩余的默认文件了 ======================================================== ...

  7. [置顶] 个人微信号发送zabbix告警信息

    之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛 ...

  8. IOError: No translation files found for default language zh-cn.

    IOError: No translation files found for default language zh-cn. 检查  ...\Lib\site-packages\Django-1.1 ...

  9. SparkStreaming和Drools结合的HelloWord版

    关于sparkStreaming的测试Drools框架结合版 package com.dinpay.bdp.rcp.service; import java.math.BigDecimal; impo ...

  10. 2016.11.25 activiti的配置文件解析

    参考来自activiti的用户手册.   activiti的配置文件解析 1.processEngine的配置 注意,单独创建流程引擎与spring方式创建流程引擎是不一样的,区别在于:process ...