一种组播报文传输方法以及转发设备与流程

文档序号:11778180阅读:230来源:国知局
一种组播报文传输方法以及转发设备与流程

本申请涉及通信技术领域,特别是涉及一种组播报文传输方法以及转发设备。



背景技术:

随着通信技术的发展,组播技术得到了广泛应用,组播技术是一种单个发送端与多个接收端之间进行网络通信的技术,在发送端和每一接收端之间实现点对多点的网络连接。全局有序性是指发送端发送的消息在所有接收端被接收的顺序相同的特性。如图1所示,发送端,比如客户端clienta,向接收端p、q和r发送数据b,并向接收端p、q和r发送数据d。发送端,比如clientb,向接收端p、q和r发送数据a,并向接收端p、q和r发送数据c。如果接收端p、q和r接收到来自clienta和clientb的数据次序相同,如接收到的数据次序为a->b->c->d,则实现了组播技术的全局有序性。

全局有序性应用在组播技术中,能够使分布式系统在数据分发和数据复制功能上保证强一致性,具有重要意义。但是,目前组播技术的全局有序性无法得到有效地保证。如何实现组播技术的全局有序性成为目前亟待解决的问题。



技术实现要素:

本申请实施例的目的是提供一种组播报文传输方法以及转发设备,有助于实现多个接收组播报文的设备接收到的组播报文的顺序相同。

为实现上述目的,本申请实施例提供了如下方案:

第一方面,提供了一种组播报文传输方法,包括:第一转发设备接收来自下游端口的组播报文;所述第一转发设备获取虚拟令牌;所述第一转发设备在获取所述虚拟令牌后,沿最短路径通过所述上游端口发送所述组播报文;所述第一转发设备在沿最短路径发送所述组播报文之后,所述第一转发设备发送所述虚拟令牌。

其中,所述下游端口为所述第一转发设备上能够与组播接收者通信的端 口。所述下游端口可以是直接与连接组播接收者的转发设备通信的端口。

其中,所述虚拟令牌用于指示接收到所述虚拟令牌的转发设备向其上游端口发送来自其下游端口的组播报文。所述接收到所述虚拟令牌的转发设备的上游端口是能够与上游设备通信的端口,所述上游设备是所述接收到所述虚拟令牌的转发设备,所述上游设备用于向所述接收到所述虚拟令牌的转发设备发送来自所述组播源的组播报文。可选地,所述虚拟令牌还包括组播组的标识。所述组播报文为与所述组播组对应的组播报文。

其中,所述最短路径为组播报文从所述第一转发设备到所述第二转发设备的跳数最小的路径。

申请实施例公开的上述组播报文传输方法,第一转发设备先将来自其下游端口的组播报文向第二转发设备发送,然后再将虚拟令牌向所述第二转发设备发送,且所述组播报文是沿最短路径被转发至所述第二转发设备的,实现了所述虚拟令牌被转发至所述第二转发设备之前,来自所述第一转发设备的下游端口的组播报文已经被转发至所述第二转发设备,而第二转发设备在接收到虚拟令牌后,将来自下游端口的组播报文传递到其他转发设备的时刻必然落后于所述第一转发设备向第二转发设备发送的组播报文到达第二转发设备的时刻,有助于实现组播的全局有序性。

在一个可选的实现中,本申请实施例提供的组播报文传输方法,在所述第一转发设备通过所述上游端口发送所述组播报文之前,还包括:所述第一转发设备在所述接收到的来自所述下游端口的组播报文中添加优先级的标识。其中,通过所述上游端口发送的所述组播报文还包括所述优先级的标识。所述优先级的标识用于表示优先处理所述标识所属的组播报文。

申请实施例公开的上述组播报文传输方法,所述第一转发设备对来自其下游端口的组播报文加入优先级的标识,以实现在转发过程中,来自于所述第一转发设备的下游端口的组播报文先于虚拟令牌转发,进一步确保当虚拟令牌从第一转发设备传输到第二转发设备时,来自第一转发设备的下游端口的组播报文已经传递到第二转发设备。

在一个可选的实现中,本申请实施例提供的组播报文传输方法还包括:对 所述第一转发设备进行配置,建立所述第一转发设备所属的组播组对应的虚拟令牌环网。

申请实施例公开的上述组播报文传输方法,通过建立所述第一转发设备所属的组播组对应的虚拟令牌环网,来维护虚拟令牌的转发过程,并且,虚拟令牌环网中的各个转发设备都可以对虚拟令牌进行维护,即使某一个转发设备出现单点故障,也可以通过组播组内的其他转发设备维护虚拟令牌,不会产生单点故障的问题。而且,不需要将虚拟令牌路由到中心节点进行处理,虚拟令牌传输路径短,节省了传输开销。此外,虚拟令牌的维护工作不再在服务器的应用上执行,而是在由组播网络中的不同转发设备组成的虚拟令牌环网中执行,执行速度快,效率高。

在一个可选的实现中,本申请实施例提供的组播报文传输方法还包括:所述第一转发设备判断自身是否为所属的组播组对应的虚拟令牌环网中的根节点;如果是,则所述第一转发设备获取虚拟令牌包括:所述第一转发设备生成所述虚拟令牌;如果否,则所述第一转发设备获取虚拟令牌包括:所述第一转发设备接收第三转发设备发送的所述虚拟令牌,所述第三转发设备为所述虚拟令牌环网中的根节点,或者,所述第三转发设备为所述虚拟令牌环网中的除根节点和所述第一转发设备之外的转发设备。

