覆盖路由网络中网络状态信息的广播方法

文档序号:7962895阅读:97来源:国知局
专利名称:覆盖路由网络中网络状态信息的广播方法
技术领域
覆盖路由网络中网络状态信息的广播方法属于计算机网络技术领域,尤其涉及覆盖网络中的路由协议技术领域。
背景技术
覆盖路由网络是以提高端到端的传输性能为目标的位于当前Internet之上的覆盖网络。该系统由一定数量的部署在Internet中的路由节点构成,路由节点之间通过底层的Internet网络互相连接,为接入覆盖路由网络的用户主机提供数据路由服务。当Internet某个区域出现故障时,该系统能在短时间内改变受影响的路由,绕过故障区域。该系统还能根据上层应用的需求,选择端到端的性能(延迟、丢包率、带宽等)更好的路径进行路由。
覆盖路由网络中运行的路由协议是链路状态协议。各个路由节点通过读取配置信息和虚链路测量获得局部的网络状态信息,再通过状态广播将这些状态信息发送给其它路由节点,使得每个节点获得整个覆盖路由网络的网络状态信息。覆盖路由网络中的网络状态信息广播应达到以下目标(1)支持几十个路由节点规模的覆盖路由网络;(2)路由节点的加入能够通过任何一个已加入的路由节点完成,加入和正常退出均在10秒内完成,非正常退出在30秒内完成;(3)网络状态信息的变化在10秒内传播到覆盖路由网络的所有其它路由节点。目前尚无针对覆盖路由网络的能够达到上述目标的网络状态信息广播方法。而本发明针对覆盖路由网络提出了一种可实施的状态广播方法,实现了上述目标。

发明内容
本发明的目标在于提供一种覆盖路由网络中的网络状态信息广播方法。
本发明所述的方法,其特征在于,依次含有以下步骤步骤(1),在覆盖路由网络中按链路状态进行路由,设定以下配置参数,所述各路由节点由部署在底层Internet网络中的部分路由节点构成,为接入覆盖路由网络的用户主机提供数据路由服务状态广播周期,单位是秒,推荐值是3.0;默认状态时效,单位是秒,推荐值是20;空状态时效,单位是秒,推荐值是30;步骤(2),在步骤(1)所述的各路由节点上设置所述各路由节点在执行状态广播协议时都用到的网络状态信息的协议数据格式,所述网络状态在数量上至少为1个,所述网络状态信息包括状态头部和状态数据部两个部分,其中状态头部至少包括以下几个字段
状态类型,节点状态和链路状态两类;路由节点标识;状态时效,该状态时效字段初始化时为默认状态时效,其中,空节点状态的状态时效字段初始化时为空状态时效;状态序列号;状态数据部分为节点状态数据和链路状态数据两部分,其中节点状态数据至少含有节点公共接口的数量,空节点状态下为0;该公共接口是指能够被覆盖路由网络中其它路由节点访问的接口,由IP地址和端口号构成;节点私有接口的数量,空节点状态下为0;该私有接口是指不能被覆盖路由网络中其它路由节点直接访问的接口,该接口描述了该节点作为网关时所负责的子网,包括子网地址和子网掩码,该子网是通过该节点接入到覆盖路由网络的;链路状态数据至少含有邻居数量,指该链路状态中包含的邻居节点的数量;邻居节点ID;延迟;丢包率,是一个有向链路丢包率;带宽;步骤(3),在步骤(2)所述的各路由节点上部署状态广播模块,按以下步骤执行状态的产生和传播的操作步骤(3.1),所述路由节点启动一个状态广播定时器,其周期等于状态广播周期,每个周期结束时产生一个状态广播触发信号;步骤(3.2),所述路由节点启动一个用于删除已超时状态的状态超时定时器,其周期等于1秒,每个周期结束时产生一个状态超时触发信号;步骤(3.3),所述路由节点部署一个网络状态数据库,用于保存网络状态信息;步骤(3.4),等待状态广播触发信号或者等待网络状态广播协议分组的到达;步骤(3.5),若到达的是状态广播触发信号,则向每个邻居路由节点发送一个含有网络数据库中所有状态的状态广播协议分组;步骤(3.6),若到达的是状态广播协议分组,则把该分组中的每一个状态保存在所述网络状态数据库中,若分组中的状态序列号小于网络状态数据库中对应状态的状态序列号,则不保存该分组中的序列号较小的那一个状态;步骤(3.7),若为状态超时触发信号,则检查网络状态数据库中每个状态的状态时效,删除已超时的状态;步骤(3.8),转到步骤(3.4);步骤(4),启动状态广播模块;
步骤(5),底层Internet网络其它路由节点需加入所述覆盖路由网络时,便向以加入覆盖路由网络的任意一个路由节点发送一个状态广播协议分组,其中只包含待加入节点的本地节点状态;步骤(6),已加入覆盖路由网络的路由节点,需要离开覆盖路由网络时,向每一个邻居节点各发送一个状态广播协议分组,其中仅含有一个空节点状态,表示公共接口数量和私有接口数量都为0;步骤(7),当覆盖路由网络中其它节点收到步骤(6)所述的空节点状态后,在网络状态数据库中将该节点的节点状态置为空节点状态,并在一个空状态时效后把空节点状态从网络状态数据库中删除。
所述链路状态数据中的丢包率是从邻居到本地的有向链路丢包率,有效区间为
,区间两端分别表示无丢包率和全部丢弃。
所述链路状态数据库中的延迟等于邻居和本地之间往返延迟的一半,单位为毫秒,有效区间为

