一种交换机及流量控制系统、流量控制方法转让专利

申请号 : CN202010198247.4

文献号 : CN111343099B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕航杨贵李力

申请人 : 南京南瑞继保电气有限公司南京南瑞继保工程技术有限公司

摘要 :

本发明实施例适用于通信技术领域,提供了一种交换机及流量控制系统和流量控制方法,其中,交换机包括:中央处理器CPU,用于配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;现场可编程门阵列FPGA模块,用于基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;交换芯片,用于基于流量控制后的所述链路进行报文交换。

权利要求 :

1.一种交换机,其特征在于,包括:

中央处理器CPU,用于配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;

现场可编程门阵列FPGA模块,用于基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;

交换芯片,用于基于流量控制后的所述链路进行报文交换。

2.根据权利要求1所述的交换机,其特征在于,所述FPGA模块基于所述第二数据流量对所述链路进行流量控制时,用于:基于至少一个第二时间窗口内的第二数据流量,确定流量控制值;

确定所述流量控制值是否大于设定值;

在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。

3.根据权利要求1所述的交换机,其特征在于,所述FPGA模块基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,用于:确定所述第二时间窗口的起始时间;

累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。

4.根据权利要求1所述的交换机,其特征在于,所述CPU还用于:将所述第二数据流量发送给监控端。

5.一种流量控制系统,其特征在于,包括:

如权利要求1至4任一项所述的交换机;

与所述交换机进行通讯连接的监控端。

6.一种基于如权利要求1至4任一项的交换机实现的流量控制方法,其特征在于,所述流量控制方法包括:配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;

基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;基于所述第二数据流量对所述链路进行流量控制;

基于流量控制后的所述链路进行报文交换。

7.根据权利要求6所述的方法,其特征在于,所述基于所述第二数据流量对所述链路进行流量控制时,包括:基于至少一个第二时间窗口内的第二数据流量,确定流量控制值;

确定所述流量控制值是否大于设定值;

在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。

8.根据权利要求6所述的方法,其特征在于,所述基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,包括:确定所述第二时间窗口的起始时间;

累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。

说明书 :

一种交换机及流量控制系统、流量控制方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种交换机及流量控制系统、流量控制方法。

背景技术

[0002] 为了防止链路发生阻塞,需要实时监视链路中的数据流量,相关技术通过滑动时间窗口来控制链路中的数据流量。滑动时间窗口的实现对于设备的硬件要求较高,交换机无法实现上述滑动时间窗口。

发明内容

[0003] 为了解决上述问题,本发明实施例提供了一种交换机及流量控制系统、流量控制方法,以至少解决相关技术交换机无法实现滑动时间窗口的问题。
[0004] 本发明的技术方案是这样实现的:
[0005] 第一方面,本发明实施例提供了一种交换机,所述交换机包括:
[0006] 中央处理器CPU,用于配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;
[0007] 现场可编程门阵列FPGA模块,用于基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;
[0008] 交换芯片,用于基于流量控制后的所述链路进行报文交换。
[0009] 上述方案中,所述FPGA模块基于所述第二数据流量对所述链路进行流量控制时,用于:
[0010] 基于至少一个第二时间窗口内的第二数据流量,确定流量控制值;
[0011] 确定所述流量控制值是否大于设定值;
[0012] 在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。
[0013] 上述方案中,所述FPGA模块基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,用于:
[0014] 确定所述第二时间窗口的起始时间;
[0015] 累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。
[0016] 上述方案中,所述CPU还用于:
[0017] 将所述第二数据流量发送给监控端。
[0018] 第二方面,本发明实施例提供了一种流量控制系统,该系统包括:
[0019] 第一方面所述的交换机;
[0020] 与所述交换机进行通讯连接的监控端。
[0021] 第三方面,本发明实施例提供了一种流量控制方法,该方法基于第一方面的交换机实现,所述流量控制方法包括:
[0022] 配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;
[0023] 基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;
[0024] 基于流量控制后的所述链路进行报文交换。
[0025] 上述方案中,所述基于所述第二数据流量对所述链路进行流量控制时,包括:
[0026] 基于至少一个第二时间窗口内的第二数据流量,确定流量控制值;
[0027] 确定所述流量控制值是否大于设定值;
[0028] 在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。
[0029] 上述方案中,所述基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,包括:
[0030] 确定所述第二时间窗口的起始时间;
[0031] 累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。
[0032] 本发明实施例通过CPU配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;FPGA模块基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;交换芯片基于流量控制后的所述链路进行报文交换。本发明实施例在第二时间窗口每次滑动时,只需要统计当前第一时间窗口的数据流量,并不需要统计第二时间窗口中每个第一时间窗口的数据流量。因此,本发明实施例数据处理量小,对于设备硬件要求低,并不需要改变交换机的硬件。而且本发明实施例每隔第一时间窗口可以统计得到一个第二数据流量,所以本发明实施例统计的流量颗粒度小,能够精确链路中数据流量发生异常的具体时间。

