一种环形网络及业务数据转发方法与流程

文档序号:15594163发布日期:2018-10-02 19:18阅读:371来源:国知局

本发明涉及通信技术领域,尤指一种环形网络及业务数据转发方法。



背景技术:

随着业务的种类增加,业务的复杂度提高,业务的可靠性增强,对传送业务的网络提出了更高的要求,即高带宽、低时延、以及低抖动。为了满足用户对业务的要求,只有将传送业务的网络分组化,从而将业务放到分组网络中进行传送。

目前,针对多播类型的业务,可以采用以太网树型(e-tree)模型来承载,其中,e-tree模型的典型特征包括:在一个e-tree业务中存在两类节点,分别是根节点和叶子节点,对于根节点来讲,根节点的用户网络(usernetworkinterface,uni)接口可以与叶子节点的uni接口通信,而对于叶子节点来讲,叶子节点的uni接口只能与根节点的uni接口通信;因此,在进行多播业务数据传输时,根节点需要根据叶子节点的设置数量来确定业务数据的复制份数,以便于将业务数据发送至每个叶子节点再实现业务数据的落地;如此,在根节点进行业务的复制和分发时,使得有多少业务落地点,就需要占用多少份业务的带宽,对靠近根节点的链路带来了极大的带宽压力。并且,若e-tree模型中的根节点与叶子节点之间的链路出现故障时,会导致叶子节点接收不到业务数据而无法实现业务的落地。

基于此,如何在占用较少带宽的情况下,实现业务数据的转发和落地,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明实施例提供了一种环形网络及业务数据转发方法,用以在占用较少带宽的情况下,实现业务数据的转发和落地。

本发明实施例提供了一种环形网络,包括:一个根节点,以及至少两个叶子节点;所述根节点和所述叶子节点均具有两个转发方向上的环端口;

所述根节点,用于通过两个转发方向上的环端口,将两份相同的业务数据分别发送至与所述根节点的两个转发方向上的环端口相邻的叶子节点;丢弃相邻的叶子节点转发的所述业务数据;

所述叶子节点,用于通过任一转发方向上的环端口,接收相邻的所述根节点或相邻的叶子节点转发的业务数据;通过另一转发方向上的环端口,将接收到的所述业务数据转发至相邻的所述根节点或相邻的叶子节点;并将通过作为业务数据落地源的环端口接收到的所述业务数据进行拷贝之后发送至与本叶子节点相连的用户设备;其中,所述作为业务数据落地源的环端口为一个转发方向上的环端口。

从而,叶子节点可以通过两个转发方向上的环端口,接收到两份完全相同的业务数据,再将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝之后发送至用户设备,实现业务数据的落地;并且,可以使得根节点不需要像现有技术那样由叶子节点的设置数量来确定复制份数,所以大大减少了根节点复制业务数据的份数,从而可以有效减少靠近根节点的链路带宽压力。

可选地,所述叶子节点包括:状态机;

所述状态机,用于根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,以使对通过作为业务数据落地源的环端口接收到的所述业务数据进行拷贝,并将拷贝后的所述业务数据发送至与本叶子节点相连的用户设备。

从而,通过状态机可以根据不同的链路状态确定业务数据落地源,以保证业务的正常落地。

可选地,所述叶子节点中的所述状态机,具体用于:

确定所述预设的业务选择逻辑为自动切换状态还是切换锁定状态;

若确定所述预设的业务选择逻辑为切换锁定状态,则将被锁定的转发方向上的环端口作为业务数据落地源;

若确定所述预设的业务选择逻辑为自动切换状态时,确定当前作为业务数据落地源的环端口所在应链路的状态是否为故障状态;

若确定当前作为业务数据落地源的环端口所在链路的状态不是故障状态,则保持该环端口作为业务数据落地源;

若确定当前作为业务数据落地源的环端口所在链路的状态为故障状态,确定另一转发方向上的环端口所在链路的状态是否为故障状态;其中,所述另一转发方向上的环端口不同于所述当前作为业务数据落地源的环端口;

若确定另一转发方向上的环端口所在链路的状态为故障状态,则随机选择一个转发方向上的环端口重新作为业务数据落地源;或保持该当前环端口作为业务数据落地源不变;或固定约定一个转发方向上的环端口重新作为业务数据落地源;

若确定另一转发方向上的环端口所在链路的状态不是故障状态,则将所述另一转发方向上的环端口重新作为业务数据落地源。

从而,在其中一个转发方向上的环端口所在链路的状态为故障状态时,可以根据业务选择逻辑,确定作为业务数据落地源的环端口,以实现业务数据的落地,提高了业务的保护功能。

可选地,所述叶子节点中的所述状态机,还具体用于通过以下方法确定所述初始时作为业务数据落地源的默认环端口:

根据预先配置将所述叶子节点中的其中一个转发方向上的环端口作为业务数据落地源;或者

确定所述叶子节点的第一转发方向上的环端口作为业务数据落地源,以使所有叶子节点的同一转发方向上的环端口作为业务数据落地源;或者

根据所述叶子节点的各环端口距离所述根节点的远近,确定业务数据落地源。

从而,可以使得在默认作为业务数据落地源的环端口所在链路正常时,可以快速地实现业务数据的落地,提高了用户的体验。

可选地,所述业务选择逻辑的状态还包括初始状态;

所述状态机,还具体用于:

在所述业务选择逻辑为初始状态时,接收到配置环网保护落地的指示操作后,选定所述默认环端口作为业务数据落地源,进入自动切换状态;