所述链路状态数据中的带宽是从邻居到本地的单向估算容量,为单精度浮点数,单位为字节/秒。
本发明提出的网络状态信息的广播方法支持几十个路由节点规模的覆盖路由网络;路由节点的加入能够通过任何一个已加入的路由节点完成,加入和正常退出均在10秒内完成,非正常退出在30秒内完成;网络状态信息的变化在10秒内传播到覆盖路由网络的所有其它路由节点;用8个路由节点和3台用户主机搭建实验环境进行实验,结果表明本发明提出的状态广播技术达到了上述要求。


图1.覆盖路由网络中的网络状态信息广播流程图;图2.状态头部的协议格式;图3.节点状态数据的协议格式;图4.链路状态数据的协议格式;图5.状态广播的协议格式;图6.用于加入Overlay路由网络的状态广播;图7.用于离开Overlay路由网络的空节点状态数据;图8.实验环境;图9.应用场景示意图。
具体实施例方式
覆盖路由网络的配置信息和实时状态信息统称为状态。状态分为节点状态和链路状态两种。节点状态是指路由节点的自身状态,包括该节点的外部和内部网络地址。链路状态是指虚链路的实时性能,包括带宽、延迟、丢包率等参数。状态的产生和传播大致分为以下几个步骤(1)节点启动时根据路由器程序的启动参数生成本地节点状态。
(2)节点加入覆盖路由网络后通过虚链路测量生成本地链路状态。
(3)节点之间通过状态广播交换节点状态和链路状态,从而使每个节点获得整个覆盖路由网络的状态信息。
一个状态由状态头部和状态数据两部分构成。状态头部描述了该状态的类型、序列号等基本信息,用于状态广播和状态数据库的维护。其协议格式见图2。
当节点收到来自其它节点广播的状态时,若该状态在自己的状态数据库中已经存在,则将把两个状态的序列号进行比较。只有当接收状态的序列号更大时,状态数据库才会被更新,否则该状态被忽略。状态时效是指该状态在状态数据库中的有效时间,超过该时间后如果状态还未被更新则将被删除。
状态头部中的状态类型为节点状态(0)或链路状态(1)。
节点状态数据描述了该节点(对应于状态头部的路由节点标识字段)所有接口的地址。公共接口是指该节点能够被其它覆盖路由节点访问的接口,由IP地址和端口号构成。私有接口不能被其它覆盖路由节点直接访问,该接口描述了该节点作为网关时所负责的子网(包括子网地址和子网掩码),该子网通过该节点接入到覆盖路由网络。节点状态数据的协议格式见图3。
链路状态数据描述了与该节点(对应于状态头部的state node ID字段)相连的每条虚链路的性能。虚链路本身没有ID,而是通过邻居节点ID来标识。链路状态数据的协议格式见图4,包含以下字段

