一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种流量调度方法及装置、计算机可读存储介质与流程

2021-10-24 07:50:00 来源:中国专利 TAG:调度 说明书 装置 流量 可读


1.本说明书涉及通信技术领域,尤其涉及一种流量调度方法及装置、计算机可读存储介质。


背景技术:

2.随着信息技术(informationtechnology,缩写为it)与运营技术(operation technology,缩写为ot)的不断融合,对于统一网络架构的需求变得迫切。智能制造、工业物联网、大数据的发展,都使得这一融合变得更为紧迫。而it与ot对于通信的不同需求也导致了在很长一段时间,融合这两个领域出现了很大的障碍:互联网与信息化领域的数据需要更大的带宽,而对于工业而言,实时性与确定性则是问题的关键。这些数据通常无法在同一网络中传输。因此,寻找一个统一的解决方案已成为产业融合的必然需求。
3.时间敏感型网络(timesensitive network,tsn)是目前国际产业界正在积极推动的全新工业通信技术。时间敏感型网络允许周期性与非周期性数据在同一网络中传输,使得标准以太网具有确定性传输的优势,并通过厂商独立的标准化进程,已成为广泛聚焦的关键技术。
4.在tsn网络中转发的网络流量,需要找寻出一条最优路径,路程要短,耗时少,并保证所有在tsn网络中转发的流量在所有有聚合的设备上没有冲突的时间,其中,这里的有聚合的设备指的是多条路径均包括的网络设备。
5.dijkstra算法是一种常见的寻找最短路径的算法,但是该算法无法满足tsn网络中转发的流量在同一时间段到达同一个设备的时间冲突和端口队列分配的单点冲突问题。


技术实现要素:

