基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法

文档序号:7579128阅读:367来源:国知局
专利名称:基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法
技术领域
本发明涉及一种基于分布式哈希表DHT实现IPv4和IPv6互通的系统和方法,用 于解决从IPv4向IPv6平滑过渡的问题,属于互联网中实现IPv4和IPv6互通的技术领域。
背景技术
现在,IPv4地址的32位空间已经越来越感到资源枯竭,未来很快就会面临IPv4地 址资源用尽的问题,IPv6的1 位地址空间能够很好地解决IPv4地址用尽问题,同时IPv6 还能带来许多良好特性,诸如安全性,移动性和服务质量管理等。但是,由于IPv4和IPv6地 址长度及包头结构的不同,两者数据包不能直接通信。例如,图1所示的网络拓扑中,图中 下方的浅色与无色云图分别表示IPv4网络与IPv6网络,中间的深色云图表示IPv4和IPv6 双栈网络,并分别用路由器、电脑两种图标表示网关节点GN和主机节点HN。其中,主机节点 a和其他各个节点C、e、f、j的直接通信就会遇到很多问题。为了实现从IPv4到IPv6的互通,科研人员已经提出了一系列的过渡机制,包括双 栈,隧道,翻译器等方法。双栈机制是其中的主机、路由器或交换机都要支持IPv4和IPv6两个协议栈,以便 用IPv6协议栈与IPv6节点通信,在与IPv4节点通信时再切换到IPv4协议栈。由于双栈机 制需要所有节点同时支持双栈协议,每个节点都要同时分配IPv4和IPv6两个地址,显然, 它不能很好地解决IPv4地址枯竭问题。隧道机制是将IPv6数据包封装到IPv4数据包中(反之亦然),基于隧道终端节点 TEP(tunnel end point)路由信息。隧道机制提供了从中间网络的一个边缘到另一个边缘 的传输服务。然而,传统隧道机制的最大约束是不能实现IPv4网络到IPv6网络的直连互 通(例如图1中的主机节点a到e)。另外,由于存储TEP路由信息的中继网关很可能成为 通信瓶颈,因此有些隧道机制缺乏可扩展性与规模性。RFC2765提到的无状态的IP禾Π ICMP转换算法SIIT(Stateless IP和 ICMPTranslation Algorithm)是对IP和ICMP报文进行协议转换,使用特定的地址空间完 成IPv4与IPv6两种地址的转换。SIIT不记录流的状态,且在SIIT网络中,IPv6地址都要 配置IPv4的翻译地址。因无法复用地址,地址池的空间也限制了 IPv6节点数量。网络地址翻译和协议翻译 NAT-PT (Network Address Translation-Protocol Translation)是通过修改协议报头来转换网络地址,实现IPv4和IPv6节点互通;利用 SIIT技术的工作机制和传统IPv4的NAT技术,为访问IPv4节点的IPv6节点动态分配IPv4 地址,解决了 SIIT技术中的IPv4全局地址池的规模受限问题;再利用应用层网关实现纯 IPv6网主机和纯IPv4网主机的大部分应用的交互通信。但是,NAT-PT技术对网关性能要 求很高,不适合部署于大规模IPv6网络,而且因其协议自身存在不少缺陷,会带来很多的 部署问题和安全漏洞。清华大学李星教授提出的用IVI技术对SIIP和NAT-PT技术进行改进。IVI转换模式分为两种无状态的一对一转换和有状态的一对N转换。前者是通过一段特殊的IPv6地 址与IPv4地址进行唯一映射,可以同时支持IPv4和IPv6发起的通信。后者也能实现IPv4 地址的利用和IPv6对IPv4地址的单向互通。但是,随着用户规模的扩大和网络带宽的不 断扩容,IVI系统可能成为性能瓶颈。另外,对于一些需要特殊协议的应用(如FTP等),仍 然需要采用结合应用层网关的方式加以解决,这也会增加IVI网关的负担。总之,尽管现在已经提出许多可用的IPv4和IPv6互通的传输机制,但是,迄今为 止,还没有一个单独的解决方案得到大规模部署和应用。

