针对层次化主机标识、基于叠加式dht的寻址系统和方法

文档序号:7699511阅读:164来源:国知局
专利名称:针对层次化主机标识、基于叠加式dht的寻址系统和方法
技术领域
本发明涉及一种IP网络中的寻址系统和寻址方法,确切地说,涉及一种针 对层次化主机标识、基于叠加式DHT (Distributed Hash Table)的寻址系统和寻 址方法。本发明能够针对目前身份与位置相分离的网络架构,为IP网络中的各 主机挺供从身份标识到位置标识映射信息的注册与解析服务,具有较高的注册、 解析效率和良好的负载平衡性和公平性,解除了原有网络架构的寻址对DNS系 统的过分依赖。属于互联网技术领域。
背景技术
在当前的互联网体系结构中,IP地址具有双重语义,担任着两种角色 既描述了网络中节点的位置信息,用于路由查找过程;同时它又作为主机的 身份标识,充当着主机"名字"的角色。从应用角度来看,主机标识不应随 主机位置的变化而改变;而从移动性角度来看,主机接入位置的改变势必会 导致IP地址也发生变化。所以,IP地址的双重语义问题严重影响着移动性 和多宿的实现,限制了互联网体系结构的灵活性。
针对这个问题,目前已经有了一些解决方案,RFC4423中描述的主机标 识协议(HIP, Host Identity Protocol)是其中具有代表性的一种。它通过在 传输层和网络层之间引入新的主机标识层,添加了新的名字空间,使用主机 标识对主机的身份进行标志, <吏IP地址只具有定位和路由的功能,从而将 IP地址的双重语义分离开来。在HIP中, -使用^^私密钥对中的^^有密钥作 为主机标识(HI, Host Identifier),但是由于采用不同公钥算法产生的密钥 长度不同,也不便于网络传输,因此在协议分组中并不直接使用HI,而是 使用主机标识符(HIT, Host Identity Tag) 。 HIT是将HI进行散列得到的 128比特的哈希结果,它与目前使用的IPv6地址等长,有利于HIP在现有
8网络中实现。
由于HIP加入了新的主冲几标识名字空间,因此需要将传统的域名到IP地址的映射关系修改为AU或名到主机标识再到IP地址的两次映射关系。目
前,HIP架构中的寻址主要依赖于域名系统(DNS , Domain Name System )和新引入的汇集服务器(RVS, Rendezvous Server)。它通过扩展DNS,定义了自己所需要的新的资源记录类型,用于存储域名所对应节点的HIT和IP地址。对于低移动性的节点,DNS上存储的IP地址通常是节点的实际IP地址;而对于高移动性的节点,DNS上的IP地址则是负责记录节点HIT与其实际IP地址映射关系的RVS服务器的地址(高移动性节点在每次地址改变后,向RVS服务器注册自己的新地址)。
由上述介绍可见,HIP的寻址仍然对传统的DNS系统有很强的依赖性。节点将自己的域名、HIT和IP地址(节点自身的或其归属RVS服务器的)信息都存储在DNS服务器上。当节点发生移动后,需要在DNS上重新注册其映射关系记录或在RVS服务器上注册。但是,由于各个RVS服务器之间没有信息交互,因此如果节点的移动跨度较大,想要向新的距离较近的RVS服务器注册时,仍然需要修改DNS上的映射关系记录。同时,由于各个RVS服务器互不通信,因此势必要在网络中大量部署,成本较高。这种HIP对DNS的依赖,不仅会加重当前DNS系统的负担,而且DNS的层次递归的查询方式也无法满足节点注册信息必须快速更新的要求。此外,由于网络中的主机并不是都有域名,因此需要引入新的解析系统专门提供从主机标识到IP地址映射记录的注册和查询服务。
由于HIT是对HI的p合希结果,因此它可以看作是一个近似随机的128位二进制数,要针对这样的名字空间设计寻址系统,显然不能按照DNS原来的层次化结构,而应该采用更适合于存储检索具有随机属性关键字记录的系统结构。分布式哈希表DHT系统具有分布式结构、高健壮性和良好的可扩展性等特点,十分适合于充当注册解析主机标识的寻址系统。
目前,DHT技术使用的是覆盖层上的路由,所有的查询和选路都是以ID为基础进行的,但是,ID表示的是节点在覆盖网络中的逻辑位置,并不能反映节点的真实物理位置,所以在DHT网络中,物理位置邻近的两个节点可能需要在覆盖网络中经过多跳搜索才能互相达到,同时覆盖网络上的一跳也可能在实际网络中跨越了很远的距离。DHT架构的这种逻辑拓朴和物理拓朴的不一致性,会对路由查找的时延造成不小的影响,使得作为基础性服务的寻址系统的工作效率较低。
此外,由于HIT值具有较大的随机性,因此映射记录将会比较均匀地分布到整个DHT网络上,从而使每台寻址服务器的存储量和访问量大体相当。虽然寻址系统采用传统的DHT能够具有这种内在的负载平衡性,但是却存在着公平性的问题,即一个区域中的寻址服务器总要存储更多的其它区域中的记录信息,每个区域中的大部分注册解析任务都需要依靠其他寻址服务器完成。这样一来,每个区域中的寻址服务器的提供者就会质疑"为什么我们架设的服务器总在为别人服务?既然注册解析都是靠其他区域的服务器完成的,那么何必在本区域部署更多的服务器呢?,,,这样导致所有区域都不愿意提供足够多的服务器,造成整个寻址系统的工作效率低下。
上述这些问题如何得到尽快解决,就成为研究人员关注的新焦点。