6.为克服相关技术中存在的问题,本说明书提供了一种流量调度方法及装置。
7.根据本说明书实施例的第一方面,提供一种流量调度方法,应用于网络管理设备,所述方法包括:
8.确定多条流量是否存在共同经过的交叉设备的共用端口,所述共用端口为所述多条流量均会流经的出端口;
9.判断是否存在流量在所述交叉设备的共用端口被转发出去时存在时间冲突,若存在冲突则向所述交叉设备发送指令,所述指令用于指示在存在冲突的流量中后经过的流量等待预设时间。
10.可选的,所述方法还包括:
11.确定每一条流量的发送方和接收方之间的转发时延的约束值;
12.确定该流量在目标路径对应的发送方上开始转发时间和到达接收方的到达时间的差值,所述目标路径为发送方和目的之间的可达路径;
13.若所述差值大于所述转发时延的约束值,则舍弃该目标路径,重新确定所述该流量对应的发送方与接收方之间的其他转发路径。
14.可选的,确定多条流量是否存在共同经过的交叉设备的共用端口,包括:
15.针对每一条流量确定该条流量对应的最短的路径;
16.根据各条流量最短的路径进行比较,确定各条流量的最短路径上是否有共同经过的交叉设备的共用端口;
17.如果存在流量的最短路径对应的发送方上开始转发时间和到达接收方的到达时间的差值大于转发时延的约束值,则选择该流量对应的次短路径与其他流量的最短路径进行比较,确定是否有共同经过的交叉设备的共用端口。
18.可选的,判断是否存在流量在所述交叉设备的共用端口被转发时存在时间冲突,若存在冲突则向所述交叉设备发送指令,包括:
19.确定每一条流量到达共用端口的最早时间;
20.确定每一条流量完全被转发出共用端口的最晚时间;
21.根据最早时间和最晚时间确定每一条流量在所述共用端口处被处理的时间范围;
22.若多条流量的时间范围存在交集,则向所述交叉设备发送指令,以指示所述时间范围存在交集的流量中后经过的流量等待预设之间。
23.可选的,所述方法还包括:
24.根据流量在当前交叉设备的共用端口处等待的预设时间,更新该流量在当前交叉设备之后经过的网络设备的出端口的最早时间和完全被转发出所述出端口的最晚时间;
25.根据更新后的最早时间和最晚时间确定该流量在当前交叉设备之后的交叉设备的共用端口是否存在时间冲突。
26.可选的,在所述指令中携带共用端口对应的多个转发队列对应的开启时间,其中,存在冲突的第一流量和第二流量中,后到达的第二流量对应的第二转发队列的开启时间根据第一流量完全被转发出共用端口的最晚时间确定。
27.可选的,所述多条流量中的任一流量为按照一定周期发送的流量。
28.根据本说明书实施例的第二方面,提供一种流量调度方法、一种流量调度装置,包括:确定模块、冲突检测模块、发送模块;确定模块,用于确定多条流量是否存在共同经过的交叉设备的共用端口,所述共用端口为所述多条流量均会流经的出端口;
29.冲突检测模块,用于判断是否存在流量在所述交叉设备的共用端口被转发出去时存在时间冲突,若存在冲突则发送模块向所述交叉设备发送指令,所述指令用于指示在存在冲突的流量中后经过的流量等待预设时间。
30.可选的,所述确定模块还用于确定每一条流量的发送方和接收方之间的转发时延的约束值;确定该流量在目标路径对应的发送方上开始转发时间和到达接收方的到达时间的差值,所述目标路径为发送方和目的之间的可达路径;若所述差值大于所述转发时延的约束值,则舍弃该目标路径,重新确定所述该流量对应的发送方与接收方之间的其他转发路径。
31.可选的,所述确定模块在确定多条流量是否存在共同经过的交叉设备的共用端口时,具体用于针对每一条流量确定该条流量对应的最短的路径;根据各条流量最短的路径进行比较,确定各条流量的最短路径上是否有共同经过的交叉设备的共用端口;如果存在流量的最短路径对应的发送方上开始转发时间和到达接收方的到达时间的差值大于转发时延的约束值,则选择该流量对应的次短路径与其他流量的最短路径进行比较,确定是否
有共同经过的交叉设备的共用端口。
32.可选的,所述冲突检测模块在判断是否存在流量在所述交叉设备的共用端口被转发时存在时间冲突,若存在冲突则向所述交叉设备发送指令时,具体用于:
33.确定每一条流量到达共用端口的最早时间;
34.确定每一条流量完全被转发出共用端口的最晚时间;
35.根据最早时间和最晚时间确定每一条流量在所述共用端口处被处理的时间范围;
36.若多条流量的时间范围存在交集,则向所述交叉设备发送指令,以指示所述时间范围存在交集的流量中后经过的流量等待预设之间。
37.可选的,所述装置还包括:
38.更新模块,用于根据流量在当前交叉设备的共用端口处等待的预设时间,更新该流量在当前交叉设备之后经过的网络设备的出端口的最早时间和完全被转发出所述出端口的最晚时间;
39.所述冲突检测模块用于根据更新后的最早时间和最晚时间确定该流量在当前交叉设备之后的交叉设备的共用端口是否存在时间冲突。
40.可选的,在所述指令中携带共用端口对应的多个转发队列对应的开启时间,其中,存在冲突的第一流量和第二流量中,后到达的第二流量对应的第二转发队列的开启时间根据第一流量完全被转发出共用端口的最晚时间确定;
41.所述多条流量中的任一流量为按照一定周期发送的流量。
42.根据本说明书实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序在被计算机调用时,使所述计算机执行如第一方面所提供的任一项所述的方法。
43.本说明书的实施例提供的技术方案可以包括以下有益效果:网络管理设备通过计算到达共用端口的最早时间和流量从共用端口被完全转发出去的最晚时间确定出流量在共用端口处可能停留的时间范围,如果不同流量对应的该时间范围存在重合,则说明存在流量转发在时间上的冲突,通过延时的方式,可以很好的解决这个问题。
44.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
45.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
46.图1是本说明书提供的流量调度方法的流程示意图;
47.图2是本说明书提供的网络架构示意图;
48.图3是本说明书另一实施例提供的流量调度方法的流程示意图;
49.图4是本说明书提供的内部转发时延的示意图;
50.图5是本说明书提供的又一流量调度方法的流程示意图;
51.图6是本说明书再一实施例提供的流量调度方法的流程示意;
52.图7是本说明书提供的流量调度装置的结构示意图;
53.图8是本说明书提供的控制器的结构示意图。
具体实施方式
54.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
55.实施例一
56.本实施例提供一种流量调度方法,该流量调度方法可以应用于网络管理设备,通过网络管理设备确定多条流量在网络拓扑中共同经过的交叉设备的共用端口,并确定多个流量在共用端口被转发出去时是否存在时间上的冲突,如果存在冲突,则向交叉设备发送指令,指示存在冲突的流量中在后到达的流量进行等待,等待预设时长后再转发出去。通过在后到达的流量进行等待的方式,从而避免流量在共用端口被转发出去的时候存在冲突而造成的丢弃的问题。
57.在介绍本实施例的方法之前,本实施例先对网络管理设备可以获取到的设备属性加以介绍。
58.设备属性中可以包括以下内容:网络设备的标识、网络设备的转发时延范围、门控最大间隔时间、门控时间精度、转发端口的标识、转发端口的带宽、转发链路时延;
59.其中,网络设备的标识可以采用网络设备的mac地址、或者ip地址、或者序列号等可以唯一标识网络设备的标识;
60.网络设备的内部转发时延范围:是指流量从入端口进行的时间,到到达出端口处的时间,网络管理设备可以从网络设备获取到每一个网络设备的内部转发时延范围;由于流量从入端口进入后可能会进行一系列的处理,对数据流的处理时间并不是一个固定的值,因此网络设备的内部转发时延范围是由网络设备转发时延的最小值和网络设备转发时延的最大值共同确定的范围区间。举例来说,流量到达网络设备a的入端口的时间为01:05,从入端口进入之后,网络设备a可能会对该流量进行识别、解封装等处理,由于设备处理性能以及当前处理其他业务的压力等等,网络设备在一段时间内测量到的在进行一系列处理结束到达出端口的时间最早的时间为01:10,到达出端口最晚的时间为01:15,那么根据流量到达入端口的时间01:05以及01:10和01:15可以分别确定该网络设备转发时延的最小值和最大值。
61.门控最大间隔时间:本技术提供的方法中,可以通过对转发队列的开启时间进行控制,每一个转发队列可以由开启到关闭的最大时间称为门控最大间隔时间;
62.门控时间精度:是转发队列开启时长的精度,例如,精度为5us,那么转发队列开启到关闭的时长至少要是时间精度的整数倍。
63.链路的转发时延:从网络设备的出端口到该网络设备的下一跳设备的入端口的时间差,即为该网络设备与下一跳设备之间的链路的转发时延。
64.图1示出了该流量调度方法的流程示意图,该流量调度方法可以应用于网络管理软件、sdn(software defined network,软件定义网络)控制器等用于管理网络设备的软件或者硬件实体。
65.如图1所示,该流量调度方法包括:
66.步骤101,确定多条流量是否存在共同经过的交叉设备的共用端口,所述共用端口
为所述多条流量均会流经的出端口;
67.在网络中可能存在多种类型的业务流量进行转发,一些流量可能是周期性进行转发的流量,比如在工厂的自动化控制的场景下,一些控制任务是周期性的。本实施例提供的流量调度方法的一种可能应用的场景是,多条流量均为周期性发送的流量。
68.本实施例以多条流量为tsn流为例进行说明。在tsn流量的场景下,对于每一条流都存在流量的发送方talker和接收方listener的角色。
69.不同流量的发送方和接收方至少有一方是不同的。
70.图2示出了一种网络架构的示意图。图1以三条流量为例,三条流的发送方分别为talker1、talker2、talker3。为了简化模型,三条流的接收方均以listener4为例进行说明。
71.网络管理设备(在后文中简称网管)可以获取其管理的所有网络设备的拓扑图,拓扑图中包括了网络设备间的连接关系。同时,网络设备可以获取到各个流量的发送方和接收方的信息,网管可以以流量的发送方作为起点,根据拓扑图查找该发送方连接的边缘设备,进而查找到边缘设备连接的网络设备,直至查找到接收方停止,由此可以查找到每一条流量的可达路径。
72.例如,可以确定流量1的可达路径包括:
73.talker1

