发明内容
鉴于上述问题,本发明实施例提供了一种数据处理的方法、装置以及电子设备,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种数据处理的方法,应用于网络,所述网络包括若干相连接的节点,所述方法包括:设置所述节点的带宽约束条件;设置所述网络的时延约束条件;根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系。
在一种可选的方式中,所述设置所述节点的带宽约束条件的步骤,进一步包括:计算经过所述节点的所述数据流所需要的带宽;根据经过所述节点的所述数据流所需要的带宽,设置所述节点的带宽约束条件,其中,所述带宽约束条件包括,经过所述节点的所述数据流所需要的带宽的最大值不大于所述节点的带宽,以及,所述节点的带宽不大于所述节点的循环发送队列的长度和数目的乘积。
在一种可选的方式中,所述数据流的数量为多个,所述计算经过所述节点的所述数据流所需要的带宽的第一公式为:
其中,所述WTt为经过所述节点的所述数据流所需要的带宽,所述n为所述数据流的数量,所述i为所述数据流的编号,所述fi为数据流,所述fi.band为所述数据流fi的带宽,所述j为所述节点的编号,所述t为周期编号,所述数据流fi在周期编号为t的周期经过所述节点,则定义所述O(i,j,t)为1,否则定义所述O(i,j,t)为0。
在一种可选的方式中,所述设置所述网络的时延约束条件的步骤,进一步包括:计算所述节点与所述节点的下游节点之间的链路时延;计算所述数据流在所述节点的转发时延;根据所述链路时延和转发时延设置所述网络的时延约束条件,其中,所述时延约束条件包括,所述转发时延不大于所述数据流在所述节点的最大转发时延,以及,所述链路时延和所述转发时延之和不大于所述网络的时延上限。
在一种可选的方式中,所述计算所述数据流在所述节点的转发时延的步骤,进一步包括:获取所述节点发送所述数据流的周期偏移,其中,所述周期偏移为相对于所述节点最早能发送所述数据流的周期的偏移值;根据所述周期偏移,计算所述数据流在所述节点的转发时延。
在一种可选的方式中,所述转发时延不大于所述数据流在所述节点的最大转发时延的第二公式为:
Latencyij≥(2+kij)T
其中,所述i为所述数据流的编号,所述j为所述节点的编号,所述Latencyij为数据流fi在所述节点的最大转发时延,所述kij为所述周期偏移,所述(2+kij)T为所述数据流在所述节点的转发时延。
在一种可选的方式中,所述链路时延和所述转发时延之和不大于所述网络的时延上限的第三公式为:
其中,所述m为所述节点的数量,所述Latencyij为所述数据流fi在所述节点的最大转发时延,所述lj为所述节点与所述下游节点之间的链路时延,所述fi.latency为所述数据流fi在所述网络的时延上限。
在一种可选的方式中,所述根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表的步骤,进一步包括:判断所述网络为时延优先还是带宽优先;若所述网络为时延优先,则令所述周期偏移为0,生成所述周期映射表;若所述网络为带宽优先,则根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表。
在一种可选的方式中,所述根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表的步骤,进一步包括:计算满足所述第二公式和第三公式的所述周期偏移;根据所述第一公式以及所述周期偏移计算经过所述节点的所述数据流所需要的带宽;获取选定周期偏移,其中,所述选定周期偏移为经过所述节点的所述数据流所需要的带宽的最小值对应的所述周期偏移;根据所述选定周期偏移生成所述周期映射表。
在一种可选的方式中,所述判断所述网络为时延优先还是带宽优先的步骤之前,所述方法还包括:判断所述当前周期发送至所述节点的数据流的数量是否大于1;若否,则进入若所述网络为时延优先,则令所述周期偏移为0,生成所述周期映射表的步骤;若是,则进入所述判断所述网络为时延优先还是带宽优先的步骤。
根据本发明实施例的一个方面,提供了一种数据处理的装置,包括:带宽设置模块,用于设置所述节点的带宽约束条件;时延设置模块,用于设置所述网络的时延约束条件;映射表生成模块,用于根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系。
在一种可选的方式中,所述带宽设置模块包括:第一计算模块,用于计算经过所述节点的所述数据流所需要的带宽;带宽设置单元,用于根据经过所述节点的所述数据流所需要的带宽,设置所述节点的带宽约束条件,其中,所述带宽约束条件包括,经过所述节点的所述数据流所需要的带宽的最大值不大于所述节点的带宽,以及,所述节点的带宽不大于所述节点的循环发送队列的长度和数目的乘积。
在一种可选的方式中,所述数据流的数量为多个,所述计算经过所述节点的所述数据流所需要的带宽的第一公式为:
其中,所述WTt为经过所述节点的所述数据流所需要的带宽,所述n为所述数据流的数量,所述i为所述数据流的编号,所述fi为数据流,所述fi.band为所述数据流fi的带宽,所述j为所述节点的编号,所述t为周期编号,所述数据流fi在周期编号为t的周期经过所述节点,则定义所述O(i,j,t)为1,否则定义所述O(i,j,t)为0。
在一种可选的方式中,所述时延设置模块包括:第二计算单元,用于计算所述节点与所述节点的下游节点之间的链路时延;第三计算单元,用于计算所述数据流在所述节点的转发时延;时延设置单元,用于根据所述链路时延和转发时延设置所述网络的时延约束条件,其中,所述时延约束条件包括,所述转发时延不大于所述数据流在所述节点的最大转发时延,以及,所述链路时延和所述转发时延之和不大于所述网络的时延上限。
在一种可选的方式中,所述第三计算单元具体用于获取所述节点发送所述数据流的周期偏移,其中,所述周期偏移为相对于所述节点最早能发送所述数据流的周期的偏移值;根据所述周期偏移,计算所述数据流在所述节点的转发时延。
在一种可选的方式中,所述转发时延不大于所述数据流在所述节点的最大转发时延的第二公式为:
Latencij≥(2+kij)T
其中,所述i为所述数据流的编号,所述j为所述节点的编号,所述Latencyij为数据流fi在所述节点的最大转发时延,所述kij为所述周期偏移,所述(+kij)T为所述数据流在所述节点的转发时延。
在一种可选的方式中,所述链路时延和所述转发时延之和不大于所述网络的时延上限的第三公式为:
其中,所述m为所述节点的数量,所述Latencyij为所述数据流fi在所述节点的最大转发时延,所述lj为所述节点与所述下游节点之间的链路时延,所述fi.latency为所述数据流fi在所述网络的时延上限。
在一种可选的方式中,所述映射表生成模块包括:第一判断单元,用于判断所述网络为时延优先还是带宽优先;第一生成单元,用于若所述网络为时延优先,则令所述周期偏移为,生成所述周期映射表;第二生成单元,用于若所述网络为带宽优先,则根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表。
在一种可选的方式中,所述第二生成单元具体用于计算满足所述第二公式和第三公式的所述周期偏移;根据所述第一公式以及所述周期偏移计算经过所述节点的所述数据流所需要的带宽;获取选定周期偏移,其中,所述选定周期偏移为经过所述节点的所述数据流所需要的带宽的最小值对应的所述周期偏移;根据所述选定周期偏移生成所述周期映射表。
在一种可选的方式中,所述映射表生成模块还包括第二判断单元。所述第二判断单元用于判断所述当前周期发送至所述节点的数据流的数量是否大于1,若否,则进入所述第一生成单元,若否,则进入所述第一判断单元。
根据本发明实施例的一个方面,提供了一种电子设备,该电子设备包括:至少一个处理器,以及存储器,所述存储器与所述至少一个处理器通信连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本发明实施例的有益效果是:区别于现有的数据处理的方法,本发明实施例中的数据处理的方法可用于多个数据流汇聚的情况。通过设置所述节点的带宽约束条件、设置所述网络的时延约束条件,以及根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系,则可综合考虑带宽约束和时延约束从而设定周期映射表。与此同时,在综合带宽约束和时延约束时可根据实际需要调整所述网络的带宽和所述网络的时延,从而一方面可提高所述网络中带宽的利用率,另一方面可最大化的减小所述网络的时延。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
请参阅图1,图1是本发明实施例提供的一种数据处理的方法的流程示意图,应用于网络,所述网络包括若干相连接的节点,所述数据处理的方法包括以下步骤:
步骤S10,设置所述节点的带宽约束条件。
在确定性网络(DetNet,Deterministic Network)系统中,包括多个对数据流进行接收和转发的设备,每一设备成为LDN路由器,每一设备为数据流的接收和转发节点。
在实际应用中,为简轻网络负担,通常设置节点接收或转发数据流的频率一致,以及,设置所述节点使用相同的周期值进行数据流的接收或转发。
所述设置所述节点的带宽约束条件的步骤,具体的,请参阅图2,步骤S10包括以下步骤:
步骤S101,计算经过所述节点的所述数据流所需要的带宽。
所述数据流通常是周期性的,每个周期内发送的数据量是固定的。所述的数据流的属性可以用源地址、目的地址、周期、大小、确定性路径以及端到端的时延来表示。
所述计算经过所述节点的所述数据流所需要的带宽的第一公式为:
其中,所述WTt为经过所述节点的所述数据流所需要的带宽,所述n为所述数据流的数量,所述i为所述数据流的编号,所述fi为数据流,所述fi.band为所述数据流fi的带宽,所述j为所述节点的编号,所述t为周期编号,所述数据流fi在周期编号为t的周期经过所述节点,则定义所述O(i,j,t)为1,否则定义所述O(i,j,t)为0。
需要说明的是,所述数据流的数量为1,即单个数据流经过所述网络,则所述第一公式同样适用,且,所述O(i,j,t)为1。
需要说明的是,所述数据流的数量为多个,则一所述数据流在当前周期经过所述节点,则所述O(i,j,t)为1,即占用所述节点的带宽。另一所述数据流在当前周期不经过所述节点,则所述O(i,j,t)为0,即不占用所述节点的带宽。
其中,所述fi.band为所述数据流fi约定的平均带宽,所述fi.band需要满足的第四公式为:
fi·band≥fi·size/fi·period
其中,所述fi.band为所述数据流fi的带宽,所述fi·size为所述数据流fi的大小,所述fi·period为所述数据流fi在进行周期性发送时的最小间隔。
其中,所述数据流的属性中的所述fi.size和fi·period通常为已知数,则所述数据流fi的带宽fi.band可设置,进而,经过所述节点的所述数据流所需要的带宽WTt可计算。
需要说明的是,对于上述fi.period,不同的数据流进行周期性发送时的最小间隔不同,针对不同的节点,周期值T可以使用相同的值,也可以使用不同的值,使用不同的周期值时相邻节点之间需要通告各自的周期值。所述的周期值可根据需求选择,周期值太大,可能导致对时延要求特别高的数据流的最大时延增加;周期值太小,可能导致系统的开销增加,例如循环队列数量增加。本发明实施例中,各网络节点使用相同的周期值T,并设置T为所述fi.period的最大公约数。
另外,所述节点具有调度周期S。所述的调度周期S是指完成一个调度计划的时间。由于数据流是周期性的,调度计划每隔S时间重复一次。本发明实施例中,设置S为fi.period的最小公倍数。在一个调度周期S内,每个节点按周期值T划分周期个数,最大的周期个数num=S/T。将对于所述周期编号t,则0≥t≥num-1。
步骤S102,根据经过所述节点的所述数据流所需要的带宽,设置所述节点的带宽约束条件。
其中,所述带宽约束条件包括,经过所述节点的所述数据流所需要的带宽的最大值不大于所述节点的带宽,以及,所述节点的带宽不大于所述节点的循环队列的长度和数目的乘积。
所述节点的数量为多个,经过所述节点的数据流的数量可以是相同的,也可以是不相同的,所述节点的带宽应大于或者等于经过所述节点的所述数据流所需要的带宽的最大值。即,经过所述节点的所述数据流所需要的带宽的最大值不大于所述节点的带宽,可表示为第五公式:
其中,所述(WT)为所述经过所述节点的所述数据流所需要的带宽的最大值,所述p为所述节点的出端口,所述
为节点编号为j的节点V
j的p端口,所述
为所述节点
的所述p端口的带宽。
需要说明的是,所述
表示所述数据流在所述节点的出端口。
所述循环队列包括接收队列和发送队列,所述循环队列的接收和发送角色是循环互换的,即在一个周期为接收队列,在下一个周期为发送队列。
在本发明实施例中,例如,所述循环队列的数量为n,则表示其循环队列中的发送队列和接收队列的数量之和为n。
所述循环队列的数目与全部接收完在同一周期发送至所述节点的的数据流的时间范围有关,也与拟在哪个周期内发送所述数据有关。例如,请参阅图3,节点A在周期编号X内向节点B发送周期编号为X的数据流,节点B在截止周期编号Y的结束时间之前已经接收到来自节点A的所有周期编号为X的数据流,则节点B可在周期编号Y+1内将数据流转发至下一节点,节点B全部接收到节点A的周期编号为X数据流并将该数据流转发时,所跨越的时间范围为周期Y和周期Y+1,即2T,则节点B的循环队列数目可为2。
假定节点C在某个周期编号中全部接收完来自节点D的周期编号为Y和来自节点E的周期编号为Z的数据流,但节点C在不同的周期中分别发送来自节点D和节点E的数据流,则节点C的循环队列数目也为2。
所述节点的带宽不大于所述节点的循环队列的长度和数目的乘积,可表示为第六公式:
WT≥CQF·num×CQF·len
其中,所述(WT)为所述经过所述节点的所述数据流所需要的带宽的最大值,所述CQF·num为所述循环队列的数目,所述CQF·len为所述循环队列的长度。
通过设置所述带宽约束条件,所述节点接收或转发所述数据流时,满足所述带宽约束条件,则可避免多个数据流同时经过所述节点时,形成微突发的情况,有效提升网络系统的稳定性。
步骤S20,设置所述网络的时延约束条件。
所述时延为所述节点接收所述数据流以及转发所述数据流所需要的周期值。对于单个数据流,其在周期值为T的网络中每个节点的时延的最大值为2T。换而言之,一个周期内接收数据流,另一个周期内转发数据流。对于多个数据流,若都在一个周期内接收数据流,另一个周期内转发数据流则势必会增加网络带宽的需求。如何综合考虑带宽需求和时延需求是本发明实施例所考虑的重点。
所述设置所述网络的时延约束条件的步骤,具体的,请参阅图4,步骤S20包括以下步骤:
步骤S201,计算所述节点与所述节点的下游节点之间的链路时延。
所述网络包括若干连续的节点,向所述节点发送所述数据流的节点为上游节点,接收所述节点发送所述数据流的节点为下游节点。
步骤S202,计算所述数据流在所述节点的转发时延。
所述计算所述数据流在所述节点的转发时延的步骤,进一步包括:获取所述节点发送所述数据流的周期偏移,其中,所述周期偏移为相对于所述节点最早能发送所述数据流的周期的偏移值;根据所述周期偏移,计算所述数据流在所述节点的转发时延。
其中,对于所述周期偏移,例如,所述节点A1在周期编号为t的周期分别接收完毕节点B1、节点C1和节点D1发送的数据流,则节点A1最早能发送所述数据流的周期的编号为t+1,若所述节点A1在t+1周期发送节点B1发送的数据流,则节点B1发送的数据流的周期偏移为0,若所述节点A1在t+2周期发送节点C1发送的数据流,则节点C1发送的数据流的周期偏移为1,若所述节点A1在t+3周期发送节点D1发送的数据流,则节点D1发送的数据流的周期偏移为2。
需要说明的是,所述节点A1在周期编号为t的周期分别接收节点B1、节点C1和节点D1发送的数据流携带所述数据流被发送时其对应节点所在的周期编号。
所述周期偏移需满足的条件为:
0≥kij≥CQF·num-1
以及,
0≤kij≥fi·period/T-1
其中,所述i为所述数据流的编号,所述j为所述节点的编号,所述kij为所述周期偏移,所述CQF·num为所述循环队列的数目,所述fi·period为所述数据流fi在进行周期性发送时的最小间隔,所述T为所述周期值。
其中,所述数据流在所述节点的转发时延为(2+kij)T,其中,所述i为所述数据流的编号,所述j为所述节点的编号。
步骤S203,根据所述链路时延和转发时延设置所述网络的时延约束条件。
其中,所述时延约束条件包括,所述转发时延不大于所述数据流在所述节点的最大转发时延,以及,所述链路时延和所述转发时延之和不大于所述网络的时延上限。
其中,所述转发时延不大于所述数据流在所述节点的最大转发时延的第二公式为:
Latencyij≥(2+kij)T
其中,所述i为所述数据流的编号,所述j为所述节点的编号,所述Latencyij为数据流fi在所述节点的最大转发时延,所述kij为所述周期偏移,所述(2+kij)T为所述数据流在所述节点的转发时延。
其中,所述链路时延和所述转发时延之和不大于所述网络的时延上限的第三公式为:
其中,所述m为所述节点的数量,所述Latencyij为所述数据流fi在所述节点的最大转发时延,所述lj为所述节点与所述下游节点之间的链路时延,所述fi.latency为所述数据流fi在所述网络的时延上限。
步骤S30,根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流。
其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系。
所述根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表的步骤,具体的,请参阅图5,步骤S30包括以下步骤:
步骤S301,判断所述网络为时延优先还是带宽优先,若所述网络为时延优先,则执行步骤S302,若所述网络为带宽优先,则执行步骤S303。
所述时延优先是指,在满足带宽的情况下,减小所述网络的转发时延。
所述带宽优先是指,在满足所述网络的最大转发时延的情况下,降低对带宽或者所述循环队列的要求。
为了方便读者理解时延优先和带宽优先,现举例说明,请参阅图6,节点A、节点B和节点C采用相同的周期值。节点A的周期编号为tA、tA+1、tA+2,,节点B的周期编号为tB、tB+1、tB+2,…节点C的周期编号为tC、tC+1、tC+2,…来自节点A的数据流A(fA)和节点B的数据流B(fB)在节点C汇聚。节点的周期编号是循环编号的,与循环队列的数目以及标识周期编号的位数相关。为简化起见,暂不考虑周期编号的循环特性。
当同时发送到节点C的数据流为两条时,即节点C在相同的时间同时接收节点A和节点B的数据流,请参阅图6中的P1,节点A向节点C发送数据流A(fA),数据流A(fA)在节点A的发送时间范围为TA,TA小于一个周期T的时间,其所在的周期编号为tA,则在节点A的发送时间范围为TA的数据流A(fA)所携带的周期编号为tA。节点C接收数据流A(fA)的接收时间范围是TA′。当节点A在TA时间范围内持续向节点C发送数据流A(fA)时,节点C会在TA′时间范围内持续接收数据流。节点A向节点C发送数据流A(fA)的最短时延为Δmin,最长时延为Δmax。图中TA′跨越了节点C的两个周期编号,分别为tC+1和tC+2。
同样的,请参阅图6中的P1,节点B向节点C发送数据流B(fB)。数据流B(fB)在节点B的发送时间范围为TB。TB小于一个周期T的时间,其所在的周期编号为tB,则在节点B的发送时间范围为TB的数据流B(fB)所携带的周期编号为tB。节点C接收数据流B的接收时间范围是TB′,TB′落在节点C的周期编号tC+2中。
数据流A(fA)和数据流B(fB)在节点C的TC′时间范围内被全部接收。TC′的时间范围跨越了2个周期,周期编号分别是tC+1和tC+2。因此对于节点C来说至少需要4个循环队列,即2个循环接收队列和2个循环发送队列。
若所述网络为时延优先,则数据流A(fA)和数据流B(fB)将在节点C的tC+3周期内发送出去。数据流A(fA)和数据流B(fB)在节点C的最大转发时延不超过2T。
若所述网络为带宽优先,则数据流B(fB)在节点C可以允许的最大转发时延大于2T,例如为3T,则可根据数据流A(fA)和数据流B(fB)的不同时延要求进行调度,例如,数据流A(fA)可在节点C的tC+3周期编号中发送出去,数据流B(fB)可在节点C的tC+4周期编号中发送出去。这种情况下,节点C对带宽的需求将减少,循环队列则依据数据流的等待周期而发生变化。例如,循环队列可以仍然使用4个,即2个循环接收队列分别缓存数据流A(fA)和数据流B(fB),但是数据流B(fB)在循环队列中存续的时间要比时延优先策略多一个周期时间。
当同时发送到节点C的数据流为一条时,即节点C在不同的时间接收节点A和节点B的数据流,请参阅图6中的P2,节点A向节点C发送数据流A(fA),数据流A(fA)在节点A的发送时间范围为TA,TA小于一个周期T的时间,其所在的周期编号为tA+4,则在节点A的发送时间范围为TA的数据流A(fA)所携带的周期编号为tA+4。节点C接收数据流A(fA)的接收时间范围是TA′。图中TA′跨越了节点C的两个周期编号,分别为tC+5和tC+6。
同样的,请参阅图6中的P2,节点B向节点C发送数据流B(fB)。数据流B(fB)在节点B的发送时间范围为TB。TB小于一个周期T的时间,其所在的周期编号为tB+3,则在节点B的发送时间范围为TB的数据流B(fB)所携带的周期编号为tB+3。节点C接收数据流B的接收时间范围是TB′,TB′落在节点C的周期编号tC+5中。
数据流A(fA)和数据流B(fB)在节点C的TC′时间范围内被全部接收。TC′的时间范围跨越了2个周期,周期编号分别是tC+5和tC+6。因此对于节点C来说至少需要4个循环队列,即2个循环接收队列和2个循环发送队列。
无论所述网络为时延优先还是带宽优先,都可将数据流A(fA)在节点C的tC+7周期内发送出去,将数据流B(fB)在节点C的tC+6周期内发送出去,由于节点C在不同的周期将数据流A(fA)和数据流B(fB)发送出去,即不存在不满足带宽的情况,则当同时发送到节点C的数据流为一条时,即节点C在不同的时间接收节点A和节点B的数据流,则可不进行上述步骤S301,判断所述网络为时延优先还是带宽优先,直接进入步骤S302。在一些实施例中,所述网络支持的是时延优先还是带宽优先是预先设定的。
在一些实施例中,所述节点的带宽小于预设阈值时,则判定所述网络为带宽优先。
在一些实施例中,所述判断所述网络为时延优先还是带宽优先的步骤之前,所述方法还包括判断经过所述网络的数据是否为单个数据流,若是,则直接根据时延优先,生成所述周期映射表,若为多个数据流,则再判断所述网络为时延优先还是带宽优先。具体的,所述判断所述网络为时延优先还是带宽优先的步骤之前,所述方法还包括:判断所述当前周期发送至所述节点的数据流的数量是否大于1;若否,则进入步骤S302;若是,则进入步骤S301。
步骤S302,令所述周期偏移为0,生成所述周期映射表。
所述周期偏移为0,则所述第一公式
中的所述O(i,j,t)为1,则可计算所述经过所述节点的所述数据流所需要的带宽WT
t,进而可根据所述第五公式和第六公式获得所述节点的带宽的最小值以及所述循环队列的最小值,从而提高所述网络的利用率。所述周期偏移为0,则可获得所述周期映射表。例如,节点的入口编号为所述p
j1和p
j2,所述数据流为f
a1和f
a2,所述节点的上游节点发送所述数据流f
a1和f
a2的周期分别为t
1和t
2,所述节点最早可发送所述数据流的周期为t
3,由于所述周期偏移为0,则所述节点发送所述数据流f
a1和f
a2的周期为t
3。所述周期映射表可表示为下表1。
表1时延优先的一种周期映射表
节点的入口编号 |
数据流 |
入口周期 |
出口周期 |
p<sub>j1</sub> |
f<sub>a1</sub> |
t<sub>1</sub> |
t<sub>3</sub> |
p<sub>j2</sub> |
f<sub>a2</sub> |
t<sub>2</sub> |
t<sub>3</sub> |
所述数据流在所述节点被转发后,所述数据流进入所述下游节点时携带的入口周期编号被置换为所述节点的出口周期的编号。
步骤S303,根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表。
所述根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表的步骤,进一步包括计算满足所述第二公式和第三公式的所述周期偏移;根据所述第一公式以及所述周期偏移计算经过所述节点的所述数据流所需要的带宽;获取选定周期偏移,其中,所述选定周期偏移为经过所述节点的所述数据流所需要的带宽的最小值对应的所述周期偏移;根据所述选定周期偏移生成所述周期映射表。
例如,节点的入口编号为所述pj1、pj2和pj3,所述数据流为f1、f2和f3,所述节点的上游节点发送所述数据流f1、f2和f3的周期分别为t1、t2和t3,所述节点最早可发送所述数据流的周期为t4,满足所述第二公式和第三公式的所述周期偏移分别为一组0、1和2,以及,二组0、1和1。对于所述一组和二组中的周期偏移中的数据分别代入所述第一公式,从而可获得经过所述节点的所述数据流所需要的带宽。将经过所述节点的所述数据流所需要的带宽的最小值对应的所述周期偏移选定为所述选定周期偏移。上述一组和二组中,一组为所述选定周期偏移。所述周期映射表可为下表2。
节点的入口编号 |
数据流 |
入口周期 |
出口周期 |
p<sub>j1</sub> |
f<sub>1</sub> |
t<sub>1</sub> |
t<sub>4</sub> |
p<sub>j2</sub> |
f<sub>2</sub> |
t<sub>2</sub> |
t<sub>4</sub>+1 |
p<sub>j3</sub> |
f<sub>3</sub> |
t<sub>3</sub> |
t<sub>4</sub>+2 |
需要说明的是,所述周期偏移选定后,则可根据经过所述节点的所述数据流所需要的带宽来设定所述网络中的所述节点的带宽。
需要说明的是,也可选择上述二组对应的周期偏移形成周期映射表进行数据流的传送,则既顾及到带宽的需求也同时考虑到了网络的时延。
为了方便读者理解本发明的构思,现举例说明本发明数据处理的方法。
假定数据流fA和fB的信息如下:fA·period=400us,fA·size=2000B;fB·period=300us,fB·size=750B。fA在节点C所能允许的最大转发时延为400us,fB在节点C所能允许的最大转发时延为300us,即LatencyAC=400us,LatencyBC=300us。
按照所述的方法计算周期T为100us,调度周期S为1200us。fA在每个周期T内允许发送的字节总数为500B,fB在每个周期内允许发送的字节总数为250B。由此计算fA·band=40Mbps,fB·band=20Mbps。假定fA每个报文长度为250B,fB每个报文长度为125B,即每个周期T内数据流fA和fB均可以发送两个报文。
假定fA和fB在节点A和节点B的周期T内各自发送的两个报文分别为MA1、MA2和MB1、MB2,并在节点C汇聚。节点C在tC+1和tC+2分别收到了MA1和MA2,在tC+2则收到了MB1、MB2。MA1和MA2的转发时延分别表示了从节点A到节点C的最小时延和最大转发时延,MB1和MB2的转发时延则分别表示了从节点B到节点C的最小时延和最大转发时延。
节点C在tC+1和tC+2两个周期内接收完数据流fA和fB,则对于节点C来说至少需要2个循环接收队列。
在时延优先策略中,fA和fB将在节点C的tC+3周期内发送出去。即fA和fB在节点C发送的周期编号偏移值k均为0,O(A,C,tc+3)=1,O(B,C,tc+3)=1,节点C在周期tC+3需要的带宽为40Mbps+20Mbps=60Mbps,即WTtc+3=60Mbps。
MA1、MA2和MB1、MB2在节点C的最大转发时延均木超过2T,满足fA和fB在节点C所允许的最大转发时延LatencyAC和LatencyBC。
在带宽优先策略中,fA和fB将在节点C的不同周期内发送出去。根据fA和fB在节点C所允许的最大转发时延LatencyAC和LatencyBC,比如fA在tC+3周期内发送出去,而fB在tC+4周期内发送出去。即:
O(A,C,tc+3)=1,O(A,C,tc+4)=0,
O(B,C,tc+3)=0,O(B,C,tc+4)=1,
因此,节点C在tC+3周期内需要的带宽为40Mbps,即WTtc+3=40Mbps,在tC+4周期内需要的带宽为20Mbps,即WTtc+4=20Mbps。实际需要的单个周期内最大带宽为40Mbps,因此节点C该端口的带宽至少需要为40Mbps。同时,MA1、MA2在节点C的最大转发时延木超过2T,而MB1、MB2在节点C的最大转发时延木超过3T。均能满足LatencyAC和LatencyBC。
在本发明实施例中,通过设置所述节点的带宽约束条件;设置所述网络的时延约束条件;根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系,在多个数据流汇聚时,可综合考虑带宽约束和时延约束从而设定周期映射表。与此同时,在综合带宽约束和时延约束时可根据实际需要调整所述网络的带宽和所述网络的时延,从而一方面可提高所述网络中带宽的利用率,另一方面可最大化的减小所述网络的时延。
实施例二
请参阅图7,图7是本发明实施例提供的一种数据处理的装置的示意图,该装置400包括:带宽设置模块401、时延设置模块402和映射表生成模块403。其中,所述带宽设置模块401,用于设置所述节点的带宽约束条件;时延设置模块402,用于设置所述网络的时延约束条件;映射表生成模块403,用于根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系。
在一些实施例中,所述带宽设置模块401包括:第一计算模块4011和带宽设置单元4012。其中,第一计算模块4011,用于计算经过所述节点的所述数据流所需要的带宽;带宽设置单元4012,用于根据经过所述节点的所述数据流所需要的带宽,设置所述节点的带宽约束条件,其中,所述带宽约束条件包括,经过所述节点的所述数据流所需要的带宽的最大值不大于所述节点的带宽,以及,所述节点的带宽不大于所述节点的循环发送队列的长度和数目的乘积。
在一些实施例中,所述数据流的数量为多个,所述计算经过所述节点的所述数据流所需要的带宽的第一公式为:
其中,所述WTt为经过所述节点的所述数据流所需要的带宽,所述n为所述数据流的数量,所述i为所述数据流的编号,所述fi为数据流,所述fi.band为所述数据流fi的带宽,所述j为所述节点的编号,所述t为周期编号,所述数据流fi在周期编号为t的周期经过所述节点,则定义所述O(i,j,t)为1,否则定义所述O(i,j,t)为0。
在一些实施例中,所述时延设置模块402包括:第二计算单元4021、第三计算单元4022和时延设置单元4023。其中,第二计算单元4021,用于计算所述节点与所述节点的下游节点之间的链路时延;第三计算单元4022,用于计算所述数据流在所述节点的转发时延;时延设置单元4023,用于根据所述链路时延和转发时延设置所述网络的时延约束条件,其中,所述时延约束条件包括,所述转发时延不大于所述数据流在所述节点的最大转发时延,以及,所述链路时延和所述转发时延之和不大于所述网络的时延上限。
在一些实施例中,所述第三计算单元4022具体用于获取所述节点发送所述数据流的周期偏移,其中,所述周期偏移为相对于所述节点最早能发送所述数据流的周期的偏移值;根据所述周期偏移,计算所述数据流在所述节点的转发时延。
在一些实施例中,所述转发时延不大于所述数据流在所述节点的最大转发时延的第二公式为:
Latencyij≥(2+kij)T
其中,所述i为所述数据流的编号,所述j为所述节点的编号,所述Latencyij为数据流fi在所述节点的最大转发时延,所述kij为所述周期偏移,所述(2+kij)T为所述数据流在所述节点的转发时延。
在一些实施例中,所述链路时延和所述转发时延之和不大于所述网络的时延上限的第三公式为:
其中,所述m为所述节点的数量,所述Latencyij为所述数据流fi在所述节点的最大转发时延,所述lj为所述节点与所述下游节点之间的链路时延,所述fi.latency为所述数据流fi在所述网络的时延上限。
在一些实施例中,所述映射表生成模块403包括:第一判断单元4031、第一生成单元4032和第二生成单元4033。其中,第一判断单元4031,用于判断所述网络为时延优先还是带宽优先;第一生成单元4032,用于若所述网络为时延优先,则令所述周期偏移为0,生成所述周期映射表;第二生成单元4033,用于若所述网络为带宽优先,则根据所述第二公式和第三公式计算所述数据流的所述周期偏移,以及,根据所述周期偏移生成所述周期映射表。
在一些实施例中,所述第二生成单元4033具体用于计算满足所述第二公式和第三公式的所述周期偏移;根据所述第一公式以及所述周期偏移计算经过所述节点的所述数据流所需要的带宽;获取选定周期偏移,其中,所述选定周期偏移为经过所述节点的所述数据流所需要的带宽的最小值对应的所述周期偏移;根据所述选定周期偏移生成所述周期映射表。
在一些实施例中,所述映射表生成模块403还包括第二判断单元4034。所述第二判断单元4034用于判断所述当前周期发送至所述节点的数据流的数量是否大于1,若否,则进入所述第一生成单元4032,若否,则进入所述第一判断单元4031。
在本发明实施例中,通过带宽设置模块401设置所述节点的带宽约束条件;通过时延设置模块402设置所述网络的时延约束条件;通过映射表生成模块403根据所述节点的带宽约束条件,以及所述时延约束条件生成周期映射表,以使所述节点根据所述周期映射表发送所述数据流,其中,所述周期映射表包括所述节点自身发送所述数据流的周期和所述节点的上游节点发送所述数据流的周期的对应关系,在多个数据流汇聚时,可综合考虑带宽约束和时延约束从而生成周期映射表。与此同时,在综合带宽约束和时延约束时可根据实际需要调整所述网络的带宽和所述网络的时延,从而一方面可提高所述网络中带宽的利用率,另一方面可最大化的减小所述网络的时延。
实施例三
请参阅图8,图8是是本发明实施例提供的执行数据处理的方法的电子设备的硬件结构示意图。该电子设备500包括:一个或多个处理器501以及存储器502,图8中以一个存储器为例。
处理器501和存储器502可以通过总线或者其他方式连接,本发明实施例中以通过总线连接为例。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据处理的方法对应的程序指令/模块(例如,附图7所示的各个模块)。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行数据处理的装置的各种功能应用以及数据处理,即实现上述方法实施例的数据处理的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据处理的装置的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至数据库访问装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器502中,当被所述一个或者多个处理器501执行时,执行上述任意方法实施例中的数据处理的方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被电子设备执行上述任意方法实施例中的数据处理的方法。
本发明实施例提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行上述任意方法实施例中的数据处理的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件来实现。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。