发明内容
有鉴于此,本发明的目的是提供一种针对层次化主机标识、基于叠加式DHT的寻址系统和方法,以解决现有技术的缺陷,提高寻址系统的工作效率,实现良好的负载平衡性和公平性。本发明系统中的寻址服务器根据主机标识符中的区域标识字段建立起叠加式的DHT架构,并在查找过程中优先选取本区域内的服务器作为下一跳,以减少路由跨域的次数,使该寻址系统具有较高的查找效率;同时,本发明系统中的叠加式的DHT架构还具有良好的负载平衡性、^^平性、可扩展性和适应性。
为了达到上述目的,本发明提供了一种针对层次化主机标识、基于叠加式分布式哈希表DHT的寻址系统,包括IP网络中的多个寻址服务器和多个主机;其特征在于所述多个寻址服务器的组成结构相同,都设有下述五个功能模块顺序连接的节点加入与退出处理模块、信息维护模块、路由查找模块、映射记录信息存储模块,以及叠加式DHT结构的建立与维护模块;其中
节点加入与退出处理模块,包括节点加入处理和节点退出处理两个子模块,该模块通过与叠加式DHT结构的建立与维护模块的交互,在该寻址服务器启动后,获取该寻址系统中的网络信息与相关的映射记录,及时更新信息维护模块中的信息;并在该寻址服务器关闭或其它寻址服务器失效后,更新自己的路由表信息,以保证全局DHT路由表和区域DHT路由表的正确性;
信息维护模块,用于接收叠加式DHT结构的建立与维护模块和节点加入与退出模块发送来的信息,存储和维护该寻址服务器的下述信息全局DHT路由表、区域DHT路由表、该寻址服务器在区域DHT中的直接前驱节点和直接后继节点信息以及该寻址服务器在全局DHT中的直接前驱节点和直接后继节点信息;
路由查找模块,用于接收网络中的主机发送的查询服务请求以及其它模块发来的查找定位请求,并负责根据信息维护模块中维护的叠加式DHT结构的信息,在该寻址系统中完成节点或映射记录的查找定位,并将查询结果回复给主机;
映射记录信息存储模块,负责接收和处理网络中的主机发来的注册/更新请求,通过路由查找模块找到映射记录所对应的存储位置,并在该指定位置上进行映射记录的存储,然后将处理结果回复给主机;
叠加式DHT结构的建立与维护模块,负责完成该寻址服务器和其他寻址服务器之间的信息交互,建立和维护该寻址系统由区域DHT和全局DHT组成的两级叠加式DHT架构,以便利用节点的主^L标识符中的区域标识信息,尽可能地减少路由查找过程中的跨区域次数,使得该寻址系统具有较高的注册解析效率,同时保证良好的负载平衡性和公平性。
所述节点是该寻址系统中的寻址服务器或主机,每个节点都有用于标明
其身份的主机标识符;该主机标识符包括区域标识和区域内标识两部分;其
ii中
区域标识是层次化主机标识符的标志,它是按照节点所在的地理位置、 网络管理域或其他条件的设定规则将IP网络中属性相同的节点划分为同一
区域,并为每个区域设置区域标识号;划分区域的原则是要使位于同一区域 内、具有相同区域标识号的节点相互之间的通信时延较小;根据实际需要, 该区域标识能够继续划分出更低一级的子区域标识;
区域内标识是对节点所包括的MAC地址、公私钥对中的公钥或其他信息 进行哈希运算所产生的二进制数列,或者是以完全的随机数产生的二进制数列; 用于在区域内唯一地标识每个节点。
所述寻址系统适用于所有使用层次化结构主机标识符的网络系统,并不 局限于主机标识协议HIP;且所述DHT技术是采用包括KAD、 Chord、 Pastry 的多种DHT中的任意一种来实现。
为了达到上述目的,本发明还提供了一种根据所述针对层次化主机标 识、基于叠加式DHT的寻址系统的工作方法,其特征在于所述方法是先 建立叠加式DHT结构对身份与位置相分离的网络架构中使用的无语义主 机标识符进行层次化改造,加入用于表明每个节点所在区域位置的区域标 识,再将网络中的每个节点划分为不同区域,然后按照不同区域分别建立各 自的区域DHT,最后将所有的区域DHT共同叠加组成一个全局DHT;且在 路由查找和转发时,以叠加式DHT为基础,优先在区域DHT内选定3备由过 程中的下一跳,以便尽可能地减少跨区域路由的次数,提高路由效率;每次 的注册/更新操作都是在全局DHT和区域DHT中同时进行,以实现负载平 衡性与经济上的公平性。
该方法包括下列操作步骤 (1 )叠加式DHT结构的建立与初始化; -(2)选择执行下述一项或多项操作内容处理注册/更新请求,进行路 由查找,节点的加入,节点的退出;且所述各操作内容的时间先后没有限定。
所述步骤(1 )进一步包括下列操作内容(11)在主机标识符中增添区域标识字段,将整个IP网络按照设定规则进行区域划分和分配区域标识号,再将该区域标识号填入其所对应区域内
的所有节点的主机标识符中的区域标识字段内;
(12 )对上述层次化的主机标识符进行随机化处理按照所述设定规则,将主^L标识符中的区域标识字^:里的各bit分别插入到随^/L性的区域内标识字段中,以使主机标识符在整体上具有更好的随机性,实现节点和记录位置的均匀分布;在还原时,则按照相同设定规则逆向处理将区域标识字段里的各bit从区域内标识字段中抽取出来,重新组合后,再放置在原来所在的区域内标识字段前面;将该经过随机化处理后的主才几标识符作为DHT中的节点ID;
(13 )建立区域DHT和全局DHT:将位于同 一 区域内、具有相同区域标识的节点按照某种DHT技术组织成一个区域DHT,使得主机标识符中区域标识字段不同的节点被划分到各自不同的区域DHT中;再将所有区域DHT进行叠加,按照同样的DHT技术组织成全局DHT;该两级DHT使用相同的节点ID空间,但全局DHT与区域DHT各自维护自己的DHT结构,两者之间以及各区域DHT之间互不影响;
(14)系统中的各寻址服务器通过叠加式DHT结构的建立与维护模块收集与交互信息,以及通过节点的加入退出处理模块的信息更新功能,建立寻址服务器上的区域DHT路由表和全局DHT路由表,找到并存储区域DHT中和全局DHT中的各自直接前驱节点和直接后继节点信息,最后将这些信息集中保存到信息维护模块中。
所述步骤(2)中,处理注册/更新请求的操作主要由寻址服务器中的映射记录信息存储模块和路由查找模块完成的,其处理流程包括下列操作内答二 -
(201 )寻址服务器中的映射记录信息存储模块接收到某个主机发送的注册/更新请求后,先4佥查该请求消息中包含的主机标识符的区域标识是否与该寻址服务器相同,如果是,则通过路由查找模块查找区域DHT路由表,
13将该注册/更新请求转发到区域DHT中的目标节点及其直接后继节点上进行 冗余存储后,执行后续步骤;否则,直接执行后续步骤;
(202)通过路由查找模块将该注册/更新请求转发到全局DHT中的目 标节点及其直接后继节点上进行冗余存储;如果在转发过程中,某个寻址服 务器发现该注册/更新请求中的主机标识符的区域标识信息与其相同时,就 将该注册/更新请求同时转发到其所在的区域DHT中,完成映射记录在区域 DHT中的冗余存储。
所述步骤(2)中,进行路由查找的操作进一步包括下列操作内容 (211)寻址服务器接收到查询服务请求后,先取出该请求消息中包含 的待查询的主机标识符,并根据所述设定规则将其随机化处理为目标ID; 通过查看信息维护模块中的区域路由表,检查该目标ID是否位于本机ID与 区域DHT中的直接后继节点的ID之间,如果不是,则查找区域路由表,按 照该寻址系统所采用的DHT技术的原有路由方法找到下一跳节点,向其转 发该查询服务请求后,返回执行该步骤(211)的操作;如果是,则直接执 行后续步骤;
(212 )判断该目标ID的区域标识字段是否与该寻址服务器相同,如果 不同,则直接执行后续步骤;如果相同,则通过信息维护模块向自己区域 DHT中的直接后继节点转发该查询服务请求,并要求该后继节点回复是否 找到该目标ID,同时通知该后继节点不再继续转发该查询服务请求;如果 该后继节点回复找到该目标ID,则查找成功,结束该流程;如果回复未找 到该目标ID,则执行后续步骤;
(2D )判断该目标ID是否位于该寻址服务器ID与全局DHT中的直接 后继节点的ID之间,如果是,则该直接后继节点就是要查询的目标节点, 向其转发查询请求后,结束该流程;如果不是,则查找信息维护模块中的全 局路由表,按照该寻址系统所采用的DHT技术的原有路由方法找到下一跳 节点,向其转发该查询服务请求,然后返回执行步骤(211 )操作。
所述步骤(2)中,节点的加入是在系统内加入新的寻址服务器,其处理流程包括下列操作内容
(221 )新的寻址服务器加入该寻址系统之前,先通过人工配置、向网络中广播查询消息或其他方式了解至少一个已存在于该系统中的另 一 台寻址服务器的信息,以便该新的寻址服务器藉助该已知的寻址服务器查询自身1D,分别获得自己在全局DHT和区域DHT中的直接前驱节点和直接后继节点的信息;
(222)该新的寻址服务器分别联系自己在区域DHT和全局DHT中的直接前驱节点,通知它们将其直接后继节点都替换为该新的寻址服务器;
(223 )该新的寻址服务器分别联系自己在区域DHT和全局DHT中的直接后继节点,通知它们将其直接前驱节点都替换为该新的寻址服务器;同时让该两个直接后继节点将位于它们的原直接前驱节点和该新的寻址服务器之间的ID空间中所对应的记录都传输到该新的寻址服务器上进行存储;
(224 )该新的寻址服务器通过自己在两级DHT中的直接后继节点进行查询后,填充和完善自己在信息维护模块中的路由表,同时通知其它的寻址服务器分别更新各自的路由表。
所述步骤(2)中,节点的退出包括寻址服务器的主动退出和因机器故障无法提供服务而失效退出的两种情况,分别对应于不同的处理操作内容;其中,所述系统中的某个寻址服务器主动退出该系统时的处理流程如下
(231) 该寻址服务器将该机将要退出寻址系统的消息分别通知自己在区域DHT和全局DHT中的直接前驱节点,让这两个直接前驱节点将自己的直接后继节点都修改为该寻址服务器的直接后继节点,并分别更新各自的路由表;
(232) 该寻址服务器将该机将要退出系统的消息分别通知自己在区域DHT和全局DHT中的直接后继节点,让这两个直接后继节点将自己的直接前驱节点都修改为该寻址服务器的直接前驱节点,并分别更新各自的路由表;
因出现故障无法提供服务,某个寻址服务器失效退出寻址系统时的处理it禾呈如下
(241) 该失效的寻址服务器在全局DHT和区域DHT中的直接前驱节 点通过定期的Hello消息发现该寻址服务器已失效;
(242) 该寻址服务器在区域DHT和全局DHT中的直接前驱节点分别 查找各自的路由表,找到该寻址服务器的直接后继节点后,将查找到的该直 接后继节点修改为自己的直接后继节点,同时分别更新各自的路由表;同时, 该寻址服务器在区域DHT和全局DHT中的直接前驱节点还要通知该新找到 的直接后继节点,让它将其直接前驱节点修改为自己;
(243 )该寻址服务器在区域DHT和全局DHT中的直接后继节点,在 接收到上述步骤中的信息更新通知消息后,分别将各自的直接前驱节点修改 为该寻址服务器对应的直接前驱节点,同时分别更新各自的路由表。 本发明具有以下创新优点
首先是采用层次化的主机标识符,将网络中的各节点分别划归不同的区 域,并通过主机标识符中的区域标识字段体现之,说明各节点所处的大致位 置,便于人为管理。同时本发明对区域划分方式未作具体规定,可以根据现 实情况自行选择,具有一定的灵活性。本发明寻址系统采用的叠加式DHT 结构也未设定具体的DHT实现技术,只要根据不同的DHT技术建立其相应 的路由表,都能够实现本发明叠加式DHT结构的寻址系统,这也说明本发 明系统具有良好的适应性和可扩展性。
另外,本发明寻址系统的叠加式DHT结构,既具有传统DHT的负载平 衡特性,又通过采用其独特的注册/更新方式,使得该DHT网络中的每台寻 址服务器都同时存储有少量的全局映射记录和大量的本区域内的映射记录, 从而实现了在解析负担较重的区域里,只有配置更多的寻址服务器才能提高 本区域的寻址速度,这对区域服务器提供者来说,在经济上是非常公平的。
由于本发明寻址系统对IP网络中的各个节点都划分了区域,并且针对 叠加式DHT结构设计了新的^各由方法,因此,在路由查询时,总是优先选 择区域内的下一跳,尽可能地减少了跨区域的跳数,从而降低了转发查找的
16时延,提高了路由效率。该寻址系统提供的从主机标识符到IP地址的注册/
解析服务,使得原有网络体系结构的寻址摆脱了对DNS系统的依赖。而且, 本发明寻址系统并不局限于HIP协议,只要网络系统所使用的主机标识符的 命名方案具有类似的层次化结构,都能利用本发明系统提供寻址服务。
最后,本发明使用的具有可还原性的随机化过程,避免了使用层次化主 机标识符而造成的负载失衡问题,实现了既保持主机标识符的原有值,又使 节点和映射记录能够在DHT逻辑拓朴中均匀分布的目标。总之,本发明系 统和方法具有明显的技术优势,其推广应用前景看好。


