CN102098353B - 基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 - Google Patents
基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 Download PDFInfo
- Publication number
- CN102098353B CN102098353B CN201110033545.9A CN201110033545A CN102098353B CN 102098353 B CN102098353 B CN 102098353B CN 201110033545 A CN201110033545 A CN 201110033545A CN 102098353 B CN102098353 B CN 102098353B
- Authority
- CN
- China
- Prior art keywords
- node
- dht
- path
- ipv6
- ipv4
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于DHT实现IPv4和IPv6互通的***和方法,该***对位于原IPv4或IPv6网内的其他网元设备都不作更改,仅改进终端和在位于IPv4和IPv6网络边界处设置新的双栈网关为应用层网关,这两类设备的共同点是在应用层分别增设地址转换、DHT层构建和维护、路由路径查询、最短路由路径计算和数据包传递的五个顺序链接模块;在增设的模块基础上,各应用层网关在逻辑上映射构成DHT层覆盖网络。为实现IPv4和IPv6节点的互联互通,终端还增设场景判断模块。本发明在最小化地更改现有IPv4和IPv6协议基础上,实现了IPv4和IPv6互联互通。本发明消除了原有IPv4和IPv6网络两种节点的地址差异,两种不同主机依据设定规则的IP地址序列完成数据通信。且因采用DHT技术,本发明具有良好的可扩展性和规模性。
Description
技术领域
本发明涉及一种基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法,用于解决从IPv4向IPv6平滑过渡的问题,属于互联网中实现IPv4和IPv6互通的技术领域。
背景技术
现在,IPv4地址的32位空间已经越来越感到资源枯竭,未来很快就会面临IPv4地址资源用尽的问题,IPv6的128位地址空间能够很好地解决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-ProtocolTranslation)是通过修改协议报头来转换网络地址,实现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层覆盖网络;该GN增设的五个模块功能分别是:
地址转换模块,用于与DHT层构建和维护模块配合,完成IPv4或IPv6地址到DHT层地址的统一映射,消除地址逻辑上的差异,为后续操作提供便利;
DHT层构建和维护模块,借鉴与使用DHT机制和方法,完成DHT层的初始化和运行时的维护,负责节点自动加入和离开DHT层覆盖网,保证DHT层覆盖网的完整性;
路由路径查询模块,负责查询从当前节点到目的节点的、符合设定特性规则的路由路径RP(Route Path);
最短路由路径计算模块,负责消除路由路径查询模块查询到的路由路径RP中的冗余节点,得到一条最短路由路径SRP(Shortest Route Path);该SRP是在确保两个节点间的IP连接、且每个中间节点都是不可缺的路由路径;也就是在最短路由路径中,只有相邻节点通过IP直接连接,其他任何不相邻节点都无法实现IP层的直接连接;
数据包传递模块,负责数据包的传递;
终端,为位于纯IPv4或纯IPv6网络的双栈主机,用于实现IPv4和IPv6节点间的数据通信;该终端还增设场景判断模块,用于根据当前数据传输的实际状况,判断是否启用DHT层覆盖网络的五个模块来处理与传输数据包。
所述路由路径RP是一个表示从源节点到目标节点的IP层的数据包传输路径的IP地址序列,其中第一个和最后一个IP地址分别是源节点和目的节点的IP地址,其他地址都是中间节点的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算法维护与更新节点路由表,存储和维护各个节点间的路由信息;该方法包括下列操作步骤:
(1)构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网;
(2)利用DHT算法维护节点离开后DHT层覆盖网的完整性;
(3)查询与选择最短路由路径传输数据;且该步骤与步骤(2)同时执行;该步骤包括下列操作内容:
(31)场景判断:终端的场景判断模块判断是否用DHT层覆盖网完成数据传输:在IPv4和IPv6混合网中,当两个网络节点利用传统的IPv4和IPv6技术无法实现互联互通时,采用DHT层覆盖网为两者提供互联互通的传输服务;
(32)查询路由路径:源节点先检查源节点到目的节点的最短路由路径SRP是否已经缓存于源节点,若是,则直接进入数据包传递过程,按照缓存的SRP传递数据;否则,启用路由路径查询模块,采用基于Pastry的路由查询算法寻找从源节点到目的节点的路由路径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地址并转发。
所述步骤(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层覆盖网。
所述步骤(2)中,为了在节点离开后、维护DHT层覆盖网的完整性,避免出现因目的节点或中间节点的离开,而使这些节点的路由表项可能无法应用的现象,采用等价网关节点算法EGNA(Equivalent Gateway Node Algorithm)将位于同一边界的各个应用层网关GN认为是等价节点,当其中任何一个GN离开时,由其等价节点立即替代之;即每个DHT层节点都能通过扫描DHT节点的状态获得GN列表,然后将该GN列表发送给其它GN,检验其它各个GN是否和列表中的GN是等价节点;再将没有等价节点的GN称为关键网关节点CGN(Critical Gateway Node),为避免DHT层的破碎,设置所有的CGN都是工作稳定的节点,而在DHT层中GN为应用层网关,故其工作稳定、可靠是合理的。
所述步骤(32)的路由路径查询算法的具体操作内容是:
(A)当前节点接收到一个来自源节点的包含目的节点的DHTLayer地址DA的查询请求;
(B)当前节点检验自己是否为查询的目的节点,如果是,跳转执行步骤(E);否则,顺序执行步骤(C);
(C)当前节点在路由表中查找一个与目的节点的DHTLayer地址DA数值最接近的中间节点,以及一条从当前节点到中间节点的路由路径RP3;
(D)当前节点将源节点到当前节点的路由路径RP2与该路由路径RP3首尾相连,合并为一条完整的从源节点到中间节点的路由路径RP4;并按照路由路径RP3将查询请求传递给中间节点;
(E)当前节点给源节点回送一个包含从源节点到目的节点的路由路径RP1的查询响应。
所述步骤(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层覆盖网。
本发明***的创新之处是:仅对终端节点HN(Host 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代表从节点x到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的DSnet1~6,其中的重叠节点是所述的应用层网关GN(图中用黑色圆点表示),它们在IPv4和IPv6的DSnet间的互通中起到了桥梁的作用。
本发明***中,新节点要先知道同一DSNet中的某个现有节点的IP地址。如图4中,假设节点1是第一个节点,它初始化实现了DHTLayer覆盖网,然后等待其他节点的加入。由于节点1位于DSnet 1和4中,这两个DSnet中的节点就能通过节点1加入进来。同时,其他DSnet中的节点只有当其相应的网关节点GN加入后,它们才能加进来。例如,网关节点2的加入使得DSnet5中的所有节点能够加入,然后节点9就能通过节点2加入,最后,得益于节点9的加入,节点10也顺利加入进来。
步骤2,利用DHT算法维护节点离开后DHT层覆盖网的完整性。
在传统的DHT中,节点的离开只会影响那些以离开节点为目的节点的路由表项。但在DHT层覆盖我中,那些使用离开节点为目的节点或中间节点的路由表项,可能都无法使用。为了能够在节点离开后、维护DHT层覆盖网的完整性和修复失效的路由表项,该步骤采用等价网关节点算法EGNA(EquivalentGateway 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传递数据;否则,启用路由路径查询模块,采用基于Pastry的路由查询算法寻找从源节点到目的节点的路由路径RP。
路由路径查询算法具体操作内容是:
(A)当前节点k接收到一个来自源节点的包含目的节点v的DHTLayer地址DA的查询请求。
(B)当前节点k检验自己是否为查询的目的节点v,如果是,跳转执行步骤(E);否则,顺序执行步骤(C)。
(C)当前节点k在路由表中查找一个与目的节点v的DHTLayer地址DA数值最接近的中间节点,以及一条从当前节点k到中间节点的路由路径RP3。
(D)当前节点k将源节点u到当前节点k的路由路径RP2与该路由路径RP3首尾相连,合并为一条完整的从源节点u到中间节点的路由路径RP4;并按照路由路径RP3将查询请求传递给中间节点。
(E)当前节点k给源节点u回送一个包含从源节点u到目的节点v的路由路径RP1的查询响应。
路由路径查询算法通过合并每一跳的RP,就能得到从源节点u到目的节点v的RPuv。如合并RPuk+RPkx+RPxv就能得到RPuv。尽管这样也能很好地消除冗余的路由环,但是路由路径查询算法得到的RP中仍可能存在某些冗余的中间节点。参见图1,若利用路由路径查询算法得到了经过节点e的RPac,则该路由路径可能是(av6,Av6,Av4,ev4,Bv4,Bv6)。显然,ev4就是一个冗余节点。为此,采用下面计算最短路由路径步骤来消除这类冗余的中间节点。
(33)计算最短路由路径:源节点利用最短路径计算模块的逆向洪泛算法RFA(Reverse Flooding Algorithm),对路由路径查询获得的路由路径RP寻找一条最短路由路径SRP后,将该SRP缓存于源节点,同时将其用于传递过程。
这里的逆向洪泛算法RFA的具体操作内容是:
(a)源节点u根据给定的路由路径RPuv向目的节点v发送一个路径查询请求;
(b)目的节点v接收到该路径查询请求后,将路由路径RPuvRPuv进行逆向顺序排列得到的地址序列RPvu中所有位于其后的各个节点洪泛路径查询响应,每条路径查询响应都包含一条各自删除某个或某些中间节点、修订过的路由路径RPvu;
(c)每个中间节点接收到该路径查询响应后,分别按照步骤(B)的方法给在该RPvu中所有位于其后的各个节点洪泛路径查询响应;
(d)源节点u将其收到的RP’中各个中间节点的路径查询响应中的全部路由路径RPvu都恢复正向顺序后进行比较,从中选择得到一条从源节点u到目的节点v的SRP。
这里再介绍本发明一个简单RFA算法实施例(参见图6),假定已经获得一条路径RPac(av6,Av6,Av4,Cv4,Bv4,Bv6,cv6),节点a先在RPac上给节点c发送路由路径查询请求,然后节点c给所有在对应RPca中位于其后的所有节点发送路由路径查询响应。由于节点c仅支持IPv6,它仅给节点Bv6,Av6和av6发送消息。当接收到路由路径查询响应后,节点B通过IPv4将其转发给节点Cv4和Av4,同时通过IPv6转发给节点Av6和av6。图5中省略了剩余步骤。
本发明在算法性能上,首先将RFA的洪泛范围局限于路由路径RP,也就是说,仅在RP范围内、而不是在全网中洪泛查询。此外,为了降低洪泛消息的开销,中间节点k可临时缓存最短路径RPvu,再将从其他路由路径查询响应中得到的RPvu与缓存的RPvu进行比较,如果缓存的RPvu更短,节点k就不回送路由路径查询响应;否则,重复执行步骤c,直到用路由路径查询响应中的RPvu替换掉缓存的RPvu。
(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层覆盖网中的数据通信过程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种基于分布式哈希表DHT实现IPv4和IPv6互通的***,在IPv4和IPv6网络内分别设有路由器、交换机和集线器的各种传统网络设备,且这些网络设备不作任何更改;其特征在于:所述***还包括:在应用层分别增设地址转换、DHT层构建和维护、路由路径查询、最短路由路径计算和数据包传递的五个顺序链接的功能模块的应用层网关和终端两类设备,其中:
应用层网关GN,为位于IPv4和IPv6网络边界处的双栈网关,负责翻译和转发IPv4和IPv6网络间的数据包;在增设所述五个模块的基础上,各个应用层网关在逻辑上映射构成DHT层覆盖网络;所述GN增设的五个模块功能分别是:
地址转换模块,用于与DHT层构建和维护模块配合,完成IPv4或IPv6地址到DHT层地址的统一映射,消除地址逻辑上的差异,为后续操作提供便利;
DHT层构建和维护模块,借鉴与使用DHT机制和方法,完成DHT层的初始化和运行时的维护,负责节点自动加入和离开DHT层覆盖网,保证DHT层覆盖网的完整性;
路由路径查询模块,负责查询从当前节点到目的节点的、符合设定特性规则的路由路径RP;
最短路由路径计算模块,负责消除路由路径查询模块查询到的路由路径RP中的冗余节点,得到一条最短路由路径SRP;该SRP是在确保两个节点间的IP连接、且每个中间节点都是不可缺的路由路径;也就是在最短路由路径中,只有相邻节点通过IP直接连接,其他任何不相邻节点都无法实现IP层的直接连接;
数据包传递模块,负责数据包的传递;
终端,为位于纯IPv4或纯IPv6网络的双栈主机,用于实现IPv4和IPv6节点间的数据通信;该终端还增设场景判断模块,用于根据当前数据传输的实际状况,判断是否启用DHT层覆盖网络的五个模块来处理与传输数据包。
2.根据权利要求1所述的***,其特征在于:所述路由路径RP是一个表示从源节点到目标节点的IP层的数据包传输路径的IP地址序列,其中第一个和最后一个IP地址分别是源节点和目的节点的IP地址,其他地址都是中间节点的IP地址;RP具有如下特性:其地址序列为有向序列;序列中的两个相邻地址是属于同一个双栈节点,或是通过传统IPv4或IPv6网直接相连的两个IP地址;DHT层覆盖网络用路由路径RP来替代传统DHT节点路由表中关联的IP地址,所述DHT节点路由表在pastry中为叶子集合和路由表,在chord中为finger表。
3.一种基于分布式哈希表DHT实现IPv4和IPv6互通的***的工作方法,其特征在于:先构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网,完成构建后,同时执行DHT层覆盖网的维护及其传输数据的操作;其中传输数据的操作过程包括两部分:路由路径查询选择LURP和数据包传递DP前者负责查询与合并路由,再从中选择最短路由路径;后者负责传送数据包,并在DHT层运用DHT算法维护与更新节点路由表,存储和维护各个节点间的路由信息;该方法包括下列操作步骤:
(1)构建基于DHT实现IPv4和IPv6互通的DHT层覆盖网;
(2)利用DHT算法维护节点离开后DHT层覆盖网的完整性;
(3)查询与选择最短路由路径传输数据;且该步骤与步骤(2)同时执行;该步骤包括下列操作内容:
(31)场景判断:终端的场景判断模块判断是否用DHT层覆盖网完成数据传输:在IPv4和IPv6混合网中,当两个网络节点利用传统的IPv4和IPv6技术无法实现互联互通时,采用DHT层覆盖网为两者提供互联互通的传输服务;
(32)查询路由路径:源节点先检查源节点到目的节点的最短路由路径SRP是否已经缓存于该源节点,若是,则直接跳转执行步骤(34),按照缓存的SRP传递数据;否则,启用路由路径查询模块,采用基于Pastry的路由查询算法寻找从源节点到目的节点的路由路径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地址并转发。
4.根据权利要求3所述的方法,其特征在于:所述步骤(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层覆盖网。
5.根据权利要求3所述的方法,其特征在于:所述步骤(2)中,为了在节点离开后、维护DHT层覆盖网的完整性,避免出现因目的节点或中间节点的离开,而使这些节点的路由表项可能无法应用的现象,采用等价网关节点算法EGNA将位于同一边界的各个应用层网关GN认为是等价节点,当其中任何一个GN离开时,由其等价节点立即替代之;即每个DHT层节点都能通过扫描DHT节点的状态获得GN列表,然后将该GN列表发送给其它GN,检验其它各个GN是否和列表中的GN是等价节点;再将没有等价节点的GN称为关键网关节点CGN,为避免DHT层的破碎,设置所有的CGN都是工作稳定的节点,而在DHT层中GN为应用层网关,故其工作稳定、可靠是合理的。
6.根据权利要求3所述的方法,其特征在于:所述步骤(32)的路由路径查询算法的具体操作内容是:
(A)当前节点接收到一个来自源节点的包含目的节点的DHTLayer地址DA的查询请求;
(B)当前节点检验自己是否为查询的目的节点,如果是,跳转执行步骤(E);否则,顺序执行步骤(C);
(C)当前节点在路由表中查找一个与目的节点的DHTLayer地址DA数值最接近的中间节点,以及一条从当前节点到中间节点的路由路径RP3;
(D)当前节点将源节点到当前节点的路由路径RP2与该路由路径RP3首尾相连,合并为一条完整的从源节点到中间节点的路由路径RP4;并按照路由路径RP3将查询请求传递给中间节点;
(E)当前节点给源节点回送一个包含从源节点到目的节点的路由路径RP1的查询响应。
7.根据权利要求3所述的方法,其特征在于:所述步骤(33)的逆向洪泛算法RFA的具体操作内容是:
(A)源节点根据给定的路由路径RP向目的节点发送一个路径查询请求;
(B)目的节点接收到该路径查询请求后,将路由路径RP进行逆向顺序排列得到的地址序列RP’中所有位于其后的各个节点洪泛路径查询响应,每条路径查询响应都包含一条各自删除某个或某些中间节点、修订过的路由路径RP’;
(C)每个中间节点接收到该路径查询响应后,分别按照步骤(B)的方法给在该RP’中所有位于其后的各个节点洪泛路径查询响应;
(D)源节点将其收到的RP’中各个中间节点的路径查询响应中的路由路径RP’恢复正向顺序后进行比较,从中选择得到一条从源节点到目的节点的SRP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033545.9A CN102098353B (zh) | 2011-01-31 | 2011-01-31 | 基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033545.9A CN102098353B (zh) | 2011-01-31 | 2011-01-31 | 基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102098353A CN102098353A (zh) | 2011-06-15 |
CN102098353B true CN102098353B (zh) | 2013-04-17 |
Family
ID=44131212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110033545.9A Expired - Fee Related CN102098353B (zh) | 2011-01-31 | 2011-01-31 | 基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102098353B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243302B (zh) | 2013-06-20 | 2018-03-16 | 华为技术有限公司 | 业务路由报文处理方法、装置及网络*** |
CN106790556B (zh) * | 2016-12-26 | 2019-09-17 | 深圳市风云实业有限公司 | 一种基于分布式***的nat会话管理方法 |
CN110601982B (zh) * | 2019-09-27 | 2021-11-09 | 新华三信息安全技术有限公司 | 路由传递方法、装置及路由器 |
CN112787923B (zh) * | 2019-11-07 | 2024-06-21 | 华为技术有限公司 | 一种报文的处理方法,装置和*** |
CN117811993B (zh) * | 2024-03-01 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 三维超立方结构网络及其路由方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510897A (zh) * | 2009-03-30 | 2009-08-19 | 北京邮电大学 | 针对层次化主机标识、基于叠加式dht的寻址***和方法 |
CN101841572A (zh) * | 2009-12-25 | 2010-09-22 | 北京网康科技有限公司 | 一种支持IPv6网络的IPv4网络设备及其实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8737407B2 (en) * | 2009-06-22 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for distributed hash table in multi-core system |
-
2011
- 2011-01-31 CN CN201110033545.9A patent/CN102098353B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510897A (zh) * | 2009-03-30 | 2009-08-19 | 北京邮电大学 | 针对层次化主机标识、基于叠加式dht的寻址***和方法 |
CN101841572A (zh) * | 2009-12-25 | 2010-09-22 | 北京网康科技有限公司 | 一种支持IPv6网络的IPv4网络设备及其实现方法 |
Non-Patent Citations (6)
Title |
---|
A fast IPv6 packet classification algorithm based on efficient multi-bit selection;Xiangyang Gong等;《Computer Communications》;20101231;第1773-1784页 * |
DHT-Based IPv4/IPv6 Transition Mechanism;Lv Xiaopeng等;《中国通信》;20110930;第119-129页 * |
IPv6 over MPLS 网络中实现DiffServ 的解决方案;岳红超等;《计算机工程与应用》;20090430;第45卷(第11期);第132-136页 * |
Lv Xiaopeng等.DHT-Based IPv4/IPv6 Transition Mechanism.《中国通信》.2011,第119-129页. |
Xiangyang Gong等.A fast IPv6 packet classification algorithm based on efficient multi-bit selection.《Computer Communications》.2010,第1773-1784页. |
岳红超等.IPv6 over MPLS 网络中实现DiffServ 的解决方案.《计算机工程与应用》.2009,第45卷(第11期),第132-136页. |
Also Published As
Publication number | Publication date |
---|---|
CN102098353A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303515B2 (en) | IP MPLS PoP virtualization and fault tolerant virtual router | |
CN104734963B (zh) | 一种基于SDN的IPv4和IPv6网络互连方法 | |
CN101155115B (zh) | 一种自动隧道的实现方法及设备 | |
CN103546374B (zh) | 一种边缘二层网络中转发报文的方法和装置 | |
US9385949B2 (en) | Routing controlled by subnet managers | |
US8155131B2 (en) | Method, system and router for communication between IP devices | |
RU2302035C2 (ru) | Трехуровневая виртуальная сеть vpn и способ ее построения | |
TW202017340A (zh) | 網路運算環境中的第一跳轉閘道的冗餘機制 | |
CN100484083C (zh) | 一种地址转换方法及实现该方法的混合地址转换路由器 | |
US20050220123A1 (en) | Apparatus and method for multi-protocol route redistribution in a massively parallel router | |
CN100411381C (zh) | 跨不同自治***的混合网络vpn站点间的通信方法和*** | |
CN104270475B (zh) | 基于NAT64实现IPv4网络与IPv6网络互通的***及方法 | |
CN101150566B (zh) | 异构网络***中实现网络地址转换协议转换的装置及方法 | |
CN102098353B (zh) | 基于分布式哈希表DHT实现IPv4和IPv6互通的***和方法 | |
CN101455030A (zh) | 动态共享风险节点组(srng)成员发现 | |
CN102611618B (zh) | 路由保护切换方法及装置 | |
CN109327374B (zh) | 实现三层vpn网络接入的***及方法 | |
US7822024B2 (en) | Apparatus and method for performing security and classification in a multiprocessor router | |
CN100450065C (zh) | 一种提供虚拟专用网站点之间通信的方法 | |
CN107948041A (zh) | 构建vxlan集中式多活网关的方法和设备 | |
US11070471B1 (en) | Switch fabric for networked virtual machines | |
CN100444573C (zh) | 一种构建层次式交换网络的方法 | |
WO2001026303A1 (fr) | Procede et dispositif de commande de routes, dans un environnement de reseau hierarchique et de reseau non hierarchique presents de facon melangee | |
JP4753314B2 (ja) | 仮想閉域網を1つのレイヤ3スイッチとして設定管理するシステム及びプログラム | |
CN102891903B (zh) | 一种nat转换方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130417 Termination date: 20150131 |
|
EXPY | Termination of patent right or utility model |