其中,本申请实施例中的根节点表示作为根节点的转发设备,比如连接组播源的转发设备。

在一个可选的实现中,本申请实施例提供的组播报文传输方法中,所述对所述第一转发设备进行配置,建立所述第一转发设备所属的组播组对应的虚拟令牌环网包括:所述第一转发设备机确定自身所属的组播组的标识;所述第一转发设备获取目标转发设备所属的组播组的标识;所述第一转发设备判断所述目标转发设备所属的组播组的标识是否与自身所属的组播组的标识相同;如果相同,则所述第一转发设备向所述目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

可选地,所述建立指令还可用于指示属于同一组播组的目标转发设备维护 所述虚拟令牌。

其中,所述目标转发设备可以是所述第一转发设备所属的组播组的转发设备。

在一个可选的实现中,本申请实施例提供的组播报文传输方法中对所述第一转发设备进行配置,建立所述第一转发设备所属的组播组对应的虚拟令牌环网包括:所述第一转发设备监听互联网组管理协议igmp报文;所述第一转发设备依据监听到的所述igmp报文中包括的组播组的标识确定自身所属的组播组;所述第一转发设备根据自身所属的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文;如果是,则向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述根节点所属的虚拟令牌环网;如果否,则向自身所属的组播内的目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

其中,所述第一转发设备监听到的igmp报文包括组播组的标识,所述组播组为所述第一转发设备所属的组播组。所述成员广播报文为所述第一转发设备所属的组播组对应的虚拟令牌环网中的根节点向该组播组中的成员发出的广播报文。

在一个可选的实现中,本申请实施例提供的组播报文传输方法中对所述第一转发设备进行配置,建立所述第一转发设备所属的组播组对应的虚拟令牌环网包括:所述第一转发设备获取通用属性组播注册协议gmrp报文;所述第一转发设备依据所述gmrp报文中包括的组播组的标识,确定所述组播组的标识对应的组播组,并加入到所述组播组内;所述第一转发设备根据所述组播组的标识对应的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文,所述成员广播报文为所述组播组对应的虚拟令牌环网中的根节点向该组播组中的成员发出的广播报文;如果是,则向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述根节点所属的虚拟令牌环网;如果否,则向所述组播内的转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设 备构建虚拟令牌环网。

其中,所述gmrp报文包括所述第一转发设备所属的组播组的标识。

第二方面,提供了一种第一转发设备,包括:

接收单元,用于接收来自下游端口的组播报文;

获取单元,用于获取虚拟令牌;

第一发送单元,用于在获取所述虚拟令牌之后,沿最短路径通过所述上游端口发送所述组播报文

第二发送单元,用于在沿最短路径发送所述组播报文之后,向第二转发设备发送所述虚拟令牌。

在一个可选的实现中,本申请实施例提供的第一转发设备中,还包括:添加单元,用于对所述接收到的来自所述下游端口的组播报文添加优先级的标识。

在一个可选的实现中,本申请实施例提供的第一转发设备中,还包括:建立单元,用于对所述第一转发设备进行配置,建立所述第一转发设备所属的组播组对应的虚拟令牌环网。

在一个可选的实现中,本申请实施例提供的第一转发设备中,还包括:判断单元,所述判断单元用于判断自身是否为所属的组播组对应的虚拟令牌环网中的根节点;则所述获取单元在所述判断单元确定自身为所述根节点,生成所述虚拟令牌;所述获取单元在所述判断单元确定自身不是所述根节点,接收第三转发设备发送的所述虚拟令牌,所述第三转发设备为所述虚拟令牌环网中的作为根节点的转发设备,或者,所述第三转发设备为所述虚拟令牌环网中的除根节点和第一转发设备之外的转发设备。

在一个可选的实现中,本申请实施例提供的第一转发设备中,所述建立单元具体用于:确定自身所属的组播组的标识;获取目标转发设备所属的组播组的标识;判断所述目标转发设备所属的组播组的标识是否与自身所属的组播组的标识相同;如果是,则向所述目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环 网。

在一个可选的实现中,本申请实施例提供的第一转发设备中,所述建立单元具体用于:监听互联网组管理协议igmp报文;依据监听到的所述igmp报文中包括的组播组的标识,确定自身所属的组播组;根据自身所属的组播组,判断在预设时间内是否监听到根节点发出的成员广播报文,所述成员广播报文为所述第一转发设备所属的组播组对应的虚拟令牌环网中的根节点向该组播组的成员发出的广播报文;如果是,则向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述根节点所属的虚拟令牌环网;如果否,则向自身所属的组播内的目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备位于同一组播组内的目标转发设备构建虚拟令牌环网。

在一个可选的实现中,本申请实施例提供的第一转发设备中,所述建立单元具体用于:获取通用属性组播注册协议gmrp报文;依据所述gmrp报文中包括的组播组的标识,确定所述组播组的标识对应的组播组,并加入到所述组播组内;根据所述组播组的标识对应的组播组,判断在预设时间内是否监听到组播组内的根节点发出的成员广播报文,所述成员广播报文为所述组播组对应的虚拟令牌环网中的根节点向该目标组播组中的成员发出的广播报文;如果是,则向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述根节点所属的虚拟令牌环网;如果否,则向所述组播内的转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