覆盖路由网络中的每个路由节点周期性向所有邻居进行状态广播。状态广播包含该节点的状态数据库中存储的所有状态(包括节点状态和链路状态)。状态广播协议是覆盖协议的一个子协议,当一个状态广播的数据量超过一个IP分组的大小时,覆盖协议将自动对其进行分片处理。状态广播的协议格式见图5。
状态广播除了用于周期性同步各个节点之间的状态之外,还用于节点的加入和离开。节点A需要加入覆盖路由网络时,向其中任意一个节点(称为介绍节点,记为节点B)发送一个状态广播,该状态广播只需要包含一个状态,即节点A的本地节点状态,见图6。
节点B收到该状态广播之后,把节点A的节点状态加入到自己的状态数据库中。这样做隐含了两层意思(1)节点B的下一次状态广播将包含节点A的节点状态,从而使网络中的其它节点获得节点A的状态信息;(2)节点B的下一次状态广播将被节点A收到,从而使节点A获得了全网的状态信息。
节点A需要离开覆盖路由网络时,向所有邻居节点发送一个状态广播,该状态广播仅含有一个空节点状态。空节点状态是一种特殊的节点状态,其状态数据的格式见图7。
当其它节点收到节点A的空节点状态时,在状态数据库中把该节点的节点状态置为空节点状态。空节点状态对应的节点将不参与虚链路测量、状态广播、数据转发等操作。空节点状态将在一个空状态时效后从状态数据库中删除。为什么节点收到空节点状态后不立刻把该节点从状态数据库中删除呢?这是因为节点A的空节点状态广播被各个节点接收的时间不同,甚至可能在传输过程中丢失。如果收到空节点状态后立刻从状态数据库中删除,那么可能存在以下问题问题(1)节点B收到节点A的空节点状态广播并将节点A从状态数据库中删除,而节点C尚未收到节点A的空节点状态广播。若此时节点C向节点B发送状态广播,由于状态广播中包含节点A的状态信息,因此节点B将重新把节点A添加到自己的状态数据库中。
问题(2)节点A发送给节点B的状态广播在传输过程中丢失,节点B在一个默认状态时效之后才会把节点A从自己的状态数据库中删除。
而采用空状态时效可以避免上述问题问题(1)的避免若节点C向节点B发送状态广播,由于状态广播中包含的节点A的状态序列号小于空节点状态的序列号,故被节点B忽略。
问题(2)的避免即使节点B没有收到节点A的空节点状态广播,收到该空节点状态广播的节点将在下一次广播时把节点A的空节点状态传递给节点B,从而使节点B也获得节点A离开的信息。
实验在8个路由节点和3台用户主机搭建的实验环境上进行,见图8(图中只画了4个路由节点)。路由节点和用户主机运行在PC机的Linux操作系统之上。实验引入网络模拟器,实时地模拟每条单向虚链路的延迟、丢包率和链路故障。实验过程中人为地控制节点加入或退出,观察加入退出过程是否正常,节点之间的网络状态信息同步是否正确。结果表明,节点的加入能够通过任何一个覆盖路由节点完成,节点的加入和正常退出均在几秒内完成,非正常退出在半分钟内完成。拓扑的变化信息在几秒内传播到覆盖路由网络的所有其它节点,即使在部分链路故障的情况下也是如此。
本发明提出的状态广播技术应用于覆盖路由网络,其应用场景示意图见图9。
由此可见,本发明达到了预期目的。
权利要求
1.覆盖路由网络中网络状态信息的广播方法,其特征在于,依次含有以下步骤步骤(1),在覆盖路由网络中按链路状态进行路由,设定以下配置参数,所述各路由节点由部署在底层Internet网络中的部分路由节点构成,为接入覆盖路由网络的用户主机提供数据路由服务状态广播周期,单位是秒,推荐值是3.0;默认状态时效,单位是秒,推荐值是20;空状态时效,单位是秒,推荐值是30;步骤(2),在步骤(1)所述的各路由节点上设置所述各路由节点在执行状态广播协议时都用到的网络状态信息的协议数据格式,所述网络状态在数量上至少为1个,所述网络状态信息包括状态头部和状态数据部两个部分,其中状态头部至少包括以下几个字段状态类型,节点状态和链路状态两类;路由节点标识;状态时效,该状态时效字段初始化时为默认状态时效,其中,空节点状态的状态时效字段初始化时为空状态时效;状态序列号;状态数据部分为节点状态数据和链路状态数据两部分,其中节点状态数据至少含有节点公共接口的数量,空节点状态下为0;该公共接口是指能够被覆盖路由网络中其它路由节点访问的接口,由IP地址和端口号构成;节点私有接口的数量,空节点状态下为0;该私有接口是指不能被覆盖路由网络中其它路由节点直接访问的接口,该接口描述了该节点作为网关时所负责的子网,包括子网地址和子网掩码,该子网是通过该节点接入到覆盖路由网络的;链路状态数据至少含有邻居数量,指该链路状态中包含的邻居节点的数量;邻居节点ID;延迟;丢包率,是一个有向链路丢包率;带宽;步骤(3),在步骤(2)所述的各路由节点上部署状态广播模块,按以下步骤执行状态的产生和传播的操作步骤(3.1),所述路由节点启动一个状态广播定时器,其周期等于状态广播周期,每个周期结束时产生一个状态广播触发信号;步骤(3.2),所述路由节点启动一个用于删除已超时状态的状态超时定时器,其周期等于1秒,每个周期结束时产生一个状态超时触发信号;步骤(3.3),所述路由节点部署一个网络状态数据库,用于保存网络状态信息;步骤(3.4),等待状态广播触发信号或者等待网络状态广播协议分组的到达;步骤(3.5),若到达的是状态广播触发信号,则向每个邻居路由节点发送一个含有网络数据库中所有状态的状态广播协议分组;步骤(3.6),若到达的是状态广播协议分组,则把该分组中的每一个状态保存在所述网络状态数据库中,若分组中的状态序列号小于网络状态数据库中对应状态的状态序列号,则不保存该分组中的序列号较小的那一个状态;步骤(3.7),若为状态超时触发信号,则检查网络状态数据库中每个状态的状态时效,删除已超时的状态;步骤(3.8),转到步骤(3.4);步骤(4),启动状态广播模块;步骤(5),底层Internet网络其它路由节点需加入所述覆盖路由网络时,便向以加入覆盖路由网络的任意一个路由节点发送一个状态广播协议分组,其中只包含待加入节点的本地节点状态;步骤(6),已加入覆盖路由网络的路由节点,需要离开覆盖路由网络时,向每一个邻居节点各发送一个状态广播协议分组,其中仅含有一个空节点状态,表示公共接口数量和私有接口数量都为0;步骤(7),当覆盖路由网络中其它节点收到步骤(6)所述的空节点状态后,在网络状态数据库中将该节点的节点状态置为空节点状态,并在一个空状态时效后把空节点状态从网络状态数据库中删除。
2.根据权利要求1所述的覆盖路由网络中网络状态信息的广播方法,其特征在于,所述链路状态数据中的丢包率是从邻居到本地的有向链路丢包率,有效区间为
,区间两端分别表示无丢包率和全部丢弃。
3.根据权利要求1所述的覆盖路由网络中网络状态信息的广播方法,其特征在于,所述链路状态数据库中的延迟等于邻居和本地之间往返延迟的一半,单位为毫秒,有效区间为

4.根据权利要求1所述的覆盖路由网络中网络状态信息的广播方法,其特征在于,所述链路状态数据中的带宽是从邻居到本地的单向估算容量,为单精度浮点数,单位为字节/秒。
全文摘要
本发明属于覆盖网络中的路由状态信息广播技术领域,其特征在于按照设置在该覆盖路由网络中各路由节点上的配置参数、网络状态信息的协议格式以及网络状态信息广播模块,利用所述模块上的状态广播启动定时器来周期性地产生状态广播触发信号,还利用一个状态超时定时器来删除已超时的状态;然后再根据接收到的状态广播信号来触发状态广播操作,根据收到的状态广播协议分组,执行接收操作,并存入网络状态信息库,供下次广播使用。本发明支持由几十个路由节点构成的覆盖路由网络;底层路由节点的加入可通过任一个已加入的节点实现,加入和正常退出在10秒内完成,非正常退出在30秒内完成。
文档编号H04L12/24GK1889518SQ20061008973
公开日2007年1月3日 申请日期2006年7月14日 优先权日2006年7月14日
发明者徐明伟, 江帆, 徐恪, 崔勇 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1