在所述业务选择逻辑为自动切换状态时,接收到锁定业务数据落地源的指示操作后,进入切换锁定状态。

可选地,所述叶子节点,还包括:检测单元;

所述检测单元,用于根据预设的链路检测规则,实时对本节点的各环端口所在链路进行故障检测;

所述状态机,具体用于:基于所述检测单元的故障检测结果,确定当前作为业务数据落地源的环端口所在链路的状态是否为故障状态。

可选地,所述预设的链路检测规则为两个相邻节点之间的双向链路检测规则;

所述叶子节点中的所述检测单元,具体用于:

实时检测本叶子节点与相邻节点之间的链路状态是否为故障状态/故障恢复状态;

若是,则生成包含有如下方向信息的通告报文:本叶子节点上连接故障状态/故障恢复状态的链路的环端口的转发方向;

按照第一预设周期,将所述通告报文通过另一转发方向上的环端口发出,以在所述环形网络中传输所述通告报文,直至所述根节点;

将本叶子节点生成的所述通告报文,或者接收到的相邻节点发送的通告报文,通告至本叶子节点内的状态机;

所述状态机,具体用于:读取所述检测单元发送的通告报文所携带的方向信息;确定本叶子节点上读取到的转发方向侧的环端口所在链路为故障状态/故障恢复状态。

从而,采用该种检测规则可以在环形网络中的相邻节点之间建立检测通路,使得各段链路所占用的带宽固定,减少了检测机制所占用的额外带宽;并且,仅在检测到故障之后,进行故障信息逐节点的通告,从而保证环形网络中的各节点可以实现业务数据的落地。

可选地,所述预设的链路检测规则为根节点与叶子节点之间的单向链路检测规则;

所述根节点,还用于按照第二预设周期,通过两个转发方向上的环端口,向相邻的叶子节点发送针对所述环形网络中各叶子节点的各检测报文;

所述叶子节点中的所述检测单元,具体用于:

确定是否通过任一转发方向的环端口接收到所述根节点按照第二预设周期发送的所述检测报文;

在确定通过一个转发方向的环端口接收到所述根节点按照第二预设周期发送的所述检测报文时,识别该所述检测报文携带的目的媒体访问控制mac地址与本叶子节点的mac地址是否相同;

若是,则确定收到所述根节点针对本叶子节点发送的检测报文;

若不是,则将接收到的所述检测报文通过另一转发方向上的环端口转发至相邻的节点;其中,所述另一转发方向上的环端口不同于接收所述检测报文的环端口;

根据环端口对所述根节点针对本叶子节点发送的检测报文的接收情况,进行该环端口所在链路的故障检测。

从而,此种链路状态检测规则增加了根节点与叶子节点之间的交互,减少了叶子节点之间的交互,简化了某个链路故障之后的处理过程。

可选地,所述叶子节点中的所述检测单元,还具体用于:若通过连接故障状态的链路的环端口,重新接收到所述根节点按照所述第二预设周期发送的检测报文,且满足预设要求时,确定故障状态的链路恢复正常。

从而,可以避免因网络不稳定而造成的链路状态的误判,提高链路状态检测规则的准确性。

基于同一发明构思,本发明实施例还提供了一种业务数据转发方法,利用如本发明实施例提供的上述环形网络所实现;所述方法包括:

所述根节点通过两个转发方向上的环端口,将两份相同的业务数据分别发送至与所述根节点的两个转发方向上的环端口相邻的叶子节点;

所述叶子节点通过任一转发方向上的环端口,接收相邻的所述根节点或相邻的叶子节点转发的业务数据;通过另一转发方向上的环端口,将接收到的所述业务数据转发至相邻的所述根节点或相邻的叶子节点;并将通过作为业务数据落地源的环端口接收到的所述业务数据进行拷贝之后发送至与本叶子节点相连的用户设备;其中,所述作为业务数据落地源的环端口为一个转发方向上的环端口;

所述根节点丢弃相邻的叶子节点转发的所述业务数据。

可选地,在所述叶子节点中包括状态机时,所述方法还包括:

所述状态机根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,以使对通过作为业务数据落地源的环端口接收到的所述业务数据进行拷贝,并将拷贝后的所述业务数据发送至与本叶子节点相连的用户设备。

可选地,所述状态机根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,具体包括:

确定所述预设的业务选择逻辑为自动切换状态还是切换锁定状态;

若确定所述预设的业务选择逻辑为切换锁定状态,则将被锁定的转发方向上的环端口作为业务数据落地源;

若确定所述预设的业务选择逻辑为自动切换状态时,确定当前作为业务数据落地源的环端口所在链路的状态是否为故障状态;

若确定当前作为业务数据落地源的环端口所在链路的状态不是故障状态,则保持该环端口作为业务数据落地源;

若确定当前作为业务数据落地源的环端口所在链路的状态为故障状态,确定另一转发方向上的环端口所在链路的状态是否为故障状态;其中,所述另一转发方向上的环端口不同于所述当前作为业务数据落地源的环端口;

若确定另一转发方向上的环端口所在链路的状态为故障状态,则随机选择一个转发方向上的环端口重新作为业务数据落地源;或保持当前业务数据落地源不变;或固定约定一个转发方向上的环端口重新作为业务数据落地源;

若确定另一转发方向上的环端口所在链路的状态不是故障状态,则将所述另一转发方向上的环端口重新作为业务数据落地源。