第三方面,提供了一种第一转发设备,包括:处理器,存储器和通信接口;所述处理器通过通信总线与存储器和通信接口连接,所述存储器用于存储程序。所述处理器从所述存储器读取程序,执行如下操作:

通过所述通信接口中的下游端口,接收组播报文;

获取虚拟令牌,所述虚拟令牌用于指示接收到所述虚拟令牌的所述转发设备向其上游端口发送来自其下游端口的组播报文,所述上游端口是所述通信接口中能够与上游设备通信的端口;

沿最短路径通过所述通信接口中的上游端口,发送所述组播报文;

在沿最短路径发送所述组播报文之后,向第二转发设备发送所述虚拟令牌。

可选地,所述处理器可通过所述通信接口中的上游端口,向所述第二转发设备发送所述虚拟令牌。

在一些实现方式中,还包括:所述成员广播报文通过预设的第一以太帧发送;所述预设的第一以太帧的结构包括:类型type字段,所述类型type字段表示所述第一以太帧用于虚拟环网的信令;组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;子类型subtype字段,所述子类型subtype字段表示所述第一以太帧包括的报文类型,所述报文类型为成员广播报文;长度length字段,所述长度length字段表示所述成员广播报文的总长度;属性attribute字段,所述属性attribute字段表示所述成员广播报文的属性。

在一些实现方式中,还包括:所述加入报文通过预设的第二以太帧发送;所述预设的第二以太帧的结构包括:类型type字段,所述类型type字段表示所述第二以太帧用于虚拟环网的信令;组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;子类型subtype字段,所述子类型subtype字段表示所述第二以太帧包括的报文类型,所述报文类型为加入报文;长度length字段,所述长度length字段表示所述加入报文的总长度;属性attribute字段,所述属性attribute字段表示所述加入报文的属性。

在一些实现方式中,还包括:所述虚拟令牌通过预设的第三以太帧发送;所述预设的第三以太帧的结构包括:类型type字段,所述类型type字段表示所述第二以太帧用于虚拟环网的信令;组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;子类型subtype字段,所述子类型subtype字段表示所述第三以太帧包括的报文类型,所述报文类型为虚拟令牌;长度length字段,所述长度length字段表示所述虚拟令牌的总长度;属性attribute字段,所述属性attribute字段表示所述虚拟令牌的属性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例的附图。

图1为现有技术中公开的一种组播技术传输示意图;

图2为本发明实施例公开的一种通过tor交换机保证组播的全局有序性的拓扑网络架构示意图;

图3为本发明实施例公开的另一种通过tor交换机保证组播的全局有序性的拓扑网络架构示意图;

图4为本发明实施例公开的一种以太帧帧结构示意图;

图5为本发明实施例公开的一种组播报文传输方法流程示意图;

图6为本发明实施例公开的一种转发设备结构示意图;

图7为本发明实施例公开的另一种转发设备结构示意图。

具体实施方式

本申请实施例公开的组播报文传输方法可以应用在架顶(topofrack,tor)交换机上,所述tor交换机设置在服务器与组播源之间。所述服务器可以是能够与组播接收者通信的服务器。所述服务器还可被替换为能够与组播接收者通信的转发设备。当然,本申请实施例公开的组播报文传输方法也可以应用在路由器或其他转发设备上。下面,以应用在tor交换机上的情况为例,对本申请实施例公开的组播报文传输方法进行介绍。

图2为本申请实施例中公开的一种组播报文传输的拓扑网络架构。该网络架构属于两层拓扑网络架构。其中,该拓扑网络架构中的s1和s2为核心交换机。s3、s4和s5为tor交换机。c1、c2、n1、n2和n3为挂载在该拓扑网络架构中tor交换机之下的,并且属于同一个组播组内的服务器。tor交换机可用于进行组播报文的转发。

本申请实施例中公开的通过tor交换机保证组播的全局有序性的拓扑网络架构并不限于附图2中公开的两层拓扑网络架,还可以是包含tor交换机、汇聚交换机和核心交换机的三层以上的拓扑网络架构如图3所示。即三层以上 的拓扑网络架构可以在图2的tor交换机所在的一层和核心交换机所在的一层之间,增加一层或多层网络层,所述一层或多层网络层包含一台或多台汇聚交换机。

为了解决目前无法保证组播全局有序性的技术问题,本申请实施例中,tor交换机预先建立虚拟令牌环网,用于进行虚拟令牌的维护以及转发。所述虚拟令牌用于触发所述tor交换机发送来自下游端口的组播报文。第一tor交换机先将来自其下游端口的组播报文向第二tor交换机发送,然后再将虚拟令牌向所述第二tor交换机发送,且所述组播报文是沿最短路径被转发至所述第二tor交换机的,实现了所述虚拟令牌被转发至所述第二tor交换机之前,来自所述第一tor交换机的下游端口的组播报文已经被转发至所述第二tor交换机,而第二转发设备在接收到虚拟令牌后,将来自下游端口的组播报文传递到其他转发设备的时刻必然落后于所述第一转发设备向第二转发设备发送的组播报文到达第二转发设备的时刻,有助于实现组播的全局有序性。

其中,本申请实施例中对所述第一tor交换机进行配置,建立所述第一tor交换机所属的组播组对应的虚拟令牌环网的过程如下:

1.静态配置方式:

由于每tor交换机能挂载数十个服务器,在数百台服务器环境下的分布式系统中,也只需要配置少量tor交换机,因此,在tor交换机数量比较少的分布式系统中,tor交换机可以采用静态配置的方式建立虚拟令牌环网,虚拟令牌环网中的交换机之间进行令牌的传递和维护。所述静态配置方式是在默认所述tor交换机自身为所属的组播组对应的虚拟令牌环网中的根节点交换机的情况下执行的,具体过程如下:

所述第一tor交换机确定自身所属的组播组标识;

所述第一tor交换机获取目标交换机所属的组播组标识;

所述第一tor交换机判断目标交换机所属的组播组标识是否与自身所属的组播组标识相同;

如果是,则向所述其他tor交换机发送建立指令,所述建立指令用于指示与所述第一tor交换机属于同一组播组的目标交换机构建虚拟令牌环网;

如果否,则放弃,继续判断其他的交换机所属的组播组标识是否与自身所属的组播组标识相同。

其中,所述目标交换机可以是所述第一tor交换机所属的组播组的转发设备。

2.动态配置方式:

具体的,tor交换机可以选择通过互联网组管理协议窥探(internetgroupmanagementprotocolsnooping,igmpsnooping)的方式或者采用gmrp(garpmulticastregistrationprotocol)构建虚拟令牌环:

其中,所述tor交换机通过igmp方式对所述第一tor交换机进行配置,建立虚拟令牌环网的过程包括:

所述第一tor交换机监听互联网组管理协议igmp报文;

所述第一tor交换机依据所述igmp报文中包括的组播组的标识,确定所述第一tor交换机所属的组播组;

所述第一tor交换机根据所述第一tor交换机所属的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文;

如果是,则所述第一tor交换机向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述虚拟令牌环网;

如果否,则所述第一tor交换机向自身所属的组播内的目标tor交换机发送建立指令,所述建立指令用于指示与所述第一tor交换机属于同一组播组的目标tor交换机构建虚拟令牌环网。

其中,所述第一tor交换机监听到的igmp报文包括组播组的标识,所述组播组为所述第一tor交换机所属的组播组。所述成员广播报文为所述第一tor交换机所属的组播组对应的虚拟令牌环网中的根节点向该组播组中的成员发出的广播报文。

其中,所述tor交换机通过gmrp方式对所述第一tor交换机进行配置,建立虚拟令牌环网的过程包括:

所述第一tor交换机获取通用属性组播注册协议gmrp报文;

所述第一tor交换机依据所述gmrp报文中包括的组播组的标识,确定 所述组播组的标识对应的组播组,并加入到所述组播组内;

所述第一tor交换机根据所述组播组的标识对应的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文;

如果是,则所述第一tor交换机向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述根节点所属的虚拟令牌环网;

如果否,则所述第一tor交换机向所述组播内的tor交换机发送建立指令,所述建立指令用于指示与所述第一tor交换机属于同一组播组的目标tor交换机构建虚拟令牌环网。

具体的,如图4所示,本申请实施例是对ethernetii以太帧进行了扩展,分别生成了第一以太帧、第二以太帧以及第三以太帧。第一以太帧用来发送成员广播报文,第二以太帧用来发送加入报文,第三以太帧用来发送虚拟令牌。

需要说明的是,结合表1所示,发明实施例对ethernetii以太帧进行扩展具体为:对ethernetii以太帧的类型type位进行扩充:扩充后的大小如0x88d1,表示用于虚拟环网的信令。dmac表示目的mac地址,smac表示源mac地址,crc表示循环冗余校验。

在数据data部分中包含以下帧内容:组播地址multicastaddr表示由tor交换机构成的用于维护令牌传递的虚拟环网的组播地址。子类型subtype表示由tor交换机构成的用于维护令牌传递的虚拟环网过程中的不同报文类型,如上述提及的加入报文,成员广播报文、令牌等。长度length表示data报文的总长度。在数据data部分中还可以包括根据子类型subtype的类型不同而定义的不同的帧内容。如果子类型subtype表示令牌报文,后续可包括序列号,由tor交换机构成的用于维护令牌传递的虚拟环网成员列表等。其中,表1中属性attribute字段中所列举的属性不一定都出现在第一以太帧、第二以太帧以及第三以太帧中,需要结合所述第一以太帧、第二以太帧以及第三以太帧中分别携带的报文类型确定,比如在加入报文中,可不需要有组成员。

表1

下面分别针对发送成员广播报文、加入报文以及虚拟令牌的第一以太帧、第二以太帧以及第三以太帧的帧结构进行具体说明:

其中,所述成员广播报文通过预设的第一以太帧发送;

所述预设的第一以太帧的结构包括:

类型type字段,所述类型type字段表示所述第一以太帧用于虚拟环网的信令;

组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;

子类型subtype字段,所述子类型subtype字段表示所述第一以太帧携带的报文类型,所述报文类型为成员广播报文;

长度length字段,所述长度length字段表示所述成员广播报文的总长度;

属性attribute字段,所述属性attribute字段表示所述成员广播报文的属性。

其中,所述加入报文通过预设的第二以太帧发送;

所述预设的第二以太帧的结构包括:

类型type字段,所述类型type字段表示所述第二以太帧用于虚拟环网的信令;

组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;

子类型subtype字段,所述子类型subtype字段表示所述第二以太帧携带的报文类型,所述报文类型为加入报文;

长度length字段,所述长度length字段表示所述加入报文的总长度;

属性attribute字段,所述属性attribute字段表示所述加入报文的属性。所述虚拟令牌通过预设的第三以太帧发送;

所述预设的第三以太帧的结构包括:

类型type字段,所述类型type字段表示所述第二以太帧用于虚拟环网的信令;

组播地址multicastaddr字段,所述组播地址multicastaddr字段表示虚拟环网的组播地址;

子类型subtype字段,所述子类型subtype字段表示所述第三以太帧携带的报文类型,所述报文类型为虚拟令牌;

长度length字段,所述长度length字段表示所述虚拟令牌的总长度;

属性attribute字段,所述属性attribute字段表示所述虚拟令牌的属性。

在对所述第一tor交换机完成配置,建立虚拟令牌环网后,由虚拟令牌环网内的tor交换机进行虚拟令牌的维护以及转发,保证组播的全局有序性。

下面请参阅图5,为本申请实施例提供的一种基于建立的虚拟令牌环网进行组播报文传输的方法的流程图,所述方法由tor交换机执行,本实施例中以图2中的任意一个tor交换机为例进行说明,所述方法包括:

s101:第一tor交换机接收来自下游端口的组播报文;

需要说明的是,所述第一tor交换机接收到的组播报文,可能是来自所述第一tor交换机中下游端口的组播报文,或者是来自所述第一tor交换机 中上游端口的组播报文。所述下游端口是所述第一tor交换机上能够与组播接收者通信的端口,所述上游端口是能够与上游设备(如核心交换机或者汇聚交换机)通信的端口,所述上游设备是所述接收到所述虚拟令牌的核心交换机或汇聚交换机,所述上游设备用于向所述接收到所述虚拟令牌的tor交换机发送来自所述组播源的组播报文。

可选地,所述第一tor交换机接收到来自上游端口的组播报文后,会根据组播组的标识,确定组播接收者对应的下游端口。所述第一tor交换机可通过所确定的下游端口,需要接收该组播报文的组播接收者发送所述组播报文。

如附图2中,对于tor交换机s3来讲,与服务器连接的端口为下游端口,如与服务器c1相连接的端口则为下游端口。与核心交换机或者汇聚交换机相连接的端口为上游端口,如与s1相连接的端口为上游端口。

s102:第一tor交换机获取虚拟令牌,所述虚拟令牌用于指示接收到所述虚拟令牌的tor交换机向其上游端口发送来自其下游端口的组播报文;

可选的,所述虚拟令牌还包括组播组的标识,所述组播报文为与所述组播组对应的组播报文。

在所述第一tor交换机为虚拟令牌环网的根节点的情况下,所述第一tor交换机获取虚拟令牌的过程包括:

所述第一tor交换机生成虚拟令牌;

在所述第一tor交换机并不为虚拟令牌环网的根节点交换机的情况下,所述第一tor交换机获取虚拟令牌的过程包括:所述第一tor交换机接收第三tor交换机发送的所述虚拟令牌,所述第三tor交换机为所述虚拟令牌环网中作为根节点的tor交换机,或者,所述第三tor交换机为所述虚拟令牌环网中除根节点和所述第一tor交换机之外的tor交换机。

s103:第一tor交换机判断所述组播报文是否来自于所述第一tor交换机的下游端口;如果是则执行s104;如果否则执行s107;

其中,tor交换机接收到组播报文后,首先从预先存储的转发表项中确定接收到的组播报文所来自端口的端口号,然后根据预先存储的转发表项中包含的上游端口以及下游端口的信息判断所述组播报文所来自端口的端口号是 属于下游端口号,还是属于上游端口号。从而判断所述组播报文来自所述第一tor交换机的下游端口还是上游端口。

所述预先存储的转发表项中携带的内容包括:虚拟局域网编号或者虚拟交换接口名称、组播组地址、下游端口号以及上游端口号,在此不作限制。

s104:第一tor交换机在所述接收到的来自所述下游端口的组播报文中添加优先级的标识;

其中,通过所述上游端口发送的所述组播报文还包括所述优先级的标识。所述优先级的标识用于表示优先处理所述标识所属的组播报文。

所述优先级的标识表示所述来自下游端口的组播报文的转发顺序在所述虚拟令牌的转发顺序之前,所述优先级的标识表明在拓扑网络架构中,所有交换机(包括tor交换机、核心交换机或者汇聚交换机)对该组播报文转发的优先级最高,任何交换机接在收到标记有优先级标识的组播报文之后,优先转发该组播报文,然后再转发虚拟令牌。以实现在转发过程中,来自于所述第一tor交换机的下游端口的组播报文先于虚拟令牌转发,进一步确保当虚拟令牌从第一tor交换机传输到第二tor交换机时,来自第一tor交换机的下游端口的组播报文已经传递到第二tor交换机。

s105:第一tor交换机沿最短路径通过所述上游端口发送所述组播报文;

需要说明的是,由于本申请实施例中的组播报文传输方法应用在拓扑结构中,在该结构中,信息的传递是在上下结点之间进行,相邻结点或同层结点之间不进行数据交换。所以,本申请实施例中,所述上层交换机用于转发所述组播报文以及所述虚拟令牌转发至第二tor交换机。

所述最短路径为组播报文从所述第一tor交换机到所述第二tor交换机的跳数最小的路径。这样,组播过程执行速度快,组播报文传输路径短,进而节省了报文的传输开销。

下面结合以一具体例子详细说明本申请实施例中所述阈值设定值的推导过程:

以虚拟令牌环网里的tor交换分别为s1,s2,s3……sk为例,k为大于3的整数。假设当前交换机s1收到虚拟令牌,且交换机s1接收到的来自所述下游端口组播报文在网络中无阻塞;当前交换机(交换机s1)接收到的组播 报文到距离最远的tor交换机的距离为dmax,则交换机s1将组播报文发送到距离最远的tor交换机上,组播报文到达距离最远的tor交换机所需的时长为dmax*t+t'*m。其中,t为组播报文从交换机s1到距离最远的tor交换机上中间经过的每一跳需要的时长;t'为交换机s1处理或传输一个组播报文需要的时长,m表示交换机s1上当前接收到的组播报文之前有m个组播报文需要发送。

虚拟令牌从交换机s1传递到下一跳tor交换机si的时间为:d1i*t+t'*mmax。其中,mmax表示tor交换机si当前收到令牌时,缓存中需要处理的组播报文的个数。对于交换机sj来说,要保证有序性,则需要保证来自交换机s1的组播报文到达交换机sj的时刻要早于来自交换机si的组播报文到达交换机sj的时刻。其中,i和j均为大于1且小于或等于k的整数,d1i表示s1和si之间经过的跳数。

来自交换机s1的组播报文到达交换机sj的时刻可表示为:

ta=d1j*t+t'*m,

其中,d1j表示s1和sj之间经过的跳数,t为组播报文从交换机s1到距离最远的tor交换机上中间经过的每一跳需要的时长;t'为交换机s1处理或传输一个组播报文需要的时长,m表示交换机s1上当前接收到的组播报文之前有m个组播报文需要发送;

来自交换机si的组播报文到达交换机sj的时刻可表示为:

tb=t1i+tij=(d1i*t+t'*mmax)+(dij*t+t'*n)=(d1i+dij)*t+t'*(mmax+n);

其中,t1i表示来自交换机s1的组播报文到达交换机si的时刻;tij表示来自交换机si的组播报文到达交换机sj的时刻;d1i表示s1和si之间经过的跳数;dij表示si和sj之间经过的跳数;t为组播报文从交换机s1到距离最远的tor交换机上中间经过的每一跳需要的时长;t'为交换机s1处理或传输一个组播报文需要的时长,m表示交换机si上当前接收到的组播报文之前有m个组播报文需要发送;mmax表示tor交换机si当前收到令牌时,缓存中需要处理的组播报文的个数;n表示交换机si发送组播报文之前需要发送的组播报文个数;

则要求:

tb–ta=(d1i+dij)*t+t'*(mmax+n)-(d1j*t+t'*m)=(d1i+dij–d1j)*t+t'*(mmax+n–m)>0;

其中,由于tor交换机当前收到令牌时,由于缓存中需要处理的组播报文的个数mmax表示缓存中存储的组播报文队列的总长度,m表示组播报文队列中交换机上当前接收到的组播报文之前的组播报文的个数,由于交换机上当前接收到的组播报文属于组播报文队列中的某一个组播报文,因此,在组播报文队列中的某一个组播报文之前的组播报文的个数必然小于组播报文队列的总长度mmax,并且,n大于0,因此,(mmax+n–m)必然大于0;

则d1i+dij–d1j≥0,即为保证有序性的前提条件。

当拓扑为两层时,d1i≤2,dij≤2,d1j≤2必然成立;

当拓扑为三层时,2≤dli≤4,2≤dij≤4,2≤dlj≤4,必然成立;

因此,从公式看只要d1i+dij–d1j≥0成立,即报文从所述第一tor交换机到所述第二tor交换机采用最小跳数,就可实现组播的全局有序性。其中,dij表示si和sj之间经过的跳数,d1j表示s1和sj之间经过的跳数。

s106:所述第一tor交换机在沿最短路径发送所述组播报文之后,向第二tor交换机发送所述虚拟令牌;

可选地,所述第一tor交换机可在沿最短路径发送所述组播报文之后,通过发送所述组播报文的上游端口,向所述第二tor交换机发送所述虚拟令牌。

s107:第一tor交换机将所述组播报文发送至组播接收者。

可选的,所述组播接收者可以为目标服务器,所述目标服务器为挂载在所述第一tor交换机下的服务器。

当判断出接收到的组播报文并不是来自于下游端口的时候,即来自上游端口的时候,并不执行令牌的获取,而是直接将所述来自上游端口的组播报文转发至相应组播接收者。

下面结合具体的网络架构来详细说明上述本发明实施例中公开的组播报文传输方法过程,具体内容如下:

第一:以图2所示的两层网络架构为例,对以上本发明实施例中公开的组 播报文传输方法进行详细说明:

其中,s1和s2为核心交换机,s3、s4和s5为tor交换机,c1、c2、n1、n2和n3为同一个组播组内的服务器。

在交换机s3和s5均未获得令牌期间,它们挂载的服务器c1向s3发送了组播报文p1,c2向s5发送了组播报文p2。p1来自于s3的下游端口,p2来自于s5的下游端口。s3缓存p1,暂不转发p1。s5缓存p2,暂不转发p1。s3获得虚拟令牌后,所述虚拟令牌包括的组播组的标识,p1和p2均为所述组播组的标识所标识的组播组的报文,s3通过上游端口发送p1,如图2所示,s3向s1和s2发送p1。s5可通过stp(spanningtreeprotocol,生成树协议)等协议从s3-s1或s3-s2两个路线中任意选取一条路线来接收p1,假设s5从s1接收到p1,s5收到p1时没有收到所述虚拟令牌,由于p1来自s5的上游端口,s5可通过下游端口发送p1,比如s5可根据组播转发表项,向c2和n3发送p1。s3将缓存的组播报文发送完后,比如发送完缓存的p1,s3向组播组或令牌环中的s5发送所述虚拟令牌(其中,s3向组播组或令牌环中的s5发送所述虚拟令牌的过程首先是:s3向位于组播组或令牌环中的s3的下一跳s4发送虚拟令牌,然后s4再向组播组或令牌环中的s4的下一跳s5发送虚拟令牌,可选的,s3向s4发送虚拟令牌的路线可以为:s3-s1-s4,s4向s5发送虚拟令牌的路线可以为s4-s2-s5)。s5收到所述虚拟令牌后,通过上游端口发送缓存的p2,比如向s1和s2发送p2。s3收到来自s1或s2的p2,因p2来自s3的上游端口,s3向c1和n1发送p2。本申请实施例中,假设p2、p1的产生时刻相近(可取p2、p1同时产生),由于本申请实施例中通过tor交换机维护令牌,在s5处收到p1后,才能收到令牌,才能再对p2进行转发,因此保证了所有节点收到组播报文的顺序为:p1先于p2收到,即保证了组播报文的全局有序。

第二:以图3所示的三层网络架构为例,对以上本发明实施例中公开的组播报文传输方法进行详细说明:

其中,s1和s2为汇聚交换机,s0为核心交换机,s3、s4和s5为tor交换机,c1、c2、n1、n2和n3为同一个组播组内的服务器。

在交换机s3和s5均未获得令牌期间,它们挂载的服务器c1向s3发送了组播报文p1,c2向s5发送了组播报文p2。p1来自于s3的下游端口,p2来自于s5的下游端口。s3缓存p1,暂不转发p1。s5缓存p2,暂不转发p1。s3获得虚拟令牌后, 所述虚拟令牌包括的组播组的标识,p1和p2均为所述组播组的标识所标识的组播组的报文,s3通过上游端口发送p1,如图2所示,s3向s1和s2发送p1。s5可通过stp(spanningtreeprotocol,生成树协议)等协议从不同的路线中任意选取一条路线来接收p1,假设s5选取从路线s3-s1-s0-s2-s5接收p1,s5收到p1时没有收到所述虚拟令牌,由于p1来自s5的上游端口,s5可通过下游端口发送p1,比如s5可根据组播转发表项,向c2和n3发送p1。s3将缓存的组播报文发送完后,比如发送完缓存的p1,s3向组播组或令牌环中的s5发送所述虚拟令牌(其中,s3向组播组或令牌环中的s5发送所述虚拟令牌的过程首先是:s3向位于组播组或令牌环中的s3的下一跳s4发送虚拟令牌,然后s4再向组播组或令牌环中的s4的下一跳s5发送虚拟令牌,可选的,s3向s4发送虚拟令牌的路线可以为:s3-s1-s4,s4向s5发送虚拟令牌的路线可以为s4-s2-s5)。s5收到所述虚拟令牌后,通过上游端口发送缓存的p2,比如向s1和s2发送p2。s3收到来自s1或s2的p2,因p2来自s3的上游端口,s3向c1和n1发送p2。本申请实施例中,假设p2、p1的产生时刻相近(可取p2、p1同时产生),由于本申请实施例中通过tor交换机维护令牌,在s5处收到p1后,才能收到令牌,才能再对p2进行转发,因此保证了所有节点收到组播报文的顺序为:p1先于p2收到,即保证了组播报文的全局有序。

目前,存在解决全局有序性的方式,例如:回滚的方式、集中式序列号分发的方式或应用层维护令牌的方式。回滚的方式需要重新产生组播请求,存在开销较大,系统吞吐量下降的问题。而本申请实施例提供的方法,不需要采用回滚的方式或重新产生组播请求,降低了开销,提高了系统吞吐量。集中式序列号分发的方式加剧了中心节点的负担,中心节点故障后无法保证整个序列号分发过程,存在单点故障的问题。而本申请实施例提供的方法,虚拟令牌环网内的tor交换机之间进行虚拟令牌的传递,各个tor交换机都可以对虚拟令牌进行维护,而并不是仅由一个tor交换机对虚拟令牌进行维护,有助于避免单点故障的问题。应用层维护令牌的方式中,虚拟令牌传递的环路比较长,虚拟令牌传递的过程中也会产生较大开销,同一个组播组内的各个服务器上只有在接收到该组播组内传递的虚拟令牌之后,才能将组播报文发出,即同一组播组内的各个服务器只能串行的转发组播报文。而本申请实施例将虚拟令牌在 tor交换机中处理,执行速度快,效率高,各个服务器可以同时上传组播报文到tor交换机上,tor交换机等获取到虚拟令牌之后转发组播报文,提高了服务器并行处理数据的能力。

上述主要从第一tor交换机的角度对本申请实施例提供的方案进行了介绍。可以理解的是,第一tor交换机为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。

图6示出了上述实施例中所涉及的第一转发设备的一种可能的结构示意图。图6所示的第一转发设备可以是本申请实施例提供的方法中的第一tor交换机。图6所示的第一转发设备可以执行图5对应的实施例提供的方法。

本申请实施例提供的第一转发设备包括:

接收单元11,用于接收来自下游端口的组播报文,所述下游端口是所述第一转发设备上能够与组播接收者通信的端口;

获取单元12,用于获取虚拟令牌,所述虚拟令牌用于指示接收到所述虚拟令牌的转发设备向其上游端口发送来自其下游端口的组播报文,所述上游端口是能够与上游设备通信的端口;

第一发送单元13,用于沿最短路径通过所述上游端口发送所述组播报文;

第二发送单元14,用于在沿最短路径发送所述组播报文之后,向第二转发设备发送所述虚拟令牌。

其中,所述第一发送单元13在所述获取单元12获取所述虚拟令牌之后,发送所述组播报文。所述第二发送单元14在所述第一发送单元13发送了所述组播报文后,发送所述虚拟令牌。

基于上述第一转发设备实施例,本申请还可从以下单元中选取合适单元组成新的第一转发设备,具体组成方式可对应方法实施例中的相关描述进行确定,本实施例不再赘述。

可选的,还包括:

添加单元,用于在所述接收到的来自所述下游端口的组播报文中添加优先级的标识。

可选的,还包括:

建立单元,用于对所述第一转发设备进行配置,建立所述第一转发设备所 属的组播组对应的虚拟令牌环网。

可选的,还包括:

判断单元,用于判断自身是否为所属的组播组对应的虚拟令牌环网中的根节点;

所述获取单元12用于在所述判断单元确定自身为所述根节点,生成所述虚拟令牌;

所述获取单元12用于在所述判断单元确定自身不是所述根节点,接收第三转发设备发送的所述虚拟令牌,所述第三转发设备为所述虚拟令牌环网中作为根节点的转发设备,或者,所述第三转发设备为所述虚拟令牌环网中除根节点和所述第一转发设备之外的转发设备。

所述建立单元具体用于:

确定所述第一转发设备所属的组播组的标识;

获取目标转发设备所属的组播组的标识;

判断所述目标转发设备所属的组播组的标识是否与所述第一转发设备所属的组播组的标识相同;

如果相同,则向所述目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

所述建立单元具体用于:

监听互联网组管理协议igmp报文;

依据所述igmp报文中包括的组播组的标识,确定所述第一转发设备所属的组播组;

根据所述第一转发设备所属的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文;

如果是,则向所述根节点发送加入报文,所述加入报文用于向所述根节点请求加入所述虚拟令牌环网;

如果否,则向自身所属的组播内的目标转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

所述建立单元具体用于:

获取通用属性组播注册协议gmrp报文;

依据所述gmrp报文中包括的组播组的标识,确定所述组播组的标识对应的组播组,并加入到所述组播组内;

根据所述组播组的标识对应的组播组,判断在预设时间内是否监听到所述组播组对应的虚拟令牌环网中的根节点发出的成员广播报文;

如果是,则向所述根节点发送加入报文,请求加入所述根节点所属的虚拟令牌环网;

如果否,则向所述组播内的转发设备发送建立指令,所述建立指令用于指示与所述第一转发设备属于同一组播组的目标转发设备构建虚拟令牌环网。

如图7所示,本申请实施例还公开了一种转发设备20,所述转发设备20包括:处理器21,存储器22、通信接口23;所述处理器21通过通信总线24与存储器22和通信接口23连接。所述存储器22用于存储程序。存储器22还可用于存储所述程序运行中产生的数据。

所述处理器21从所述存储器22读取程序,执行如下操作:

通过所述通信接口23中的下游端口,接收组播报文;

获取虚拟令牌,所述虚拟令牌用于指示接收到所述虚拟令牌的所述转发设备向其上游端口发送来自其下游端口的组播报文,所述上游端口是所述通信接口23中能够与上游设备通信的端口;

沿最短路径通过所述通信接口23中的上游端口发送所述组播报文;

在沿最短路径发送所述组播报文之后,向第二转发设备发送所述虚拟令牌。

其中,所述处理器21可在获取所述虚拟令牌之后,沿最短路径通过所述通信接口23中的上游端口发送所述组播报文。

图7所示的转发设备可以采用本申请实施例提供的方法。图7所示的转发设备可以是与图6所示的第一转发设备相同的设备。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另 外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围。因此,本发明的保护范围应该以权利要求的保护范围为准。

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