微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 下一代互联网中名系统的研究

下一代互联网中名系统的研究

时间:01-28 来源:3721RD 点击:

在当前互联网应用中,命名和相对应名字的解析映射起着极为重要的作用。有了对资源的命名,它在网络上的注册才成为可能;有了名字的解析映射,资源的查询才成为可能。目前,命名采用域名的方式,而名字解析采用域名解析系统(DNS)来实现。DNS初始设计的目的是将不容易记忆的IP地址映射为更容易记忆的带有语义的字符串[1],以方便用户。在应用初期,DNS的优势得到了很好的体现,迅速成为了全球最大的域名解析系统。然而由于其设计初期考虑的比较简单,所以在当今应用中出现了很多问题。具体表现在:

(1) DNS根服务器作用重大,所有本地DNS服务器无法解析的域名解析请求都要直接送到DNS根服务器中,而这些DNS根服务器的最终管理权与控制权在美国政府手里,美国可以对DNS根服务器中的ROOTZONE文件记录进行修改,从而使得一些国家从互联网世界中消失[2].

(2)域名带有语义,不可避免地涉及到所有权归属问题,从而带来不必要的法律纠纷[3].

(3) DNS面向主机,当主机中的数据移动或复制后,DNS则无法再次为该数据提供服务[4].

(4)在DNS服务器中,由于业务需要,负责。com域名解析的服务器比负责。org等域名解析的服务器负载重很多[5],没有相互协调充分利用网络资源。

1学术界提出的新名系统

针对以上DNS名系统中的缺点,学术界提出了新的名系统,主要代表是文献[6].下面介绍这套系统的工作方式。

名字的生成采用Hash方式,其过程为:提取资源的元信息;Hash元信息生成一个字符串,用这个字符串来标识资源。由于名字的生成过程是基于资源的元信息,所以名字不会随资源的移动或复制而改变,对用户来说是透明的,可以用始终如一的名字查找到资源。这样可以很好地解决现有命名方式中存在的不足。

名字解析映射系统采用分布式哈希表(DHT)结构,而DHT提供一种操作:给定一个关键字,把这个关键字经Hash映射到系统的某个唯一节点上。在文献[6]中,将DHT中的节点看成解析映射服务器。在名字注册时,将元信息当作关键字经Hash产生的名字注册到DHT上;在名字解析时,利用元信息生成的名字在DHT上解析返回连接信息。由于DHT的扁平状结构,当解析映射系统受到DoS攻击时,瘫痪的只是被攻击的那台服务器,其他服务器的并没有受到影响。所以,在同样的DoS攻击下,这种系统的鲁棒性要强于DNS.但是对于DHT来说,解析一个名字所花费的最大时延为log N(以Chord为例),其中N为系统中节点数。对于一个全球系统来说,N的值会在百万级,这时解析时延太大不适实际环境的使用。

为此我们设计了两种新的名系统,在保留文献[6]系统优势的基础上,解决解析时延太大的问题。命名为基于One-hop DHT的名系统,重叠化名系统。

2设计基于One-hop DHT的名系统

基于One-hop DHT的名系统,有一个重叠结构并主要由3层组成(如图1所示):中继层、实现层和维护层。其中,中继层的主要功能是控制用户的接入,及处理用户注册或查询资源名字的请求;实现层和维护层联合工作,实现各种资源名字的注册与查找,其中实现层维护一个Chord系统,而维护层维护一个向量空间(向量空间是指某一个服务器知道该层其它服务器的所有信息)。

2.1新名系统具体的实现方案

中继层上各节点分别与实现层上1-3个节点相连,通过这些相连的节点进入系统注册或获取服务所需的连接信息。实现层维护一个Chord环,该层中的各节点维护两组表项:父节点表项和路由表项。其中,路由表项与原Chord算法中实现方式一致(由文献[7]给出),而父节点表项内容为管理该节点的维护层节点ID.维护层维护两组表项:区域表项和管理表项。区域表项是用于维护实现层的一部分连续区域,而管理表项则用于指示在这个区域内有哪几个节点存活。

下面用一个例子简要说明该映射系统的整个工作过程。如图2所示,在这个映射系统中,维护层有4个维护节点,实现层有11个节点,中继节点有2个,具体连接方式如图2所示。图3中列举了几个具有代表性的表项:M1的区域表项和管理表项,C1的父节点表项。

2.1.1资源的注册:

(1)将此请求发送到一个中继点(中继点1)。

(2)中继点提取此项服务的元信息,经过Hash元信息生成一个新的网络名字(SID1=3)。

(3)通过实现层接入点Chord节点C26,并利用Chord算法直接将该名字注册到Chord环上,即将这项服务的名字应用于建立连接的信息并入节点C4.

2.1.2资源的解析:

(1) Hash服务的元信息生成网络名字(SID1=3)。

(2)发送到一个中继点(例如中继点2)。

(3)中继点通过它在实现层的接入点C1或C32将该网络名字送往上层(假设此处选择C32)。

(4)节点C32收到该服务请求后直接递交给它的父节点M4,不做任何其他处理。

(5)节点M4查询其区域表项,发现新网络名字3在维护节点M1管理的区域内,将该请求发送到节点M1.

(6)节点M1收到该服务请求后,查询其管理表项并将发现的新网络名字为3的信息存储在节点C4上面,于是M1与节点C4建立连接,取得获取此项服务所需的连接信息按原路返回给用户。

(7)用户利用返回的连接信息与服务提供商建立连接获取服务。

在整个实现过程中,我们在注册过程中没有使用维护层,只在查询过程中使用了维护层。我们认为在网络应用中主要的瓶颈在于查询端,这样做可以提高查询效率。因为维护节点只需要处理查询请求,而不用对注册请求作处理。

一般情况下,维护层节点会有热备份,并且鲁棒性较强。如果有故障产生,查询消息则不再发往维护层节点,而是直接在实现层利用Chord算法进行路由,以便在系统正常工作的基础上对护层节点进行修复。这样做在一定程度上提高了整个系统的鲁棒性。

One-hop DHT的名系统在一次名字解析时,最大跳数为3,降低了查询时延;但该系统只适合小范围的应用,其瓶颈在于维护层服务器的处理能力。为此,我们又设计了重叠化名系统。

3重叠化名系统

3.1重叠化名系统中名字的设计

新网络名字将名字分为两部分:前缀部分和资源标识部分,如图4所示。前缀部分用两个字节标识,又可分为两部分:前9个bit用于标识地理位置信息(以国家和地区为单位),后7个bit用于携带服务质量(QoS)信息或备用。因为目前全世界有200多个国家和地区,9个bit足以唯一标识任何一个国家;后7个比特可以带一些QoS信息或做扩展服务等。资源标识部分用于标识资源,它产生于资源的元信息。元信息经过Hash运算后生成一个160 bit的字符串来唯一标识所描述的资源。

由于名字的资源标识部分的生成过程是基于资源的元信息,所以与文献[4]一样,名字不会随着资源的移动或复制而改变,用户可以用始终如一的名字查找到资源。这样的操作方法很好地解决了数据的移动和复制问题。

我们定义的名字结构中,包含了地理位置部分,可以缩小资源解析范围;而QoS部分,可以使得网络名字带有QoS信息,方便用户选择符合自己要求的资源。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top