附图说明

[0033] 图1是本发明实施例提供的一种滑动时间窗口的示意图;
[0034] 图2是本发明实施例提供的一种交换机的结构示意图;
[0035] 图3是本发明实施例提供的另一种滑动时间窗口的示意图;
[0036] 图4是本发明应用实施例提供的一种交换机的结构示意图;
[0037] 图5是本发明实施例提供的一种流量控制系统的结构示意图;
[0038] 图6是本发明实施例提供的一种流量控制方法的实现流程示意图;
[0039] 图7是本发明实施例提供的另一种流量控制方法的实现流程示意图;
[0040] 图8是本发明实施例提供的另一种流量控制方法的实现流程示意图。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0043] 需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0044] 另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0045] 网络阻塞会导致部分乃至整个网络出现性能下降,影响组网设备的正常运行。例如,在智能变电站中,网络阻塞会严重影响信息流的实时性和可靠性,还会冲击智能变电站的过程层和间隔层中的所有组网设备,给保护控制装置等二次设备的可靠运行带来挑战,严重影响智能变电站的安全稳定运行。
[0046] 智能变电站是由电子式互感器、智能化开关等智能化一次设备、网络化二次设备分层构建,建立在电力系统自动化领域全球通用标准(IEC61850标准)基础上,能够实现变电站内智能电气设备间信息共享和互操作的现代化变电站。在智能变电站中,常规变电站中一次设备与保护、测控之间的电缆被光缆取代;电缆中传输的直流信号(正电压/负电压/地电压)和交流信号(二次电流、电压)被网络中传输的报文取代;用于实现保护逻辑的继电器硬件回路被微机保护装置中的软件程序所取代。
[0047] 智能变电站系统分为3层:过程层、间隔层和站控层,只有智能变电站才有过程层,常规变电站只有间隔层和站控层。本发明实施例提供的交换机应用于智能变电站的过程层,过程层主要包含电子式互感器、合并单元和智能终端,主要功能是完成实时运行电气量的采集、设备运行状态的监控、控制命令的执行等。在智能变电站中,层与层之间的通信、过程层中各设备之间的通信都离不开交换机。交换机是一种用于电(光)信号转发的网络设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机是智能变电站的站二次设备间通讯的枢纽,是关键的二次设备。交换机一旦发生故障,将大范围的影响智能变电站中继电保护和测控装置的安全运行。
[0048] 因此,在智能变电站中,交换机的作用十分重要。在智能变电站中,交换机要实现数据的实时传输,实时监视过程层网络的流量情况,发现某链路流量出现异常时及时采取控制措施,避免影响其他正常链路的数据传输。
[0049] 目前,相关技术中有两种通过时间窗口来控制流量的方法。第一种是固定时间窗口,统计固定时间间隔内链路中传输的数据流量,若数据流量大于阈值,则认为链路发生阻塞。然而,固定时间窗口统计的流量颗粒度较粗,如果某个时间点链路存在瞬间大流量冲击,固定时间窗口算法只能在固定时间后得知链路中的流量情况。而且如果异常流量横跨两个固定时间窗口,则可能无法触发流量控制。
[0050] 第二种是滑动时间窗口,针对固定时间窗口算法会在某个时间点存在瞬间大流量冲击的场景,滑动时间窗口算法应运而生。它将时间窗口划分为更小的时间片段,每过一个时间片段,滑动时间窗口就会滑动一格。例如,如图1所示,图1将滑动时间窗口划成了6格,假设一个滑动时间窗口是6ms,将滑动时间窗口进行划分,所以每格代表的是1ms。每过1ms,时间窗口就会往右滑动一格。每隔1ms统计一次滑动时间窗口的流量,相比每隔一分钟统计一次,统计的流量会更精确。滑动时间窗口划分的越细,那么滑动时间窗口的滑动就越平滑,统计的流量就会越精确。但是滑动时间窗口每次滑动时,都需要统计一次滑动时间窗口中每个时间窗口的流量值,如果滑动时间窗口划分的越细,或者滑动时间窗口的宽度越长,设备的处理量就会越大。当设备需要并行处理多个链路的数据流量,这对于设备的硬件要求较高,交换机无法实现上述滑动时间窗口。
[0051] 针对上述相关技术的缺点,本发明实施例提供了一种交换机,能够在交换机上实现滑动时间窗口,精确实现链路流量控制和准确监控功能。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0052] 如图2所示,图2是本发明实施例提供的一种交换机的结构示意图,所述交换机包括:中央处理器(CPU,Central Processing Unit)、现场可编程门阵列(FPGA,Field Programmable Gate Array)模块和交换芯片。
[0053] CPU用于配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数。
[0054] FPGA模块,用于基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制。
[0055] 交换芯片,用于基于流量控制后的所述链路进行报文交换。
[0056] 其中,CPU用于配置流量控制参数,流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度,第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数。时间窗口表征为时间段,时间窗口的宽度也就是时间段的长短。CPU配置好流量控制参数后,将流量控制参数发送给FPGA模块。
[0057] 交换机以第二时间窗口为时间单位进行流量控制,例如,假设第二时间窗口的宽度为5ms,也就是说交换机每次根据5ms内的数据流量进行流量控制。第一时间窗口可以是1ms,这样,第二时间窗口的宽度为第一时间窗口的宽度的5倍,或者说第二时间窗口划分成了5个第一时间窗口。
[0058] FPGA模块是一个可以通过编程来改变内部结构的芯片,FPGA是作为专用集成电路领域中的一种半定制电路而出现的,FPGA既解决了定制电路的不足,又克服了原有可编辑器件门电路数有限的缺点。在本发明实施例中,FPGA模块用于基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制。
[0059] 其中,由于交换机是以第二时间窗口为时间单位进行流量控制,例如,假设第二时间窗口为5ms,第一时间窗口为1ms。则第一个第二时间窗口为0‑5ms,第二个第二时间窗口为1‑6ms,第三个第二时间窗口为2‑7ms,以此类推。同理,0‑1ms为第一个第一时间窗口,1‑2ms为第二个第一时间窗口,2‑3ms为第三个第一时间窗口,以此类推。因为第二时间窗口的宽度是第一时间窗口的宽度的5倍,因此最少需要统计5个连续的第一时间窗口的数据流量,才能得到一个第二时间窗口内的数据流量。在第二时间窗口滑动时,交换机只获取当前第一时间窗口内的数据流量。如果交换机要获取第一个第二时间窗口内的数据流量,则将第一个至第五个第一时间窗口内的数据流量累加;如果要获取第二个第二时间窗口内的数据流量,则将第二个至第六个第一时间窗口内的数据流量累加,以此类推。得到至少一个第二时间窗口内的第二数据流量后,交换机根据第二时间窗口内的第二数据流量对链路进行流量控制。
[0060] 因为第二时间窗口的宽度为第一时间窗口的宽度的N倍,N个连续的第一时间窗口组成一个第二时间窗口,所以需要至少统计N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量,这样才能得到至少一个第二时间窗口内的第二数据流量。
[0061] 在本发明实施例中,由FPGA模块来实现流量的统计。在交换机的链路中传输的是报文,所以流量对应报文的帧数和字节数。流量的统计的方法有多中,例如,可以在交换机的端口统计进入链路的流量。在本发明一种实施例中,FPGA模块得到第一数据流量后,FPGA模块将统计的流量值存储在交换机的缓存中,所述缓存可以是FPGA模块的缓存,也可以是专用的存储器,还可以是交换机的内存缓存。
[0062] 进一步的,所述FPGA模块基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,用于:
[0063] 确定所述第二时间窗口的起始时间。
[0064] 累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。
[0065] 一个第二时间窗口由连续的N个第一时间窗口组成,因此,将N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量进行累加,就能得到一个第二时间窗口内的第二数据流量。
[0066] 如果要获取某个第二时间窗口的数据流量,首先获取该第二时间窗口的起始时间,累加从起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到该第二时间窗口的数据流量。
[0067] 在实时监控的环境下,获取当前第一时间窗口的第一数据流量,以及当前第一时间窗口的前N‑1个连续的第一时间窗口的第一数据流量,将两者累加,得到一个第二时间窗口内的第二数据流量。这样,每隔一个第一时间窗口可以得到一个第二数据流量,起到了实时监控流量的作用,保证了信息的实时性和可靠性。在实际应用中,交换机与监控端进行通讯连接,交换机的CPU可以通过多媒体短信服务协议(MMS,Multimedia Messaging Service)或简单网络管理协议(SNMP,Simple Network Management Protocol)将第二数据流量发送给监控端。
[0068] 参考图3,图3中每一个小格子代表一个第一时间窗口,第二时间窗口的宽度是第一时间窗口的宽度的5倍,图中5个连起来的深色的小格子代表一个第二时间窗口。图3从左至右分别代表第二时间窗口从左至右滑动,在第二时间窗口每次滑动时,只需要获取图3中5个深色小格子中最右边一个小格子的数据流量,并不需要获取5个小格子的数据流量。例如,假设第二时间窗口为5ms,第一时间窗口为1ms。则第一个第二时间窗口为0‑5ms,第二个第二时间窗口为1‑6ms。如果第二时间窗口从0‑5秒滑动到了1‑6ms,则只需要获取5‑6ms的数据流量,并不需要获取1‑6ms的数据流量。其中,0‑5ms和1‑6ms这两个相邻的第二时间窗口中1‑5ms的数据流量是相同的,本发明实施例在第二时间窗口滑动过程中,只需要统计当前第一时间窗口(5‑6ms)的数据流量,并不需要重复获取过去时间(1‑5ms)的数据流量。如果要获取某个第二时间窗口内的数据流量,只需要获取该第二时间窗口的起始时间,累加从起始时间开始的5个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,就可以得到该第二时间窗口内的数据流量。因此,本发明实施例可以快速得到任意一个第二时间窗口内的数据流量。
[0069] 进一步的,所述FPGA模块基于所述第二数据流量对所述链路进行流量控制时,用于:
[0070] 基于至少一个第二时间窗口内的第二数据流量,确定流量控制值。
[0071] 确定所述流量控制值是否大于设定值。
[0072] 在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。
[0073] 在实际应用中,可以获取设定数量连续的第二时间窗口内的第二数据流量,将对应的设定数量的第二数据流量求均值,将均值作为流量控制值。又或者,可以在得到一个第二数据流量后,直接将第二数据流量作为流量控制值。
[0074] 设定值是交换机进行流量控制的流量门槛,如果流量控制值大于设定值,说明链路承载的数据流量较大,如果不及时控制流量疏通,可能会导致链路发送阻塞,影响组网设备的正常运行。在本发明一实施例中,在确定流量控制值大于设定值的情况下,将所述链路中的报文丢弃,能够及时疏通链路,使链路恢复到最佳的传输状态。
[0075] 在一实施例中,在确定流量控制值大于设定值的情况下,还可以将对应的链路关闭,链路关闭意味报文的传输中止。及时关闭链路,可以避免其他链路的报文转发受到影响。
[0076] 交换芯片,用于基于流量控制后的链路进行报文交换。
[0077] 交换芯片是交换机中专门负责报文转发的芯片,例如重新转发丢弃的报文。
[0078] 本发明实施例通过CPU配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;FPGA模块基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;交换芯片基于流量控制后的所述链路进行报文交换。本发明实施例在第二时间窗口每次滑动时,只需要统计当前第一时间窗口的数据流量,并不需要统计第二时间窗口中每个第一时间窗口的数据流量。因此,本发明实施例数据处理量小,对于设备硬件要求低,并不需要改变交换机的硬件。而且本发明实施例每隔第一时间窗口可以统计得到一个第二数据流量,所以本发明实施例统计的流量颗粒度小,能够精确链路中数据流量发生异常的具体时间。对于智能变电站而言,本发明实施例有效提升了智能变电站的过程层中交换机的流量统计精度,保证了信息的实时性和可靠性。交换机可以实现任意时间起点的窗口流量统计,加强了过程层的网络监控。交换机在发现某链路流量出现异常时能够及时采取控制措施,保障了所有链路的数据传输。
[0079] 参考图4,图4是本发明应用实施例提供的一种交换机的结构示意图,交换机包括:CPU、FPGA模块、交换芯片、端口1至端口N和监控端口1至监控端口M。
[0080] CPU用于配置流量控制参数;所述流量控制参数包括:第一时间窗口的宽度和第二时间窗口的宽度、设定值和设定时长,CPU将流量控制参数发送给FPGA模块。交换芯片负责报文转发,在报文转发时,FPGA模块基于流量控制参数,统计各个端口的各个链路中的数据流量,例如端口1的链路1至链路N中的数据流量。具体的,FPGA模块确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制。交换机的监控端口连接监控端,交换机可以连接多个监控端。在得到第二数据流量后,CPU可以将第二数据流量通过监控端口发送给监控端,以实现实时监控数据流量。在实际应用中,可以设置由某个监控端来监控某几条链路的数据流量。监控端还可以下发流量控制参数给交换机,交换机根据流量控制参数来控制链路中的流量。
[0081] 本发明实施例每隔第一时间窗口就能得到一个第二数据流量,能够精确链路中数据流量发生异常的具体时间。而且本发明实施例数据处理量小,交换机可以并行处理多链路的数据流量。
[0082] 参考图5,图5是本发明实施例提供的一种流量控制系统的结构示意图,流量控制系统包括:交换机和监控端。
[0083] 在本发明实施例中,交换机和监控端进行通讯连接。交换机为图2所示实施例中的交换机,所述交换机包括FPGA模块、CPU和交换芯片。监控端可以是手机、电脑、服务器等电子设备,监控端可以设置流量控制参数,将流量控制参数发送给交换机。例如,用户可以通过监控端远程设置第一时间窗口和第二时间窗口的宽度。
[0084] 交换机将统计的第二数据流量发送给监控端,在实际应用中,交换机每隔第一时间窗口将一个第二数据流量发送给监控端,以使监控端可以实时监控交换机的链路中的流量状态。
[0085] 图6是本发明实施例提供的一种流量控制方法的实现流程示意图,该方法执行主体为图2中的交换机。如图6所示,流量控制方法包括:
[0086] S601,配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述交换机以所述第二时间窗口为时间单位进行流量控制;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数。
[0087] 步骤S601的执行主体为图2中的CPU。
[0088] S602,基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;
[0089] 步骤S602的执行主体为图2中的FPGA模块。
[0090] S603,基于流量控制后的所述链路进行报文交换。
[0091] 步骤S603的执行主体为图2中的交换芯片。
[0092] 本发明实施例通过配置流量控制参数;所述流量控制参数至少包括:第一时间窗口的宽度和第二时间窗口的宽度;所述第二时间窗口的宽度为所述第一时间窗口的宽度的N倍,N为大于1的整数;基于所述流量控制参数,确定所述交换机的链路在至少N个连续的第一时间窗口的每个第一时间窗口内的第一数据流量;基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量;并基于所述第二数据流量对所述链路进行流量控制;基于流量控制后的所述链路进行报文交换。本发明实施例每隔第一时间窗口就能得到一个第二数据流量,所以本发明实施例统计的流量颗粒度小,能够精确链路中数据流量发生异常的具体时间。而且本发明实施例第二时间窗口每次滑动时,只需要统计当前第一时间窗口的数据流量,并不需要统计滑动时间窗口中每个第一时间窗口的数据流量。因此,本发明实施例数据处理量小,对于设备硬件要求低,无需改变交换机的硬件。
[0093] 参考图7,在一实施例中,所述基于所述第二数据流量对所述链路进行流量控制时,包括:
[0094] S701,基于至少一个第二时间窗口内的第二数据流量,确定流量控制值。
[0095] S702,确定所述流量控制值是否大于设定值。
[0096] S703,在确定所述流量控制值大于所述设定值的情况下,将所述链路中的报文丢弃。
[0097] 参考图8,在一实施例中,所述基于至少N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到对应的至少一个第二时间窗口内的第二数据流量时,包括:
[0098] S801,确定所述第二时间窗口的起始时间。
[0099] S802,累加从所述起始时间开始的N个连续的第一时间窗口中每个第一时间窗口内的第一数据流量,得到所述第二时间窗口内的第二数据流量。
[0100] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0101] 上述实施例提供的流量控制方法与交换机实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0102] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0103] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0104] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。