可选地,所述状态机确定初始时作为业务数据落地源的默认环端口,具体包括:

根据预先配置将所述叶子节点中的其中一个转发方向上的环端口作为业务数据落地源;或者

确定所述叶子节点的第一转发方向上的环端口作为业务数据落地源,以使所有叶子节点的同一转发方向上的环端口作为业务数据落地源;或者

根据所述叶子节点的各环端口距离所述根节点的远近,确定业务数据落地源。

本发明有益效果如下:

本发明实施例提供的一种环形网络及业务数据转发方法,根节点可以通过两个转发方向上的环端口分别向相邻的叶子节点发送业务数据,实现业务数据的双向发送;对于叶子节点,可以在任一转发方向上的环端口接收业务数据,并通过另一转发方向上的环端口转发出去,从而使得叶子节点同时具有接收功能和转发功能,进而使得叶子节点可以接收到两份完全相同的业务数据,再将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝之后发送至用户设备,实现业务数据的落地,如此,根节点在确定需要发送的业务数据时,不需要像现有技术那样由叶子节点的设置数量来确定复制份数,所以大大减少了根节点复制业务数据的份数,从而可以有效减少靠近根节点的链路带宽压力。

附图说明

图1为本发明实施例中提供的一种环形网络的结构示意图;

图2为本发明实施例提供的根节点的结构示意图;

图3为本发明实施例中提供的叶子节点的结构示意图;

图4为本发明实施例中提供的状态机的状态变换示意图;

图5为本发明实施例提供的一种业务数据转发方法的流程图。

具体实施方式

下面将结合附图,对本发明实施例提供的一种环形网络及业务数据转发方法的具体实施方式进行详细地说明。需要说明的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了减少根节点复制业务数据的份数,进而有效减小靠近根节点的链路带宽压力,实现业务数据的转发和落地,针对单向多播业务承载,本发明实施例提供了一种环形网络,如图1所示,可以包括:一个根节点(用a表示),以及至少两个叶子节点;其中,图1中示出了三个叶子节点,分别用b、c和d表示,当然,环形网络的结构并不限于图1所示,其包括的叶子节点还可以为2个或4个及以上等,在此并不限定;根节点a和每个叶子节点(b、c或d)均具有两个转发方向上的环端口;其中可以根据顺时针约定环端口的角色,如将顺时针方向上节点的上游环端口约定为东向环端口,用e表示,下游环端口约定为西向环端口,用w表示,当然对于环端口的角色约定并不限于此,此处举例说明而已。

根节点a,用于通过两个转发方向上的环端口,将两份相同的业务数据分别发送至与根节点的两个转发方向上的环端口相邻的叶子节点;丢弃相邻的叶子节点转发的业务数据;

叶子节点(b、c或d),用于通过任一转发方向上的环端口,接收相邻的根节点或相邻的叶子节点转发的业务数据;通过另一转发方向上的环端口,将接收到的业务数据转发至相邻的根节点或相邻的叶子节点;并将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝之后发送至与本叶子节点相连的用户设备;其中,作为业务数据落地源的环端口为一个转发方向上的环端口。

需要说明的是,本发明实施例中,根节点a具有双向发送功能,且双向阻塞接收;而叶子节点(b、c或d)同时具有接收功能和转发功能,可以将从任一个转发方向上的环端口接收到的业务数据,通过另一转发方向上的环端口转发至相邻的节点,也就是说,叶子节点(b、c或d)的每个转发方向上的环端口允许接收业务数据或转发业务数据。如此,在实现业务数据的转发和落地的同时,还可以大大减少根节点a复制业务数据的份数,从而可以有效减少靠近根节点a的链路带宽压力。

其中,在本发明实施例中,对于根节点a而言,如图2所示,根节点a,可以包括:发送单元201和丢弃单元202;

发送单元201,用于通过两个转发方向上的环端口,将两份相同的业务数据分别发送至与根节点的两个转发方向上的环端口相邻的叶子节点;

丢弃单元202,用于丢弃相邻的叶子节点转发的业务数据。

也就是说,通过发送单元201和丢弃单元202,可以使得根节点a将业务数据发送至相邻的叶子节点,并具有阻塞接收的功能。

具体地,为了使得根节点a确定出将要发送的两份相同的业务数据,在本发明实施例中,如图2所示,根节点a,还可以包括:确定单元203;

确定单元203,用于接收服务器发送的业务数据;将接收到的业务数据复制得到两份相同的业务数据。

其中,不管环形网络中包括多少个叶子节点,在确定需要向相邻的叶子节点发送的业务数据时,首先接收服务器发送的业务数据,然后将接收到的业务数据复制一次,也就是说,确定出的向相邻的叶子节点发送的业务数据的份数为两份,如此,与目前技术相比,大大减少了业务数据的复制数量,从而可以大大减少占用带宽。

在本发明实施例中,对于叶子节点(b、c或d)而言,由于叶子节点同时具有接收功能和转发功能,所以通过任一转发方向上的环端口,可以接收到相邻的根节点或相邻的叶子节点转发的业务数据;例如,如图1所示,对于叶子节点d,若通过东向环端口e接收业务数据时,接收到的是叶子节点c转发的业务数据;若通过西向环端口w接收业务数据时,接收到的是根节点a发送的业务数据。

