CN111669334A - 流量控制方法、装置、设备及计算机可读存储介质 - Google Patents
流量控制方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111669334A CN111669334A CN202010414732.0A CN202010414732A CN111669334A CN 111669334 A CN111669334 A CN 111669334A CN 202010414732 A CN202010414732 A CN 202010414732A CN 111669334 A CN111669334 A CN 111669334A
- Authority
- CN
- China
- Prior art keywords
- message
- flow control
- link
- packet
- attribute information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种流量控制方法、装置、设备及计算机可读存储介质,所述方法包括:获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;基于所述待接收队列进行流量控制计算,得到计算结果;基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。如此,基于第一报文的属性信息进行链路匹配,并通过软件算法进行流量控制处理,从而能够节省硬件资源,并且还能够对流量控制参数进行配置,进而提高流量控制的灵活性。
Description
技术领域
本申请实施例涉及电力系统技术领域,涉及但不限于一种流量控制方法、装置、设备及计算机可读存储介质。
背景技术
在电力系统智能设备领域中,设备通常会从外部接收数据,以对设备进行控制,但是由于设备外部的网络环境复杂,有可能会出现网络风暴,异常流量等现象,影响设备的稳定。相关技术中,基于交换芯片或完全由可编程逻辑门阵列(FPGA,Field ProgrammableGate Array)实现流量控制,硬件资源需求较大,灵活性低。
发明内容
有鉴于此,本申请实施例提供一种流量控制方法、装置、设备及计算机可读存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种流量控制方法,所述方法包括:
获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;
在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;
基于所述待接收队列进行流量控制计算,得到计算结果;
基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。
本申请实施例提供一种流量控制装置,所述装置包括:
获取模块,用于获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;
加入模块,用于在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;
计算模块,用于基于所述待接收队列进行流量控制计算,得到计算结果;
处理模块,用于基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制
本申请实施例提供一种流量控制设备,所述设备至少包括:
处理器;以及
存储器,用于存储可在所述处理器上运行的计算机程序;
其中,所述计算机程序被处理器执行时实现上述流量控制方法的步骤。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述流量控制方法的步骤。
本申请实施例提供一种流量控制方法、装置、设备及计算机可读存储介质,当获取到第一报文时,获取该报文的属性信息,根据属性信息确定对应的链路,从而对基于链路进行流量控制计算,得到计算结果,根据计算结果和预先配置的流量控制参数对第一报文进行处理。如此,基于第一报文的属性信息进行链路匹配,并通过软件算法进行流量控制处理,从而能够节省硬件资源,并且还能够对流量控制参数进行配置,进而提高流量控制的灵活性。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本申请实施例提供的流量控制方法的一种实现流程示意图;
图2为本申请实施提供的基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理的实现流程示意图;
图3为本申请实施例提供的流量控制方法的另一种实现流程示意图;
图4为本申请实施例提供的网络驱动的连接示意图;
图5为本申请实施例提供的流量控制方法的再一种实现流程示意图;
图6为本申请实施例提供的流量控制装置结构示意图;
图7为本申请实施例提供的流量控制设备的组成结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一\第二\第三”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
基于相关技术所存在的问题,本申请实施例提供一种流量控制方法,所述方法应用于流量控制设备。本实施例提供的方法可以通过计算机程序来实现,该计算机程序在执行的时候,完成本实施例提供的流量控制方法中各个步骤。在一些实施例中,该计算机程序可以被流量控制设备中的处理器执行。图1为本申请实施例提供的流量控制方法的一种实现流程示意图,如图1所示,所述方法包括:
步骤S101,流量控制设备获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路。
本申请实施例中,流量控制设备是电力系统中的保护控制装置,例如:电气控制装置,继电保护器等。
本申请实施例中,所述第一报文可以认为是实时接收的报文。所述属性信息可以包括:时间戳、端口号、物理地址等。本申请实施例中,可以对第一报文进行解析,提取该第一报文特定字段中携带的信息,得到所述第一报文的属性信息,其中该特定字段中携带的信息可以是通过FPGA在第一报文中插入的信息。本申请实施例中,所述特定字段可以是第一报文中头部中的1至7字节。
本申请实施例中,所述基于所述属性信息确定所述第一报文对应的链路可以通过以下方式实现:基于第一报文的属性信息确定所述第一报文的分组信息,当确定第一报文的分组信息后,获取预先建立的分组信息与链路之间的对应关系,进而根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。本申请实施例中,链路可以是单播、组播和广播,在一些实施例中,还可以是其他链路。
步骤S102,在存在所述链路的情况下,流量控制设备将所述第一报文加入所述链路对应的待接收队列。
本申请实施例中,在步骤S102之前,所述方法还包括:确定是否存在所述链路,本申请实施例中,如果不存在所述链路则丢弃该报文,如果存在所述链路的情况下,则流量控制设备将所述第一报文加入所述链路对应的待接收队列
本申请实施例中,所述待接收队列为该链路待接收的报文的排列,待接收队列中的报文以时间戳进行排序,也就是说,先接收的报文排列在后接收的报文之前。各个链路有各自对应的待接收队列,在进行流量控制时,流量控制设备可以单独控制一个链路也可以同时控制多个链路。本申请实施例中,由于第一报文为实时接收到的报文,在加入到所述链路对应的待接收队列时,将第一报文加入到该待接收队列的队尾。本申请实施例中,流量控制设备在进行报文接收时,也是基于待接收队列的排序来对报文进行接收。
步骤S103,流量控制设备基于所述待接收队列进行流量控制计算,得到计算结果。
本申请实施例中,当将第一报文加入待接收队列后,可以基于待接收队列进行流量控制计算,在实现时可以通过待接收队列中各个报文的时间戳计算出两个报文之间的间隔时长,并且统计待接收队列中的报文总数等,还可以计算出待接收队列的一个时间段中的报文总数。示例性地,可以通过第一报文的时间戳与队首报文的时间戳确定第一报文与队首报文的间隔时长。本申请实施例中,队首报文为当前流量控制设备第一个将要接收的报文;本申请实施例中,一个时间段的可以通过滑动窗口来表征,例如滑动窗口的大小为1秒(s,second),可以确定1s内待接收队列的报文总数。
本申请实施例中,将得到的间隔时长和报文总数作为计算结果。
步骤S104,流量控制设备基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。
本申请实施例中,预先配置的流量控制参数可以包括:滑动窗口大小和滑动窗口对应的总数阈值。本申请实施例中,滑动窗口用于表示时间段,滑动窗口的大小即为该时间段的预设时长,该时间段以队首报文戳的时间为时间起点,预设时长后为时间终端,例如:队首报文的时间戳为00:00:00:000,预设时长为1s,滑动窗口表示的时间段为00:00:01:000。如果队首报文的时间戳为00:00:00:010,预设时长为1s,那么滑动窗口表示的时间段为00:00:00:010秒至00:00:01:010。本申请实施例中,预设时长可以根据需求进行配置。
承接上面的示例,计算结果包括第一报文与队首报文的间隔时长和当前滑动窗口内的报文总数,此时可以根据间隔时长和报文总数与滑动窗口大小和滑动窗口对应的总数阈值确定对第一报文的处理方式。本申请实施例中,对第一报文的处理包括:接收第一报文或禁止接收第一报文。示例性地,当间隔时长小于滑动窗口大小,且报文总数小于总数阈值时,则接收所述第一报文,当间隔时长小于滑动窗口大小,且报文总数大于总数阈值时,则禁止接收第一报文。
本申请实施例提供的流量控制方法,当获取到第一报文时,获取该报文的属性信息,根据属性信息确定对应的链路,从而对基于链路进行流量控制计算,得到计算结果,根据计算结果和预先配置的流量控制参数对第一报文进行处理如此,基于第一报文的属性信息进行链路匹配,并通过软件算法进行流量控制处理,从而能够节省硬件资源,并且还能够对流量控制参数进行配置,进而提高流量控制的灵活性。
在一些实施例中,所述步骤S101“获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路”可以通过以下步骤实现:
步骤S101A,流量控制设备获取所述第一报文。
本申请实施例中,通常对于电力系统中的设备来说,只接收外界发送的消息,而通常不和外界设备进行流量交互,因此,获取所述第一报文在实现时:外界设备向流量控制设备发送报文,从而以使流量控制设备获取所述第一报文。
步骤S101B,流量控制设备提取所述第一报文中预设字段中携带的信息,得到所述第一报文的属性信息。
本申请实施例中,当获取到第一报文后,可以对第一报文进行解析,以提取第一报文中预设字段中携带的信息。本申请实施例中,预设字段可以是报文头部字段。对应地,在对第一报文进行解析之前,所述方法还包括:通过FPGA在第一报文的头部字段中插入信息,本申请实施例中,插入的信息可以包括:网口号、时间戳。为了方便流量控制设备对报文的解析,在插入信息时,还包括插入起始符。示例性地,表1为本申请实施例提供的第一报文头部字段示意表,报文的头部字段包括0至7字节,通过FPGA在第一报文的0字节加入起始符,在1至3字节插入网络号,在4至7字节插入时间戳信息。对应地,当流量控制设备对第一报文进行解析时,通过对第一报文的头部字段进行解析可以得到该第一报文的网口号和时间戳,本申请实施例中,在对第一报文进行解析时还包括获取物理地址。所述网口号、时间戳和物理地址即为该第一报文的属性信息。本申请实施例中,FPGA可以是集成在流量控制设备上的。
表1、第一报文头部字段示意表
字节 | 描述 |
0 | 起始符 |
1-3 | 网口号 |
4-7 | 时间戳信息 |
步骤S101C,流量控制设备根据所述属性信息确定所述第一报文对应的链路。
本申请实施例中,可以在获取第一报文之前,可以对根据不同的网口号和物理地址确定出不同的分组信息,,并建立分组信息与链路的对应关系。在一些实施例中,还可以根据不同GOOSE报文中的不同应用名称和线程名称确定不同的分组信息,并建立分组信息与链路的对应关系。分组信息还可以是根据是GOOSE报文中的应用名称和线程名称确定的。本申请实施例中,所述属性信息包括网口号和物理地址,在获得第一报文的属性信息后,可以根据网口号和物理地址确定第一报文的分组信息,根据第一报文的分组信息和上述建立的对应关系,确定第一报文对应的链路。所述对应的链路可以是单播、组播和广播。在一些实施例中,还可以自定义链路。
在一些实施例中,在电力系统中面向通用对象的变电站事件(GOOSE)报文比较常用,此时,第一报文的属性信息可以包括GOOSE报文中的应用名称和线程名称,步骤S101C在实现时,可以是基于GOOSE报文中的应用名称和线程名称确定第一报文的分组信息,然后根据第一报文的分组信息和上述建立的对应关系,确定第一报文对应的链路。
本申请实施例提供的流量控制方法,通过提取报文中预设字段中的信息,得到属性信息,以根据属性信息确定对应的链路,在匹配到链路的情况下,从而通过软件算法进行流量控制处理,实现将报文分组成链路进行控制,从而能够节省硬件资源。
在一些实施例中,所述属性信息至少包括时间戳,对应地,步骤S103“所述基于所述待接收队列进行流量控制计算,得到计算结果”可以通过以下骤实现:
步骤S103A,流量控制设备基于所述第一报文的时间戳与所述待接收队列中队首报文的时间戳确定间隔时长。
本申请实施例中,基于所述第一报文的时间戳与所述待接收队列中队首报文的时间戳确定间隔时长在实现时可以是,计算第一报文的时间戳与队首报文的时间戳的差值来确定间隔时长。在报文的接收上都是以毫秒(ms,millisecond)或s为单位的。示例性地,第一报文的时间戳为16:00:01:000,队首报文的时间戳为16:00:00:000,此时可以确定第一报文与队首报文的间隔时长为1s。
步骤S103B,流量控制设备确定当前滑动窗口内所有报文的报文总数。
本申请实施例中,滑动窗口大小是固定的,表征一个时间段。所述当前滑动窗口即为接收到第一报文时的滑动窗口。例如,滑动窗口大小为1s,当前滑动窗口内即为队首报文的时间戳为起点,1s后对应的时间戳为终端。示例性的,队首报文时间为16:00:00:000,可以统计16:00:00:000至16:00:01:000的报文总数。
步骤S103C,流量控制设备将所述间隔时长和所述报文总数确定为所述计算结果。
本申请实施例中,所述间隔时长和报文总数即为计算结果。
本申请实施例中,通过网络报文进行流量控制计算,得到计算结果,以根据该计算结果与预先配置的流量控制参数实现对流量的控制。本申请实施例中,通过软件算法进行流量控制处理,节约了硬件资源,并且还能够对流量控制参数进行配置,进而提高流量控制的灵活性。
在一些实施例中,所述预先配置的流量控制参数至少包括滑动窗口大小和滑动窗口对应的总数阈值,对应地,步骤S104“所述流量控制设备基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理”可以通过如图2所述的步骤S1至S4实现:
步骤S1,流量控制设备确定当前是否处于流量控制状态。
本申请实施例中,流量控制状态可以用一个标识来进行表征,例如处于流量控制状态用数值1表征。没有处理流量控制状态用数值0表征,示例性地,在确定当前是否处于流量控制状态时,即可以识别当前设备的状态是1还是0。当识别到自身的状态为1时,即为流量控制状态,如果自身的状态为0,则未处于流量控制状态。本申请实施例中,流量控制状态时禁止接收新的报文。
步骤S2,当当前处于未流量控制状态时,流量控制设备确定所述间隔时长是否小于所述滑动窗口大小。
本申请实施例中,当间隔时长小于或等于滑动窗口大小时,表明该第一报文在当前滑动窗口内,当间隔时长大于滑动大小时,则表明第一报文在当前滑动窗口外。在一些实施例中,确定第一报文的时间戳后,可以判断该第一报文是否在当前滑动窗口内。例如,当前滑动窗口为于16:00:00:000至16:00:01:000。当第一报文的时间戳为16:00:01:050,则第一报文位于当前滑动窗口内。本申请实施例中,当所述间隔时长小于所述述滑动窗口大小时,执行步骤S3。本申请实施例中,当所述间隔时长大于所述述滑动窗口大小时,执行步骤S8。
步骤S3,流量控制设备确定所述报文总数是否大于所述总数阈值。
本申请实施例中,当所述间隔时长小于所述滑动窗口内滑动窗口大小时,表征第一报文在当前滑动窗口内,由于第一报文为新的待接收报文,因此,需要判断当加入第一报文后报文总数是否大于总数阈值,因此,需要确定当前滑动窗口内所有报文的报文总数。假设当前滑动窗口16:00:00:000至16:00:01:000,该时间范围内的报文总数为50个。确定前滑动窗口内报文总数后,可以通过比较报文总数与总数阈值。所述总数阈值可以根据时间需要进行配置,所述总数阈值用于限定滑动窗口内最大接收的报文总数,例如,总数阈值可以是55。承接上面的示例,报文总数为50个,所述报文总数小于总数阈值,因此,即并没有达到滑动窗口最大接收的报文总数,也就是说,此时该第一报文是可以进行接收的。在一些实施例中,假设报文总数为56个,也即报文总数大于总数阈值。
步骤S4,当所述报文总数大于所述总数阈值时,流量控制设备控制自身进入流量控制状态,禁止接收所述第一报文;
承接上面的示例,如果接收了第一报文,会使得控制设备接收的报文超过总数阈值,为了避免因流量异常或网络风暴影响流量控制设备的稳定,因此,此时将第56个报文禁止接收,本申请实施例中,由于第一报文在最后一个,禁止接收的报文即为第一报文,从而使得在1s内最多内接收55个报文。在禁止接收第一报文时,并控制自身进入流量控制状态,承接上面的示例,将自身的状态标识0转变为1。本申请实施例中,当处于流量控制状态时,执行步骤S5。
步骤S5,当处于流量控制状态时,流量控制设备禁止接收第二报文。
所述第二报文位于所述第一报文之后,且位于所述当前滑动窗口内。
示例性地,在当前滑动窗口为16:00:00:000至16:00:01:000,总数阈值为30个,当在待接收队列中第31个报文的时间戳为16:00:00:050,也即该31个报文的时间戳在16:00:00:000至16:00:01:00的范围内,且报文总数超过了总数阈值30,此时该报文会被禁止接收。由于在16:00:00:050至16:00:01:000的时间段内并不会在接收报文,因此,此时触发流量控制状态,在该流量控制状态的情况下,不用去计算总数,只用确定时间戳是否在16:00:00:050至16:00:01:000的范围内,如果在该范围内,则直接进行禁止接收报文,从而加快了报文的处理速度。
本申请实施例提供的流量控制方法,通过确定是否在流量控制状态,当没有在流量控制状态时,且当间隔时长小于滑动窗口大小时,通过判断报文总数与总数阈值的大小,当报文总数大于总数阈值,确定禁止接收该第一报文,如此实现了控制当前滑动窗口的接收的报文数量在阈值范围内,进而避免了因异常流量或网络风暴影响设备的稳定。
在一些实施例中,继续参见图2,步骤S1后,当当前处于流量控制状态时,所述方法还包括:
步骤S6,当当前处于流量控制状态时,流量控制设备确定所述间隔时长是否小于所述滑动窗口大小。
这里,当间隔时长小于滑动窗口大小时,进入步骤S9;当间隔时长大于滑动窗口大小时进入步骤S7。
步骤S7,当所述间隔时长大于或等于所述时长阈值,流量控制设备接收所述第一报文,解除所述流量控制状态。
步骤S9,流量控制设备禁止接收所述第一报文。
本申请实施例中,由于当前处于流量控制状态,当间隔时长大于或等于所述滑动窗口时,即待接收的第一报文在当前滑动窗口外,不在流量控制状态的范围,因此,本申请实施例中,接收所述第一报文,并解除所述流量控制状态,当间隔时长小于所述滑动窗口时,即待接收的第一报文在当前滑动窗口内,因此禁止接收所述第一报文。如此实现了,在流量控制状态下,根据间隔时长来确定是否接触流量控制状态。
在一些实施例中,继续参见图2,所述方法还包括:
步骤S8,当所述报文总数小于所述总数阈值时,流量控制设备接收所述第一报文。
本申请实施例中,通过判断报文总数与总数阈值的大小,确定对该第一报文进行接收或禁止接收,实现了控制当前滑动窗口的接收的报文数量在阈值范围内,进而避免了因异常流量或网络风暴影响设备的稳定。
在一些实施例中,所述属性信息还包括:网口号和物理地址,步骤S101C,所述根据所述属性信息确定所述第一报文对应的链路,可以通过以下步骤实现:
步骤SC1,流量控制设备基于所述网口号和物理地址确定所述第一报文的分组信息。
本申请实施例中,当确定存在第一报文的分组信息后,执行步骤SC2,当不存在第一报文的分组信息时,则不存在对应的链路,直接禁止接收所述第一报文。流量控制预先存储有网口号和物理地址的分组信息,当获取到第一报文的网口号和物理地址后,即可以确定第一报文的分组信息。示例性地,分组包括:分组1和分组2,确定第一报文为分组1。
步骤SC2,流量控制设备获取预先建立的分组与链路之间的对应关系。
例如分组1对应链路1,分组2对应链路2。
步骤SC3,流量控制设备根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。
承接上面的示例,第一报文对应链路1。
本申请实施例提供的方法,确定是否存在第一报文对应的链路,如果不存在第一报文对应的链路,则禁止接收该报文,从而在获取到第一报文时,根据属性信息进行了初步的判断,过滤掉不满足条件的第一报文。
在一些实施例中,所述属性信息包括:应用标识和线程标识,对应地,S101C,所述基于所述属性信息确定所述第一报文对应的链路,可以通过以下步骤实现:
步骤SC4,基于所述应用标识和线程标识确定所述第一报文的分组信息。
本申请实施例中,在步骤SC4之前,可以根据GOOSE报文中的应用名称和线程名称进行分组,如果第一报文为GOOSE报文,可以根据应用标识和线程标识确定第一报文的分组信息。当确定存在第一报文的分组信息后,执行步骤SC5,当不存在第一报文的分组信息时,则不存在对应的链路,直接禁止接收所述第一报文。流量控制预先存储有网口号和物理地址的分组信息,当获取到第一报文的网口号和物理地址后,即可以确定第一报文的分组信息。示例性地,分组包括:分组1和分组2,确定第一报文为分组1。
步骤SC5,获取预先建立的分组信息与链路之间的对应关系;
步骤SC6,根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。
本申请实施例中,可以电力系统中常用的GOOSE报文,通过根据应用名称和进程名称进行分组,从而在获取到第一报文时,根据属性信息进行了初步的判断,过滤掉不满足条件的第一报文。
图3为本申请实施例提供的流量控制方法,图3为本申请实施例提供的一种流量控制方法的实现流程示意图,如图3所示,该方法包括:
步骤S301,网络驱动程序依据报文特征(同上述各个实施例中的属性信息),将网络报文分类成链路,并保存链路信息。
本申请实施例中,网络驱动程序设置在流量控制设备中。
本申请实施例中,网络驱动程序根据报文的物理(MAC,Media Access ControlAddress)地址类型及网口号生成链路信息,每个网口包含单播、组播、广播三条基本链路,对于GOOSE,依据应用(APP,Application)名称(ID,Identity)、线程名称(GO ID)再分类,形成多条链路。
步骤S302,FPGA接收到网络报文后,在报文指定位置(同上述实施例中的预设位置)插入时间戳、网口号信息。
图4为本申请实施例提供的网络驱动配置示意图,如图4所示,网络驱动401可以接收流量控制参数,获取FPGA插入时间戳、网口号信息,网络驱动获取有链路对应关系表。
FPGA收到网络报文后在报文头部,目的MAC地址之前增加信息,包括起始符、网口号、时间戳。
步骤S303,网络驱动程序在收到报文后,依据网络报文以及FPGA插入的信息,对网络报文进行流量计算,得到计算结果。
步骤S304,网络驱动程序并依据流量计算的结果,以及可配置的流量控制参数,对该报文及其所属的链路进行流量控制。
本申请实施例中,流量控制参数包括流量控制生效阈值及滑动时间窗范围(即上述各个实施例中的滑动窗口大小及滑动窗口对应的总数阈值),流量控制恢复阈值及滑动时间窗范围,流量控制参数可配置。
本申请实施例提供的流量控制方法,通过网络驱动程序对报文流量进行按链路管理,节省硬件资源,灵活性高。
图5为本申请实施例提供的流量控制方法的另一实现流程示意图,如图5所示,所述方法包括:
步骤S501,网络驱动程序接收数据包(同上述各个实施例中的第一报文)。
步骤S502,网络驱动程序判断是否匹配到链路。
从FPGA在报文头部插入的信息中获取网口号,时间戳信息,同时根据报文内的MAC地址类型以及APPID、GOID信息匹配已生成的链路,如果匹配失败,至执行步骤S503。如果匹配成功,则执行步骤S504。
步骤S503,网络驱动程序丢弃报文。
本申请实施例中,此时该流程结束。
步骤S504,网络驱动程序判断流量控制是否生效。
将该网络报文纳入该链路的滑动窗口(即上述各个实施例中待接收队列),计算得到当前报文距离本链路上一帧报文的时间以及距离本链路滑动窗口内最早报文(即上述各个实施例中的队首报文)的时长,同时统计滑动窗口内的报文数(即上述各个实施例中的报文总数)。
本申请实施例中,如果流量控制生效,执行步骤S505,如果流量控制未生效,则执行步骤S506。
本申请实施例中,流量控制生效即上述各个实施例中的处于流量控制状态,流量控制未生效,即上述各个实施例中的未处于流量控制状态。
步骤S505,网络驱动程序判断是否达到恢复条件。
本申请实施例中,判断是否达恢复条件即为判断当前报文与最早报文之间的时长是否大于滑动窗口大小。本申请实施例中,当前报文与最早报文之间的时长大于或等于滑动窗口大小则达到恢复条件,如果当前报文与最早报文之间的时长小于滑动窗口大小,则未达到恢复条件。
本申请实施例中,如果没有达到恢复条件,则执行步骤S507,如果达到恢复条件,则执行步骤S508。
步骤S507,网络驱动程序丢弃报文(即上述各个实施例中的禁止接收该报文)。
步骤S508,网络驱动程序接收并恢复流量控制。
步骤S506,网络驱动程序判断是否达到流量控制条件。
本申请实施例中,判断是否达到流量控制条件即判断当前滑动窗口内的报文数是否大于总数阈值,本申请实施例中,当报文数大于总数阈值,则达到流量控制条件,如果窗口的宽度超过了配置的滑动窗口大小,即如果报文数小于或等于则未达到流量控制条件。
如果达到流量控制条件,则执行步骤S509,如果没有达到流量控制条件则执行步骤S510。
步骤S509,网络驱动程序丢弃该报文并触发流量控制。
步骤S510,网络驱动程序接收报文。
在本申请实施例中通过软件算法,实现一种流量控制参数可配置、链路丰富的网络报文流量控制方法,具有灵活性高,硬件开销低的优点。
基于前述的实施例,本申请实施例提供一种流量控制装置,该装置包括的各模块、以及各模块包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU,Central ProcessingUnit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,Digital SignalProcessing)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等。
本申请实施例再提供一种流量控制装置,图6为本申请实施例提供的流量控制装置结构示意图,如图6所示,所述流量控制装置600包括:
获取模块601,用于获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;
加入模块602,用于在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;
计算模块603,用于基于所述待接收队列进行流量控制计算,得到计算结果;
处理模块604,用于基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。
在一些实施例中,所述获取模块601包括:
获取单元,用于获取所述第一报文;
提取单元,用于提取所述第一报文中预设字段中携带的信息,得到所述第一报文的属性信息;
第一确定单元,用于根据所述属性信息确定所述第一报文对应的链路。
在一些实施例中,所述属性信息至少包括时间戳,所述计算模块603,包括:
第二确定单元,用于基于所述时间戳与所述待接收队列中队首报文的时间戳确定间隔时长;
第二确定单元,用于确定当前滑动窗口内所有报文的报文总数;
第三确定单元,用于将所述间隔时长和所述报文总数确定为所述计算结果。
在一些实施例中,所述预先配置的流量控制参数至少包括滑动窗口大小和滑动窗口对应的总数阈值,处理模块604,包括:
第四确定单元,用于确定当前是否处于流量控制状态;
第五确定单元,用于当当前处于未流量控制状态时,确定所述间隔时长是否小于所述滑动窗口大小;
第六确定单元,用于当所述间隔时长小于所述滑动窗口大小时,确定当前滑动窗口内所有报文的报文总数;
第一控制单元,用于当所述报文总数大于所述总数阈值时,控制自身进入流量控制状态,禁止接收所述第一报文;
第二控制单元,用于当处于流量控制状态时,禁止接收第二报文,其中,所述第二报文位于所述第一报文之后,且位于所述当前滑动窗口内。
在一些实施例中,处理模块604,还包括:
第七确定单元,用于当当前处于流量控制状态时,确定所述间隔时长是否小于所述滑动窗口大小;
第一接收单元,用于当所述间隔时长大于或等于所述时长阈值,接收所述第一报文,解除所述流量控制状态。
在一些实施例中,处理模块604,还包括:
判断单元,用于判断所述报文总数是否大于等于总数阈值;
第二接收单元,用于当所述报文总数小于所述总数阈值时,接收所述第一报文。
在一些实施例中,所述属性信息还包括:网口号和物理地址,所述第一确定单元包括:
第一确定子单元,用于基于所述网口号和物理地址确定所述第一报文的分组信息;
获取子单元,用于获取预先建立的分组与链路之间的对应关系;
第二确定子单元,用于根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供的流量控制装置,获取模块获取该报文的属性信息,根据属性信息确定对应的链路,加入模块将该报文加入待接收队列中,计算单元从而对基于链路进行流量控制计算,得到计算结果,处理模块,据计算结果和预先配置的流量控制参数对第一报文进行处理,如此,实现了按链路对流量进行计算,通过算法进行处理,节省硬件资源,可以对流量控制参数进行配置,提高了流量控制的灵活性。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的流量控制方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,ReadOnly Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述实施例中提供的流量控制方法中的步骤。
本申请实施例提供一种流量控制设备,图7为本申请实施例提供的流量控制设备的组成结构示意图,如图7所示,所述流量控制设备700包括:一个处理器701、至少一个通信总线702、用户接口703、至少一个外部通信接口704和存储器705。其中,通信总线702配置为实现这些组件之间的连接通信。其中,用户接口703可以包括显示屏,外部通信接口704可以包括标准的有线接口和无线接口。其中,所述处理器701配置为执行存储器中存储的流量控制方法的程序,以实现以上述实施例提供的流量控制方法中的步骤
以上流量控制设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请流量控制设备和存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台AC执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种流量控制方法,其特征在于,所述方法包括:
获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;
在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;
基于所述待接收队列进行流量控制计算,得到计算结果;
基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。
2.根据权利要求1所述的方法,其特征在于,获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路,包括:
获取所述第一报文;
提取所述第一报文中预设字段中携带的信息,得到所述第一报文的属性信息;
根据所述属性信息确定所述第一报文对应的链路。
3.根据权利要求1所述的方法,其特征在于,所述属性信息至少包括时间戳,对应地,所述基于所述待接收队列进行流量控制计算,得到计算结果,包括:
基于所述时间戳与所述待接收队列中队首报文的时间戳确定间隔时长;
确定当前滑动窗口内所有报文的报文总数;
将所述间隔时长和所述报文总数确定为所述计算结果。
4.根据权利要求3中所述的方法,其特征在于,所述预先配置的流量控制参数至少包括滑动窗口大小和滑动窗口对应的总数阈值,对应地,所述基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,包括:
确定当前是否处于流量控制状态;
当当前未处于流量控制状态时,确定所述间隔时长是否小于所述滑动窗口大小;
当所述间隔时长小于所述滑动窗口大小时,确定所述报文总数是否大于所述总数阈值;
当所述报文总数大于所述总数阈值时,控制自身进入流量控制状态,禁止接收所述第一报文;
当处于流量控制状态时,禁止接收第二报文,其中,所述第二报文位于所述第一报文之后,且位于所述当前滑动窗口内。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当当前处于流量控制状态时,确定所述间隔时长是否小于所述滑动窗口大小;
当所述间隔时长大于或等于所述时长阈值,接收所述第一报文,解除所述流量控制状态。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断所述报文总数是否大于等于总数阈值;
当所述报文总数小于所述总数阈值时,接收所述第一报文。
7.根据权利要求2所述的方法,其特征在于,所述属性信息还包括:网口号和物理地址,所述基于所述属性信息确定所述第一报文对应的链路,包括:
基于所述网口号和物理地址确定所述第一报文的分组信息;
获取预先建立的分组信息与链路之间的对应关系;
根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。
8.根据权利要求2所述的方法,其特征在于,所述属性信息包括:应用标识和线程标识,对应地,所述基于所述属性信息确定所述第一报文对应的链路,包括:
基于所述应用标识和线程标识确定所述第一报文的分组信息;
获取预先建立的分组信息与链路之间的对应关系;
根据所述第一报文的分组信息与所述对应关系确定第一报文对应的链路。
9.一种流量控制装置,其特征在于,所述流量控制装置包括:
获取模块,用于获取第一报文和所述第一报文的属性信息,并基于所述属性信息确定所述第一报文对应的链路;
加入模块,用于在存在所述链路的情况下,将所述第一报文加入所述链路对应的待接收队列;
计算模块,用于基于所述待接收队列进行流量控制计算,得到计算结果;
处理模块,用于基于所述计算结果和预先配置的流量控制参数,对所述第一报文进行处理,以进行流量控制。
10.一种流量控制设备,其特征在于,所述流量控制设备至少包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的流量控制方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述权利要求1至8任一项所述的流量控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414732.0A CN111669334B (zh) | 2020-05-15 | 2020-05-15 | 流量控制方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414732.0A CN111669334B (zh) | 2020-05-15 | 2020-05-15 | 流量控制方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111669334A true CN111669334A (zh) | 2020-09-15 |
CN111669334B CN111669334B (zh) | 2023-03-28 |
Family
ID=72383803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010414732.0A Active CN111669334B (zh) | 2020-05-15 | 2020-05-15 | 流量控制方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111669334B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113973084A (zh) * | 2021-10-29 | 2022-01-25 | 中国建设银行股份有限公司 | 一种流量控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040975A (zh) * | 2012-11-21 | 2014-09-10 | 华为技术有限公司 | 一种ospf报文的流量控制方法及装置 |
CN107547414A (zh) * | 2016-06-24 | 2018-01-05 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN108259333A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种bum流量控制方法、相关装置以及系统 |
WO2019157978A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
-
2020
- 2020-05-15 CN CN202010414732.0A patent/CN111669334B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040975A (zh) * | 2012-11-21 | 2014-09-10 | 华为技术有限公司 | 一种ospf报文的流量控制方法及装置 |
CN107547414A (zh) * | 2016-06-24 | 2018-01-05 | 中兴通讯股份有限公司 | 报文发送方法及装置 |
CN108259333A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种bum流量控制方法、相关装置以及系统 |
WO2019157978A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
CN110166380A (zh) * | 2018-02-14 | 2019-08-23 | 华为技术有限公司 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113973084A (zh) * | 2021-10-29 | 2022-01-25 | 中国建设银行股份有限公司 | 一种流量控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111669334B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9497598B2 (en) | Service information pushing and receiving method, and related apparatus and system | |
CN103067199B (zh) | 深度报文检测结果扩散方法及装置 | |
CN107547300B (zh) | 一种网络质量检测方法及装置 | |
EP3264810A1 (en) | Perception-free authentication method and system, and control method and system based on method | |
CN107483279B (zh) | 一种基于以太网帧的本地批量操作网络设备的方法 | |
CN106603736B (zh) | Mac地址处理方法及装置 | |
CN111182659B (zh) | 一种Mesh设备的模式切换方法、模式切换装置及Mesh设备 | |
CN110300040A (zh) | 一种通信方法及相关设备 | |
CN111669334B (zh) | 流量控制方法、装置、设备及计算机可读存储介质 | |
EP3203693A1 (en) | User message forwarding control method and processing node | |
US20170338998A1 (en) | Message Attack Defense Method and Apparatus | |
CN105791219B (zh) | 抗重放方法和装置 | |
CN112738538A (zh) | 直播间挂机行为检测方法、装置、电子设备和计算机可读存储介质 | |
CN106209561B (zh) | 环路检测报文的发送方法及装置 | |
CN113595812A (zh) | 一种客户端识别方法、装置、存储介质及网络设备 | |
CN108024291B (zh) | 一种移动网络中共享上网检测的方法及装置 | |
CN115883466A (zh) | 交换机的控制方法及装置、存储介质及电子装置 | |
CN105450647A (zh) | 一种防止报文攻击的方法及系统 | |
CN109845346B (zh) | 一种唤醒无线设备的方法、发送设备及接收设备 | |
CN114301812B (zh) | 报文处理结果的监控方法、装置、设备以及存储介质 | |
CN107819684B (zh) | 同步处理方法及装置 | |
CN113692017A (zh) | 一种基于dvb-rcs2系统的多终端寻呼方法 | |
CN110120956B (zh) | 基于虚拟防火墙的报文处理方法和装置 | |
CN107770809B (zh) | 一种控制数据包发送的方法、基站、终端及系统 | |
EP3200414B1 (en) | Identification method and device for lost data packet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |