一种建立邻居关系时的hello报文发送方法和装置的制作方法

文档序号:7977719阅读:285来源:国知局
专利名称:一种建立邻居关系时的hello报文发送方法和装置的制作方法
技术领域
本发明涉及通信技术领域,具体涉及一种建立邻居关系时的hello报文发送方法和装置。
背景技术
TRILL是互联网工程任务组(IETF)推荐的链路层(L2)网络标准,用于解决大型数据中心中生成树(STP)协议的不足。在TRILL网络中,运行TRILL协议的设备称为路由桥(RB,Routing Bridge)设备, 同一链路上直连的RB设备之间使用Hello报文进行信息交互。同一链路上的RB之间会选举出指定RB (DRB),由该DRB选出用于后续封装TRILL控制报文和数据报文的指定VLAN,并为链路上的每个使能VLAN分配唯一的发送和接收端口作为该使能VLAN的指定VLAN转发者(AVF)。当为某个使能VLAN分配AVF后,作为AVF的RB端口负责将本地网络中的与该 VLAN相关的数据报文上送TRILL网络,使用指定VLAN进行TRILL封装后传递到远端的目的 RB,远端的目的RB接收到封装后的TRILL数据报文后,解封装该TRILL数据报文,并通过目的RB上对应的AVF端口发送到远端的本地网络中。当一个新的RB设备接入链路时,为了充分发现链路上的其它RB设备,需要在所有使能VLAN中发送Hello报文。当链路上的其它RB设备收到新的邻居RB设备发送的Hello 报文时,需要立刻回应Hello报文,其中,对于DRB,需要在所有使能VLAN中回应Hello报文;对于非DRB,则需要在指定VLAN和分配了 AVF的VLAN中回应Hello报文。这样,当同时有多个RB设备接入链路时,短时间内链路上会出现大量的Hello报文。大量的HELLO报文不但会消耗大量链路带宽,而且还会占用链路上各RB设备的CPU处理能力。

发明内容
有鉴于此,本发明的目的在于提供一种建立邻居关系时的hello报文发送方法, 该方法能够减少建立邻居关系时Hello报文的发送数量。为了达到上述目的,本发明提供了一种建立邻居关系时的hello报文发送方法, 该方法包括接收到新的邻居路由桥RB发送的Hello报文时,如果定时器T已经启动,则将该 Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合;定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合, 在第二 VLAN集合中的每个VLAN中发送Hello报文。本发明还提供了一种路由桥RB设备,该RB设备包括接收单元、控制单元、发送单元;所述接收单元,用于接收新的邻居RB发送的Hello报文;
所述控制单元,用于在接收单元接收到新的邻居RB发送的Hello报文时,如果定时器T已经启动,则将该Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合;用于在定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合;所述发送单元,用于在控制单元根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合后,在第二 VLAN集合中的每个VLAN中发送Hel Io报文。由上面的技术方案可知,本发明中,对于定时器T时间内接收到新的邻居RB发送的Hello报文,将该Hello报文所属的VLAN加入该新的邻居RB对应的第一 VLAN集合;当定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合进行处理,生成包含较少VLAN 的第二 VLAN集合,在第二 VLAN集合中的每个VLAN中发送Hello报文,使得所有新的邻居 RB均可以和当前RB建立邻居关系,并且减少了 Hello报文的发送数量,进而,由于Hello报文的数量的减少,可以减少链路带宽消耗,并减少占用链路上各RB设备的CPU处理能力。