同理,通过另一转发方向上的环端口,可以将接收到的业务数据转发至相邻的根节点或相邻的叶子节点;例如,对于叶子节点d,在通过西向环端口w接收根节点a发送的业务数据时,则通过东向环端口e将业务数据转发至叶子节点c;在通过东向环端口e接收叶子节点c发送的业务数据时,则通过西向环端口w将业务数据转发至根节点a。

因此,为了使得叶子节点实现接收业务数据,以及转发业务数据,并且还可以实现业务数据的落地,在本发明实施例中,如图3所示,叶子节点(b、c或d)可以包括:接收单元301和转发单元302;

接收单元301,用于通过任一转发方向上的环端口,接收相邻的根节点或相邻的叶子节点转发的业务数据;

转发单元302,用于通过另一转发方向上的环端口,将接收到的业务数据转发至相邻的根节点或相邻的叶子节点;并将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝,并将拷贝后的业务数据发送至与本叶子节点相连的用户设备。

此外,为了使得叶子节点可以通过任一转发方向上的环端口接收业务数据,在本发明实施例中,如图3所示,叶子节点(b、c或d),还可以包括:检测单元303;

检测单元303,用于根据预设的链路检测规则,实时对本叶子节点的各环端口所在链路进行故障检测,以便于叶子节点中的状态机根据该故障检测结果确定出环端口所在链路的状态。

具体地,检测单元303可以用于在通过任一转发方向上的环端口,接收相邻的根节点或相邻的叶子节点转发的业务数据之前,根据预设的链路状态检测规则,实时检测接收业务数据的环端口所在链路的状态;在通过另一转发方向上的环端口,将接收到的业务数据转发至相邻的根节点或相邻的叶子节点之前,根据预设的链路状态检测规则,实时检测转发业务数据的环端口所在链路的状态。

也就是说,需要提前根据预设的链路状态检测规则,确定接收业务数据的环端口所在链路的状态为正常状态,以实现业务数据的正常接收;需要提前根据预设的链路状态检测规则,确定转发业务数据的环端口所在链路的状态为正常状态,以实现业务数据的正常转发。

需要注意的是,在本发明实施例中提及的确定接收业务数据的环端口所在链路的状态为正常状态,以及确定转发业务数据的环端口所在链路的状态为正常状态,目的是要确定出环端口所在链路的状态。

在本发明实施例中,环端口所在链路的状态是指:叶子节点的一个环端口到根节点之间的链路的状态。例如,如图1所示的环形网络,叶子节点c的东向环端口e所在的链路的状态为:叶子节点c的东向环端口e到叶子节点b的西向环端口w之间的链路状态,以及叶子节点b的东向环端口e到根节点a的西向环端口w之间的链路的状态;若叶子节点b与根节点a之间的链路状态为正常状态,且叶子节点c与叶子节点b之间的链路状态为正常状态时,则说明叶子节点c的东向环端口e所在的链路的状态为正常状态;若叶子节点b与根节点a之间的链路的状态为故障状态,和/或叶子节点c与叶子节点b之间的链路为故障状态时,则说明叶子节点c的东向环端口e所在的链路的状态为故障状态。

在具体实施时,为了实现业务数据的落地,在本发明实施例中,如图3所示,叶子节点(b、c或d)还可以包括:状态机304;

状态机304,用于根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,以使对通过作为业务数据落地源的环端口接收到的业务数据进行拷贝或复制,并将拷贝后的或复制后的业务数据发送至与本叶子节点相连的用户设备。

其中,状态机304的状态变换可参见图4所示,且每个叶子节点内均会配置一个状态机304,以便于随时确定作为业务数据落地源的环端口,实现业务的落地。

可选地,在本发明实施例中,叶子节点中的状态机304,具体用于:

确定预设的业务选择逻辑为自动切换状态还是切换锁定状态;

若确定预设的业务选择逻辑为切换锁定状态,则将被锁定的转发方向上的环端口作为业务数据落地源;

若确定预设的业务选择逻辑为自动切换状态时,确定当前作为业务数据落地源的环端口所在链路的状态是否为故障状态;

若确定当前作为业务数据落地源的环端口所在链路的状态不是故障状态,则保持该环端口作为业务数据落地源;

若确定当前作为业务数据落地源的环端口所在链路的状态为故障状态,确定另一转发方向上的环端口所在链路的状态是否为故障状态;其中,另一转发方向上的环端口不同于当前作为业务数据落地源的环端口;

若确定另一转发方向上的环端口所在链路的状态为故障状态,则随机选择一个转发方向上的环端口重新作为业务数据落地源;或保持该当前环端口作为业务数据落地源不变;或固定约定一个转发方向上的环端口重新作为业务数据落地源;

若确定另一转发方向上的环端口所在链路的状态不是故障状态,则将另一转发方向上的环端口重新作为业务数据落地源。

在本发明实施例中,状态机执行的是动态维护业务数据落地源的选择过程,只要当前作为业务数据落地源的环端口所在链路的状态发生故障,就需要根据情况判断是切换还是保持,以保证业务数据可以正常地落地。也就是说,在其中一个转发方向上的环端口所在链路的状态为故障状态时,可以根据业务选择逻辑,重新确定作为业务数据落地源的环端口,以实现业务数据的落地,提高了业务的保护功能。

参见图4所示的状态机中,包括三大状态,分别为初始状态1,自动切换状态2和切换锁定状态3;在初始状态1时,叶子节点仅具有双向转发功能,并不会进行业务的落地;并且,在初始状态下,状态机304,还具体用于可通过以下三种方法中的任意一种方法确定初始时作为业务数据落地源的默认环端口:

