覆盖路由网络中数据转发的方法

文档序号:7962894阅读:557来源:国知局
专利名称:覆盖路由网络中数据转发的方法
技术领域
覆盖路由网络中数据转发的解决方案属于互联网技术领域,尤其涉及覆盖网络中的路由和转发技术领域。
背景技术
覆盖网络是人们为了解决传统的Internet难以在网络层提供的服务质量支持、资源共享和组播等服务而提出的一种解决问题的新思路。其基本思想是在现有的Internet网络上构建一个完全位于应用层的、覆盖在IP网络之上的网络系统。该系统能够针对具体的应用需求,在现有的Internet网络中实现分布式存储(如P2P应用)、路由快速恢复(如RON)、服务质量保证(如OverQoS)、应用层组播等功能。由于覆盖网络不需要对现有的IP传输网络进行任何修改,因此能够针对具体的服务需求迅速部署。
一个覆盖路由网络由若干个路由节点构成,路由节点之间通过底层的Internet网络相互连接,为接入覆盖路由网络的用户主机提供数据路由服务。各个路由节点之间通过底层Internet网络的IP路由形成通路(称为虚链路),参见图1所示。
覆盖路由网络的运行机制简单的说是这样的每个节点周期性虚链路测量的信息保存在数据库中,成为各节点本地状态更新的依据。节点间通过周期性的状态广播交互各自数据库中保存的状态信息(包括节点状态和链路状态),进而得到全网的实时状态信息。每个节点根据包含上述全网状态信息的状态数据库计算自己的路由表,为数据的转发提供路由信息。
本发明提出了覆盖路由网络中数据转发的实现机制,如图2所示。通过对用户的IP分组进行封装、转发、解封装使得用户的IP分组按照所设计的覆盖网络的路由机制进行转发。因为在较小规模的覆盖路由网络的全连接拓扑里寻找到的路由路径会比Internet路由性能更高,而且底层网络出现故障时,覆盖路由网络能迅速绕过故障区域,从而提高了端到端的传输性能。此外,用户主机要接入覆盖路由网络只需将自己的IP网关设置为待接入的路由节点即可,接入覆盖路由网络的用户主机只需运行IP协议即可相互间进行完全透明的通信,具有容易部署和应用的优点。

发明内容
本发明提供了在覆盖路由网络节点组成的路由网络中实现数据转发的机制。
本发明的特征在于步骤1.在底层Internet网络中部署若干覆盖路由网络的路由节点,其中所述路由节点的私有地址设置为本节点的IP地址所在的子网地址,作为此节点在覆盖网络外部的通信地址;所述路由节点的公有地址作为覆盖网络内部各节点通信的地址;步骤2.覆盖网络各节点通过节点和链路状态信息的交互形成全连接的覆盖网络拓扑结构;步骤3.欲使用覆盖网络路由服务的用户主机将自己的IP网关设置为距离自己最近的那个路由节点的IP地址,从而接入覆盖路由网络;步骤4.覆盖路由网络的路由节点接收到来自用户发往目的主机的IP分组,在封装之前作如下判断步骤4.1.判断当前路由节点是否加入了覆盖路由网络,如果是则转入步骤4.2,否则丢弃此IP分组;步骤4.2.判断此IP分组是不是应该被当前路由节点所转发的分组步骤4.2.1.IP分组源地址的判断判断源地址是否在当前路由节点的私有地址的范围内,如果是则转步骤4.2.2,否则丢弃此IP分组;步骤4.2.2.IP分组目的地址的判断判断目的地址是否在此覆盖路由网络的某个出口节点私有地址的范围内,如果是则转入步骤5,否则丢弃此IP分组;步骤5.将此IP分组封装成覆盖路由协议数据转发子协议的分组,具体字段设置如下在入口节点ID字段,设置当前路由节点的ID号;在出口节点ID字段,设置IP分组的目的地址对应的出口节点ID号;在跳数受限字段,设置最大跳数受限值;步骤6.下面进入覆盖网络内部的数据转发过程步骤6.1.当前路由节点根据数据转发子协议分组中的出口节点字段和跳数受限字段的值查找自己的路由表;步骤6.2.若查找成功,则设置下一跳节点,并将数据转发子协议分组中的跳数受限字段更新为所查找到的路由的跳数;步骤6.3.若查找失败,则将跳数受限字段置为1,将下一跳节点设置为出口节点;步骤6.4.将跳数受限值减1,将数据转发子协议分组转发到下一条节点;步骤6.5.下一条节点接收到数据转发子协议分组后判断协议字段中的出口节点ID号是否等于自己的ID号;步骤6.6.若出口节点是当前节点,则解封装此分组为IP分组,转步骤7继续执行;步骤6.7.若出口节点不是当前节点,则转回步骤6,继续进行覆盖网络内部的转发过程;步骤7.在出口节点处判断IP分组的目的IP地址,如果是属于此节点的私有接口转发的IP分组,则将IP分组直接转发至目的主机,否则将此分组丢弃,至此整个数据转发过程结束。
本发明所提出的覆盖路由网络中的数据转发技术,具有容易部署和应用的优点。目前清华大学已经就本技术展开了部署和实验。根据实验结果,覆盖路由网络能够使任两个接入的用户主机之间进行网络通信。覆盖网络的路由性能优于IP路由,尤其是在底层网络出现故障的情况下,覆盖网路由能够在几秒钟内做出反应并绕过故障区域,保证端到端的正常通信。