图l是本发明寻址系统中的寻址服务器结构组成示意图。
图2是本发明修改后的HIT主机标识符名字结构示意图。
图3是本发明寻址系统的工作方法操作步骤流程图。
图4是本发明寻址方法中的主机标识符随机化处理过程示例图。
图5是本发明寻址系统实施例中的网络拓朴示意图。
图6是本发明寻址系统中的叠加式DHT架构示例图。
图7是本发明中寻址系统的路由查找过程。
图8是本发明寻址系统实施例中的路由方法和使用传统路由方法的路 径对比图。
图9是本发明寻址系统实施例中的注册处理过程示例图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对 本发明作进一步的详细描述。
本发明先对主机标识符进行了层次化修改,引入了部分语义,以便能够 有助于提高寻址系统的注册和解析效率;另外,还提供一种针对修改后的层 次化主^L标识、基于叠加式DHT的寻址系统及其工作方法,本发明系统采
1用两级DHT的叠加式结构,通过利用节点主机标识符中的区域标识字段,
尽可能地减少了路由查找过程中的跨区域次数,从而具有较高的注册解析效 率,同时还保证了良好的负载平衡性和公平性。
参见图1,先介绍本发明针对层次化主机标识、基于叠加式分布式哈希表
DHT的寻址系统的结构组成包括IP网络中的多个寻址服务器和多个主机, 其中的寻址服务器的结构相同,都设有下述五个功能模块顺序连接的节点加 入与退出处理模块、信息维护模块、路由查找模块、映射记录信息存储模块, 以及叠加式DHT结构的建立与维护模块;其中
节点加入与退出处理模块,包括节点加入处理和节点退出处理两个子模 块,该模块通过与叠加式DHT结构的建立与维护模块的交互,在该寻址服 务器启动后,获取该寻址系统中的网络信息与相关的映射记录,及时更新信 息维护模块中的信息;并在该寻址服务器关闭或其它寻址服务器失效后,更 新自己的路由表信息,以保证全局DHT路由表和区域DHT路由表的正确性;
信息维护模块,用于接收叠加式DHT结构的建立与维护模块和节点加 入与退出模块发送来的信息,存储和维护该寻址服务器的下述信息全局 DHT路由表、区域DHT路由表、该寻址服务器在区域DHT中的直接前驱 节点和直接后继节点信息以及该寻址服务器在全局DHT中的直接前驱节点 和直接后继节点信息;
路由查找模块,用于接收网络中的主机发送的查询服务请求以及其它模 块发来的查找定位请求,并负责根据信息维护模块中维护的叠加式DHT结 构的信息,在该寻址系统中完成节点或映射记录的查找定位,并将查询结果 回复给主机;
映射记录信息存储模块,负责接收和处理网络中的主机发来的注册/更 新请求,通过路由查找模块找到映射记录所对应的存储位置,并在该指定位 置上进行映射记录的存储,然后将处理结果回复给主机;
叠加式DHT结构的建立与维护模块,负责完成该寻址服务器和其他寻 址服务器之间的信息交互,建立和维护该寻址系统由区域DHT和全局DHT
18组成的两级叠加式DHT架构,以^更利用节点的主才几标识符中的区域标识信 息,尽可能地减少路由查找过程中的跨区域次数,使得该寻址系统具有较高 的注册解析效率,同时保证良好的负载平衡性和公平性。
本发明寻址系统的适应范围并不局限于HIP协议,任何使用层次化结构
主机标识符的网络体系结构都可以使用该系统提供寻址服务。同时,该寻址
系统也未对其所采用的DHT技术做出限定,任何结构化的DHT,如KAD、 Chord、 Pastry等都可以适用于这种系统。
本发明的节点是该寻址系统中的寻址服务器或主机,每个节点都有用于 标明其身份的主机标识符。本发明对该主机标识符进行了修改,将其划分为 两个部分区域标识和区域内标识。其中
( 一 )区域标识是层次化主机标识符的标志,它是按照某种设定规则(例 如节点所在的实际地理位置、网络的管理域或其他条件等)将IP网络中属 性相同的节点划分为同 一 区域,并人为地为每个区域设置一个区域标识号。 划分区域的主要原则是要使位于同 一 区域内、具有相同区域标识号的节点相 互之间的通信时延较小。此外,根据实际需要,该区域标识能够继续划分出 更低一 级的子区域标识。例如,在HIP协议中,由于HIT与IPv6地址的长 度相同,都是128位,因此,为了指明某个二进制数列是一个HIT,可以在 区域标识字段中再划分出 一段具有固定数值、用于区分的HIT标签(参见图 2 )。图2是以HIP协议中的HIT为例,说明了修改后的HIT的名字结构。 其中,HIT标签和区域ID都属于区域标识的范畴。
(二)区域内标识是对节点所包括的MAC地址、公私钥对中的公钥或其 他信息进行哈希运算所产生的二进制数列,或者是以完全的随机数产生的二进 制数列;用于在区域内唯一地标识每个节点。
参见图3,介绍本发明寻址系统的工作方法及其两个具体操作步骤 步骤1、叠加式DHT结构的建立与初始化;首先建立叠加式DHT结构, 即对身份与位置相分离的网络架构中使用的无语义主机标识符进行层次化 改造,加入用于表明每个节点所在区域位置的区域标识,再将网络中的每个节点划分为不同区域,然后按照不同区域分别建立各自的区域DHT,最后 将所有的区域DHT共同叠加组成一个全局DHT。 该步骤进一步包括下列搡作内容
(11 )对网络中使用的主机标识符进行改造在主机标识符中增添区域 标识字段,将整个IP网络按照设定规则进行区域划分(该规则是按照实际 地理位置进行划分,或按照网络的管理域进行划分,或视具体情况自行选择) 和人为分配区域标识号,再将该区域标识号填入其所对应区域内的所有节点 的主才几标识符中的区域标识字段内;
(12)对上述层次化的主机标识符进行随机化处理按照上述设定的规 则,将主机标识符中的区域标识字段里的各bit分别插入到随机性的区域内 标识字段中,以使主机标识符在整体上具有更好的随机性,实现节点和记录 位置的均匀分布。例如,图4所示的一个随机化处理过程的示例,是将主机 标识符中的区域标识字段按bit位插入到了具有较大随机性的区域内标识部 分中间。在还原时,则按照相同设定规则逆向处理将区域标识字段里的各 bit从区域内标识字段中抽取出来,重新组合后,再放置在原来所在的区域 内标识字l殳前面。
将主机标识符进行随机化的操作初衷是因为作为ID使用的主机标识 符的区域标识部分的数值是相对固定的,也就是说,位于同一区域中的节点 的主机标识符中的区域标识字段是完全一样的,这会导致相同区域中的节点 和记录将集中映射到DHT逻辑结构中的某一段上,造成同一区域的映射记 录会全部存储在逻辑位置上邻近的一些服务器上,这就违背了 DHT分布式 存储的初衷,同时也不利于平衡负载。因此,必须对寻址系统中作为ID使 用的主机标识符的结构进行适当的改动。
本发明将改动主机标识符而使其更适于充当DH1M吏用的ID的过程,称 为随机化处理过程,其目的是使主机标识符具有更大的随机性,实现网络的 负载均衡,同时还要保持作为ID的主机标识符的数值不会改变,即这种随 机化要具有可还原性。因此,具体方法是设定某种规则,将主机标识符的区
2域标识字段中的各bit分散插放到区域内标识中的不同位置上,从而利用主 机标识符中的随机部分达到节点和记录的位置均匀分布;在进行还原时,则 按照原先设定的规则进行反向操作,从而得到主机标识符的原始值。
(13 )建立区域DHT和全局DHT:将经过随机化处理后的主机标识符 作为DHT中的节点ID,再将具有相同区域标识字段(即位于同一区域内) 的节点按照某种DHT技术组织成一个区域DHT,使得主机标识符中区域标 识字段不同的节点被划分到各自不同的区域DHT中。再将所有区域DHT进 行叠加,按照同样的DHT技术组织成一个全局DHT。该两级DHT使用相 同的节点ID空间,但全局DHT与区域DHT各自维护自己的DHT结构,两 者之间以及各区域DHT之间互不影响。
参见图5,介绍按照本发明上述步骤划分为三个区域的网络拓朴图,在 每个区域中各有三台寻址服务器。使用6位二进制数作为主机标识名字空 间,其中第一位取O作为主机标识符标签,然后分别为区域l、 2、 3分配编 号为01、 00、 10,再使用哈希函数或随机数为每台寻址服务器生成三位的 区域内标识,最后将这三部分组合起来作为寻址服务器的主机标识符。例如 该图中的S2寻址服务器位于区域1中,所以其区域标识为01,假设为S2 寻址服务器产生的区域内标识为000,则它的主机标识符为001000。
(14)系统中的各寻址服务器通过叠加式DHT结构的建立与维护模块 收集与交互信息,以及通过节点的加入退出处理模块的信息更新功能,建立 寻址服务器上的区域DHT路由表和全局DHT路由表,找到并存储区域DHT 中和全局DHT中的各自直接前驱节点和直接后继节点信息,最后将这些信 息集中保存到信息维护模块中。
参见图6,介绍按照上述步骤建立的叠加式DHT系统示意图。先对寻 址服务器的主机标识符进行随机化处理,即按照"原第1位—新第6位,原 第2位—新第4位,原第3位—新第5位,剩余bit位分别按序插入空余位 置,,的规则进行映射,作为DHT中的节点ID。例如,将S2节点的主机标识 符001000随机化为000010作为它在DHT中的ID。当网络中的每台寻址服务器都生成了节点ID后,按照它们所处的区域位置,分别建立起三个区域
DHT,然后叠加成为全局DHT,最后每台寻址服务器都生成各自的两级路 由表存储到信息维护模块中。从图6中可以看到,所有的寻址服务器都大致 平均地分布于整个DHT逻辑空间上。
步骤2、选择执行下述一项或多项操作内容处理注册/更新请求,进行 路由查找,节点的加入,节点的退出;且上述各操作内容没有时间先后限定。 其中进行路由查找和转发时,是以叠加式DHT为基础,优先在区域DHT内 选定路由过程中的下一跳,以便尽可能地减少跨区域路由的次数,提高路由 效率。每次的注册/更新操作都是在全局DHT和区域DHT网络中同时进行, 以实现负载平衡性与经济上的公平性。
下面分别介绍上述各项操作的具体内容 参见图7,先介绍其中进行路由查找操作的具体操作内容 (Al)寻址服务器接收到查询服务请求后,先取出该请求消息中包含 的待查询的主机标识符,并根据设定规则将其随机化处理为目标ID;然后 查看信息维护模块中的区域路由表,检查该目标ID是否位于本机ID与区域 DHT中的直接后继节点的ID之间,如果不是,则查找区域路由表,按照该 寻址系统所采用的DHT技术的原有路由方法找到下一跳节点,向其转发该 查询服务请求后,返回执行该步骤(Al)的操作;如果是,则直接执行后 续步骤;
(A2)判断该目标ID的区域标识字段是否与该寻址服务器相同,如果 不同,则直接执行后续步骤;如果相同,则通过信息维护模块向自己区域 DHT中的直接后继节点转发该需要回复的查询服务请求,同时通知该后继 节点不再继续转发该查询服务请求;如果该后继节点回复找到该目标ID, 则查找成功,结束该流程;如果回复未找到该目标ID,则执行后续步骤;
(A3 )判断该目标ID是否位于该寻址服务器ID与全局DHT中的直接 后继节点的ID之间,如果是,则该直接后继节点就是要查询的目标节点, 向其转发查询请求后,结束该流程;如果不是,则查找信息维护模块中的全局路由表,按照该寻址系统所采用的DHT技术的原有路由方法找到下一跳 节点,向其转发该查询服务请求,然后返回执行步骤(Al )操作。
上述步骤(Al)和步骤(A3)中,查找区域DHT路由表和查找全局 DHT路由表的过程是根据寻址系统所用的具体DHT技术进行相应操作。例 如,如果使用的是KAD,则查找过程就是计算出目标ID与本机ID之间的 异或距离D,然后从路由表的第Z。g,个K桶中取出下一跳节点信息;如果 使用的是Chord,则查找过程就是按照与本机ID距离从大到小的顺序,找 到ID不大于目标ID的路由表项,取出节点信息作为下一跳。
参见图8,介绍本发明按照上述步骤进行路由查找的示例。图中的叠加式 DHT结构是在图5的拓朴图的基础上生成的。假设S2寻址服务器收到了 一个欲 查询主机标识符为000110的解析请求,S2先将0001 IO按照设定规则随机化为 110000 (十进制为48,下面用X表示此ID), S2检查出X并不位于S2和其区域直 接后继节点S42之间,则将查询请求转发到S42上。S42判断出X位于S42与其区 域直接后继节点S60之间,但是X的区域标识为10,与S42的区域标识01不同, 因此查找自己的全局DHT路由表。最后,S42发现X位于S42与其全局直接后继 节点S52之间,所以S52就是要查找的目标节点,将该查询消息转发给它后,整 个过程结束。采用上述路由方法,查我X所经过的路径为S2 —S42—S52;如果 按照传统DHT路由方法,则查找X所经过的路径为S2 —S36 —S42~>S52。将这两 条路径都放到图5的实际拓朴图中可以看出,使用本发明中的路由方法查找X所 需的跨区域次数为2,而使用传统DHT路由方法所需的跨区域次数则为6。
本发明处理注册/更新请求的操作主要是由寻址服务器中的映射记录信 息存储模块和路由查找模块完成的,其处理流程包括下列操作内容
(Bl )寻址服务器中的映射记录信息存储模块接收到某个主机发送的注 册/更新请求后,先检查该请求消息中包含的主机标识符的区域标识是否与 该寻址服务器相同;如果是,则通过路由奎找模块查找区域DHT路由表, 将该注册/更新请求转发到区域DHT中的目标节点及其直接后继节点上进行冗余存储后,执行后续步骤;否则,直接执行后续步骤;
(B2 )通过路由查找模块将该注册/更新请求转发到全局DHT中的目标 节点及其直接后继节点上进行冗余存储;如果在转发过程中,某个寻址服务 器发现该注册/更新请求中的主机标识符的区域标识信息与其相同时,就将 该注册/更新请求同时转发到其所在的区域DHT中,完成映射记录在区域 DHT中的冗余存储。
参见图9,描述本发明按照上述流程进行注册处理的示例。在图9中, S2(主机标识符为001000,下划线部分为区域号)寻址服务器收到了一个 主机标识符为0M110的注册请求,首先检查其区域号为10,与S2的区域 号01不同,因此S2通过路由查找模块进行路由查找,将此注册请求转发到 全局DHT中的下一跳S36上。S36 (主机标识符为O边IOO)收到该注册请 求后,同样检查其区域号,发现与本寻址服务器的区域号IO相同,则在将 该注册请求转发到全局DHT中的下一跳S42的同时,也将该注册请求转发 到S36的区域DHT中的下一跳S52上。S42和S52分别收到该注册请求后, 继续执行上述步骤,直到到达目标寻址服务器S52上进行存储,同时S52 还要将这一映射记录发送到其所在的区域DHT和全局DHT中的直接后继节 点S20和S58上进行冗余存]诸。
本发明节点的加入是在该寻址系统内加入新的寻址服务器,其处理流程 包括下列操作内容
(Cl )新的寻址服务器A加入该寻址系统之前,先通过人工配置、向 网络中广播查询消息或其他方式了解至少一个已存在于该系统中的另 一 台 寻址服务器B的信息,以便该新的寻址服务器A藉助该已知的寻址服务器B 查询自身ID,分别获得自己在全局DHT和区域DHT中的直接前驱节点和 直接后继节点的信息;
(C2)新的寻址服务器A分别联系自己在区域DHT和全局DHT中的 直接前驱节点,通知它们将其直接后继节点都替换为该新的寻址服务器A;
(C3 )新的寻址服务器A分别联系自己在区域DHT和全局DHT中的直接后继节点,通知它们将其直接前驱节点都替换为该新的寻址服务器A;
同时让该两个直接后继节点将位于它们的原直接前驱节点和该新的寻址服
务器之间的ID空间中所对应的记录都存储于该新的寻址服务器A上;
(C4 )该新的寻址服务器A通过自己在两级DHT中的直接后继节点进 行查询后,填充和完善自己在信息维护模块中的路由表,同时通知其它的寻 址服务器分别更新各自的路由表。
节点的退出有两种情况寻址服务器的主动退出和因机器故障无法提供 服务而失效退出,分别对应于不同的处理操作内容。前者的处理流程如下 (Dl)寻址服务器A将该机将要退出寻址系统的消息分别通知自己在 区域DHT和全局DHT中的直接前驱节点,让它们将自己的直接后继节点都 修改为该寻址服务器A的直接后继节点,并分别更新各自的路由表;
(D2)寻址服务器A将该机将要退出系统的消息分别通知自己在区域 DHT和全局DHT中的直接后继节点,让它们将自己的直接前驱节点都修改 为寻址服务器A的直接前驱节点,并分别更新各自的路由表;
因出现故障无法提供服务,某个寻址服务器失效退出寻址系统时的处理 流禾呈如下
(El)失效的寻址服务器A在全局DHT和区域DHT中的直接前驱节 点通过定期的Hello消息发现该寻址服务器A已失效;
(E2)该寻址服务器A在区域DHT和全局DHT中的直接前驱节点分 别查找各自的路由表,找到该寻址服务器A的直接后继节点后,将查找到 的该直接后继节点修改为自己的直接后继节点,同时分别更新各自的路由 表;同时,该寻址服务器A在区域DHT和全局DHT中的直接前驱节点还 要通知该新找到的直接后继节点,让它将其直接前驱节点修改为自己;
'(E3)该寻址服务器A在区域DHT和全局DHT中的直接后继节点, 在接收到上述步骤中的信息更新通知消息后,分别将各自的直接前驱节点修 改为该寻址服务器A对应的直接前驱节点,同时分别更新各自的路由表。
权利要求
1、一种针对层次化主机标识、基于叠加式分布式哈希表DHT的寻址系统,包括IP网络中的多个寻址服务器和多个主机;其特征在于所述多个寻址服务器的组成结构相同,都设有下述五个功能模块顺序连接的节点加入与退出处理模块、信息维护模块、路由查找模块、映射记录信息存储模块,以及叠加式DHT结构的建立与维护模块;其中节点加入与退出处理模块,包括节点加入处理和节点退出处理两个子模块,该模块通过与叠加式DHT结构的建立与维护模块的交互,在该寻址服务器启动后,获取该寻址系统中的网络信息与相关的映射记录,及时更新信息维护模块中的信息;并在该寻址服务器关闭或其它寻址服务器失效后,更新自己的路由表信息,以保证全局DHT路由表和区域DHT路由表的正确性;信息维护模块,用于接收叠加式DHT结构的建立与维护模块和节点加入与退出模块发送来的信息,存储和维护该寻址服务器的下述信息全局DHT路由表、区域DHT路由表、该寻址服务器在区域DHT中的直接前驱节点和直接后继节点信息以及该寻址服务器在全局DHT中的直接前驱节点和直接后继节点信息;路由查找模块,用于接收网络中的主机发送的查询服务请求以及其它模块发来的查找定位请求,并负责根据信息维护模块中维护的叠加式DHT结构的信息,在该寻址系统中完成节点或映射记录的查找定位,并将查询结果回复给主机;映射记录信息存储模块,负责接收和处理网络中的主机发来的注册/更新请求,通过路由查找模块找到映射记录所对应的存储位置,并在该指定位置上进行映射记录的存储,然后将处理结果回复给主机;叠加式DHT结构的建立与维护模块,负责完成该寻址服务器和其他寻址服务器之间的信息交互,建立和维护该寻址系统由区域DHT和全局DHT组成的两级叠加式DHT架构,以便利用节点的主机标识符中的区域标识信息,尽可能地减少路由查找过程中的跨区域次数,使得该寻址系统具有较高的注册解析效率,同时保证良好的负载平衡性和公平性。
2、 根据权利要求1所述的系统,其特征在于所述节点是该寻址系统中的寻址服务器或主机,每个节点都有用于标明其身份的主机标识符;该主才几标识符包括区域标识和区域内标识两部分;其中区域标识是层次化主机标识符的标志,它是按照节点所在的地理位置、网络管理域或其他条件的设定规则将IP网络中属性相同的节点划分为同一区域,并为每个区域设置区域标识号;划分区域的原则是要使位于同一区域内、具有相同区域标识号的节点相互之间的通信时延较小;根据实际需要,该区域标识能够继续划分出更低一级的子区域标识;区域内标识是对节点所包括的MAC地址、公私钥对中的公钥或其他信息进行哈希运算所产生的二进制数列,或者是以完全的随机数产生的二进制数列;用于在区域内唯一地标识每个节点。
3、 根据权利要求1所述的系统,其特征在于所述寻址系统适用于所有使用层次化结构主机标识符的网络系统,并不局限于主机标识协议HIP;且所述DHT技术是采用包括KAD、 Chord、 Pastry的多种DHT中的任意一种来实现。
4、 一种根据权利要求1所述的针对层次化主机标识、基于叠加式DHT的寻址系统的工作方法,其特征在于所述方法是先建立叠加式DHT结构对身份与位置相分离的网络架构中使用的无语义主机标识符进行层次化改造,加入用于表明每个节点所在区域位置的区域标识,再将网络中的每个节点划分为不同区域,然后按照不同区域分别建立各自的区域DHT,最后将所有的区域DHT共同叠加组成一个全局DHT;且在5^由查找和转发时,以叠加式DHT为基础,优先在区域DHT内选定路由过程中的下一跳,以便尽可能地减少跨区域路由的次数,提高路由效率;每次的注册/更新操作都是在全局DHT和区域DHT中同时进行,以实现负载平衡性与经济上的公平性。
5、 根据权利要求4所述的方法,其特征在于该方法包括下列操作步骤(1) 叠加式DHT结构的建立与初始化;(2) 选择执行下述一项或多项操作内容处理注册/更新请求,进行路由查找,节点的加入,节点的退出;且所述各操作内容的时间先后没有限定。
6、根据权利要求5所述的方法,其特征在于所述步骤(l)进一步包括下列操作内容(11) 在主机标识符中增添区域标识字段,将整个IP网络按照设定规则进行区域划分和分配区域标识号,再将该区域标识号填入其所对应区域内的所有节点的主机标识符中的区域标识字段内;(12) 对上述层次化的主机标识符进行随机化处理按照所述设定规则,将主机标识符中的区域标识字段里的各bit分别插入到随机性的区域内标识字段中,以使主机标识符在整体上具有更好的随机性,实现节点和记录位置的均匀分布;在还原时,则按照相同设定规则逆向处理将区域标识字段里的各bit从区域内标识字段中抽耳又出来,重新组合后,再放置在原来所在的区域内标识字段前面;将该经过随机化处理后的主机标识符作为DHT中的节点ID;(13 )建立区域DHT和全局DHT:将位于同一区域内、具有相同区域标识的节点按照某种DHT技术组织成一个区域DHT,使得主机标识符中区域标识字段不同的节点被划分到各自不同的区域DHT中;再将所有区域DHT进行叠加,按照同样的DHT技术组织成全局DHT;该两级DHT使用相同的节点ID空间,但全局DHT与区域DHT各自维护自己的DHT结构,两者之间以及各区域DHT之间互不影响;(14)系统中的各寻址服务器通过叠加式DHT结构的建立与维护模块收集与交互信息,以及通过节点的加入退出处理模块的信息更新功能,建立寻址服务器上的区域DHT路由表和全局DHT路由表,找到并存储区域DHT中和全局DHT中的各自直接前驱节点和直接后继节点信息,最后将这些信息集中保存到信息维护模块中。
7、 根据权利要求5所述的方法,其特征在于所述步骤(2)中,处理注册/更新请求的操作主要由寻址服务器中的映射记录信息存储模块和路由查找模块完成的,其处理流程包括下列操作内容(201 )寻址服务器中的映射记录信息存储模块接收到某个主机发送的注册/更新请求后,先检查该请求消息中包含的主机标识符的区域标识是否与该寻址服务器相同,如果是,则通过路由查找模块查找区域DHT路由表,将该注册/更新请求转发到区域DHT中的目标节点及其直接后继节点上进行冗余存储后,执行后续步骤;否则,直接执行后续步骤;(202)通过路由查找模块将该注册/更新请求转发到全局DHT中的目标节点及其直接后继节点上进行冗余存储;如果在转发过程中,某个寻址服务器发现该注册/更新请求中的主机标识符的区域标识信息与其相同时,就将该注册/更新请求同时转发到其所在的区域DHT中,完成映射记录在区域DHT中的冗余存储。
8、 根据权利要求5所述的方法,其特征在于所述步骤(2)中,进行路由查找的操作进 一 步包括下列操作内容(211)寻址服务器接收到查询服务请求后,先取出该请求消息中包含的待查询的主机标识符,并根据所述设定规则将其随机化处理为目标ID;通过查看信息维护模块中的区域路由表,检查该目标ID是否位于本机ID与区域DHT中的直接后继节点的ID之间,如果不是,则查找区域路由表,按照该寻址系统所采用的DHT技术的原有路由方法找到下一跳节点,向其转发该查询服务请求后,返回执行该步骤(211 )的操作;如果是,则直接执行后续步骤;(212 )判断该目标ID的区域标识字段是否与该寻址服务器相同,如果不同,则直接执行后续步骤;如果相同,则通过信息维护模块向自己区域DHT中的直接后继节点转发该查询服务请求,并要求该后继节点回复是否找到该目标ID,同时通知该后继节点不再继续转发该查询服务请求;如果该后继节点回复找到该目标ID,则查找成功,结束该流程;如果回复未找到该目标ID,则执行后续步骤;(213 )判断该目标ID是否位于该寻址服务器ID与全局DHT中的直接后继节点的ID之间,如果是,则该直接后继节点就是要查询的目标节点,向其转发查询请求后,结束该流程;如果不是,则查找信息维护才莫块中的全局路由表,按照该寻址系统所采用的DHT技术的原有路由方法找到下一跳节点,向其转发该查询服务请求,然后返回执行步骤(211 )操作。
9、 根据权利要求5所述的方法,其特征在于所述步骤(2)中,节点的加入是在系统内加入新的寻址服务器,其处理流程包括下列搡作内容(221 )新的寻址服务器加入该寻址系统之前,先通过人工配置、向网络中广播查询消息或其他方式了解至少一个已存在于该系统中的另一台寻址服务器的信息,以便该新的寻址服务器藉助该已知的寻址服务器查询自身ID,分别获得自己在全局DHT和区域DHT中的直接前驱节点和直接后继节点的信息;(222) 该新的寻址服务器分别联系自己在区域DHT和全局DHT中的直接前驱节点,通知它们将其直接后继节点都替换为该新的寻址服务器;(223) 该新的寻址服务器分别联系自己在区域DHT和全局DHT中的直接后继节点,通知它们将其直接前驱节点都替换为该新的寻址服务器;同时让该两个直接后继节点将位于它们的原直接前驱节点和该新的寻址服务器之间的ID空间中所对应的记录都传输到该新的寻址服务器上进行存储;查询后,填充和完善自己在信息维护模块中的路由表,同时通知其它的寻址服务器分别更新各自的路由表。
10、 根据权利要求5所述的方法,其特征在于所述步骤(2)中,节点的退出包括寻址服务器的主动退出和因机器故障无法提供服务而失效退出的两种情况,分别对应于不同的处理操作内容;其中,所述系统中的某个寻址服务器主动退出该系统时的处理流程如下(231)该寻址服务器将该机将要退出寻址系统的消息分别通知自己在区域DHT和全局DHT中的直接前驱节点,让这两个直接前驱节点将自己的 直接后继节点都修改为该寻址服务器的直接后继节点,并分别更新各自的路 由表;(232)该寻址服务器将该机将要退出系统的消息分别通知自己在区域 DHT和全局DHT中的直接后继节点,让这两个直接后继节点将自己的直接 前驱节点都修改为该寻址服务器的直接前驱节点,并分别更新各自的路由表;因出.现故障无法提供服务,某个寻址服务器失效退出寻址系统时的处理流程如下(241 )该失效的寻址服务器在全局DHT和区域DHT中的直接前驱节 点通过定期的Hello消息发现该寻址服务器已失效;(242) 该寻址服务器在区域DHT和全局DHT中的直接前驱节点分别 查找各自的路由表,找到该寻址服务器的直接后继节点后,将查找到的该直 接后继节点修改为自己的直接后继节点,同时分别更新各自的路由表;同时, 该寻址服务器在区域DHT和全局DHT中的直接前驱节点还要通知该新找到 的直接后继节点,让它将其直接前驱节点修改为自己;(243) 该寻址服务器在区域DHT和全局DHT中的直接后继节点,在 接收到上述步骤中的信息更新通知消息后,分别将各自的直接前驱节点修改 为该寻址服务器对应的直接前驱节点,同时分别更新各自的路由表。
全文摘要
一种针对层次化主机标识、基于叠加式DHT的寻址系统和方法,系统中的每个寻址服务器的结构相同,都设有节点加入与退出处理模块、信息维护模块、路由查找模块、映射记录信息存储模块和叠加式DHT结构的建立与维护模块。寻址方法是先建立叠加式DHT对网络中使用的无语义主机标识符进行层次化改造,加入表明每个节点所在区域位置的区域标识,再将每个节点划分为不同区域,并分别建立各自的区域DHT,最后将所有的区域DHT共同叠加组成全局DHT;在路由查找和转发时,以叠加式DHT为基础,优先在区域DHT内选定路由中的下一跳,尽可能减少跨区域路由次数,提高路由效率;每次注册/更新操作都在两个DHT中同时进行,以实现负载平衡性与经济上的公平性。
文档编号H04L29/08GK101510897SQ20091008121
公开日2009年8月19日 申请日期2009年3月30日 优先权日2009年3月30日
发明者骞 张, 王文东, 阙喜戎, 龚向阳 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1