第一种方法,根据预先配置将叶子节点中的其中一个转发方向上的环端口作为业务数据落地源;如此,可以人工手动配置业务数据落地源,并且每个叶子节点中作为默认业务数据落地源的环端口可以设置为不同。

第二种方法,确定叶子节点的第一转发方向上的环端口作为业务数据落地源,以使所有叶子节点的同一转发方向上的环端口作为业务数据落地源;此时,第一转发方向上的环端口可以为东向环端口e,还可以为西向环端口w;也就是说,设置所有叶子节点的西向环端口w作为业务数据落地源,或设置所有叶子节点的东向环端口e作为业务数据落地源,以使所有叶子节点中作为业务数据落地源的默认环端口为同一转发方向上的环端口。

第三种方法,根据叶子节点的各环端口距离根节点的远近,确定业务数据落地源。

具体地,在采用上述第三种方法时,根节点需要通过两个转发方向上的环端口向相邻的叶子节点发送测距报文,其中,测距报文中携带有跳数信息,叶子节点在接收到测距报文后解析该测距报文,记录下测距报文中携带的跳数信息以及接收测距报文的环端口信息,然后该叶子节点将跳数加一后,通过另一转发方向上的环端口,将跳数增加后的测距报文转发至相邻的叶子节点,直至转发至根节点。

其中,测距报文可以使用一种固定格式的报文,如指定媒体访问控制(mediaaccesscontrol,mac)地址,或指定虚拟局域网(virtuallocalareanetwork,vlan),或自定义格式的报文,此处并不限定,只要测距报文能够在环形网络中转发,且能够被环形网络中的根节点和叶子节点所识别即可。

因此,在根据叶子节点的各环端口距离根节点的远近,确定业务数据落地源时,叶子节点可以选择跳数较少的一个转发方向上的环端口作为业务数据落地源;但若两个转发方向上的环端口的跳数相同时,则可以默认选择东向环端口e或西向环端口w作为业务数据落地源。

可选地,在初始状态1完成初始时作为业务数据落地源的默认环端口的配置之后,即进入自动切换状态2;因此,在本发明实施例中,在业务选择逻辑的状态还包括初始状态时,状态机还可以具体用于:

在业务选择逻辑为初始状态时,接收到配置环网保护落地的指示操作后,选定默认环端口作为业务数据落地源,进入自动切换状态;

在业务选择逻辑为自动切换状态时,接收到锁定业务数据落地源的指示操作后,进入切换锁定状态。

下面结合具体实施例,对状态机确定作为业务数据落地源的环端口的具体工作过程进行详细描述。

例如,以图1的环形网络为例,对于叶子节点d来讲,若东向环端口e作为业务数据落地源,如图4中的4所示的状态,且确定东向环端口e所在链路(叶子节点d—叶子节点c—叶子节点b—根节点a之间的链路)的状态为故障状态时,需要进一步确定西向环端口w所在链路(叶子节点d—根节点a之间的链路)的状态是否为故障状态,若是,那么说明叶子节点d的两个转发方向上的环端口所在链路均为故障状态,即双方向故障,如图4中的5所示的状态,此时则可以随机选择一个转发方向上的环端口作为业务数据落地源;或保持东向环端口e作为业务数据落地源;或固定约定一个转发方向上的环端口作为业务数据落地源;若否,那么说明西向环端口w所在链路的状态是正常的,即单向故障,因此可以将西向环端口w作为业务数据落地源,如图4中的6所示的状态,以实现业务的落地。

其中,西向环端口w所在链路的状态是正常的,包括两种含义,第一种含义为西向环端口w所在链路的状态始终为正常状态,第二种含义为西向环端口w所在链路的状态由故障状态恢复为正常状态;但不管是哪种含义,只要保证西向环端口w所在链路的状态是正常状态即可。

可选地,在自动切换状态2下,若执行锁定操作时,状态机即进入切换锁定状态3,此时,状态机不响应西向环端口w和东向环端口e所在链路的通告报文,而是将被锁定的转发方向上的环端口作为业务数据落地源。其中,不响应是指:状态机不响应,不进行业务数据落地源的动态切换;但是,叶子节点还是会将接收到的通告报文转发至相邻的节点。切换锁定状态3的设置,可以发生在进行线路检测,或链路故障检测机制不生效等情况下,且需要人工干预,需要说明的是,切换锁定状态3的设置,可以增加网络管理员对网络情况控制的灵活性。

需要说明的是,参见图4所示的状态机,若状态机在切换锁定状态3时,执行了清除锁定的操作,状态机会根据所在叶子节点上各环端口所在链路的实际状态进入具体状态;并且,若状态机在自动切换状态2时,删除了业务数据落地源,则状态机进入初始状态1;同样地,如状态机在切换锁定状态3时,删除了业务数据落地源,则状态机也进入初始状态1。

通过状态机,使得每个叶子节点在进行业务数据落地源的选择时,不需要依赖其他叶子节点的选择结果,业务数据落地源的选择与环形网络上设置的节点数目无关;并且,在检测到链路发生故障后,环形网络保护的操作仅仅是业务数据落地源的选择,十分简单快速,无需关注和处理两个环端口的收发使能情况,可以快速地实现业务的恢复,满足了电信级50毫秒的性能要求。