>a

>d

>e

>listener4;
74.talker1

>a

>b

>e

>listener4;
75.talker1

>a

>c

>d

>e

>listener4。
76.类似的,可以确定流量2可达路径包括:
77.talker2

>c

>d

>e

>listener4;
78.talker2

>c

>a

>b

>e

>listener4;
79.talker2

>c

>a

>d

>e

>listener4
80.talker2

>c

>d

>a

>b

>e

>listener4;
81.流量3可达路径包括:
82.talker3

>b

>e

>listener4。
83.由于每一条流可达路径为多个,在确定是否存在共同经过的交叉设备时,可以先比较各个流量的最短路径进行比较。具体的,在实现时,针对每一条流量,可以将该流量可达路经按照到达接收方的时间顺序进行排列。
84.在一种可能的实现方式中:对于流量到达接收方的时间一种可以是采用实际的流量进行测试,根据测试的结果指导后续流量的转发。
85.在另一种可能的实现方式中:网管可以根据获取到的设备信息去估算各个流量到达接收方的时间。这种实施方式将会在本说明书后面的实施例中详细展开,这里暂不赘述。
86.如果最短路径为多个,可以随机选取或者按照其他规则选取一条,对于选取最短路径的方式本实施例中并不加以限定。
87.以三条流的最短路径分别为:talker1

