DNS的结构
DNS是一个分层级的分散式名称对应系统有点像电脑的目录树结构在最顶端的是一个“root”然後其下分为好几个基本类别名称如comorgedu等再下面是组织名称如sonytoshibaintel等继而是主机名称如wwwmailFTP等。因为当初internet是从美国发起的所以当时并没有国域名称但随着後来internet的蓬勃发展DNS也加进了诸如twhkau等国域名称。所以一个完整的dns名称就似乎是这样的www.xyz.com.tw而整个名称对应的就是一个IP地址了。
在开始的时候root下面只有六个组织类别
类别名称 代表意思
edu 教育学术单位
org 组织机构
net 网路通讯单位
com 公司企业
gov 政府机关
mil 军事单位
不过自从组织类别名称开放以後各种各样五花八门的名称也相继现出来了但无论如何取名的规则最好量适合网站性质。除了原来的类别资料由美国本土的NIC(Network Information Center)治理之外其它在国域以下的类别分别由该国的NIC治理。这样的结构看起来就像这样
在结构中各组织的DNS经过申请後由该组织或其委机构治理(通常当您申请册一个domain域名称的时候都要指定两台DNS主机负责该域名的DNS治理)。
DNS的运作
在我们设定IP网路环境的时候通常都要告诉每台主机关於DNS伺服器的地址(我们可以手动的在每一台主机上面设置也可以使用DHCP来设定)。
下面让我们看看DNS是怎样运作的
当被询问到有关本域名之内的主机名称的时候DNS伺服器会直接做出回答
假如所查询的主机名称属於其它域名的话会检查记忆体看看有没有相关资料
假如没有发现则会转向root伺服器查询
然後root伺服器会将该域名之授权(authoritative)伺服器(可能会超过一台)的地址告知
本地伺服器然後会向其中的一台伺服器查询并将这些伺服器名单存到记忆体中以备将来之需(省却再向root查询的步骤)
远方伺服器回应查询
将查询结果回应给客户并同时将结果储存一个备份在自己的快取记忆里面
假如在存放时间尚未过时之前再接到相同的查询则以存放於快取记忆里面的资料来做回应。
从这个过程我们可以看出没有任何一台DNS主机会包含所有域名的DNS资料资料都是分散在全部的DNS伺服器中而NIC只需知道各DNS伺服器地址就可以了。
为了更好地理解一下 DNS 的运作让我们用下图看看查询www.home.netman.com.tw这台主机位址的过程
在这个例子中www.home.netman.com.tw台主机的DNS对应资料是由负责home.netman.com.tw这个域名的DNS伺服器治理的。(在DNS术语中我们称一个域名为“zone”这个zone可以是您从NIC申请回来的域名也可以是从该域名之下延伸出来的“sub-zone”)。在这台DNS伺服器上面必须有一个关於home.netman.com.tw这个zone的档案而这档案里面必须有一笔关於www的记录(任何主机都是以“记录”来表示)。这个记录可以为一个IP地址也可以以别名形式来对应一台主机名称但无论如何所对应的主机名称最终是要被一个IP地址所对应着就是了。
同时DNS还能提供“反查询”(reverse lookup)功能也就是以IP来查询主机名称。网路上面的许多服务如FTP, IRC, WWW等等都需要到这个功能。其实DNS服务本身就必须要使用反查询功能而且在设定上也必须要为每个网路建立起reverse zone。虽然有些人发觉即使没有reverse zone也可以利用到DNS服务但其中弊端却不轻易被察觉到在这个(中文)网页http://ns.nctu.edu.tw/Basic/WhenToUse-Rev.Html上面您可以看到忽略revers zone所致一些问题。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05