3.3.2 名字空间与域名空间

3.3.2 名字空间与域名空间

1.名字空间

名字空间是指在某个系统中由某种命名方法构成的名字集合。它是任何一个命名系统中最基础的一部分,提供了名字的形式、结构以及创建名字的准则,并保证名字唯一。

现在常用的命名方法有平面名字空间和层次名字空间两种。

(1)平面名字空间

平面名字空间中的名字取自单一标识符集,每个名字是无结构的字符序列。它必须依靠集中控制才能避免二义性和发生重复。平面名字空间的主要缺点是潜在名字冲突以及管理机构工作负载会随着名字空间的增大而增长,因而平面名字空间不适合用于大型系统中。Internet早期采用的就是一种平面名字空间,由hosts文件完成名字的存储和映射工作。

(2)层次名字空间

层次名字空间以分层的命名方法来组织系统的名字。每一个名字由几个部分组成,一部分定义组织的性质,一部分代表组织的名字,还有一部分指定组织的分支,等等。为了解层次名字空间,考虑一个大学的分层结构及组织分支名字。例如,“北京邮电大学电子工程学院电路实验中心”,这个节点的名字就是由多层因素组合而成的。其中“北京邮电大学”是组织机构名字,也是“学校”层节点,它下设多个学院;“电子工程学院”是组织分支名字,也是“学院”层节点之一,它下设多个教研中心;“电路实验中心”则是下层分支名字,也是“教研中心”层节点之一。

在对学校的结构进行了层次划分后,应指定管理机构对相应的节点进行管理。通常由每一个节点负责其下层节点的命名和唯一性。例如,“学校”层节点有权对各学院进行命名并保证学院名称的唯一性,如不能在同一大学内出现两个“电子工程学院”。“学院”层节点有权对各教研中心进行命名并保证名称的唯一性,如不能在同一学院内出现两个“电路实验中心”。这样的管理机构组织形式可以使管理信息按机构分级下发,更易于管理。

层次名字空间采用了类似的去集中化机制进行管理。名字空间在最高层进行划分后,委托了每个分区的管理机构,管理机构可以进一步细分。各级管理机构可以指派和控制名字的一部分。通常中央管理机构指派定义组织的性质和组织的名字,其余部分则由其他管理机构自行管理。这样分层命名机制能够有效避免名字发生重复。即使名字的一部分相同,整个的名字还是不同的。例如,假定有两个学校,它们的电子工程学院取名为ee。中央管理机构给第一个学校取的名字是xy.edu,给第二个学校取的名字是ab.edu。当在学校名字上加上系的名字ee后,得到了两个可以区分开的名字:ee.xy.edu和ee.ab.edu。这些名字都是唯一的,不需要全部由一个中央管理机构来指派。

2.域名空间

Internet采用了层次名字空间的命名方法定义其网络节点,形成的名字空间称为域名空间,对其进行命名、存储、解析的机制称为域名系统(DNS),这里介绍域名空间相关概念。

(1)域名

Internet采用了分层的命名方法,赋予任何一个连接到Internet的主机或路由器一个唯一的层次结构名字,即域名。

具有层次结构的域名空间,从形式上看,像一棵根在顶部的倒置的树,树的每一级上每一个节点都有一个标号;从语法上看,域名就是由节点到根的标号序列组成。标号之间被分隔符“.”隔开。级别最低的标号在最左边,级别最高的标号在最右边。完整域名总共不超过255个字符。例如图3-12中的see、bupt、edu、cn都是节点的标号。see.bupt.edu.cn是北京邮电大学电子工程学院的域名,由4个标号组成,而bupt.edu.cn是北京邮电大学的域名。此外,DNS要求从同一个节点分支出来的子节点具有不同的标号,从而保证了域名的唯一性。

域名可以分为完全合格域名和部分合格域名。

一个完全合格的域名(FQDN,Fully Qualified Domain Name)是由节点到根的标号序列组成,根的标识符为空,因此FQDN以一个空标号结束。空字符串表示什么也没有,因此这种域名也就是以一个点(.)结束。它包括所有从最具体的到最一般的标号,并唯一地定义了主机的名字。例如,域名lab.see.bupt.edu.cn.是名为lab的计算机的FQDN。