发明内容
有鉴于此,本发明的目的是提供一种基于分布式哈希表DHT实现IPv4和IPv6互 通的系统和方法,从而在最小化地更改IPv4和IPv6协议基础上,解决现有IPv4和IPv6混 合网络中的节点互联互通问题。本发明消除了原有IPv4和IPv6网络两种节点的地址差异, 两种不同的主机依据计算出来的、符合设定规则的IP地址序列完成数据通信。因采用DHT 技术,本发明具有良好的可扩展性和规模性。为了达到上述目的,本发明提供了 一种基于分布式哈希表DHT实现IPv4和IPv6 互通的系统,设有分别位于IPv4或IPv6网络内部的路由器、交换机、集线器的各种传统网 络设备,且这些网络设备不作任何更改;其特征在于所述系统还包括在应用层分别增设 地址转换、DHT层构建和维护、路由路径查询、最短路由路径计算和数据包传递的五个顺序 链接的功能模块的应用层网关和终端两类设备,其中应用层网关GN,为位于IPv4和IPv6网络边界处的双栈网关,负责翻译和转发 IPv4和IPv6网络间的数据包;在增设所述五个模块的基础上,各个应用层网关在逻辑上映 射构成DHT层覆盖网络;终端,为位于纯IPv4或纯IPv6网络的双栈主机,用于实现IPv4和IPv6节点间的 数据通信;该终端还增设场景判断模块,用于根据当前数据传输的实际状况,判断是否启用 DHT层覆盖网络的五个模块来处理与传输数据包。所述增设的五个模块功能是地址转换模块,用于与DHT层构建和维护模块配合,完成IPv4或IPv6地址到DHT 层地址的统一映射,消除地址逻辑上的差异,为后续操作提供便利;DHT层构建和维护模块,借鉴与使用DHT机制和方法,完成DHT层的初始化和运行 时的维护,负责节点自动加入和离开DHT层覆盖网,保证DHT层覆盖网的完整性;路由路径查询模块,负责查询从当前节点到目的节点的、符合设定特性规则的路 由路径 RP (Route Path);最短路由路径计算模块,负责消除路由路径查询模块查询到的路由路径RP中的 冗余节点,得到一条最短路由路径SRP (Shortest Route Path);该SRP是在确保两个节点 间的IP连接、且每个中间节点都是不可缺的路由路径;也就是在最短路由路径中,只有相 邻节点通过IP直接连接,其他任何不相邻节点都无法实现IP层的直接连接;数据包传递模块,负责数据包的传递。所述路由路径RP是一个表示从源节点到目标节点的IP层的数据包传输路径的IP 地址序列,其中第一个和最后一个IP地址分别是源节点和目的节点的IP地址,其他地址都
6是中间节点的IP地址;RP具有如下特性其地址序列为有向序列;序列中的两个相邻地址 是属于同一个双栈节点,或是通过传统IPv4或IPv6网直接相连的两个IP地址;DHT层覆 盖网络用路由路径RP来替代传统DHT节点路由表中关联的IP地址,所述DHT节点路由表 在pastry中为叶子集合和路由表,在chord中为finger表。 为了达到上述目的,本发明还提供了 一种基于分布式哈希表DHT实现IPv4和IPv6 互通的系统的工作方法,其特征在于先构建基于DHT实现IPv4和IPv6互通的DHT层覆 盖网,完成构建后,同时执行DHT层覆盖网的维护及其传输数据的操作;其中传输数据的 操作过程包括两部分路由路径查询选择LURP (Looking-Up Route Path)和数据包传递 DP (Delivering Process),前者负责查询与合并路由,再从中选择最短路由路径;后者负责 传送数据包,并在DHT层运用DHT算法维护与更新节点路由表,存储和维护各个节点间的路 由fn息。该方法包括下列操作步骤(1)构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网;(2)利用DHT算法维护节点离开后DHT层覆盖网的完整性;(3)查询与选择最短路由路径传输数据;且该步骤与步骤O)同时执行。所述步骤(1)进一步包括下列操作内容(11)地址映射转换采用设定的哈希hash算法将每个节点地址都转换为位数相 同的各自的DHT层地址DA (DHT Layer Address),以便将不同地址空间的IPv4和IPv6地址 都映射到DHT层覆盖网的地址空间,消除IPv4和IPv6两者地址差异;(12)节点加入先将共存的IPv4和IPv6网络分为多个彼此重叠的IPv4和IPv6 的DHT覆盖层子网DSnet (DHT Layer Subnet),其中的重叠节点是在IPv4和IPv6的DSnet 间的互通中发挥桥梁作用的应用层网关GN;再将能够实现IP直连的两个节点,认为其位于 同一个DSnet ;然后利用DHT网中已有的应用层网关GN,将新节点相应地添加到已有的DHT 层覆盖网;所述步骤⑵中,为了在节点离开后、维护DHT层覆盖网的完整性,避免出现因目 的节点或中间节点的离开,而使这些节点的路由表项可能无法应用的现象,采用等价网关 节点算法EGNA(Equivalent Gateway Node Algorithm)将位于同一边界的各个应用层网 关GN认为是等价节点,当其中任何一个GN离开时,由其等价节点立即替代之;即每个DHT 层节点都能通过扫描DHT节点的状态获得GN列表,然后将该GN列表发送给其它GN,检验 其它各个GN是否和列表中的GN是等价节点;再将没有等价节点的GN称为关键网关节点 CGN(Critical Gateway Node),为避免DHT层的破碎,设置所有的CGN都是工作稳定的节 点,而在DHT层中GN为应用层网关,故其工作稳定、可靠是合理的。所述步骤( 进一步包括下列操作内容(31)场景判断终端的场景判断模块判断是否用DHT层覆盖网完成数据传输在 IPv4和IPv6混合网中,当两个网络节点利用传统的IPv4和IPv6技术无法实现互联互通 时,采用DHT层覆盖网为两者提供互联互通的传输服务;(32)查询路由路径源节点先检查源节点到目的节点的最短路由路径SRP是否已 经缓存于源节点,若是,则直接进入数据包传递过程,按照缓存的SRP传递数据;否则,启用 路由路径查询模块,采用基于I^stry的路由查询算法寻找从源节点到目的节点的路由路径RP ;(33)计算最短路由路径源节点利用最短路径计算模块的逆向洪泛算法 RFA(Reverse Flooding Algorithm),对路由路径查询获得的路由路径RP寻找一条最短路 由路径SRP后,将该SRP缓存于源节点,同时将其用于传递过程;(34)传递数据包数据传递模块先将数据包封装为传递消息DM(DeliVering Message)将给定的路由路径RP填充到传递消息DM的RP域,以供中间节点查看、获取下一 跳地址的路由路径;同时将原始的IP包或通信数据作为DM的负载填充到DM负载域;封装 后的DM消息被传递到RP中的下一跳,直至按照给定的SRP从源节点转发到目的节点;每 个节点接收到DM消息后,先将DM拆封并检查本节点IP地址是否与RP中的最后IP地址相 符,以判断其是否为目的节点;如果是,则将该原始IP数据包传递到相应的IP层;否则,从 RP中取出下一跳IP地址并转发。所述步骤(3 的路由路径查询算法的具体操作内容是(A)当前节点接收到一个来自源节点的包含目的节点的DHTLayer地址DA的查询 请求;(B)当前节点检验自己是否为查询的目的节点,如果是,跳转执行步骤(E);否则, 顺序执行步骤(C);(C)当前节点在路由表中查找一个与目的节点的DHTLayer地址DA数值最接近的 中间节点,以及一条从当前节点到中间节点的路由路径RP3 ;(D)当前节点将源节点到当前节点的路由路径RP2与该路由路径RP3首尾相连,合 并为一条完整的从源节点到中间节点的路由路径RP4 ;并按照路由路径RP3将查询请求传 递给中间节点;(E)当前节点给源节点回送一个包含从源节点到目的节点的路由路径RPl的查询 响应。所述步骤(33)的逆向洪泛算法RFA的具体操作内容是(A)源节点根据给定的路由路径RP向目的节点发送一个路径查询请求;(B)目的节点接收到该路径查询请求后,将路由路径RP进行逆向顺序排列得到的 地址序列RP’中所有位于其后的各个节点洪泛路径查询响应,每条路径查询响应都包含一 条各自删除某个或某些中间节点、修订过的路由路径RP’ ;(C)每个中间节点接收到该路径查询响应后,分别按照步骤(B)的方法给在该RP’ 中所有位于其后的各个节点洪泛路径查询响应;(D)源节点将其收到的RP’中各个中间节点的路径查询响应中的路由路径RP’恢 复正向顺序后进行比较,从中选择得到一条从源节点到目的节点的SRP。本发明的创新技术或关键技术是通过在应用层网关与终端中加入地址转换、DHT 层构建和维护、路由路径查询、最短路由路径计算和数据包传递等顺序链接的功能模块,在 逻辑上映射构成DHT层覆盖网络,该网络提供IPv4与IPv6地址互通服务,保证数据在IPv4 和IPv6混合网中的传输。本发明利用DHT技术将IPv4和IPv6地址映射到同一地址空间, 且统一表示为DA地址,从而在逻辑上消除了 IPv4和IPv6地址位数不同差异。不同于传 统的IP数据通信过程,DHT层覆盖网络将数据通信过程分为路由选择和数据传递两部分操 作。
利用路由路径RP描述IPv4和IPv6混合网中两节点间的IP层传输路径。RP是一 个有向地址序列,其中两个相邻地址属于同一个双栈节点的两个IP地址,或者能够通过传 统IPv4网或IPv6网直接相连。还提供下述两种查询方法根据目的节点的DA地址查询从源节点到目的节点的路由路径RP过程通过发送 路径查询请求和路径查询响应得到一条位于IPv4或IPv6的两个节点间的RP,再将首尾相 交的两条RP合并成一条RP的操作,能够消除冗余路由。根据两个节点间的已有RP计算最短路由路径SRP的过程通过逆向洪泛查询请求 和响应来消除已有RP中的冗余中间节点,得到一条IPv4和IPv6混合网中两个节点之间无 冗余中间节点的IP层最短路径SRP ;同时,为尽量减少SRP的计算开销,每个节点都要缓存 一条最优的SRP。本发明基于DHT实现IPv4和IPv6互通的系统,即DHT层覆盖网络,为了尽可能地 减少添增新IPv6节点到现有IPv4网络中的代价,本发明以最小化地更改IPv4和IPv6原 有协议为原则提出的DHT层覆盖网络系统具有如下四个特性互操作性从DHT层覆盖网络系统角度看,IPv4和IPv6两种节点没有区别,能够 通过该网络系统实现真正意义的交互通信操作。独立性该网络系统能在不影响IPv4和IPv6节点独立性前提下,保证彼此间的数 据通信。相对IVI系统,该系统不需要对IPv4和IPv6的网络层进行特殊配置。动态可扩展性该网络系统使用了 DHT层覆盖,在应用层、而不是现有的网络层中 存储和维护IPv4和IPv6的路由信息。因此继承了 DHT的多种优良特性,例如可扩展、自组 织、自配置和自管理等,非常适合IPv6的动态部署。分布式部署作为完全的分布式系统,该网络系统不仅减少因特网中路由表的膨 胀造成的弊病与影响,而且还能很好地实现负载均衡。总之,与现有的各种IPv4和IPv6过渡技术相比较,本发明的优点和效果是非常显 著的本发明系统和方法很好地实现了 IPv4和IPv6节点间的互联互通,并且,不影响IPv4 和IPv6网络的独立性。由于采用分布式设置网元设备,使得该系统能够有效解决节点扩张 性和规模性问题,达到了与网络规模无关的效果。因此,本发明具有很好的推广应用前景。


图1是现有网络拓扑结构与本发明映射构成DHT层覆盖网络的示意图。图2是本发明DHT层覆盖网络系统中的应用层网关与终端新增模块结构组成图。图3是本发明DHT层覆盖网络的构建和维护过程示意图。图4是本发明DHT层覆盖网络与IPv4和IPv6混合网络拓扑结构示例图。图5是本发明系统数据通信过程的时序图。图6是一个逆向洪泛算法的示例图。图7是本发明系统采用的DM消息结构示意图。图8是本发明实施例中一个业务数据包的传递过程示意图。图9是本发明实施例开放的DHT层覆盖网络架构传输数据包过程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。参见图1,介绍本发明基于DHT实现IPv4和IPv6互通的系统组成结构图中用浅 灰色云图表示IPv4网络,用无色云图表示IPv6网络,用深灰色云图表示IPv4和IPv6双栈 网络,用网关图标表示应用层网关节点GN,用电脑图标表示终端节点HN,它们又都被称为 DHT层节点。系统内还设有分别位于IPv4或IPv6网络内部不作任何更改的路由器、交换机、 集线器的传统网络设备(如图中的路由器E和F),这些网络节点构成了一个DHT层覆盖网。本发明系统的创新之处是仅对终端节点HNOtost Node)进行改进和设置全新的 应用层网关GN(Getaway Node)两类设备。这两类设备的共同点是在应用层分别增设地址 转换、DHT层构建和维护、路由路径查询、最短路由路径计算和数据包传递的五个顺序链接 的功能模块。其中,应用层网关GN是位于IPv4和IPv6网络边界处的双栈网关,负责翻译 和转发IPv4和IPv6网络间的数据包;在增设上述五个模块基础上,各个应用层网关在逻 辑上映射构成DHT层覆盖网络。终端是位于纯IPv4或纯IPv6网络的双栈主机,为了实现 IPv4和IPv6节点间的互联互通,终端还要增设场景判断模块。本发明DHT层覆盖网络是在应用层网关和终端做相应部署,涉及的所有功能都在 应用层实现,其他层不作改动。参见图2,介绍这6个模块(除去场景判断模块为终端特有 以外)的功能,以及各模块之间几乎为串行工作的工作流程终端中的场景判断模块负责根据当前数据传输的实际状况,判断是否启用DHT层 覆盖网络的五个模块来处理与传输数据包。为方便描述,本文提及的两节点间通信,都属于 传统IP网无法实现互联互通的场景。在传统IP网中能够直接通信的两个节点,都仍然采 用传统IPv4或IPv6传输技术。地址转换模块用于与DHT层构建和维护模块配合,完成IPv4或IPv6地址到DHT 层地址的统一映射,消除地址逻辑上的差异,为后续操作提供便利。独立运行的DHT层构建和维护模块负责借鉴与使用DHT机制和方法,完成DHT层 的初始化和运行时的维护,负责节点自动加入和离开DHT层覆盖网,保证DHT层覆盖网的完 整性;路由路径查询模块负责查询从当前节点到目的节点的、符合设定特性规则的路由 路径RP(Route Path)。RP是一个IP地址序列,表示从源节点到目标节点的IP层的数据包 传输路径;其中第一个和最后一个IP地址分别是源节点和目的节点的IP地址,其他地址都 是中间节点的IP地址。RP具有如下特性其地址序列为有向序列;序列中的两个相邻地址 是属于同一个双栈节点,或是通过传统IPv4或IPv6网直接相连的两个IP地址。DHT层覆盖网络用路由路径RP来替代传统DHT节点路由表(节点路由表在pastry 中为叶子集合和路由表,在chord中为finger表)中关联的IP地址,本发明用RPxy代表从节点χ到y的路由路径。例如,参见图1,从节点a到节点c 的路由路径RPac可能是(av6,Av6,Av4,Bv4,Bv6,cv6),其中Av6和Av4分别代表了节点A的IPv4 和IPv6地址。最短路由路径计算模块负责消除路由路径查询模块查询到的路由路径RP中的冗 余节点,得到一条最短路由路径SRP (Shortest Route Path).该SRP是在确保两个节点间的IP连接前提下,每个中间节点都是不可缺的路由路径;也就是在最短路由路径中,只有 相邻节点通过IP直接连接,其他任何不相邻节点都无法实现IP层的直接连接。因通过路 由路径查询模块查询到的RP中,仍可能存在冗余节点,最短路由路径模块就是从已经得到 的RP中剔除不必要的中间节点,确保路由路径中没有冗余,从而找到一条最优的路径SRP。数据包传递模块,负责数据包的传递。在传统IP路由器中,中间节点要根据其存储的路由表和数据包的目的地址,为每 个到达的数据包选择路由,并将该数据包转发给下一跳地址。中间节点利用路由协议(例 如,RIP, BGP, OSPF等)实现路由信息的创建和维护。本发明基于DHT实现IPv4和IPv6互通的系统的工作方法不同于传统IP路由方 法,它是先构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网,完成构建后,同时执行DHT 层覆盖网的维护及其传输数据的操作;其中传输数据的操作过程包括两部分路由路径查 询选择 LURP (Looking-Up Route Path)和数据包传递 DP (Delivering Process),前者负责 查询与合并路由,再从中选择最短路由路径;后者负责传送数据包,并在DHT层运用DHT算 法维护与更新节点路由表,存储和维护各个节点间的路由信息。下面介绍本发明方法的下列三个操作步骤步骤1,构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网。参见图3(包括步骤2的DHT网络的维护),介绍该步骤的下列操作内容(11)地址映射转换采用设定的哈希hash算法(如安全哈希算法SHA_1 =Secure Hash Algorithm)将每个节点地址都转换为位数相同的各自的DHT层地址DA (DHT Layer Address),以便将不同地址空间的IPv4和IPv6地址都映射到相同的DHT层覆盖网的地址 空间,消除IPv4和IPv6两者地址差异;(12)节点加入利用已有的DHT层网络的相关节点加入算法,将新加入节点加入 到已有的DHTLayer覆盖网中;也就是,假设至少有一个应用层网关节点已经加入DHTLayer 节点,新加入节点向该节点预知的处于同一 DSnet的DHTLayer应用层网关发出请求,对方 给出响应,从而建立起连接。具体方法是先将共存的IPv4和IPv6网络分为多个彼此重叠的IPv4和IPv6的 DHT覆盖层子网DSnet (DHT Layer Subnet),其中的重叠节点是在IPv4和IPv6的DSnet间 的互通中发挥桥梁作用的应用层网关GN。再将能够实现IP直连的两个节点,认为其位于 同一个DSnet ;然后利用DHT网中已有的应用层网关GN,将新节点相应地添加到已有的DHT
层覆盖网。传统的DHT方案只考虑单个网络的运行情况,它假设所有的DHT节点都能够直接 连接其他节点。因此,新来的节点通过任一个已经加入的节点IP地址,就可加入到DHT网 络中。但是,这个假设在IPv4和IPv6共存网络中可能不成立。因为该共存网中不能保证 任意两个节点都能直接通信。为确保新加入节点和DHT覆盖网中已存在节点的互通性,本 发明提出DHT覆盖层子网DSnet (DHTLayer Subnet)概念如果两个节点之间能够IP直连, 则认为其处于同一个DSnet。参见图4展示的简单示例,共存的IPv4和IPv6网络被分为了 许多重叠的IPv4和IPv6的DSnetl 6,其中的重叠节点是所述的应用层网关GN(图中用 黑色圆点表示),它们在IPv4和IPv6的DSnet间的互通中起到了桥梁的作用。本发明系统中,新节点要先知道同一 DSNet中的某个现有节点的IP地址。如图4中,假设节点1是第一个节点,它初始化实现了 DHTLayer覆盖网,然后等待其他节点的加 入。由于节点1位于DSnetl和4中,这两个DSnet中的节点就能通过节点1加入进来。同 时,其他DSnet中的节点只有当其相应的网关节点GN加入后,它们才能加进来。例如,网关 节点2的加入使得DSnet5中的所有节点能够加入,然后节点9就能通过节点2加入,最后, 得益于节点9的加入,节点10也顺利加入进来。步骤2,利用DHT算法维护节点离开后DHT层覆盖网的完整性。在传统的DHT中,节点的离开只会影响那些以离开节点为目的节点的路由表项。 但在DHT层覆盖我中,那些使用离开节点为目的节点或中间节点的路由表项,可能都无法 使用。为了能够在节点离开后、维护DHT层覆盖网的完整性和修复失效的路由表项,该步骤 采用等价网关节点算法EGNA(Equivalent Gateway Node Algorithm)将位于同一边界的各 个应用层网关GN认为是等价节点,当其中任何一个GN离开时,由其等价节点立即替代之; 即每个DHT层节点都能通过扫描DHT节点的状态获得GN列表,然后将该GN列表发送给其 它GN,检验其它各个GN是否和列表中的GN是等价节点。再将没有等价节点的GN称为关键 网关节点CGN (Critical Gateway Node),为避免DHT层的破碎,本发明设置所有的CGN都是 工作稳定的节点,而在DHT层覆盖网中,GN为应用层网关,故其工作稳定、可靠是合理的。步骤3,查询与选择最短路由路径传输数据;该步骤是与步骤2同时执行的。参见图5,介绍该步骤的下列操作内容(31)场景判断终端的场景判断模块判断是否用DHT层覆盖网完成数据传输。在 IPv4和IPv6混合网中,当两个网络节点利用传统的IPv4和IPv6技术无法实现互联互通 时,采用本发明DHT层覆盖网为两者提供互联互通的传输服务。(32)查询路由路径当前节点先检查源节点到目的节点的最短路由路径SRP是否 已经缓存于当前节点,若是,则直接进入数据包传递过程,按照缓存的SRP传递数据;否则, 启用路由路径查询模块,采用基于I^stry的路由查询算法寻找从源节点到目的节点的路 由路径RP。路由路径查询算法具体操作内容是(A)当前节点k接收到一个来自源节点的包含目的节点ν的DHTLayer地址DA的 查询请求。(B)当前节点k检验自己是否为查询的目的节点V,如果是,跳转执行步骤(E);否 则,顺序执行步骤(C)。(C)当前节点k在路由表中查找一个与目的节点ν的DHTLayer地址DA数值最接 近的中间节点,以及一条从当前节点k到中间节点的路由路径RP3。(D)当前节点k将源节点u到当前节点k的路由路径RP2与该路由路径RP3首尾 相连,合并为一条完整的从源节点u到中间节点的路由路径RP4 ;并按照路由路径RP3将查 询请求传递给中间节点。(E)当前节点k给源节点u回送一个包含从源节点u到目的节点ν的路由路径RPl 的查询响应。路由路径查询算法通过合并每一跳的RP,就能得到从源节点u到目的节点ν的 RPUV。如合并RPul^RPkJRPxv就能得到RPUV。尽管这样也能很好地消除冗余的路由环,但是路 由路径查询算法得到的RP中仍可能存在某些冗余的中间节点。参见图1,若利用路由路径
12查询算法得到了经过节点e的RPa。,则该路由路径可能是(av6,Av6,Av4,ev4, Bv4,Bv6)。显然, ev4就是一个冗余节点。为此,采用下面计算最短路由路径步骤来消除这类冗余的中间节点。(33)计算最短路由路径源节点利用最短路径计算模块的逆向洪泛算法 RFA(Reverse Flooding Algorithm),对路由路径查询获得的路由路径RP寻找一条最短路 由路径SRP后,将该SRP缓存于源节点,同时将其用于传递过程。这里的逆向洪泛算法RFA的具体操作内容是(a)源节点u根据给定的路由路径RPuv向目的节点ν发送一个路径查询请求;(b)目的节点ν接收到该路径查询请求后,将路由路径RPuv 1 \ 进行逆向顺序排 列得到的地址序列RPvu中所有位于其后的各个节点洪泛路径查询响应,每条路径查询响应 都包含一条各自删除某个或某些中间节点、修订过的路由路径RPvu ;(c)每个中间节点接收到该路径查询响应后,分别按照步骤(B)的方法给在该RPvu 中所有位于其后的各个节点洪泛路径查询响应;(d)源节点u将其收到的RP’中各个中间节点的路径查询响应中的全部路由路径 RPvu都恢复正向顺序后进行比较,从中选择得到一条从源节点u到目的节点ν的SRP。这里再介绍本发明一个简单RFA算法实施例(参见图6),假定已经获得一条路径 RPac (av6,Av6,Av4,Cv4,Bv4,Bv6,cv6),节点a先在RPae上给节点c发送路由路径查询请求,然后 节点c给所有在对应RP。a中位于其后的所有节点发送路由路径查询响应。由于节点c仅支 持IPv6,它仅给节点Bv6,Av6和av6发送消息。当接收到路由路径查询响应后,节点B通过 IPv4将其转发给节点Cv4和Av4,同时通过IPv6转发给节点Av6和av6。图5中省略了剩余步 马聚ο本发明在算法性能上,首先将RFA的洪泛范围局限于路由路径RP,也就是说,仅在 RP范围内、而不是在全网中洪泛查询。此外,为了降低洪泛消息的开销,中间节点k可临时 缓存最短路径RPvu,再将从其他路由路径查询响应中得到的RPvu与缓存的RPvu进行比较,如 果缓存的RPvu更短,节点k就不回送路由路径查询响应;否则,重复执行步骤c,直到用路由 路径查询响应中的RPvu替换掉缓存的RP 。(34)传递数据包数据传递模块先将数据包封装为传递消息DM(DeliVering Message)后,按照给定的SRP从源节点转发到目的节点。整个传递过程有两个步骤封装, 解析和传递。(A)封装DM消息有两个域(参见图7) =RP域和负载域。在传递过程的起始阶段, 源节点将给定的路由路径RP填充到DM的RP域,以供中间节点查看、获取下一跳地址的路 由路径。同时将原始的IP包或通信数据作为DM的负载填充到DM负载域。封装后的DM消 息被传递到RP中的下一跳,直至按照给定的SRP从源节点转发到目的节点。(B)解析和传递;每个中间节点接收到DM消息后,先将DM拆封并检查本节点IP地 址是否与RP中的最后IP地址相符,以判断其是否为目的节点;如果是,则将该原始IP数据 包传递到相应的IP层;否则,从RP中取出下一跳IP地址并转发。参见图8,介绍本发明的一个实施例在节点a通过路由查询与计算获得了 SRP 后,将获得的RP和原始的IP包填充到DM中相应的域中,然后传递到节点A。中间节点A和 B需要查看RP域来判断其是否为目的节点地址,或者查找下一跳IP地址。目的节点b和 e(参见图1)从DM的负载域中得到了原始IP包。如果b或e还要传送数据包给a,则只要将RPab倒置为RPba,或者RPae倒置为RPea。其中路由路径查询和最短路由路径计算两个操 作过程可统一视为路由选择过程,它与数据包传递过程合并构成了 DHT层覆盖网中的数据 通信过程。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种基于分布式哈希表DHT实现IPv4和IPv6互通的系统,设有分别位于IPv4或 IPv6网络内部的路由器、交换机、集线器的各种传统网络设备,且这些网络设备不作任何更 改;其特征在于所述系统还包括在应用层分别增设地址转换、DHT层构建和维护、路由路 径查询、最短路由路径计算和数据包传递的五个顺序链接的功能模块的应用层网关和终端 两类设备,其中应用层网关GN,为位于IPv4和IPv6网络边界处的双栈网关,负责翻译和转发IPv4和 IPv6网络间的数据包;在增设所述五个模块的基础上,各个应用层网关在逻辑上映射构成 DHT层覆盖网络;终端,为位于纯IPv4或纯IPv6网络的双栈主机,用于实现IPv4和IPv6节点间的数据 通信;该终端还增设场景判断模块,用于根据当前数据传输的实际状况,判断是否启用DHT 层覆盖网络的五个模块来处理与传输数据包。
2.根据权利要求1所述的系统,其特征在于所述增设的五个模块功能是地址转换模块,用于与DHT层构建和维护模块配合,完成IPv4或IPv6地址到DHT层地 址的统一映射,消除地址逻辑上的差异,为后续操作提供便利;DHT层构建和维护模块,借鉴与使用DHT机制和方法,完成DHT层的初始化和运行时的 维护,负责节点自动加入和离开DHT层覆盖网,保证DHT层覆盖网的完整性;路由路径查询模块,负责查询从当前节点到目的节点的、符合设定特性规则的路由路 径RP ;最短路由路径计算模块,负责消除路由路径查询模块查询到的路由路径RP中的冗余 节点,得到一条最短路由路径SRP ;该SRP是在确保两个节点间的IP连接、且每个中间节点 都是不可缺的路由路径;也就是在最短路由路径中,只有相邻节点通过IP直接连接,其他 任何不相邻节点都无法实现IP层的直接连接;数据包传递模块,负责数据包的传递。
3.根据权利要求2所述的系统,其特征在于所述路由路径RP是一个表示从源节点到 目标节点的IP层的数据包传输路径的IP地址序列,其中第一个和最后一个IP地址分别是 源节点和目的节点的IP地址,其他地址都是中间节点的IP地址;RP具有如下特性其地 址序列为有向序列;序列中的两个相邻地址是属于同一个双栈节点,或是通过传统IPv4或 IPv6网直接相连的两个IP地址;DHT层覆盖网络用路由路径RP来替代传统DHT节点路由 表中关联的IP地址,所述DHT节点路由表在pastry中为叶子集合和路由表,在chord中为 finger 表。
4.一种基于分布式哈希表DHT实现IPv4和IPv6互通的系统的工作方法,其特征在于 先构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网,完成构建后,同时执行DHT层覆盖 网的维护及其传输数据的操作;其中传输数据的操作过程包括两部分路由路径查询选择 LURP和数据包传递DP前者负责查询与合并路由,再从中选择最短路由路径;后者负责传送 数据包,并在DHT层运用DHT算法维护与更新节点路由表,存储和维护各个节点间的路由信 肩、ο
5.根据权利要求4所述的方法,其特征在于该方法包括下列操作步骤(1)构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网;(2)利用DHT算法维护节点离开后DHT层覆盖网的完整性;(3)查询与选择最短路由路径传输数据;且该步骤与步骤O)同时执行。
6.根据权利要求5所述的方法,其特征在于所述步骤(1)进一步包括下列操作内容(11)地址映射转换采用设定的哈希hash算法将每个节点地址都转换为位数相同的 各自的DHT层地址DA,以便将不同地址空间的IPv4和IPv6地址都映射到DHT层覆盖网的 地址空间,消除IPv4和IPv6两者地址差异;(12)节点加入先将共存的IPv4和IPv6网络分为多个彼此重叠的IPv4和IPv6的DHT 覆盖层子网DSnet,其中的重叠节点是在IPv4和IPv6的DSnet间的互通中发挥桥梁作用的 应用层网关GN ;再将能够实现IP直连的两个节点,认为其位于同一个DSnet ;然后利用DHT 网中已有的应用层网关GN,将新节点相应地添加到已有的DHT层覆盖网。
7.根据权利要求5所述的方法,其特征在于所述步骤O)中,为了在节点离开后、维 护DHT层覆盖网的完整性,避免出现因目的节点或中间节点的离开,而使这些节点的路由 表项可能无法应用的现象,采用等价网关节点算法EGNA将位于同一边界的各个应用层网 关GN认为是等价节点,当其中任何一个GN离开时,由其等价节点立即替代之;即每个DHT 层节点都能通过扫描DHT节点的状态获得GN列表,然后将该GN列表发送给其它GN,检验其 它各个GN是否和列表中的GN是等价节点;再将没有等价节点的GN称为关键网关节点CGN, 为避免DHT层的破碎,设置所有的CGN都是工作稳定的节点,而在DHT层中GN为应用层网 关,故其工作稳定、可靠是合理的。
8.根据权利要求5所述的方法,其特征在于所述步骤(3)进一步包括下列操作内容(31)场景判断终端的场景判断模块判断是否用DHT层覆盖网完成数据传输在IPv4 和IPv6混合网中,当两个网络节点利用传统的IPv4和IPv6技术无法实现互联互通时,采 用DHT层覆盖网为两者提供互联互通的传输服务;(32)查询路由路径源节点先检查源节点到目的节点的最短路由路径SRP是否已经缓 存于该源节点,若是,则直接跳转执行步骤(34),按照缓存的SRP传递数据;否则,启用路由 路径查询模块,采用基于I^stry的路由查询算法寻找从源节点到目的节点的路由路径RP ;(33)计算最短路由路径源节点利用最短路径计算模块的逆向洪泛算法RFA,对路由 路径查询获得的路由路径RP寻找一条最短路由路径SRP后,将该SRP缓存于源节点,同时 将其用于传递过程;(34)传递数据包数据传递模块先将数据包封装为传递消息DM将给定的路由路径RP 填充到传递消息DM的RP域,以供中间节点查看、获取下一跳地址的路由路径;同时将原始 的IP包或通信数据作为DM的负载填充到DM负载域;封装后的DM消息被传递到RP中的下 一跳节点,直至按照给定的SRP从源节点转发到目的节点;每个节点接收到DM消息后,先将 DM拆封并检查本节点IP地址是否与RP中的最后IP地址相符,以判断其是否为目的节点; 如果是,则将该原始IP数据包传递到相应的IP层;否则,从RP中取出下一跳IP地址并转 发。
9.根据权利要求8所述的方法,其特征在于所述步骤(3 的路由路径查询算法的具 体操作内容是(A)当前节点接收到一个来自源节点的包含目的节点的DHTLayer地址DA的查询请求;(B)当前节点检验自己是否为查询的目的节点,如果是,跳转执行步骤(E);否则,顺序执行步骤(C);(C)当前节点在路由表中查找一个与目的节点的DHTLayer地址DA数值最接近的中间 节点,以及一条从当前节点到中间节点的路由路径RP3 ;(D)当前节点将源节点到当前节点的路由路径RP2与该路由路径RP3首尾相连,合并为 一条完整的从源节点到中间节点的路由路径RP4 ;并按照路由路径RP3将查询请求传递给 中间节点;(E)当前节点给源节点回送一个包含从源节点到目的节点的路由路径RPl的查询响应。
10.根据权利要求8所述的方法,其特征在于所述步骤(33)的逆向洪泛算法RFA的 具体操作内容是(A)源节点根据给定的路由路径RP向目的节点发送一个路径查询请求;(B)目的节点接收到该路径查询请求后,将路由路径RP进行逆向顺序排列得到的地址 序列RP’中所有位于其后的各个节点洪泛路径查询响应,每条路径查询响应都包含一条各 自删除某个或某些中间节点、修订过的路由路径RP’ ;(C)每个中间节点接收到该路径查询响应后,分别按照步骤(B)的方法给在该RP’中所 有位于其后的各个节点洪泛路径查询响应;(D)源节点将其收到的RP’中各个中间节点的路径查询响应中的路由路径RP’恢复正 向顺序后进行比较,从中选择得到一条从源节点到目的节点的SRP。
全文摘要
一种基于DHT实现IPv4和IPv6互通的系统和方法,该系统对位于原IPv4或IPv6网内的其他网元设备都不作更改,仅改进终端和在位于IPv4和IPv6网络边界处设置新的双栈网关为应用层网关,这两类设备的共同点是在应用层分别增设地址转换、DHT层构建和维护、路由路径查询、最短路由路径计算和数据包传递的五个顺序链接模块;在增设的模块基础上,各应用层网关在逻辑上映射构成DHT层覆盖网络。为实现IPv4和IPv6节点的互联互通,终端还增设场景判断模块。本发明在最小化地更改现有IPv4和IPv6协议基础上,实现了IPv4和IPv6互联互通。本发明消除了原有IPv4和IPv6网络两种节点的地址差异,两种不同主机依据设定规则的IP地址序列完成数据通信。且因采用DHT技术,本发明具有良好的可扩展性和规模性。
文档编号H04L29/12GK102098353SQ20111003354
公开日2011年6月15日 申请日期2011年1月31日 优先权日2011年1月31日
发明者刘浩, 吕晓鹏, 王文东, 邹仕洪, 阙喜戎, 龚向阳 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1