发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种组播数据包发送方法、计算机设备和存储介质,可以剔除接收第一设备所发送的相同组播数据包的第二设备中的非首设备对组播发送的影响,减少接收相同数据包的第二设备所需划分的组播组数量,有效降低组播频次。
本发明采取的技术方案是:
一种组播数据包发送方法,应用于组播系统,所述组播系统包括第一设备和多个第二设备,所述第一设备与多个所述第二设备直接或间接通信连接,所述第二设备是接收第一设备所发送的相同组播数据包的设备,包括以下步骤:
所述第一设备根据所述组播系统的连接拓扑关系,确定至少一台所述第二设备为首设备,其余所述第二设备为非首设备;
所述第一设备发送组播数据包至所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
根据所述组播系统的连接拓扑,可以将接收第一设备所发送的相同组播数据包的第二设备分为首设备和非首设备,在进行组播组划分时剔除第二设备中的非首设备,仅仅对首设备进行组播组的划分,由此可以减少所需划分的组播组数量,有效降低组播频次,提升整个系统的组播数据包发送效率。在组播数据包发送过程中,可以先将组播数据包组播到组播组中的首设备,再通过首设备直接转发或处理后转发到与首设备连接的非首设备。
进一步地,所述第一设备根据所述组播系统的连接拓扑关系,确定至少一台所述第二设备为首设备,其余所述第二设备为非首设备,包括以下步骤:
所述第一设备基于所述组播系统的连接拓扑关系,得到至少一条链路信息;
所述第一设备根据各条所述链路信息,确定各条链路中的至少一台所述第二设备为所述首设备。
在一条链路中,至少一台第二设备为首设备,其余第二设备为非首设备,首设备接收到第一设备组播发送的组播数据包后,可以通过链路将组播数据包转发给非首设备,由此使得与首设备接收相同组播数据包的非首设备可以快速、可靠地接收到该组播数据包。
进一步地,所述第一设备根据各条所述链路信息,确定各条链路中的至少一台所述第二设备为所述首设备,具体为:
所述第一设备根据各条所述链路信息,确定各条链路中与所述第一设备的链路路径最短的第二设备为所述首设备。
将与第一设备之间的链路路径最短的第二设备作为首设备,可以减少组播数据包组播到首设备所需要的传输时间。
进一步地,所述第一设备发送组播数据包至所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备,包括以下步骤:
所述第一设备获取各所述首设备的发送时间窗,根据各所述首设备的发送时间窗的重合程度,将至少一台所述首设备划分为一个组播组;
所述第一设备发送组播数据包至所述组播组中的各所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
在对首设备进行组播组的划分时,可以根据各个首设备发送时间窗的时域位置重合程度确定哪台或哪些首设备划分为一个组播组。若首设备发送时间窗的时域位置比较重合,可划分为同一个组播组;若首设备发送时间窗的时域位置较少重合或者不重合,可划分为不同的组播组。根据首设备的发送时间窗的时域位置对首设备进行组播组划分,可以优化数据传输资源的利用。
进一步地,所述第一设备根据各所述首设备的发送时间窗的重合程度,将至少一台所述首设备划分为一个组播组,具体为:
所述第一设备将各所述发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组,x=1,2,……,n,n为首设备的总数。
在组播组划分的过程中,需要考虑组播数据包发送所需的发送耗时,避免发送耗时对组播数据包组播产生不利影响,导致组播数据包发送的延迟或失败。
进一步地,所述第一设备将各所述发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组,包括以下步骤:
所述第一设备根据各所述发送时间窗的时域位置,确定各所述发送时间窗的顺序;
所述第一设备按照所述顺序,从第一个发送时间窗开始,将发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组。
进一步地,所述第一设备获取各所述首设备的发送时间窗的步骤,包括:
所述第一设备根据各所述首设备的接收时间窗和所述第一设备到各所述首设备的传输时延,确定各所述首设备的发送时间窗。
在确定首设备的发送时间窗时,需要考虑第一设备到首设备的传输时延,以避免第一设备到首设备的传输时延对组播数据包组播产生不利影响。
进一步地,所述第一设备根据各所述首设备的接收时间窗和所述第一设备到各所述首设备的传输时延,确定各所述首设备的发送时间窗的步骤之前,还包括以下步骤:
对于任意一个所述首设备,所述第一设备根据空口时刻、所述首设备将所述组播数据包转发到各所述非首设备所需的最大转发耗时、所述首设备或所述非首设备对所述组播数据包处理所需的处理延时,确定所述首设备的接收时间窗的最晚时间、所述第一设备根据接收缓存时长和所述最晚时间,确定所述首设备的接收时间窗的最早时间;
所述第一设备根据各所述首设备的接收时间窗最晚的时间和接收时间窗的最早的时间,确定各所述首设备的接收时间窗。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述组播数据包发送方法的步骤。
一种组播数据包发送装置,应用于组播系统,所述组播系统包括第一设备和多个第二设备,所述第一设备与多个所述第二设备直接或间接通信连接,所述第二设备是接收第一设备所发送的相同组播数据包的设备,包括:
首设备确定模块,用于根据所述组播系统的连接拓扑,确定至少一台第二设备为首设备,其余所述第二设备为非首设备;
数据包发送模块,用于发送组播数据包至所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
根据所述组播系统的连接拓扑,首设备确定模块可以将接收第一设备所发送的相同组播数据包的第二设备分为首设备和非首设备,在进行组播组划分时剔除了非首设备,组播组划分单元仅仅对首设备进行组播组的划分,由此可以减少所需划分的组播组数量,有效降低组播频次,提升整个系统的组播数据包发送效率。在组播数据包发送过程中,数据包发送模块可以先将组播数据包组播到组播组中的首设备,再通过首设备直接转发或处理后转发到与首设备连接的非首设备。
进一步地,所述首设备确定模块,具体包括:
链路获取单元,用于基于所述组播系统的连接拓扑,得到至少一条链路信息;
类型确定单元,用于根据各条所述链路信息,确定各条链路中的至少一台第二设备为所述首设备。
在一条链路中,类型确定单元将至少一台第二设备确定为首设备,其余第二设备确定为非首设备,首设备接收到第一设备组播发送的组播数据包后,可以通过链路将组播数据包转发给非首设备,由此使得与首设备接收相同组播数据包的非首设备可以快速、可靠地接收到组播数据包。
进一步地,所述类型确定单元,具体用于根据各条所述链路信息,确定各条链路中与所述第一设备的链路路径最短的第二设备为所述首设备。
类型确定单元将与第一设备之间的链路路径最短的第二设备作为首设备,可以减少组播数据包组播到首设备所需要的传输时间。
进一步地,所述数据包发送模块,具体包括:
组播组划分单元,用于获取各所述首设备的发送时间窗,根据各所述首设备的发送时间窗的重合程度,将至少一台所述首设备划分为一个组播组;
数据包发送单元,用于发送组播数据包至所述组播组中的各所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
组播组划分单元在对首设备进行组播组的划分时,可以根据各个首设备发送时间窗的时域位置重合程度确定哪台或哪些首设备划分为一个组播组。若首设备发送时间窗的时域位置比较重合,可划分为同一个组播组;若首设备发送时间窗的时域位置较少重合或者不重合,可划分为不同的组播组。组播组划分单元根据首设备的发送时间窗的时域位置对首设备进行组播组划分,可以优化数据传输资源的利用。
进一步地,所述组播组划分单元,具体用于将各所述发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组,x=1,2,……,n,n为首设备的总数。
在组播组划分单元进行组播组划分的过程中,需要考虑组播数据包发送所需的发送耗时,划分为同一个组播组的首设备,其发送时间窗的交集不小于发送耗时,可以避免发送耗时对组播数据包组播产生不利影响,导致组播数据包发送的延迟或失败。
进一步地,所述组播组划分单元,具体用于根据各所述发送时间窗的时域位置,确定各所述发送时间窗的顺序,按照所述顺序,从第一个发送时间窗开始,将发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组。
进一步地,所述装置还包括:
发送时间窗确定模块,用于根据各所述首设备的接收时间窗和所述第一设备到各所述首设备的传输时延,确定各所述首设备的发送时间窗。
通过发送时间窗确定模块可以确定首设备的发送时间窗,首设备发送时间窗的确定需要考虑第一设备到首设备的传输时延,以避免第一设备到首设备的传输时延对组播数据包组播产生不利影响。
进一步地,所述装置还包括:
接收时间窗确定模块,用于对于任意一个所述首设备,根据空口时刻、所述首设备将所述组播数据包转发到各所述非首设备所需的最大转发耗时、所述首设备或所述非首设备对所述组播数据包处理所需的处理延时,确定所述首设备的接收时间窗的最晚时间、所述第一设备根据接收缓存时长和所述最晚时间,确定所述首设备的接收时间窗的最早时间,根据各所述首设备的接收时间窗最晚的时间和接收时间窗的最早的时间,确定各所述首设备的接收时间窗。
与现有技术相比,本发明的有益效果为:
(1)将接收第一设备所发送的相同组播数据包的第二设备划分为首设备和非首设备,剔除了非首设备对组播组划分的影响,仅仅针对首设备进行组播组划分,通过非首设备将组播数据包转发给非首设备,可以减少所需划分的组播组数量,有效降低组播频次,提升整个系统的组播数据包发送效率;
(2)剔除了非首设备对联合发送时间窗的影响,使得影响联合发送时间窗制定的设备数量下降,进一步提升整个系统的组播数据包发送效率。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本申请提供的组播数据包发送方法,可以应用于如图7所示的组播系统中。该组播系统包括第一设备和多个第二设备,第一设备与多个第二设备直接或间接通信连接。例如,如图7中,第一设备与第二设备0_0直接通信连接,第一设备通过第二设备0_0与第二设备0_1通信连接。所有第二设备均用于接收来自第一设备的相同组播数据包。如图1所示,在一个实施例中,提供一种组播数据包发送方法,所述组播系统包括第一设备和多个第二设备,所述第一设备与多个所述第二设备直接或间接通信连接,所述第二设备是接收第一设备所发送的相同组播数据包的设备,包括以下步骤:
S1.所述第一设备根据所述组播系统的连接拓扑关系,确定至少一台所述第二设备为首设备,其余所述第二设备为非首设备;
S2.所述第一设备发送组播数据包至所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
根据所述组播系统的连接拓扑,可以将接收第一设备所发送的相同组播数据包的第二设备分为首设备和非首设备,在进行组播组划分时剔除第二设备中的非首设备,仅仅对首设备进行组播组的划分,由此可以减少所需划分的组播组数量,有效降低组播频次,提升整个系统的组播数据包发送效率。在组播数据包发送过程中,先将组播数据包组播到组播组中的首设备,后续再根据首设备与非首设备之间的连接拓扑,通过首设备直接转发或处理后转发到与首设备连接的非首设备。
具体实施过程中,第一设备可以基于有线或者无线与第二设备进行连接;第一设备可以通过另外的设备,如交换机、其它接收相同组播数据包或接收不同组播数据包的第二设备等的其中一个或多个,与第二设备进行间接连接,第一设备也可以与第二设备进行直接连接。
具体实施过程中,首设备可以基于有线或者无线与非首设备进行连接;首设备可以通过另外的设备,如交换机或者其它非首设备等,与非首设备进行间接连接,首设备也可以与非首设备进行直接连接。
以1台BBU设备向6台RRH(Remote Radio Head,射频拉远头)设备进行组播为例,6台RRH设备分别为RRH0~RRH5,6台RRH设备即为第二设备。
采用传统技术的组播包发送技术,其组播策略如图2所示。RRH0~RRH5分别对应有时域位置不同的6个发送时间窗,若基于联合发送时间窗进行组播数据包组播,则分别针对RRH0~RRH5的发送时间窗可以将RRH0~RRH5最终分为3个组播组:RRH0与RRH3、RRH1与RRH4、RRH2与RRH5。
采用本实施例所提供的组播数据包发送方法,其组播策略如图3所示。假设根据该台BBU设备与6台RRH设备的连接拓扑,确定了RRH0和RRH3为首设备,RRH1、RRH2、RRH4和RRH5为非首设备。RRH0和RRH3的发送时间窗的时域位置很接近,可以将RRH0和RRH3划分为一个组播组,BBU将组播数据包组播到RRH0和RRH3,RRH0和RRH3接收到组播数据包后,可以将组播数据包直接转发或处理后转发到RRH1、RRH2、RRH4、RRH5,从而完成对所有第二设备——6台RRH设备的数据包组播,也即最终只有一个组播组:RRH0与RRH3。
如图4所示,在一个实施例中,步骤S1具体包括以下步骤:
S11.所述第一设备基于所述组播系统的连接拓扑关系,得到至少一条链路信息;
S12.所述第一设备根据各条所述链路信息,确定各条链路中的至少一台所述第二设备为所述首设备。
其中,一条链路信息包括该条链路上各第二设备的标识和各第二设备的连接关系信息。
在一条链路中,至少一台第二设备为首设备,其余第二设备为非首设备,首设备接收到第一设备组播发送的组播数据包后,可以通过链路将组播数据包转发给非首设备,由此使得与首设备接收相同组播数据包的非首设备可以快速、可靠地接收到组播数据包。
当链路较长时,首设备通过长链路将组播数据包转发到非首设备的传输时间会很长,而且传输可靠性会降低,因此对于长链路可以确定多台第二设备为首设备,通过多台首设备分别进行组播数据包的转发,使得非首设备可以更快速、更可靠地接收到组播数据包。
具体实施过程中,可以根据链路中接收相同组播数据包的第二设备数量控制该条链路中首设备的数量。具体地,可以预设一个或多个阈值,将链路中接收相同组播数据包的第二设备数量与预设的阈值进行比较,根据比较结果控制该条链路中首设备的数量。
在一个实施例中,步骤S12具体为:根据各条所述链路信息,确定各条链路中与所述第一设备的链路路径最短的第二设备为所述首设备。
将与第一设备之间的链路路径最短的第二设备作为首设备,可以减少组播数据包组播到首设备所需要的传输时间。
具体实施过程中,若首设备将组播数据包直接转发到非首设备,则首设备可以基于组播或者单播将组播数据包发送到非首设备。若首设备将组播数据包处理后再转发到非首设备,则首设备可以基于流式(如CPRI)或组播或单播将组播数据包发送到非首设备。所述处理包括数据传送功能处理,数据传送功能处理包括链路功能处理中的分层映射、预编码运算、FFT/IFFT、滤波等的一个或多个。
在一个实施例中,步骤S2具体包括以下步骤:
S21.所述第一设备获取各所述首设备的发送时间窗,根据各所述首设备的发送时间窗的重合程度,将至少一台所述首设备划分为一个组播组;
S22.所述第一设备发送组播数据包至所述组播组中的各所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
在对首设备进行组播组的划分时,可以根据各个首设备发送时间窗的时域位置确定哪台或哪些首设备划分为一个组播组。若首设备发送时间窗的时域位置比较重合,可划分为同一个组播组,在相近的时间里向组播组发送组播数据包;若首设备发送时间窗的时域位置较少重合或者不重合,可划分为不同的组播组。根据首设备的发送时间窗的时域位置对首设备进行组播组划分,可以优化数据传输资源的利用。
假设组播系统的连接拓扑如图5所示,第一设备通过交换网络与第二设备连接。若M取值为1、K取值为2,则第二设备有6台,假设6台第二设备对应的是可共小区收发的6台RRH设备,第一设备对应的是BBU设备,并将第二设备0_0、第二设备0_1、第二设备0_2、第二设备1_0、第二设备1_1、第二设备1_2依次命名为RRH0、RRH1、RRH2、RRH3、RRH4、RRH5,6台RRH设备组成2条链路:RRH0—RRH1—RRH2和RRH3—RRH4—RRH5。
若采用如图2所示的现有组播包发送技术,最终有3个组播组RRH0与RRH3、RRH1与RRH4、RRH2与RRH5,每个组播组承载2台RRH的组播数据包需要发送,由于RRH0、RRH1、RRH2是在同一条链路上的,但是又属于不同的3个组播组,则意味着RRH0—RRH1—RRH2这条链路承载了3个组播组对应3次发送的组播数据包,是实际需求的三倍,造成组播效率低下。
若采用本实施例所提供的方法,先确定接收第一设备所发送的相同组播数据包的第二设备中的首设备,由于RRH0是RRH0—RRH1—RRH2这条链路上最靠近第一设备的第二设备,也即RRH0是链路中与第一设备的链路路径最短的第二设备,所以确定RRH0是RRH0—RRH1—RRH2这条链路上的首设备,RRH1、RRH2是RRH0—RRH1—RRH2这条链路上的非首设备;同理,RRH3是RRH3—RRH4—RRH5这条链路上的首设备,RRH4、RRH5是RRH3—RRH4—RRH5这条链路上的非首设备。如图3所示,根据RRH0和RRH3的发送时间窗的重合程度,将RRH0和RRH3划分为1个组播组,BBU将组播数据包组播到RRH0和RRH3,RRH0接收到组播数据包后通过RRH0—RRH1—RRH2这条链路将组播数据包发送到RRH1、RRH2,RRH3接收到组播数据包后也通过RRH3—RRH4—RRH5这条链路将组播数据包发送到RRH4、RRH5。与采用现有组播包发送技术相比,采用本实施例所提供的方法只需要划分为1个组播组,同一个链路中只存在1个组播组,使得链路中承载的组播数据包数量与实际需求一致,组播效率明显提升,极大改善组播数据包的发送效率。
假设组播系统的连接拓扑如图6所示,第一设备与第二设备通过交换网络连接,每条链路有多个第二设备集合,同一个集合内的第二设备是接收第一设备所发送的相同组播数据包的设备,不同集合内的第二设备是接收第一设备所发送的不同组播数据包的设备,在组播数据包组播过程中需要单独对每个第二设备集合进行组播分组以及数据包组播。具体实施过程中,可以通过获取载波配置信息,从而获知需要接收相同组播数据包的第二设备集合。若M取值为1、K取值为3,则第二设备有8台,其中第二设备0_0、第二设备0_1、第二设备1_0、第二设备1_1属于第二设备集合1,第二设备0_2、第二设备0_3、第二设备1_2、第二设备1_3属于第二设备集合2。若采用本实施例所提供的方法,由于在第二设备集合1中第二设备0_0和第二设备1_0是与第一设备的链路路径最短的第二设备,所以确定第二设备0_0和第二设备1_0是第二设备集合1中的首设备;由于在第二设备集合2中第二设备0_2和第二设备1_2是与第一设备的链路路径最短的第二设备,所以确定第二设备0_2和第二设备1_2是第二设备集合2中的首设备。因此,每条链路上有2个首设备,其中第一条链路上的首设备为第二设备0_0和第二设备0_2,非首设备为第二设备0_1、第二设备0_3,第二条链路上的首设备为第二设备1_0、第二设备1_2,非首设备为第二设备1_1、第二设备1_3。此时,只需要分别对第二设备0_0和第二设备1_0、第二设备0_2和第二设备1_2这其中4个第二设备进行组播组划分,并对所划分的组播组进行组播数据包组播,第二设备0_0接收到组播数据包后通过第一条链路将组播数据包发送到第二设备0_1,第二设备0_2接收到组播数据包后通过第一条链路将组播数据包发送到第二设备0_3,第二设备1_0接收到组播数据包后通过第二条链路将组播数据包发送到第二设备1_1,第二设备1_2接收到组播数据包后通过第二条链路将组播数据包发送到第二设备1_3。
假设组播系统的连接拓扑如图7所示,第一设备与第二设备直接连接,首设备的确定、组播组的划分、组播数据包的组播和转发与上述同理。
假设组播系统的连接拓扑如图8所示,第一设备与第二设备通过无线网络连接,首设备的确定、组播组的划分、后续组播数据包的组播和转发也与上述同理。
在一个实施例中,步骤S21具体为:
所述第一设备将各所述发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组,x=1,2,……,n,n为首设备的总数。
在组播组划分的过程中,需要考虑组播数据包发送所需的发送耗时,划分为同一个组播组的首设备,其发送时间窗的交集不小于发送耗时,可以避免发送耗时对组播数据包的组播产生不利影响,导致组播数据包发送的延迟或失败。
具体实施过程中,步骤S21具体包括:
所述第一设备根据各所述发送时间窗的时域位置,确定各所述发送时间窗的顺序;
所述第一设备按照所述顺序,从第一个发送时间窗开始,将发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组。
更具体地,在一个实施例中,步骤S21包括以下步骤:
A1.令i=1,j=1;
A2.按照所述顺序,计算第i台至第i+j台首设备的发送时间窗的交集;
A3.若所述交集的时长小于发送所述组播数据包所需的发送耗时,则将第i台至第i+j-1台首设备划分为一个组播组并执行步骤A4;若所述交集的时长不小于发送所述组播数据包所需的发送耗时,则执行步骤A5;
A4.判断i+j是否等于n,若是则将第i+j台首设备划分为一个组播组并结束步骤,若否则令i=i+j,j=1,跳转至步骤A2;其中n为首设备总数量;
A5.判断i+j是否等于n,若是则将第i台至第i+j台首设备划分为一个组播组并结束步骤,若否则令j=j+1,跳转至步骤A2。
如图3所示,首设备RRH0和RRH3的发送时间窗分别为T00至T01、T02至T03。根据步骤S21,根据RRH0和RRH3发送时间窗的时域位置前后,可以确定第1台首设备为RRH0,第2台首设备为RRH3。假设组播数据包的发送所需的发送耗时为T,根据步骤S22,计算第1台首设备和第2台首设备的发送时间窗的交集得到联合的发送时间窗,若该联合的发送时间窗的时长小于T,则单独将RRH0划分为一个组播组,由于首设备的总数只有2台,所以单独将RRH3划分为另一个组播组,此时全部首设备已完成组播组划分,若首设备的总数不只有2台,则继续计算RRH3和第3台首设备的发送时间窗的交集,重复步骤A3;若该联合的发送时间窗的时长不小于T,由于首设备的总数只有2台,所以将RRH0、RRH3划分为同一个组播组,若首设备的总数不只有2台,则继续计算RRH0、RRH3和第3台首设备的发送时间窗交集,重复步骤A3。
在一个实施例中,所述第一设备获取各所述首设备的发送时间窗的步骤,包括:
所述第一设备根据各所述首设备的接收时间窗和所述第一设备到各所述首设备的传输时延,确定各所述首设备的发送时间窗。
在确定首设备的发送时间窗时,需要考虑第一设备到首设备的传输时延,以避免第一设备到首设备的传输时延对组播数据包的组播产生不利影响。
如图9所示,假设某首设备的最早提前接收时长为T2a_max、最晚提前接收时长为T2a_min,也即接收时间窗的时长为T2a_max-T2a_min,而第一设备到该首设备的最大传输时延为T12_max、最小网络时延为T12_min,则该首设备的发送时间窗应为T2a_max+T12_min~T2a_min+T12_max。
如图3所示,在BBU向首设备RRH0和RRH3进行组播的例子中,RRH0的发送时间窗为T00~T01,RRH3的发送时间窗为T02~T03。RRH0发送时间窗中的最早发送时间T00是根据RRH0接收时间窗中的最早接收时间和BBU与RRH0之间的最小传输延时确定的,RRH0发送时间窗中的最晚发送时间T00是根据RRH0接收时间窗中的最晚接收时间和BBU与RRH0之间的最大传输延时确定的。RRH3的发送时间窗确定与RRH1的同理。BBU与RRH0、RRH3之间通过光纤连接,则传输时延包括光纤拉远时延。
在一个实施例中,所述第一设备根据各所述首设备的接收时间窗和所述第一设备到各所述首设备的传输时延,确定各所述首设备的发送时间窗的步骤之前,还包括以下步骤:
对于任意一个所述首设备,所述第一设备根据空口时刻、所述首设备将所述组播数据包转发到各所述非首设备所需的最大转发耗时、所述首设备或所述非首设备对所述组播数据包处理所需的处理延时,确定所述首设备的接收时间窗的最晚时间、所述第一设备根据接收缓存时长和所述最晚时间,确定所述首设备的接收时间窗的最早时间;
所述第一设备根据各所述首设备的接收时间窗最晚的时间和接收时间窗的最早的时间,确定各所述首设备的接收时间窗。
对于移动通信网络无线信号的收发,是需要空口对齐的。第二设备中的首设备和非首设备需要对接收到的组播数据包进行相应的处理,所述处理包括但不限于通信协议中规定的处理、射频处理等,处理延时即为首设备或非首设备对接收到的组播数据包进行相应处理所需的时间。首设备需要将接收到的组播数据包直接转发或处理后转发到非首设备,而且在组播数据包发送的过程中会有时延抖动,转发耗时即为首设备将组播数据包转发到各个非首设备所需的时间,最大转发耗时为首设备将组播数据包转发到最后一个接收到组播数据包的非首设备所需的时间。因此,为了满足空口对齐,组播数据包需要提前于空口时刻一定时间的时间窗内到达首设备。而该提前于空口时刻的时长,需要考虑处理延时和转发耗时。
如图3所示,在BBU向首设备RRH0和RRH3进行组播的例子中,RRH0和RRH3接收时间窗提前于空口时刻一定的时长,该时长包括处理延时、转发耗时。
具体实施过程中,首设备的接收时间窗的最晚时间为空口时刻减去转发耗时,再减去处理延时而得到,首设备的接收窗的最早时间为空口时刻减去转发耗时,再减去处理延时和缓存时长而得到。
假设组播系统的连接拓扑如图5所示。当M=0时,只有一条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为该条链路的首设备(第二设备0_0)将组播数据包转发到该条链路最后一个非首设备(第二设备0_K)所需的转发耗时。当M>0时,有多条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为各条链路中的首设备(第二设备0_0、第二设备1_0、……、第二设备M_0)将组播数据包分别对应转发到各条链路最后一个非首设备(第二设备0_K、第二设备1_K、……、第二设备K_M)所需的最大转发耗时。
假设组播系统的连接拓扑如图6所示。当M=0时,只有一条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为该条链路的首设备(第二设备0_0、第二设备0_X)分别对应转发到最后一个非首设备(第二设备0_0、第二设备0_X)的单条链路最大转发耗时。当M>0时,有多条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为各条链路的单条链路最大转发耗时中的最大值。
在一个实施例中,步骤S22具体包括以下步骤:
所述第一设备根据组播组中首设备的发送时间窗的交集,确定联合发送时间窗;
所述第一设备基于联合发送时间窗将所述组播数据包组播到组播组中的首设备。
在将组播数据包组播到组播组中的首设备时,先根据组播组中首设备的发送时间窗确定联合发送时间窗,再基于联合发送时间窗将组播数据包组播到组播组中的首设备。而联合发送时间窗可以根据组播组中首设备的发送时间窗的交集确定。
如图3所示,首设备RRH0和RRH3的发送时间窗分别为T00~T01和T02~T03,计算两者的交集可以得到时间窗T00~T03。对于RRH0和RRH3的组播,则可以在时间窗T00~T03的范围内确定联合发送时间窗。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述组播数据包发送方法的步骤。
本实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述组播数据包发送方法的步骤。
如图10所示,本申请实施例还提供一种组播数据包发送装置,应用于组播系统,所述组播系统包括第一设备和第二设备,所述第一设备与多个所述第二设备直接或间接通信连接,所述第二设备是接收第一设备所发送的相同组播数据包的设备,包括:
首设备确定模块10,用于根据所述组播系统的连接拓扑,确定至少一台第二设备为首设备;数据包发送模块20,用于发送组播数据包至所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
根据组播系统的连接拓扑,首设备确定模块10可以将接收第一设备所发送的相同组播数据包的第二设备分为首设备和非首设备,在进行组播组划分时剔除了第二设备中的非首设备,仅仅对首设备进行组播组的划分,由此可以减少所需划分的组播组数量,有效降低组播频次,提升整个系统的组播数据包发送效率。在组播数据包发送过程中,数据包发送模块20先将组播数据包组播到组播组中的首设备,后续再根据首设备与非首设备之间的连接拓扑,通过首设备直接转发或处理后转发到与首设备连接的非首设备。
优选地,首设备确定模块10设有类型配置模块,当确定第二设备的首设备和非首设备后,类型配置模块配置确定为首设备的第二设备的类型为首设备和/或配置确定为非首设备的第二设备的类型为非首设备。
具体实施过程中,第一设备可以基于有线或者无线与第二设备进行连接;第一设备可以通过另外的设备,如交换机、其它接收相同组播数据包或接收不同组播数据包的第二设备等的其中一个或多个,与第二设备进行间接连接,第一设备也可以与第二设备进行直接连接。
具体实施过程中,首设备可以基于有线或者无线与非首设备进行连接;首设备可以通过另外的设备,如交换机或者其它非首设备等,与非首设备进行间接连接,首设备也可以与非首设备进行直接连接。
以1台BBU设备向6台RRH设备进行组播为例,6台RRH设备分别为RRH0~RRH5,6台RRH设备即为第二设备。
采用传统技术的组播包发送技术,其组播策略如图2所示。RRH0~RRH5分别对应有时域位置不同的6个发送时间窗,若基于联合发送时间窗进行组播数据包组播,则分别针对RRH0~RRH5的发送时间窗可以将RRH0~RRH5最终分为3个组播组:RRH0与RRH3、RRH1与RRH4、RRH2与RRH5。
采用本实施例所提供的组播分组装置,其组播策略如图3所示。假设首设备确定模块10根据该台BBU设备与6台RRH设备的连接拓扑,确定了RRH0和RRH3为首设备,RRH1、RRH2、RRH4和RRH5为非首设备。RRH0和RRH3的发送时间窗的时域位置很接近,组播组划分单元20将RRH0和RRH3划分为一个组播组,BBU将组播数据包组播到RRH0和RRH3,RRH0和RRH3接收到组播数据包后,再根据其与RRH1、RRH2、RRH4、RRH5之间的连接拓扑,可以将组播数据包转发到RRH1、RRH2、RRH4、RRH5,从而完成对所有第二设备——6台RRH设备组播数据包的组播,也即最终只有一个组播组:RRH0与RRH3。。
如图10所示,在一个实施例中,首设备确定模块10,具体包括:
链路获取单元11,用于基于所述组播系统的连接拓扑,得到至少一条链路信息;
类型确定单元12,用于根据各条所述链路信息,确定各条链路中的至少一台第二设备为所述首设备。
在一条链路中,类型确定单元12将至少一台第二设备确定为首设备,其余第二设备确定为非首设备,首设备接收到第一设备组播发送的组播数据包后,可以通过链路将组播数据包转发给非首设备,由此使得与首设备接收相同组播数据包的非首设备可以快速、可靠地接收到组播数据包。
当链路较长时,首设备通过长链路将组播数据包转发到非首设备的传输时间会很长,而且传输可靠性会降低,因此对于长链路可以确定多台第二设备为首设备,通过多台首设备分别进行组播数据包的转发,使得非首设备可以更快速、更可靠地接收到组播数据包。
具体实施过程中,可以增设链路判断模块,所述链路判断模块,用于根据链路中接收相同组播数据包的第二设备数量控制该条链路中首设备的数量。具体地,所述链路判断模块具体用于将链路中接收相同组播数据包的第二设备数量与预设的一个或多个阈值进行比较,根据比较结果控制该条链路中首设备的数量。
在一个实施例中,类型确定单元12,具体用于根据各条所述链路信息,确定各条链路中与第一设备的链路路径最短的一台第二设备为首设备。
类型确定单元12将与第一设备之间的链路路径最短的第二设备作为首设备,可以减少组播数据包组播到首设备所需要的传输时间。
具体实施过程中,若首设备将组播数据包直接转发到非首设备,则首设备可以基于组播或者单播将组播数据包发送到非首设备。若首设备将组播数据包处理后再转发到非首设备,则首设备可以基于流式(如CPRI)或组播或单播将组播数据包发送到非首设备。所述处理包括数据传送功能处理,数据传送功能处理包括链路功能处理中的分层映射、预编码运算、FFT/IFFT、滤波等的一个或多个。
在一个实施例中,数据包发送模块20,具体包括:
组播组划分单元21,用于获取各所述首设备的发送时间窗,根据所述首设备的发送时间窗的重合程度,将至少一台所述首设备划分为一个组播组;
数据包发送单元22,用于发送组播数据包至所述组播组中的各所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
在对首设备进行组播组的划分时,组播组划分单元21可以根据各个首设备发送时间窗的时域位置确定哪台或哪些首设备划分为一个组播组。若首设备发送时间窗的时域位置比较重合,可划分为同一个组播组;若首设备发送时间窗的时域位置较少重合或者不重合,可划分为不同的组播组。数据包发送单元22根据首设备的发送时间窗的时域位置对首设备进行组播组划分,可以优化数据传输资源的利用。
假设第一设备与第二设备的连接拓扑如图5所示,第一设备通过交换网络与第二设备连接。若M取值为1、K取值为2,则第二设备有6台,假设对应的是可共小区收发的6台RRH设备,第一设备对应的是BBU设备,并将第二设备0_0、第二设备0_1、第二设备0_2、第二设备1_0、第二设备1_1、第二设备1_2依次命名为RRH0、RRH1、RRH2、RRH3、RRH4、RRH5,6台RRH设备组成2条链路:RRH0—RRH1—RRH2和RRH3—RRH4—RRH5。
若采用如图1所示的现有组播包发送技术,最终有3个组播组RRH0与RRH3、RRH1与RRH4、RRH2与RRH5,每个组播组承载2台RRH的组播数据包需要发送,由于RRH0、RRH1、RRH2是在同一条链路上的,但是又属于不同的3个组播组,则意味着RRH0—RRH1—RRH2这条链路承载了3个组播组对应3次发送的组播数据包,是实际需求的三倍,造成组播效率低下。
若采用本实施例所提供的装置,通过首设备确定模块10先确定接收第一设备所发送的相同组播数据包的第二设备中的首设备,由于RRH0是RRH0—RRH1—RRH2这条链路上最靠近第一设备的第二设备,也即RRH0是链路中与第一设备的链路路径最短的第二设备,所以确定RRH0是RRH0—RRH1—RRH2这条链路上的首设备,RRH1、RRH2是RRH0—RRH1—RRH2这条链路上的非首设备;同理,RRH3是RRH3—RRH4—RRH5这条链路上的首设备,RRH4、RRH5是RRH3—RRH4—RRH5这条链路上的非首设备。如图3所示,根据RRH0和RRH3的发送时间窗的重合程度,通过组播组划分单元20将RRH0和RRH3划分为1个组播组,BBU将组播数据包组播到RRH0和RRH3,RRH0接收到组播数据包后通过RRH0—RRH1—RRH2这条链路将组播数据包发送到RRH1、RRH2,RRH3接收到组播数据包后也通过RRH3—RRH4—RRH5这条链路将组播数据包发送到RRH4、RRH5。与采用现有组播包发送技术相比,采用本实施例所提供的装置只需要划分为1个组播组,同一个链路中只存在1个组播组,使得链路中承载的组播数据包数量与实际需求一致,组播效率明显提升,极大改善组播数据包的发送效率。
假设第一设备与第二设备的连接拓扑如图6所示,第一设备与第二设备通过交换网络连接,每条链路有多个第二设备集合,同一个集合内的第二设备是接收第一设备所发送的相同组播数据包的设备,不同集合内的第二设备是接收第一设备所发送的不同组播数据包的设备,在组播数据包组播过程中需要单独对每个第二设备集合进行组播分组以及组播数据包的组播。具体实施过程中,可以通过载波配置信息获取模块获取载波配置信息,从而获知需要接收相同组播数据包的第二设备集合。若M取值为1、K取值为3,则第二设备有8台,其中第二设备0_0、第二设备0_1、第二设备1_0、第二设备1_1属于第二设备集合1,第二设备0_2、第二设备0_3、第二设备1_2、第二设备1_3属于第二设备集合2。若采用本实施例所提供的装置,由于在第二设备集合1中第二设备0_0和第二设备1_0是与第一设备的链路路径最短的第二设备,所以类型确定单元12确定第二设备0_0和第二设备1_0是第二设备集合1中的首设备;由于在第二设备集合2中第二设备0_2和第二设备1_2是与第一设备的链路路径最短的第二设备,所以类型确定单元12确定第二设备0_2和第二设备1_2是第二设备集合2中的首设备。因此,每条链路上有2个首设备,其中第一条链路上的首设备为第二设备0_0和第二设备0_2,非首设备为第二设备0_1、第二设备0_3,第二条链路上的首设备为第二设备1_0、第二设备1_2,非首设备为第二设备1_1、第二设备1_3。此时,组播组划分单元20只需要对第二设备0_0和第二设备1_0、第二设备0_2、第二设备1_2这其中4个第二设备进行组播组划分,再对所划分的组播组进行组播数据包组播,第二设备0_0接收到组播数据包后通过第一条链路将组播数据包发送到第二设备0_1,第二设备0_2接收到组播数据包后通过第一条链路将组播数据包发送到第二设备0_3,第二设备1_0接收到组播数据包后通过第二条链路将组播数据包发送到第二设备1_1,第二设备1_2接收到组播数据包后通过第二条链路将组播数据包发送到第二设备1_3。
假设第一设备与第二设备的连接拓扑如图7所示,第一设备与第二设备直接连接,首设备确定模块10对首设备的确定、组播组划分单元20对组播组的划分、后续组播数据包的组播和转发与上述同理。
假设第一设备与第二设备的连接拓扑如图8所示,第一设备与第二设备通过无线网络连接,首设备确定模块10对首设备的确定、组播组划分单元20对组播组的划分、后续组播数据包的组播和转发也与上述同理。
在一个实施例中,组播组划分单元21,更具体用于将发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组,x=1,2,……,n,n为首设备的总数。
在组播组划分单元21进行组播组划分的过程中,需要考虑组播数据包发送所需的发送耗时,划分为同一个组播组的首设备,其发送时间窗的交集不小于发送耗时,可以避免发送耗时对组播数据包组播产生不利影响,导致组播数据包发送的延迟或失败。
具体实施过程中,组播组划分单元21可以根据各所述发送时间窗的时域位置,确定各所述发送时间窗的顺序,按照所述顺序,从第一个发送时间窗开始,将发送时间窗的交集的时长不小于发送所述组播数据包所需的发送耗时的连续x台首设备划分为一个组播组。
更具体地,组播组划分单元21具体是执行以下步骤:
A1.令i=1,j=1;
A2.按照所述顺序,计算第i台至第i+j台首设备的发送时间窗的交集;
A3.若所述交集的时长小于发送所述组播数据包所需的发送耗时,则将第i台至第i+j-1台首设备划分为一个组播组并执行步骤A4;若所述交集的时长不小于发送所述组播数据包所需的发送耗时,则执行步骤A5;
A4.判断i+j是否等于n,若是则将第i+j台首设备划分为一个组播组并结束步骤,若否则令i=i+j,j=1,跳转至步骤A2;
A5.判断i+j是否等于n,若是则将第i台至第i+j台首设备划分为一个组播组并结束步骤,若否则令j=j+1,跳转至步骤A2。
如图3所示,首设备RRH0和RRH3的发送时间窗分别为T00至T01、T02至T03。顺序确定模块21根据RRH0和RRH3发送时间窗的时域位置前后,可以确定第1台首设备为RRH0,第2台首设备为RRH3。假设组播数据包发送所需的发送耗时为T,划分确定模块22计算第1台首设备和第2台首设备的发送时间窗的交集得到联合的发送时间窗,若该联合的发送时间窗的时长小于T,则单独将RRH0划分为一个组播组,由于首设备的总数只有2台,所以单独将RRH3划分为另一个组播组,此时全部首设备已完成组播组划分,若首设备的总数不只有2台,则继续计算RRH3和第3台首设备的发送时间窗的交集,重复步骤A3;若该联合的发送时间窗的时长不小于T,由于首设备的总数只有2台,所以将RRH0、RRH3划分为同一个组播组,若首设备的总数不只有2台,则继续计算RRH0、RRH3和第3台首设备的发送时间窗交集,重复步骤A3。
如图10所示,在一个实施例中,所述装置还包括:
发送时间窗确定模块31,用于根据所述首设备的接收时间窗和第一设备到所述首设备的传输时延,确定所述首设备的发送时间窗。
通过发送时间窗确定模块31可以确定首设备的发送时间窗,首设备发送时间窗的确定需要考虑第一设备到首设备的传输时延,以避免第一设备到首设备的传输时延对组播数据包的组播产生不利影响。
如图9所示,假设某首设备的最早提前接收时长为T2a_max、最晚提前接收时长为T2a_min,也即接收时间窗为T2a_max~T2a_min,而第一设备到该首设备的最大传输时延为T12_max、最小网络时延为T12_min,则该首设备的发送时间窗应为T2a_max+T12_min~T2a_min+T12_max。
如图3所示,在BBU向首设备RRH0和RRH3进行组播的例子中,RRH0的发送时间窗为T00~T01,RRH3的发送时间窗为T02~T03。RRH0发送时间窗中的最早发送时间T00是通过发送时间窗确定模块31根据RRH0接收时间窗中的最早接收时间和BBU与RRH0之间的最小传输延时确定的,RRH0发送时间窗中的最晚发送时间T00是通过发送时间窗确定模块31根据RRH0接收时间窗中的最晚接收时间和BBU与RRH0之间的最大传输延时确定的。RRH3的发送时间窗确定与RRH1的同理。BBU与RRH0、RRH3之间通过光纤连接,则传输时延包括光纤最大拉远时延。
如图10所示,在一个实施例中,所述装置还包括:
接收时间窗确定模块32,用于对于任意一个所述首设备,根据空口时刻、所述首设备将所述组播数据包转发到各所述非首设备所需的最大转发耗时、所述首设备或所述非首设备对所述组播数据包处理所需的处理延时,确定所述首设备的接收时间窗的最晚时间、所述第一设备根据接收缓存时长和所述最晚时间,确定所述首设备的接收时间窗的最早时间,根据各所述首设备的接收时间窗最晚的时间和接收时间窗的最早的时间,确定各所述首设备的接收时间窗。
对于移动通信网络无线信号的收发,是需要空口对齐的。第二设备中的首设备和非首设备需要对接收到的组播数据包进行相应的处理,所述处理包括但不限于通信协议中规定的处理、射频处理等,处理延时即为首设备或非首设备对接收到的组播数据包进行相应处理所需的时间。首设备需要将接收到的组播数据包直接转发或处理后转发到非首设备,而且在组播数据包发送的过程中会有时延抖动,转发耗时即为首设备将组播数据包转发到各个非首设备所需的时间,最大转发耗时为首设备将组播数据包转发到最后一个接收到组播数据包的非首设备所需的时间。因此,为了满足空口对齐,组播数据包需要提前于空口时刻一定时间的时间窗内到达首设备。而这个提前于空口时刻的时长,需要通过接收时间窗确定模块32根据转发耗时和处理延时确定。
发送时间窗确定模块31、接收时间窗确定模块32可以分别设置在所述第一设备或所述第二设备或第三方设备等。
如图3所示,在BBU向首设备RRH0和RRH3进行组播的例子中,RRH0和RRH3接收时间窗提前于空口一定的时长,而该时长包括处理延时、转发耗时。
具体实施过程中,首设备的接收时间窗的最晚时间为空口时刻减去转发耗时,再减去处理延时而得到,首设备的接收窗的最早时间为空口时刻减去转发耗时,再减去处理延时和缓存时长而得到。
假设第一设备与第二设备的连接拓扑如图5所示。当M=0时,只有一条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为该条链路的首设备(第二设备0_0)将组播数据包转发到该条链路最后一个非首设备(第二设备0_K)所需的转发耗时。当M>0时,有多条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为各条链路中的首设备(第二设备0_0、第二设备1_0、……、第二设备M_0)将组播数据包分别对应转发到各条链路最后一个非首设备(第二设备0_K、第二设备1_K、……、第二设备K_M)所需的最大转发耗时。
假设第一设备与第二设备的连接拓扑如图6所示。当M=0时,只有一条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为该条链路的首设备(第二设备0_0、第二设备0_X)分别对应转发到最后一个非首设备(第二设备0_0、第二设备0_X)的单条链路最大转发耗时。当M>0时,有多条链路,首设备将组播数据包转发到各个非首设备所需的最大转发耗时,应为各条链路的单条链路最大转发耗时中的最大值。
如图10所示,在一个实施例中,所述装置还包括:
联合发送时间窗确定模块33,用于根据组播组中首设备的发送时间窗的交集,确定联合发送时间窗;
数据包发送模块30,具体用于基于联合发送时间窗发送组播数据包至所述组播组中的各所述首设备,以使所述首设备将所述组播数据包直接转发或处理后转发至所述非首设备。
在将组播数据包组播到组播组中的首设备时,联合发送时间窗确定模块33先根据组播组中首设备的发送时间窗确定联合发送时间窗,数据包发送模块20再基于联合发送时间窗将组播数据包组播到组播组中的首设备。而联合发送时间窗确定模块33可以根据组播组中首设备的发送时间窗的交集确定联合发送时间窗。
联合发送时间窗确定模块33可以设置在所述第一设备或所述第二设备或第三方设备等。
如图3所示,首设备RRH0和RRH3的发送时间窗分别为T00~T01和T02~T03,通过联合发送时间窗确定模块33计算两者的交集可以得到时间窗T00~T03。对于RRH0和RRH3的组播,则联合发送时间窗确定模块33可以在时间窗T00~T03的范围内确定联合发送时间窗。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。