若一个域名不是以空字符串结束,则它就是部分合格域名(PQDN,Partially Qualified Domain Name)。PQDN从一个节点开始,但它没有到达根。它必须在一定的上下文环境中被解释出来才有意义,通常用于要解析的名字和客户属于同样的域时。使用时解析程序可以加上缺少的部分,即后缀,以创建一个FQDN。例如,如果在域see.bupt.edu.cn上的一个用户想得到同一域中计算机lab的IP地址,用户就可以给出这个PQDN——lab,DNS客户在将地址传递给DNS服务器之前,就加上后缀see.bupt.edu.cn.形成一个FQDN。目前网络信息系统中常见的都是PQDN。

图3-12 域名空间示意图

(2)域

域(domain)是域名空间中一个可被管理的划分。它对应了同一组织或授权机构管理下的对象集合。一个域可以看作域名空间中的一个子树,如图3-13所示。这个域的名字就是这个子树顶部节点的域名。

图3-13 域

一个域本身又可划分为若干个子域。上例中的see.bupt.edu.cn是bupt.edu.cn的一个子域。而子域还可继续划分为子域的子域。这样从根域向下就形成了顶级域(TLD,Top-Level Domain)(直接处于根域下面的域,代表一种类型的组织和一些国家)、二级域(在顶级域下面,用来标明顶级域以内的一个特定的组织)、三级域(在二级域的下面所创建的域,它一般由各个组织根据自己的要求自行创建和维护)等。

(3)Internet的域名空间

①顶级域

Internet的顶级域可以分为三大类:通用域、国家域和反向域,如图3-14所示。

图3-14 顶级域

·通用域

通用域按照主机的类属行为定义注册的主机,通用域名采用3个字符的组织缩写。最初的通用域名包括:com(公司企业)、edu(美国的教育机构)、gov(美国的政府部门)、int(国际组织)、mil(美国的军事部门)、net(网络服务机构)和org(非营利性组织)。

2000年11月,互联网名称与数字地址分配机构(ICANN,the Internet Corporation for Assigned Names and Numbers)批准了4个新的通用顶级域名,即biz(公司和企业)、info(信息服务)、name(个人)和pro(职业,如医生和律师)。另外,在一些特殊行业的要求下,ICANN又引入一些更为特殊的通用顶级域名,它们是:aero(航空业)、coop(合作团体)、jobs(人力资源管理者)、mobi(移动产品与服务的用户和提供者)、travel(旅游业)和museum(博物馆及其他非营利性组织)等,如图3-15所示。将来还会增加其他的顶级域名。

图3-15 通用域

·国家域

每个国家有一个国家域。国家域名使用2个字符的国家缩写,如cn表示中国,us表示美国,uk表示英国,jp表示日本,fr表示法国等,如图3-16所示。

图3-16 国家域

·反向域

这种顶级域名只有一个,即arpa,用于反向域名解析,即将一个IP地址映射为名字。

②二级域

顶级域可往下划分子域,即二级域。在国家顶级域名下注册的二级域名均由该国家自行确定。在我国,国家域下的二级域名可以分为“类别域名”和“行政区域名”两大类。

“类别域名”包括edu(教育机构)、ac(科研机构)、gov(政府机构)、mil(国防机构)、com(工、商、金融等企业)、net(提供互联网络服务的机构)以及org(非营利性组织)。“行政区域名”适用于我国的各省、自治区、直辖市,例如,bj(北京市)、js(江苏省),等等。

二级域向下进一步划分就可以获得三级域。三级域向下还可以进一步划分其下属的子域,直至划分到域名空间的树形结构中的树叶。因为它代表了主机的名字,无法继续往下划分子域了。

例如,在Internet的域名空间中,顶级域名com下注册的单位都获得了一个二级域名,如图3-17所示。图中给出的例子有土豆网(tudou),以及IBM、搜狐(sohu)等公司。在顶级域名cn(中国)下面举出了几个二级域名,如bj、edu以及com。在com下面的三级域名有sina(新浪),在edu下面的三级域名有tsinghua(清华大学)和bupt(北京邮电大学)。图中画出了sina(新浪)和bupt(北京邮电大学)都有自己的下一级的域名mail。尽管都取名为mail,但两者的域名是不一样的,一个是mail.bupt.edu.cn,另一个是mail.sina.com.cn,它们在Internet中都是唯一的。

图3-17 Internet的域名空间

需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点。Internet的域名空间是按照机构的组织来划分的,与物理网络无关。即使教务科和学院办公室在同一幢楼里,并使用同一个LAN,但它们仍然可以有完全不同的域名。