>a

>d

>e

>listener4、talker2

>c

>d

>e

>listener4、talker3

>b

>e

>listener4为例,那么可以确定出流量1与流量2之间的交叉设备为d,流量1、流量2、流量3之间的交叉设备为e。
88.在这里假设流量1、流量2在交叉设备d上存在共用端口,即流量1和流量2在交叉设备d上都会通过该相同的出端口转发出去;流量1、流量2、流量3在交叉设备e上存在共用端
口,即流量1、流量2、流量3在交叉设备e上都会通过设备e上相同的出端口转发出去。
89.步骤103,判断是否存在流量在所述交叉设备的共用端口被转发出去时存在时间冲突,若存在冲突则向所述交叉设备发送指令,所述指令用于指示在存在冲突的流量中后经过的流量等待预设时间。
90.步骤103具体的可以如图3所示,通过步骤1031

步骤1033所提供的实施方式实现。
91.步骤1031,确定每一条流量到达共用端口的最早时间。
92.图4示出了一种流量转发的示意图,图4中针对流量的处理包括两部分,一部分是在流量从入端口进入之后,进行的其他处理,这里的其他处理的类型并不加以限定,在进行其他处理之后到达出端口处等待进行转发。由于网络设备在对流量进行其他处理的时间,即内部转发时延可能为1s,也可能为5s。因此,根据内部转发时延的最小值、链路时延以及该流量在各个网络设备的转发队列中被处理的时间可以确定到达交叉设备的共用端口的最早时间。
93.网管可以从网络设备获取网络设备内部转发时延的最小值和最大值,根据该最小值和最大值可以确定网络设备内部转发时延的范围;
94.流量在转发队列中被处理的时间ta(i)=流量的大小/出端口的带宽;
95.其中,i为设备标识,例如,ta(a)即为流量在网络设备a中的转发队列被处理的时间。
96.那么从talker1到达网络设备a的出端口的最早时间为t(a)min:
97.流量1到达talk1设备入口的时间 网络设备a的内部转发时延的最小值;
98.talk1到达网络设备b的出端口的最早时间为t(b)min:
99.流量1到达talk1设备入口的时间 网络设备a的内部转发时延的最小值 流量在网络设备a的出端口的转发队列中被处理的时间 网络设备a的出端口与网络设备b的入端口之间的链路时延;
100.依次类推,可以确定流量1到达各个网络设备的出端口的最早时间。
101.步骤1032,确定每一条流量完全被转发出共用端口的最晚时间;
102.流量完全被转发出共用端口的最晚时间是根据网络设备内部转发时延的最大值确定的。(流量完全被转发出共用端口的最早离开设备时间是根据网络设备内部转发时延的最小值确定的,在本实施例中暂时用不到流量完全被转发出共用端口的最早离开设备的时间)。
103.具体的,接续上述示例,流量完全被转发出网络设备a的最晚时间t(a)max为:
104.流量1到达talk1设备入口的时间 网络设备a的内部转发时延的最大值 流量在网络设备a的出端口的转发队列中被处理的时间;
105.依次类推,可以计算出流量1在各个网络设备上完全被转发出去的最晚的离开设备的时间。
106.步骤1033,根据最早时间和最晚时间确定该条流量在共用端口处停留的时间范围。
107.根据流量到达共用端口的最早时间和被转发出共用端口的最晚离开设备的时间可以确定出一个时间范围,该时间范围在本实施例中被称为在共用端口处停留的时间范围。
108.步骤1034,若多条流量的时间范围存在交集,则向所述交叉设备发送指令。
109.以表1至表5说明多条流量的时间范围存在交集的情况。
110.表1示出了流量1到达流路径上的各个网络设备的出端口的最早时间、和离开出端口的最晚时间。示例性的,表1中表示流量1到达网络设备a的出端口的最早时间为01:00,离开出端口的最晚时间为01:10;流量1到达网络设备d的出端口的最早时间为01:11,离开出端口的最晚时间为01:21;流量1到达网络设备e的出端口的最早时间为01:22,离开网络设备e的出端口的最晚时间为01:32。
111.表1
112.流标识网络设备标识到达出端口的最早时间离开出端口的最晚时间1a01:0001:101d01:1101:211e01:2201:32
113.表2示出了流量2到达流路径上的各个网络设备的出端口的最早时间、和离开出端口的最晚时间。
114.表2
115.流标识网络设备标识到达出端口的最早时间离开出端口的最晚时间2c01:0001:102d01:1201:232e01:2301:33
116.表3示出了流量3到达流路径上的各个网络设备的出端口的最早时间、和离开出端口的最晚时间。
117.表3
118.流标识网络设备标识到达出端口的最早时间离开出端口的最晚时间3b01:1001:203e01:2101:29
119.上述表1~表3中仅仅示出了各个流量对应的最短路径。在实际情况中每一条流可能对应多条路径,在此不再一一示出。根据表1~表3可以确定各个流量的交叉设备。
120.这里假设各个流在交叉设备上的出端口是同一个,流量1和流量2的流路径上存在交叉设备d的共用端口,根据表1流量1到达共用端口和离开共用端口的最晚时间确定的时间范围为(01:11,01:21),根据表2,流量2到达共用端口和离开共用端口的最晚时间确定的时间范围为(01:12,01:23)。可见两个流在共用端口在转发两条流时存在流量冲突。因此网络控制设备可以指示交叉设备d中,后经过的流量2等待预设时间,例如,让流量2在01:21之后再在共用端口进行转发。其中,预设时间可以根据先到达的流量的离开共用端口的最晚时间进行确定。
121.表4示出了下发指令后,经过等待预设时间后,流量1和流量2到达交叉设备上的共用端口的最早时间、和离开共用端口的最晚时间。
122.表4
123.流标识网络设备标识到达出端口的最早时间离开出端口的最晚时间
1d01:1101:212d01:2101:32
124.在另一种可能的情况中,多条流可能存在不止一个交叉设备,如果多条业务流在网络中存在多个交叉设备的共用端口,那么,在上述实施例的基础上,本实施例提供的方法还包括:
125.步骤1035,根据流量在当前交叉设备的共用端口处等待的预设时间,更新该流量在当前交叉设备之后经过的网络设备的出端口的最早时间和完全被转发出所述出端口的最晚时间。
126.步骤1036,根据更新后的最早时间和最晚时间确定该流量在当前交叉设备之后的交叉设备的共用端口是否存在时间冲突。
127.接续上述实施例,流量2在交叉设备d在到达共用端口后,延后9s(从原来的01:12延后至01:21)进行转发。
128.流量2经过等待预设时间(9s)后,那么相应的到达下一跳设备的时间也会延后9s。
129.本实施例中由于流量1、流量2、流量3还存在另一交叉设备e,由此可以流量2经过等待预设时间后,在交叉设备e上到达e上的共用端口的最早时间和离开e上的共用端口的最晚时间。其中,表5示出了流量2经过等待预设时间后,到达交叉设备e的共用端口的最早时间和离开共用端口的最晚时间。
130.表5
[0131][0132][0133]
此时,步骤1035和步骤1036实际是在交叉设备e上重复执行步骤101~1034。
[0134]
根据表5确定出流量3和流量1对应的时间范围存在交集,因此需要对后到达共用端口的流量1和流量2均进行延时。进行延时后,各个流在网络设备e上到达e上的共用端口的最早时间和离开网络设备e上的共用端口的最晚时间为表6所示。
[0135]
表6
[0136]
流标识网络设备标识到达出端口的最早时间离开出端口的最晚时间3e01:2101:291e01:2901:392e01:3901:49
[0137]
本实施例提供的方法中,网络管理设备通过计算到达共用端口的最早时间和流量从共用端口被完全转发出去的最晚时间确定出流量在共用端口处可能停留的时间范围,如果不同流量对应的该时间范围存在重合,则说明存在流量转发在时间上的冲突,通过延时的方式,可以很好的解决这个问题。
[0138]
实施例二
[0139]
在上述实施例的基础上,本实施例主要对下发至交叉设备的指令的情况加以说明。
[0140]
在一种可以实现的方式中,在指令中携带共用端口对应的多个转发队列对应的开启时间。针对一个转发队列,在开启时间到达时允许该转发队列对应的流量进行转发。
[0141]
在一个示例中,用户可以为流量指定相应的转发队列。例如,为流量1指定转发队列7、为流量2指定转发队列6,为流量3指定转发队列4。当然,也可以为一个流量指定多个队列,本实施例中以流量与转发队列为一一对应关系进行说明。在一种可选的实施方式中,可以在每个网络设备上,为每一条流均指定固定的队列,例如流量1在网络设备a上通过转发队列7转发,流量1在网络设备设备d上还通过转发队列7转发,通过这样的方式,可以后续在出现问题时,对具体哪个队列出问题进行溯源。
[0142]
进而网络管理设备可以在指令中携带为交叉设备的共用端口对应的每一个转发队列设置的的开启时间,其中,后到达的流量对应的转发队列的开启时间根据在前到达的第一流量完全被转发出共用端口的最晚时间确定。图7示出了一种向交叉设备d下发的指令中可以携带的信息。如图7所示,后到达的流量2对应的队列的开启时间可以根据先到达的流量1被转发出共用端口的最晚时间01:21确定(根据表4确定)。
[0143]
表7
[0144]
流量标识转发队列标识队列开启时间1701:112601:21
[0145]
在另一种可能的实现方式中,为流量指定转发队列也可以通过其他的指令实现。即表7中可以仅携带流量标识和转发队列的开启时间,或者仅携带转发队列的标识或者转发队列的开启时间。
[0146]
网络管理设备可以根据如下公式确定出各个网络设备上的转发队列的开启时间:
[0147]
(t(i)max ta(i)

t(i)min) {precision

[((t(i)max ta(i)

t(i)min)%precision]};其中,t(i)min为到达网络设备i的出端口的最早时间;
[0148]
t(i)max为完全被转发出网络设备i的出端口的最晚时间;
[0149]
ta(i)为流量在网络设备i的转发队列中被处理的时间;
[0150]
precision为门控时间精度;
[0151]
%为取余符号。
[0152]
在上述公式中,(t(i)max ta(i)

t(i)min)算的是流在第i个设备上,到达出端口的最晚时间,加上该流量在出端口的转发队列中处理的时间后,得到的是这条流最晚从出端口完全被转发出去的时间,再减去流量到达网络设备i出端口的最早时间,最终得到这条流所在队列门控需要开启的时间。
[0153]
对根据(t(i)max ta(i)

t(i)min)计算得到的上述时间,再进行精度取余,代表上述时间进行整数倍精度后,还留下多少数,这个余数,是为了让精度减掉,算出要补的数。这样就可以算出来,最初的门控时间,还要加上多少,才能是整数倍的精度值。
[0154]
在对流量进行转发的过程中,在另一种可能的实现方式:网络管理设备可以按照到达共用端口的时间先后顺序指示流量按照优先级从高到低的顺序转发报文。示例性的,若转发队列7优先级最高,转发队列6次之,转发队列4优先级再次之。如果流量1最早到达,
则将流量1放入转发队列7进行转发,如果在流量1还未被转发完,流量2就到达了,那么将流量2放入转发队列6中等待转发。从而实现后到达的流量2等待流量1的目的。
[0155]
实施例三
[0156]
在上述实施例的基础上,本实施例提供的方法中可以对选择路径的方式进一步优化。
[0157]
在上述实施例一或实施例二的基础上,图5为本说明书提供的另一流量调度方法的流程示意图,如图5所示,该方法包括:
[0158]
步骤501,确定每一条流量的发送方和接收方之间的转发时延的约束值。
[0159]
网络管理设备可以确定其管理的所有网络设备的拓扑图,具体的,可以将其管理的网络设备的标识作为关键字key,设备属性作为value存进字典中,成为一张附带设备属性的无向图。设备属性具体包括的内容在实施例一种介绍过,本实施例中不再赘述。
[0160]
网络管理设备可以接收用户输入的流量对应的发送方的标识、接收方的标识,与发送方连接的边缘设备的标识,与接收方连接的边缘设备的标识,该流量开始转发的时间,该流量的大小,流标识和该流量在发送方和接收方之间转发时延的约束值(例如,该流量在发送方和接收方之间的最大转发时延)。
[0161]
步骤503,确定该流量在目标路径对应的发送方上开始转发时间和到达接收方的到达时间的差值,所述目标路径为发送方和目的之间的可达路径。
[0162]
网络管理设备可以根据用户输入的发送方和接收方的标识,以发送方作为起点,遍历步骤501中提到的字典,查找与发送方连接的边缘设备,之后查找与边缘设备连接的设备id,直至查找到接收方设备停止,将这条路径存储至可达路径列表。重复此步骤,可以获得该流量在发送方与接收方之间的所有可达路径。
[0163]
遍历可达路径列表中可达路径上的网络设备,在字典中查找当前网络设备对应的value值,通过步骤103

步骤1033确定出根该条流量在共用端口处停留的时间范围。同时可以从value值中确定出链路的转发时延、根据链路的转发时延可以确定出流量到达当前设备的下一跳设备入端口的时间范围,作为下一跳设备该流开始转发的时间范围,重复此过程,直至到接收方停止计算,会计算得到可达路径上所有网络设备上对应的时间范围。
[0164]
步骤505,若所述差值大于所述转发时延的约束值,则舍弃该目标路径,重新确定所述该流量对应的发送方与接收方之间的其他转发路径。
[0165]
针对每一个可达路径,根据获得的在发送方上开始转发的时间和计算得到的到达接收方的到达时间的差值,与步骤501中提到的最大转发时延相比较,如果该差值超过最大转发时延,则舍弃该可达路径,即该可达路径不符合最大转发时延的约束。
[0166]
将不符合时延约束条件的路径剔除,在进行流量是否存在交叉设备时,可以减少计算量。
[0167]
应当理解的是,上述步骤501

步骤505,与上述实施例一、实施例二中的步骤101

103、步骤101

1034等的执行顺序并不加以限定。例如,步骤501

505在步骤101之前执行,也可以在步骤505之后执行。在步骤505之后执行,计算得到的流量到达接收者的到达时间是经过延时之后的时间。
[0168]
实施例四
[0169]
在上述实施例的基础上,为了提高执行效率,可以在上述实施例一至实施例三任
一实施例的基础上,图6示出了本说明书提供的在确定多条流量是否存在共同经过的交叉设备的共用端口,可以采用如下的实施方式进行实现:
[0170]
步骤601,针对每一条流量确定该条流量对应的最短的路径。
[0171]
步骤603,根据各条流量最短的路径进行比较,确定各条流量的最短路径上是否有共同经过的交叉设备的共用端口。
[0172]
其中实施例一种示出了根据最短路径寻找共用端口的示例,本实施例中不再详细赘述。
[0173]
步骤605,如果存在流量的最短路径对应的发送方上开始转发时间和到达接收方的到达时间的差值大于转发时延的约束值,则选择该流量对应的次短路径与其他流量的最短路径进行比较,确定是否有共同经过的交叉设备的共用端口。
[0174]
在一个示例中,可以确定流量2可达路径包括:
[0175]
talker2

>c

>d

>e

>listener4;
[0176]
talker2

>c

>a

>b

>e

>listener4;
[0177]
talker2

>c

>a

>d

>e

>listener4
[0178]
talker2

>c

>d

>a

>b

>e

>listener4;
[0179]
如果流量2经过延时之后,针对最短路径talker2

>c

>d

>e

>listener4,到达接收方listener4的时间与发送方talker1上开始转发的时间之间的差值大于流量2转发时延的约束值,那么可以选择次短路径talker2

>c

>a

>b

>e

>listener4与其他流量的最短路径进行比较。
[0180]
最后将经过延时之后,所有符合要求的可达路径记录至可选路径表中,可选路径表中可以记录有各个可达路径上各个网络设备对应的发送指令。
[0181]
本实施例提供的方法中,除了向交叉设备发送指令之外,流量在交叉设备之后经过的网络设备也适应性的下发指令,以指示交叉设备之后的网络设备进行同样的延时。
[0182]
通过上述方式,可以寻找到最短最优的路径转发各个流量,并且不存在流量在交叉设备上的流量转发的冲突问题。
[0183]
其中,需要说明的是,图6的流程示意图是在实施例三的基础上进一步的实现,但应当理解的是,本实施例的方法并也可以没有步骤501~503进行实现。
[0184]
实施例五
[0185]
本实施例提供一种流量调度装置,该流量调度装置可以用于执行上述任一实施例提供的流量调度方法,图7示出了该流量调度装置的结构示意图,如图7所示,该装置包括:确定模块701、冲突检测模块702、发送模块703;
[0186]
确定模块701,用于确定多条流量是否存在共同经过的交叉设备的共用端口,所述共用端口为所述多条流量均会流经的出端口;
[0187]
冲突检测模块702,用于判断是否存在流量在所述交叉设备的共用端口被转发出去时存在时间冲突,若存在冲突则发送模块703向所述交叉设备发送指令,所述指令用于指示在存在冲突的流量中后经过的流量等待预设时间。
[0188]
可选的,所述确定模块701还用于确定每一条流量的发送方和接收方之间的转发时延的约束值;确定该流量在目标路径对应的发送方上开始转发时间和到达接收方的到达时间的差值,所述目标路径为发送方和目的之间的可达路径;若所述差值大于所述转发时
延的约束值,则舍弃该目标路径,重新确定所述该流量对应的发送方与接收方之间的其他转发路径。
[0189]
可选的,所述确定模块701在确定多条流量是否存在共同经过的交叉设备的共用端口时,具体用于针对每一条流量确定该条流量对应的最短的路径;根据各条流量最短的路径进行比较,确定各条流量的最短路径上是否有共同经过的交叉设备的共用端口;如果存在流量的最短路径对应的发送方上开始转发时间和到达接收方的到达时间的差值大于转发时延的约束值,则选择该流量对应的次短路径与其他流量的最短路径进行比较,确定是否有共同经过的交叉设备的共用端口。
[0190]
可选的,所述冲突检测模块702在判断是否存在流量在所述交叉设备的共用端口被转发时存在时间冲突,若存在冲突则向所述交叉设备发送指令时,具体用于:
[0191]
确定每一条流量到达共用端口的最早时间;
[0192]
确定每一条流量完全被转发出共用端口的最晚时间;
[0193]
根据最早时间和最晚时间确定每一条流量在所述共用端口处被处理的时间范围;
[0194]
若多条流量的时间范围存在交集,则向所述交叉设备发送指令,以指示所述时间范围存在交集的流量中后经过的流量等待预设之间。
[0195]
可选的,所述装置还包括:
[0196]
更新模块(图中未示出),用于根据流量在当前交叉设备的共用端口处等待的预设时间,更新该流量在当前交叉设备之后经过的网络设备的出端口的最早时间和完全被转发出所述出端口的最晚时间;
[0197]
所述冲突检测模块702用于根据更新后的最早时间和最晚时间确定该流量在当前交叉设备之后的交叉设备的共用端口是否存在时间冲突。
[0198]
可选的,在所述指令中携带共用端口对应的多个转发队列对应的开启时间,其中,存在冲突的第一流量和第二流量中,后到达的第二流量对应的第二转发队列的开启时间根据第一流量完全被转发出共用端口的最晚时间确定。
[0199]
可选的,所述多条流量中的任一流量为按照一定周期发送的流量。
[0200]
本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序在被计算机调用时,使所述计算机执行上述任一实施例中网络管理设备所执行的流量调度方法。
[0201]
本公开还提供一种控制器80,图8为本公开另一实施例提供的控制器的结构示意图,如图8所示,该控制器80包括处理器801和存储器802,
[0202]
所述存储器802用于存储程序指令,所述处理器801用于调用所述存储器中的存储的程序指令,当所述处理器801执行所述存储器802存储的程序指令时,用于执行上述实施例一至实施例四所提供的任一流量调度方法。
[0203]
本实施例中的流量调度装置、计算机可读存储介质、控制器执行流量调度方法的过程以及能够达到的技术效果可以参照上述实施例一至实施例四本实施例中不再详细赘述。
[0204]
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
[0205]
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0206]
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0207]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