图1是本发明实施例建立邻居关系时的hello报文发送方法流程图;图2是TRILL网络的组网示意图;图3是本发明实施例路由桥的结构示意图
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例, 对本发明的技术方案进行详细说明。参见图1,图1是本发明实施例建立邻居关系时的hello报文发送方法流程图,应用于TRILL网络中,该方法包括步骤101、接收到新的邻居路由桥RB发送的Hello报文时,如果定时器T已经启动,则将该Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合。本步骤中,定时器T是预先定义的。在有新的邻居RB接入链路时,从首次接收到新的邻居RB发送的Hello报文时开始计时,并对定时器T超时前接收到的所有新的邻居RB 发送的Hello报文进行VLAN记录,将接收到的每个新的邻居RB发送的Hello报文所属的 VLAN记录到该邻居RB对应的第一 VLAN集合中。步骤102、定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合,在第二 VLAN集合中的每个VLAN中发送Hello报文。本步骤中,所述根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合的方法具体可以为对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计,将出现次数最多的VLAN加入到第二 VLAN集合,如果存在不包含第二 VLAN集合中的任一 VLAN的新的邻居RB对应的第一 VLAN集合,则对不包含第二 VLAN集合中的任一 VLAN的所有新的邻居 RB对应的第一 VLAN集合中的VLAN再次进行统计;如果每个新的邻居RB对应的第一 VLAN集合中与第二 VLAN集合的交集均不为空,则VLAN统计结束。在上述生成第二 VLAN集合的方法中,在所有新的邻居RB对应的第一 VLAN集合中统计出现次数最多的VLAN,假设为VLANx,则将VLANx加入到第二 VLAN集合。这样,当在 VLANx中回应Hello报文时,对于包含VLANx的每个第一 VLAN集合关联的新的邻居RB均能接收到该回应的Hello报文,因此,当前RB只需在VLANx中回应一个Hello报文,包含 VLANx的每个第一 VLAN集合关联的新的邻居RB就能够建立与当前RB的邻居关系。之后,对于已经可以在VLANx中建立与当前RB间的邻居关系的每个新的邻居RB, 可以不再考虑该新的邻居RB对应的第一 VLAN集合,只需对不能在VLANx中建立与当前RB 间的邻居关系的新的RB对应的第一 VLAN集合继续进行统计,也即如果还存在新的邻居 RB对应的第一 VLAN集合中不包含VLANx,则可以继续在不包含VLANx的所有新的邻居RB 对应的第一 VLAN集合中再次统计出现次数最多的VLAN,假设为VLANy,则将该统计出的出现次数最多的VLANy加入到第二 VLAN集合中。之后,如果还存在新的邻居RB对应的第一 VLAN集合中既不包含VLANx,又不包含 VLANy,还可以继续在不包含VLANx和VLANy的所有新的邻居RB对应的第一 VLAN集合中再次统计出现次数最多的VLAN,直到每个新的邻居RB对应的第一 VLAN集合与第二 VLAN集合的交集不为空。这样,当前RB在第二 VLAN集合中的每个VLAN中回应Hello报文时,每个新的邻居RB至少能够接收到当前RB在其中一个VLAN中回应的Hello报文,因而可以建立与当前 RB的邻居关系。另外,对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计之后,将出现次数最多的VLAN加入到第二 VLAN集合之前,进一步包括如果出现次数最多的VLAN只有一个,则将该出现次数最多的VLAN加入到第二 VLAN集合,如果出现次数最多的VLAN有多个,则可以在多个出现次数最多的VLAN中选择一个加入到第二 VLAN集合。这里,可以是选择其中最小的VLAN加入到第二 VLAN集合,或可以选择其中最大的VLAN加入到第二 VLAN 集合,或随机选择其中一个VLAN加入到第二 VLAN集合。图1所示本发明实施例中,由于不再对接收到的每个新的邻居RB的Hello报文进行回应,而是在对定时器T时间内的多个新的RB发送的Hello报文所属的VLAN进行记录, 并在定时器超时后进行统一处理,只在有限的几个VLAN中回应Hello报文,即可建立与每个新的邻居RB建立邻居关系,因此,可以减少当前RB回应Hello报文的数量,进而,可以减少链路上的带宽浪费,并能够减少当前RB的CPU处理能力的占用。实际上,也可以采用其他方法生成第二 VLAN集合。例如,可以先根据每个新的邻居RB对应的VLAN集合,统计出每个VLAN对应的新的邻居RB集合;然后,根据所有VLAN对应的新的邻居RB集合与其他VLAN对应的新的邻居RB集合的包含关系,将完全包含于其他 VLAN对应的新的邻居RB集合删除,只保留不能完全被其他VLAN对应的新的邻居RB集合; 最后,对保留的所有不能完全被其他VLAN对应的新的邻居RB集合,确定并集能够包含所有新的邻居RB的一个或多个VLAN对应的新的邻居RB集合,将该一个或多个VLAN加入到第二 VLAN集合。下面结合图2,对图1所示本发明实施例进行举例说明。图2是TRILL网络的组网示意图,包括通过交换机SWl连接到同一链路上的路由桥RBI、RB2、RB3,另外,通过虚线连接到交换机SWl的路由桥RB4、RB5、RB6、RB7是将要加入到链路中的RB。假设RBl、RB2、RB3 上的使能 VLAN 均包括 VLANl 到 VLAN9 ;假设RB4 上的使能 VLAN 包括 VLAm、VLAN2、VLAN3、VLAN4 ;RB5 上的使能 VLAN 包括 VLAN3、VLAN4、VLAN5、VLAN6 ;RB6 上的使能 VLAN 包括 VLAN4、VLAN6、VLAN7、VLAN8 ;RB7 上的使能 VLAN 包括VLAN6、VLAN7、VLAN8、VLAN9。按照图1所示本发明实施例,路由桥RB4、RB5、RB6、RB7同时加入RB1、RB2、RB3所
在的链路后,与RB 1建立邻居关系的过程如下RB4 分别在 VLAm、VLAN2、VLAN3、VLAN4 中发送 Hello 报文;RB5 分别在 VLAN3、 VLAN4、VLAN5、VLAN6 中发送 Hello 报文;RB6 分别在 VLAN4、VLAN6、VLAN7、VLAN8 中发送 Hello 报文;RB7 分别在 VLAN6、VLAN7、VLAN8、VLAN9 中发送 Hello 报文;假设RB 1先接收到RB4在VLANl发送的Hello报文,判断发现定时器T未启动, 因此,将定时器T启动,并将VLANl加入到RB4对应的第一 VLAN集合;接着,假设RB 1又接收到了 RB5在VLAN4中发送的Hello报文,判断发现定时器 T已经启动,因此,直接将VLAN4加入到RB5对应的第一 VLAN集合;依次类推,RB 1接收到RB4分别在不同使能VLAN发送的He 1 Io报文,并得到RB4对应的第一 VLAN集合为{VLAN1、VLAN2、VLAN3、VLAN4} ;RBl接收到RB5分别在不同使能VLAN 发送的Hello报文,并得到RB5对应的第一 VLAN集合为{VLAN3、VLAN4、VLAN5、VLAN6} ;RBl 接收到RB6分别在不同使能VLAN发送的Hello报文,并得到RB6对应的第一 VLAN集合为 {VLAN4、VLAN6、VLAN7、VLAN8} ;RBl接收到RB7分别在不同使能VLAN发送的Hello报文,并得到 RB7 对应的第一 VLAN 集合为{VLAN6、VLAN7、VLAN8、VLAN9};假设RB 1分别得到RB4、RB5、RB6、RB7对应的第一 VLAN集合后,定时器T超时, 则RB 1开始根据RB4、RB5、RB6、RB7对应的第一 VLAN集合生成第二 VLAN集合的过程为首先统计VLAm-VLAN9在RB4、RB5、RB6、RB7中的出现次数,确定VLAN4和VLAN6 均出现3次,次数最多,因此,在VLAN4和VLAN6中选择一个加入到第二 VLAN集合,假设选择将VLAN4加入到第二 VLAN集合;此时,只剩下RB7的第一 VLAN集合中不包含VLAN4,因此,对RB7对应的第一 VLAN 集合中各VLAN的统计结果是VLAN6、VLAN7、VLAN8、VLAN9均出现一次,因此,在VLAN6、 VLAN7、VLAN8、VLAN9中选择一个加入到第二 VLAN集合,假设选择将VLAN8加入到第二 VLAN 集合;至此,得到第二VLAN 集合为{VLAN4,VLAN8},而且 RB4、RB5、RB6、RB7 对应的第一 VLAN集合与第二 VLAN集合的交集均不为空;RBl根据RB4、RB5、RB6、RB7对应的第一 VLAN集合生成第二 VLAN集合后,在第二集合中的每个VLAN上发送Hello报文,这样,RB4、RB5、RB6可以接收到RB 1在VLAN4上发送的Hello报文,RB4、RB5、RB6分别与RB 1建立了邻居关系;RB7可以接收到RBl在VLAN8 上发送的Hello报文,RB7与RBl建立了邻居关系。上述过程中,RBl只需要分别在VLAN4和VLAN8上发送Hello报文,即可建立与新加入的邻居RB的邻居关系,与现有技术相比,减少了邻居关系建立时Hello报文的发送数量。另外,RB4、RB5、RB6、RB7分别于RB2、RB3建立邻居关系的过程与上述过程的原理相同,因此不再赘述。另外,上述过程中,是假设RBl在接收完RB4、RB5、RB6、RB7发送的所有Hello报文后定时器T超时为例进行说明的。实际上,如果RBl只接收到RB4、RB5、RB6、RB7发送的部分Hello报文,或者,RBl只接收到其中一个RB发送的Hello报文后定时器T超时,则生成第二 VLAN集合的过程与上述生成第二 VLAN集合的原理也相同。但是,由于RBl未接收到所有的Hello报文,因此,RB4、RB5、RB6、RB7对应的第一 VLAN集合中可能未包含各自的全部使能VLAN,因此,计算出的第二 VLAN集合的结果可能会有很大的不同。则生成第二 VLAN 集合的过程与上述生成第二 VLAN集合的原理也相同。以上对本发明实施例建立邻居关系时的hello报文发送方法进行了详细说明,本发明还提供了一种路由桥,应用于TRILL网络中,该路由桥能够减少建立邻居关系时Hello 报文的发送数量。参见图3,图3是本发明实施例路由桥的结构示意图,该路由桥包括接收单元 301、控制单元302、发送单元303 ;其中,接收单元301,用于接收新的邻居RB发送的Hello报文;控制单元302,用于在接收单元301接收到新的邻居RB发送的Hello报文时,如果定时器T已经启动,则将该Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合;用于在定时器T超时后,根据所有新的邻居RB 对应的第一 VLAN集合生成第二 VLAN集合;发送单元303,用于在控制单元302根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合后,在第二 VLAN集合中的每个VLAN中发送Hello报文。所述控制单元302在根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN 集合时,用于对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计,将出现次数最多的VLAN加入到第二 VLAN集合,如果存在不包含第二 VLAN集合中的任一 VLAN的新的邻居RB对应的第一 VLAN集合,则对不包含第二 VLAN集合中的任一 VLAN的所有新的邻居RB 对应的第一 VLAN集合中的VLAN再次进行统计;如果每个新的邻居RB对应的第一 VLAN集合中与第二 VLAN集合的交集均不为空,则VLAN统计结束。所述控制单元302在对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计之后,将出现次数最多的VLAN加入到第二 VLAN集合之前,进一步用于如果出现次数最多的VLAN只有一个,则将该出现次数最多的VLAN加入到第二 VLAN集合,如果出现次数最多的VLAN有多个,则在多个出现次数最多的VLAN中选择一个加入到第二 VLAN集合。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种建立邻居关系时的hello报文发送方法,其特征在于,该方法包括接收到新的邻居路由桥RB发送的Hello报文时,如果定时器T已经启动,则将该Hello 报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T 未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合;定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合,在第二 VLAN集合中的每个VLAN中发送Hello报文。
2.根据权利要求1所述的建立邻居关系时的hello报文发送方法,其特征在于,所述根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合的方法为对所有新的邻居 RB对应的第一 VLAN集合中的VLAN进行统计,将出现次数最多的VLAN加入到第二 VLAN集合,如果存在不包含第二 VLAN集合中的任一 VLAN的新的邻居RB对应的第一 VLAN集合,则对不包含第二 VLAN集合中的任一 VLAN的所有新的邻居RB对应的第一 VLAN集合中的VLAN 再次进行统计;如果每个新的邻居RB对应的第一 VLAN集合中与第二 VLAN集合的交集均不为空,则VLAN统计结束。
3.根据权利要求2所述的建立邻居关系时的hello报文发送方法,其特征在于,所述对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计之后,将出现次数最多的VLAN 加入到第二 VLAN集合之前,进一步包括如果出现次数最多的VLAN只有一个,则将该出现次数最多的VLAN加入到第二 VLAN集合,如果出现次数最多的VLAN有多个,则在多个出现次数最多的VLAN中选择一个加入到第二 VLAN集合。
4.一种路由桥RB设备,应用于TRILL网络中,其特征在于,该RB设备包括接收单元、 控制单元、发送单元;所述接收单元,用于接收新的邻居RB发送的Hello报文;所述控制单元,用于在接收单元接收到新的邻居RB发送的Hello报文时,如果定时器 T已经启动,则将该Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一 VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一 VLAN集合;用于在定时器T超时后,根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合;所述发送单元,用于在控制单元根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合后,在第二 VLAN集合中的每个VLAN中发送Hello报文。
5.根据权利要求4所述的RB设备,其特征在于,所述控制单元在根据所有新的邻居RB对应的第一 VLAN集合生成第二 VLAN集合时,用于对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计,将出现次数最多的VLAN 加入到第二 VLAN集合,如果存在不包含第二 VLAN集合中的任一 VLAN的新的邻居RB对应的第一 VLAN集合,则对不包含第二 VLAN集合中的任一 VLAN的所有新的邻居RB对应的第一VLAN集合中的VLAN再次进行统计;如果每个新的邻居RB对应的第一 VLAN集合中与第二VLAN集合的交集均不为空,则VLAN统计结束。
6.根据权利要求5所述的RB设备,其特征在于,所述控制单元在对所有新的邻居RB对应的第一 VLAN集合中的VLAN进行统计之后,将出现次数最多的VLAN加入到第二 VLAN集合之前,进一步用于如果出现次数最多的VLAN只有一个,则将该出现次数最多的VLAN加入到第二 VLAN集合,如果出现次数最多的VLAN 有多个,则在多个出现次数最多的VLAN中选择一个加入到第二 VLAN集合。
全文摘要
本发明提供了一种建立邻居关系时的hello报文发送方法和装置,该方法包括接收到新的邻居路由桥RB发送的Hello报文时,如果定时器T已经启动,则将该Hello报文所属的虚拟局域网VLAN加入到该新的邻居RB对应的第一VLAN集合,如果定时器T未启动,则启动定时器T,并将该Hello报文所属的VLAN加入到该新的邻居RB对应的第一VLAN集合;定时器T超时后,根据所有新的邻居RB对应的第一VLAN集合生成第二VLAN集合,在第二VLAN集合中的每个VLAN中发送Hello报文。本发明能够减少建立邻居关系时Hello报文的发送数量。
文档编号H04L12/56GK102571555SQ201110366360
公开日2012年7月11日 申请日期2011年11月17日 优先权日2011年11月17日
发明者曲进, 曹辉, 邹文宇 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1