在具体实施时,在本发明实施例中,叶子节点中的检测单元303在根据预设的链路检测规则,实时对本节点的各环端口所在链路进行故障检测时,此时的状态机还具体用于:基于检测单元的故障检测结果,确定当前作为业务数据落地源的环端口所在链路的状态是否为故障状态;从而,使得状态机可以根据检测单元的检测结果,确定业务数据落地源的环端口,实现业务数据的落地。

并且,预设的链路检测规则可以为两个相邻节点之间的双向链路检测规则,还可以为根节点与叶子节点之间的单向链路检测规则。其中,对于两个相邻节点之间的双向链路检测规则,在确定接收或转发业务数据的环端口所在链路的状态时,可以采用目前技术中所采用的检测机制,在此并不限定。例如基于相邻节点之间双向信道tunnel创建的连续性检查消息(contionulcheckmessage,ccm)、双向转发检测(bidirectionalforwardingdetection,bfd)等机制,或,基于tunnel所用vlan的段层ccm、bfd等机制,或各节点的环端口up/down检测机制,或自定义的通信机制,且该通信机制仅在相邻节点之间转发。

可选地,若预设的链路检测规则为两个相邻节点之间的双向链路检测规则,检测单元303,具体用于:

实时检测本叶子节点与相邻节点之间的链路状态是否为故障状态或故障恢复状态;

若是,则生成包含有如下方向信息的通告报文:本叶子节点上连接故障状态或故障恢复状态的链路的环端口的转发方向;

按照第一预设周期,将通告报文通过另一转发方向上的环端口发出,以在环形网络中传输通告报文,直至根节点;

将本叶子节点生成的通告报文,或者接收到的相邻节点发送的通告报文,通告至本叶子节点内的状态机;

状态机,具体用于:读取检测单元发送的通告报文所携带的方向信息;确定本叶子节点上读取到的转发方向侧的环端口所在链路为故障状态/故障恢复状态。

具体地,若检测出本节点与相邻节点之间的链路的状态为故障状态时,则生成通告报文,且通告报文中至少包含连接故障状态的链路的环端口的转发方向的信息;然后,再将该通告报文通过另一转发方向上的环端口转发出去;同时,再将通告报文通告给自身内部的状态机,以使状态机根据通告报文中携带的方向信息确定自身中与该方向信息对应的环端口所在链路的状态。

当然,若检测本节点与相邻节点之间的链路的状态为故障恢复状态时,和故障状态时的步骤相似,但需要注意的是,此时生成的通告报文中至少包含的是故障恢复状态的链路的环端口的转发方向的信息。

从而,采用该种检测规则可以在环形网络中的相邻节点之间建立检测通路,使得各段链路所占用的带宽固定,减少了检测机制所占用的额外带宽;并且,仅在检测到故障之后,进行故障信息逐节点的通告,从而保证环形网络中的各节点可以实现业务数据的落地。

其中,通告报文可以设计为专用的报文,且报文中使用专门的约定的固定mac,将故障消息填充或故障恢复消息在报文的固定位置;并且,针对链路发生故障生成的通告报文中,还可以包括:故障节点、故障节点的标识、故障类型等信息,以便于其他节点查看。需要指出的是,在链路为故障恢复状态时,通告报文还可以包括:故障恢复节点、故障恢复节点的标识等信息,以便于其他节点的查看。

此外,对于故障的叶子节点来讲,会生成通告报文,然后发送给自身的状态机304以确定作为业务数据落地源的环端口,同时还要通过另外的一个转发方向上的环端口将通告报文转发出去;而对于非故障的叶子节点,也就是其他叶子节点来讲,会接收到相邻的叶子节点发送或转发的通告报文,此时该叶子节点同样会将通告报文发送至自身的状态机304以确定作为业务数据落地源的环端口,同时也会通过另外的一个转发方向上的环端口将通告报文转发出去,以使环形网络上的各叶子节点上的状态机304,均会确定出作为业务数据落地源的环端口,以保证业务数据的正常落地。

下面举例说明双向链路检测规则,如图1所示的环形网络,若叶子节点c和叶子节点d之间的链路出现故障后,对于叶子节点c来讲,会生成通告报文,并将通告报文发送至叶子节点c中的状态机,以使状态机确定作为业务数据落地源的环端口,同时,叶子节点c还通过西向环端口w将通告报文转发至根节点a,而根节点a由于阻塞接收所以会丢弃叶子节点c转发的通告报文。

同样地,对于叶子节点d来讲,同样会生成通告报文,并将通告报文发送至叶子节点d中的状态机,以使状态机确定作为业务数据落地源的环端口,同时,叶子节点d还通过东向环端口e将通告报文转发至叶子节点b。

同理,对于叶子节点b来讲,将接收到的通告报文发送至自身的状态机,以使状态机确定作为业务数据落地源的环端口的同时,还将通告报文通过东向环端口e转发至根节点a,而根节点a由于阻塞接收所以会丢弃叶子节点b转发的通告报文。

可选地,对于根节点与叶子节点之间的单向链路检测规则,在本发明实施例中,根节点中的发送单元201,还用于按照第二预设周期,通过两个转发方向上的环端口,向相邻的叶子节点发送针对环形网络中各叶子节点的各检测报文;且各叶子节点可以独立维护其两个转发方向上与根节点链路的状态;并且,此种检测规则,可以增加根节点与叶子节点之间的交互,而减少叶子节点之间的通告报文的交互,简化了某个链路故障之后的处理过程;

而此时,叶子节点中的检测单元303,具体用于:

确定是否通过任一转发方向的环端口接收到根节点按照第二预设周期发送的检测报文;

在确定通过一个转发方向的环端口接收到根节点按照第二预设周期发送的检测报文时,识别该检测报文携带的目的媒体访问控制mac地址与本叶子节点的mac地址是否相同;

若是,则确定接收到根节点针对本叶子节点发送的检测报文;

若不是,则将接收到的检测报文通过另一转发方向上的环端口转发至相邻的节点;其中,另一转发方向上的环端口不同于接收检测报文的环端口;

根据环端口对根节点针对本叶子节点发送的检测报文的接收情况,进行该环端口所在链路的故障检测。

具体地,在本发明实施例中,一端设备根据对对端设备发送的检测报文的接收情况,进行该两个设备间链路的故障检测为现有技术,可以采用本领域技术人员所熟知的任何可以实现的方式,在此不作限定。

作为一种具体实现方式,在本发明实施例中,若识别出接收到的该检测报文是根节点针对本叶子节点发送的,可以利用目前的检测机制(如根节点与叶子节点之间的双向tunnel中的单向ccm或bfd机制,或专用的报文检测机制等),根据检测报文,进一步确定接收到检测报文的环端口所在链路的状态是故障状态还是正常状态。例如,若在连续三个第二预设周期内两个转发方向上的环端口中的一个转发方向上的环端口均未接收到根节点针对本叶子节点发送的检测报文时,则可以确定该转发方向上的环端口所在链路的状态为故障状态。

其中,对于在连续三个第二预设周期内均未接收到根节点针对本叶子节点发送的检测报文,可以理解为:叶子节点在连续三个第二预设周期内,通过该转发方向上的环端口根本没有接收到根节点发送的检测报文;或叶子节点在连续三个第二预设周期内,通过该转发方向上的环端口接收到了根节点发送的检测报文,但该检测报文不是根节点针对本叶子节点发送的。因此,不管是上述何种情况,均为在通过该转发方向上的环端口,连续三个第二预设周期内均未接收到根节点针对本叶子节点发送的检测报文,那么此时则可以确定叶子节点的该转发方向上的环端口所在链路的状态为故障状态。

需要说明的是,若在环形网络中,若存在不进行业务落地的叶子节点时,在本发明实施例中,在收到检测报文后,可以首先提取本节点预先配置的信息,以获取本节点的角色,因此,在本发明实施例中,检测单元303,还具体用于:确定本节点的角色是否为进行业务数据落地的叶子节点;若是,则可以进一步确定检测报文携带的目的mac地址与自身的mac地址是否相同;若不是,则无需再确定检测报文携带的目的mac地址与自身的mac地址是否相同,而是将接收到的检测报文通过另一转发方向上环端口转发至相邻的节点即可,以减少不必要的操作,简化处理过程。当然,在本发明实施例中,均是以各叶子节点均为业务数据落地的叶子节点为例进行说明的。

下面举例说明单向链路检测规则,参见图1所示的环形网络,对于叶子节点b来讲:

步骤一、在第二预设周期内,若通过东向环端口e接收到根节点a发送的检测报文时,提取检测报文中携带的目的mac,并与自身的mac地址进行比较;若相同,执行步骤二;若不同,执行步骤三;

步骤二、说明该检测报文是根节点a针对叶子节点b发送的,然后利用目前的检测机制,并根据该检测报文,进一步确定东向环端口e所在链路的状态;

步骤三、说明该检测报文不是根节点a针对叶子节点b发送的,此时,叶子节点b将该检测报文通过西向环端口w转发至相邻的叶子节点c;

步骤四、若通过东向环端口e,在连续三个第二预设周期内均未收到根节点a针对叶子节点b发送的检测报文时,确定叶子节点b的东向环端口e所在链路的状态为故障状态。

若叶子节点b和叶子节点c之间的链路出现故障,叶子节点c在连续三个第二预设周期内,通过东向环端口e不会收到叶子节点b转发的检测报文,此时,叶子节点c的东向环端口e所在链路出现故障,并且由于是单向链路检测规则,所以叶子节点c不会生成通告报文,进而也就不会向相邻节点转发通告报文,以减少叶子节点之间的交互。当然,若叶子节点b在连续三个第二预设周期内,通过东向环端口e接收不到根节点a发送的检测报文时,则可以确定其东向环端口e所在链路出现故障。

对于此单向链路检测规则,在确定链路恢复正常时,在本发明实施例中,检测单元303,还具体用于:若通过连接故障状态的链路的环端口重新接收到根节点按照第二预设周期发送的检测报文且满足预设要求时,确定故障状态的链路恢复正常;其中,满足预设要求可以理解为:在连续三个第二预设周期内均通过连接故障状态的链路的环端口,重新接收到根节点发送的检测报文;如此设置,可以避免因网络不稳定而造成的链路状态的误判,提高链路状态检测规则的准确性。当然,预设要求并不限于上述内容,可以根据协议本身来确定,在此并不限定。

基于同一发明构思,本发明实施例提供了一种业务数据转发方法,采用如本发明实施例提供的上述环形网络实现;如图5所示,包括:

s501、根节点通过两个转发方向上的环端口,将两份相同的业务数据分别发送至与根节点的两个转发方向上的环端口相邻的叶子节点;

