因此,PeerNet中实际上引入了两个新的全局名字空间,以取代现在的IP地址空间。节点标识空间是全局的、非唯一分配的,但对节点标识空间的其他性质,PeerNet中并没有进行明确定义。地址标识空间是全局的、固定长度的、层次化结构的;而且是唯一分配的,一个节点虽然可能负责管理多个地址,但只能使用反映当前网络拓扑位置的唯一地址标识;如果把网络拓扑位置认为是网络层地址所表示的实体,则可以认为地址标识的分配是一次性的。
1.3.3 FARA
在FARA中,主机与主机之间的通信概念不再存在,取而代之的是实体与实体之间通过底层分组交换结构进行的连接(association)。FARA中用不同的Association ID(AID)来标识一个实体的多个不同连接,由于AID只在每个实体上是唯一的,所以分组携带一个(源AID,目的AID)对。显然AID是一个局部名字空间,类似于现在传输层的端口号。FARA中的实体依赖于底层的分组交换结构来进行通信,包括操作系统和网络。FARA中用转发指示(forwarding directive)作为分组交换结构的地址标识。在进行通信时,实体需要通过另外的机制找到目的实体的转发指示。
2 名字空间的分类
名字空间有3个重要的属性:名字的特征,名字的分配以及名字的解析。我们可以根据这些不同的属性对名字空间进行分类。
2.1 名字的特征
名字有多方面的特征,常见的如名字空间的范围、名字长度是否固定以及名字是否有内部结构等。(1) 根据名字空间的范围,可以把名字空间分为全局名字空间和局部名字空间。全局名字空间是指概念范畴内的所有实体都可以直接从一个名字空间中获取唯一的名字;局部名字空间,则指把概念范畴内的实体分为多个区域,不同区域中实体的名字可以复用。(2) 根据名字的长度是否固定,可以把名字空间分为定长名字空间和可变长名字空间。这两种名字空间各有优点。一般来说,计算机对定长名字的处理效率更高,而人们对可变长名字的使用更加方便。(3) 从名字是否有内部结构来看,名字空间又可以分为扁平名字空间、层次名字空间和组合名字空间。扁平名字空间中的名字是完全无结构的;层次名字空间中名字的组成元素是从逻辑上相继的子空间中获取的,比如域名;而组合名字空间则介于前两者之间,比如基于属性的命名方式,实体的名字是由实体的若干属性组合而成的。
2.2 名字的分配
实体的名字是通过某个权威机构的分配得来的。从名字分配的永久性来说,有些名字是一次分配、永久使用的,而有些名字是动态分配、可以复用的。比如,域名是动态分配的,一个域名可以在被某个主机使用一段时间后分配给另一个完全不同的主机。而身份证号则是永久性的,在人的生命周期内不会被复用。根据名字和实体之间的对应关系,名字的分配还有唯一性和非唯一性之分。如果实体和名字之间的对应关系是一对一的,这种名字分配称为唯一性的。非唯一的名字分配有一对多和多对一两种情况,前者是指一个实体可能被分配多个名字,后者是指出于某种需要对多个实体分配同一个名字。文献综述
2.3 名字的解析
名字的解析是指把名字空间中的名字解析为对应的实体,或者把一个名字空间中的名字解析为另一个名字空间中的名字。比如DNS就是从域名空间向IP地址空间的解析系统。(1) 名字解析可能是全局统一的,也可能是局部相关的。全局统一的名字解析是指解析操作在一个全局唯一的机构上进行。而对于局部相关的名字解析,要查找的对应关系被复制到很多局部机构上,在进行名字解析时直接从这些局部机构上获得解析结果,这种方式也常被称为cache机制,比如DNS就采用这种机制。显然,全局统一的名字解析结果具有唯一性,但实现效率比较差;局部相关的名字解析实现效率高,但如果对应关系发生变化,解析结果的收敛速度一般较慢,从这些不同的局部机构上获取的结果可能是不一致的,还可能是错误的。(2) 名字解析还有一个比较重要的性质是解析发生的时间,有“早解析”和“晚解析”之分。名字解析往往不是独立发生的,而是伴随着相应的目的操作。比如,DNS解析的目的操作是发送带IP地址的分组;如果把“路由”看作是对IP地址的解析,那么其目的操作就是IP分组的传递过程。如果解析发生在目的操作之前,则称为“早解析”;否则,称为“晚解析”。因此,源路由可以看成是“早解析”的,而基于路由表的逐跳路由则是“晚解析”的。