图1.覆盖路由网络示意图;图2.数据转发的示意图;图3.数据转发流程图;图4.数据转发过程中的跳数受限字段示例;图5.路由环路及其避免示意图;其中(a)节点A的路由表;(b)节点B的路由表;(c)不使用跳数受限机制的情况;(d)使用跳数受限机制的情况;图6.实验环境示意图。
具体实施例方式
在覆盖路由网络中,用户主机不需要支持覆盖路由网络协议,接入覆盖路由网络只需要正确配置IP地址和网关地址即可。覆盖路由网络的所有软件都运行在路由节点上,每个覆盖网络的路由节点运行相同的路由器软件,节点之间形成覆盖路由网络的拓扑。
用户数据分组在覆盖路由网络中转发时经过的第一个节点称为入口节点(ingress node),最后一个节点称为出口节点(egress node)。入口节点接收到来自私有接口的IP分组时,根据分组的目的IP地址查找对应的出口节点(目的地址属于出口节点的私有接口的范围)。接着,入口节点将整个IP分组封装到覆盖路由网络协议的数据转发子协议中,其中跳数受限字段设置为最大值,并进行覆盖路由网络内的数据转发。这部分主要是根据跳数受限的覆盖路由网络的路由查找结果,不断修改分组的IP协议头部的目的地址以改变分组在Internet中的传输路径。当分组到达出口节点时,出口节点将数据转发协议分组解封装成IP分组,确认目的IP地址属于自己的私有接口,并直接将分组发送至目的IP地址。
其中跳数受限字段的工作原理如下(1)在入口节点,按照最大跳数受限(默认为3)查找路由表。若查找成功,将跳数受限字段置为查找到的路由的跳数,并转发给下一跳节点;若查找失败,将跳数受限字段置为1,并直接转发给出口节点。
(2)节点接收到数据转发协议分组后,按照跳数受限字段查找路由表。若查找成功,将跳数受限字段更新为查找到的路由的跳数,并转发给下一跳节点;若查找失败,将跳数受限字段置为1,并直接转发给出口节点。
(3)节点在将数据转发协议分组发送给下一个节点之前,把跳数受限字段减1。
(4)出口节点接收到数据转发协议分组后,不再进行路由查找。
图4示例了跳数受限的查找过程。
节点1(入口节点)按照最大跳数受限查找到路径1→3→2,将跳数受限字段置为2,再减1后发送至节点3。节点3按照跳数受限为1查找到路径3→2,将跳数受限字段置为1,再减1后发送至节点2。节点2是出口节点,不再进行路由查找。
跳数受限的主要作用是降低路由环路发生的概率。当各个节点的状态信息一致时,路由一致性能够保证分组在转发的过程中不会改变路径,从而避免发生路由环路。但在实际网络中,各个节点之间的状态信息同步是周期性进行的(默认周期为3秒),这就意味着节点之间的信息可能存在暂时不完全一致的情况,而由此计算出的路由表就有可能不一致,甚至出现路由环路。以图5为例,节点A的路由表中到达节点C的最佳路径为A→B→C,而节点B的路由表中到达节点C的最佳路径为B→A→C。若不使用跳数受限机制,节点A发送给节点C的分组将在A、B之间来回转发,直至分组被丢弃。若使用跳数受限机制,分组到达节点B时其跳数受限字段已减为1,此时节点B只能直接将分组发送给节点C,从而避免了路由环路。
该技术的实际运用实例如图6所示。
各个路由节点运行路由器软件,节点间通过状态交互构成了一个底层网络之上的覆盖路由网络。其中路由节点11的公有接口为10.0.0.10:2011、私有接口为172.16.1.0/24、私有IP地址为172.16.1.11/24。用户主机21(176.16.1.21/24)通过将自己的IP网关设置为172.16.1.11/24接入此覆盖路由网络,与其他接入网络的用户主机22和23通过IP协议进行通信,如主机21发送给主机22的IP数据包在路由节点11处被封装,接着封装了IP分组的数据转发协议分组会按照覆盖路由网络的路由机制进行路由,在各节点间进行转发,最后在路由节点12处解封装数据分组为IP分组,发送到目的主机22。
整个实验环境的搭建不需要复杂的配置,很容易实现。各个接入覆盖路由网络的用户主机可以透明的进行正常通信,不必了解覆盖网络的拓扑。此外实验的结果证明覆盖路由网络能较IP路由提供更高效和可靠端到端传输服务。
由此可见,本发明达到了预期目的。
权利要求
1.覆盖路由网络中数据转发的方法,其特征在于,它依次含有以下步骤步骤1.在底层Internet网络中部署若干覆盖路由网络的路由节点,其中所述路由节点的私有地址设置为本节点的IP地址所在的子网地址,作为此节点在覆盖网络外部的通信地址;所述路由节点的公有地址作为覆盖网络内部各节点通信的地址;步骤2.覆盖网络各节点通过节点和链路状态信息的交互形成全连接的覆盖网络拓扑结构;步骤3.欲使用覆盖网络路由服务的用户主机将自己的IP网关设置为距离自己最近的那个路由节点的IP地址,从而接入覆盖路由网络;步骤4.覆盖路由网络的路由节点接收到来自用户发往目的主机的IP分组,在封装之前作如下判断步骤4.1.判断当前路由节点是否加入了覆盖路由网络,如果是则转入步骤4.2,否则丢弃此IP分组;步骤4.2.判断此IP分组是不是应该被当前路由节点所转发的分组步骤4.2.1.IP分组源地址的判断判断源地址是否在当前路由节点的私有地址的范围内,如果是则转步骤4.2.2,否则丢弃此IP分组;步骤4.2.2.IP分组目的地址的判断判断目的地址是否在此覆盖路由网络的某个出口节点私有地址的范围内,如果是则转入步骤5,否则丢弃此IP分组;步骤5.将此IP分组封装成覆盖路由协议数据转发子协议的分组,具体字段设置如下在入口节点ID字段,设置当前路由节点的ID号;在出口节点ID字段,设置IP分组的目的地址对应的出口节点ID号;在跳数受限字段,设置最大跳数受限值;步骤6.下面进入覆盖网络内部的数据转发过程步骤6.1.当前路由节点根据数据转发子协议分组中的出口节点字段和跳数受限字段的值查找自己的路由表;步骤6.2.若查找成功,则设置下一跳节点,并将数据转发子协议分组中的跳数受限字段更新为所查找到的路由的跳数;步骤6.3.若查找失败,则将跳数受限字段置为1,将下一跳节点设置为出口节点;步骤6.4.将跳数受限值减1,将数据转发子协议分组转发到下一条节点;步骤6.5.下一条节点接收到数据转发子协议分组后判断协议字段中的出口节点ID号是否等于自己的ID号;步骤6.6.若出口节点是当前节点,则解封装此分组为IP分组,转步骤7继续执行;步骤6.7.若出口节点不是当前节点,则转回步骤6,继续进行覆盖网络内部的转发过程;步骤7.在出口节点处判断IP分组的目的IP地址,如果是属于此节点的私有接口转发的IP分组,则将IP分组直接转发至目的主机,否则将此分组丢弃,至此整个数据转发过程结束。
全文摘要
覆盖路由网络中数据转发的方法属于覆盖网络中的路由和转发技术领域,其特征在于通过在现有底层网络中部署覆盖网络路由节点形成覆盖路由网络,为接入的用户主机之间提供完全透明的覆盖路由和数据转发服务,在数据转发过程中,用户的IP分组被封装、转发、解封装,最终发送到目的主机,实验表明在较小规模的覆盖路由网络的全连接拓扑里,同时使用跳数受限机制寻找到的路由路径会比Internet路由性能更高,而且底层网络出现故障时,覆盖路由网络能迅速绕过故障区域,从而提高了端到端的传输性能。
文档编号H04L12/54GK1889517SQ200610089730
公开日2007年1月3日 申请日期2006年7月14日 优先权日2006年7月14日
发明者徐恪, 崔勇, 江帆, 王青青 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1