其中,不管环形网络中包括多少个叶子节点,在确定需要向相邻的叶子节点发送的业务数据时,首先接收服务器发送的业务数据,然后将接收到的业务数据复制一次,也就是说,确定出的向相邻的叶子节点发送的业务数据的份数为两份,如此,与目前技术相比,大大减少了业务数据的复制数量,从而可以大大减少占用的带宽份数。

s502、叶子节点通过任一转发方向上的环端口,接收相邻的根节点或相邻的叶子节点转发的业务数据;

例如,如图1所示,对于叶子节点d,若通过东向环端口e接收业务数据时,接收的是叶子节点c转发的业务数据;若通过西向环端口w接收业务数据时,接收到的是根节点a发送的业务数据。

s503、叶子节点通过另一转发方向上的环端口,将接收到的业务数据转发至相邻的根节点或相邻的叶子节点;

例如,对于叶子节点d,在通过西向环端口w接收根节点a发送的业务数据时,则通过东向环端口e将业务数据转发至叶子节点c;在通过东向环端口e接收叶子节点c发送的业务数据时,则通过西向环端口w将业务数据转发至根节点a。

s504、叶子节点将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝之后发送至与本叶子节点相连的用户设备;

其中,作为业务数据落地源的环端口为一个转发方向上的环端口。

s505、根节点丢弃相邻的叶子节点转发的业务数据。

其中,由于步骤s505针对的是根节点在收到相邻的叶子节点转发的业务数据时所要执行的动作,而步骤s504针对的是叶子节点所要执行的动作,且该动作可以与步骤s503的动作同时进行,也可以先后进行,所以步骤s505与步骤s504的执行过程并不会相互影响,具体可参加图5所示。

可选地,在本发明实施例中提及的作为业务数据落地源的环端口是叶子节点中的状态机确定出的;因此,在叶子节点中包括状态机时,方法还包括:状态机根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,以使对通过作为业务数据落地源的环端口接收到的业务数据进行拷贝,并将拷贝后的业务数据发送至与本叶子节点相连的用户设备。

并且,在本发明实施例中,状态机根据预设的业务选择逻辑,确定作为业务数据落地源的环端口,可以具体包括:

确定预设的业务选择逻辑为自动切换状态还是切换锁定状态;

若确定预设的业务选择逻辑为切换锁定状态,则将被锁定的转发方向上的环端口作为业务数据落地源;

若确定预设的业务选择逻辑为自动切换状态时,确定当前作为业务数据落地源的环端口所在链路的状态是否为故障状态;

若确定当前作为业务数据落地源的环端口所在链路的状态不是故障状态,则保持该环端口作为业务数据落地源;

若确定当前作为业务数据落地源的环端口所在链路的状态为故障状态,确定另一转发方向上的环端口所在链路的状态是否为故障状态;其中,另一转发方向上的环端口不同于当前作为业务数据落地源的环端口;

若确定另一转发方向上的环端口所在链路的状态为故障状态,则随机选择一个转发方向上的环端口重新作为业务数据落地源;或保持当前业务数据落地源不变;或固定约定一个转发方向上的环端口重新作为业务数据落地源;

若确定另一转发方向上的环端口所在链路的状态不是故障状态,则将另一转发方向上的环端口重新作为业务数据落地源。

此外,虽然状态机执行的是一个动态维护业务数据落地源的选择过程,但在状态机从初始状态进入自动切换状态时,会初始确定出作为业务数据落地源的默认环端口;因此,状态机确定初始时作为业务数据落地源的默认环端口,具体包括:

根据预先配置将叶子节点中的其中一个转发方向上的环端口作为业务数据落地源;或者

确定叶子节点的第一转发方向上的环端口作为业务数据落地源,以使所有叶子节点的同一转发方向上的环端口作为业务数据落地源;或者

根据叶子节点的各环端口距离根节点的远近,确定业务数据落地源。

下面对于业务数据从服务器经过环形网络发送至用户设备的过程进行说明:

如图1所示的环形网络,根节点a通过uni接口与服务器相连,所以根节点a可以通过uni接口接收服务器提供的多播业务数据,然后经过复制之后从两个转发方向上的环端口(东向环端口e和西向环端口w)发送至相邻的叶子节点d和b;对于叶子节点b、c和d,由于具有转发功能,所以每个叶子节点均会收到两份相同的业务数据,然后对于任一叶子节点,根据其内部的业务选择逻辑,确定作为业务数据落地源的环端口,然后将通过该环端口接收到的业务数据通过uni接口发送至用户设备。

需要指出的是,若与一个叶子节点相连的用户设备为多个时,该叶子节点会根据连接的用户设备的数量拷贝或复制业务数据,然后发送至各用户设备(其中图1中叶子节点处的实线箭头表示业务数据的落地),实现业务数据的转发和落地,为用户提供业务服务。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

本发明实施例提供了一种环形网络及业务数据转发方法,根节点可以通过两个转发方向上的环端口分别向相邻的叶子节点发送业务数据,实现业务数据的双向发送;对于叶子节点,可以在任一转发方向上的环端口接收业务数据,并通过另一转发方向上的环端口转发出去,从而使得叶子节点同时具有接收功能和转发功能,进而使得叶子节点可以接收到两份完全相同的业务数据,再将通过作为业务数据落地源的环端口接收到的业务数据进行拷贝之后发送至用户设备,实现业务数据的落地,如此,根节点在确定需要发送的业务数据时,不需要像现有技术那样由叶子节点的设置数量来确定复制份数,所以大大减少了根节点复制业务数据的份数,从而可以有效减少靠近根节点的链路带宽压力。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1