定义:是一种用于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. AC日记——Car的旅行路线 洛谷 P1027

    Car的旅行路线 思路: 这题不难,就是有点恶心: 而且,请认真读题目(就是题目卡死劳资): 来,上代码: #include <cmath> #include <cstdio> ...

  2. Centos python 2.6 升级到 2.7

    前几天做了下阿里云的RDS日志相关功能,其工具大都是Python语言编写,但服务器初始化时的Python版本又不满足需求,本身也没有学过Python,因此在问题定位上费了一番周折,最后找朋友帮忙看了下 ...

  3. SQL Server的WAITFOR DELAY注入

    SQL Server的WAITFOR DELAY注入   WAITFOR是SQL Server中Transact-SQL提供的一个流程控制语句.它的作用就是等待特定时间,然后继续执行后续的语句.它包含 ...

  4. PostgreSQL 10.0 preview 功能增强

    https://yq.aliyun.com/users/1384833841157402?spm=5176.100239.blogrightarea51131.3.yI7e9d

  5. Beginning Auto Layout Tutorial in iOS 7: Part 4

    A little runtime excursion 为两个button都添加同一个ibaction方法在viewcontroller.m中实现如下的方法:

  6. 关闭火狐定期向“http://detectportal.firefox.com/”发包

    问题:最近发现火狐总是向http://detectportal.firefox.com/发包 办法:firefox地址栏输入 about:config,然后搜索找到 network.captive-p ...

  7. NV 3D投影方案 【转】

    http://tu.pcpop.com/all-677013.htm 1/8 NVIDIA 3D方案涉及图形处理器(GPU).信号发射器.快门式3D眼镜.3D播放软件以及经过NVIDIA认证的显示器. ...

  8. IntelliJ IDEA 识别一个类所属的jar包package

    IntelliJ IDEA 识别一个类所属的jar包package 按住ctrl,鼠标移动上去,不要点击: 有木有快捷键? ctrl+alt+B直接就过去了:需要再跳回来:

  9. 转:maven2创建一个eclipse工程,设置M2_REPO

    from: http://tonychanhoho.iteye.com/blog/1584324 M2_REPO是一个用来定义 maven 2仓库在硬盘中的存储位置,windows默认是C:\User ...

  10. 【React Native开发】React Native移植原生Android项目(4)

    ),React Native技术交流4群(458982758),请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...