DNS--域名系统 随笔
定义:是一种用于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--域名系统 随笔的更多相关文章
- DNS 域名系统 (Domain Name System)
DNS 域名系统 (Domain Name System) 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统. 因 ...
- DNS 域名系统的简介
一.DNS域名系统简介 1.网络中为了区别各个主机,必须为每台主机分配一个唯一的地址, 这个地址即称为“IP 地址.但这些数字难以记忆, 所以采用“域名” 的方式来取代这些数字. 2.当某台主机要与其 ...
- 【RL-TCPnet网络教程】第27章 DNS域名系统基础知识
第27章 DNS域名系统基础知识 本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识. (本章的知 ...
- DNS 域名系统与邮件服务器
目录 DNS 域名系统 定义 域名分类 解析流程 DNS分类 资源记录 格式 资源记录类型 用bind搭建一台DNS服务器 安装bind 创建自己的zone文件 在主配置文件中,增加自己的zone 检 ...
- python 网络编程(五)---DNS域名系统
1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...
- TCP/IP详解 卷一(第十四章 DNS:域名系统)
域名系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 从应用角度上看,对DNS的访问时通过 ...
- DNS域名系统
1. 什么是DNS? DNS是域名系统的缩写,DNS通过将域名与实际的Web服务器连接来帮助引导Internet上的流量.从本质上讲,它需要一个人性化的请求 – 像simcf.cc这样的域名 – 并将 ...
- TCP/IP详解学习笔记(8)-DNS域名系统
前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...
- DNS:域名系统
概述: DNS的作用在于将域名转换为对应的IP地址. DNS名字空间和UNIX文件系统相似,也是树形结构.以"."结尾的域名称为FQDN(Full Qualified Domain ...
- DNS域名系统,简述工作原理
DNS工作原理: 当DNS客户端需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户端发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别.基于UDP服务, ...
随机推荐
- AC日记——K-th Number poj 2104
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 52348 Accepted: 17985 Ca ...
- luogu P2043 质因子分解
题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开.表示N ...
- Loj #6287 诗歌
link: https://loj.ac/problem/6287 一开始差点写FFT了23333,并且FFT还能算这样的三元组的数量而且还不用要求这是一个排列.... 但这太大材小用了(而且很可能被 ...
- ARM Linux系统调用的原理
转载自:http://blog.csdn.net/hongjiujing/article/details/6831192 ARM Linux系统调用的原理 操作系统为在用户态运行的进程与硬件设备进行交 ...
- 关于Sending build context to Docker daemon 数据很大的问题
以往进行docker build的时候都是在新建的文件夹下面进行,这次为了图方便,就直接放在开发根目录下进行build,这样子问题就来了.于是就有了下面的文件大小发送量: Sending build ...
- 同步数据库数据到ES中代码
多节点部署保证HA,分布式锁代码 public class DistributedLock implements Watcher,Runnable{ private static final Logg ...
- Linux下防火墙iptables用法规则详及其防火墙配置
转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...
- Predicate与filter
转: http://blog.csdn.net/michaellufhl/article/details/6329823 怎么根据某些条件来过滤Collection的元素?我们可以在循环里面判断元素是 ...
- vector(可变数组) 用于UDP通信
头文件: #include<vector.h> 然后,声明并初始化vctor数组. vector<char> str(len); 其中len可以是变量或者常量.(其实用常量就 ...
- C#中回调函数的使用方法和区别
归纳来说有两种方式,一种是委托型回调,另一种是接口型回调 委托型回调 委托型回调包括纯委托型和事件型,他们的实现方式是通过公开成员注入的方式,其中纯委托型还可以用构造函数注入.方法注入的方式 接口型回 ...