CN110061924B - 一种报文转发方法、装置及相关产品 - Google Patents
一种报文转发方法、装置及相关产品 Download PDFInfo
- Publication number
- CN110061924B CN110061924B CN201910313833.6A CN201910313833A CN110061924B CN 110061924 B CN110061924 B CN 110061924B CN 201910313833 A CN201910313833 A CN 201910313833A CN 110061924 B CN110061924 B CN 110061924B
- Authority
- CN
- China
- Prior art keywords
- message receiving
- queue
- message
- receiving queue
- messages
- 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.)
- Active
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
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文转发方法和装置,首先由转发处理器动态生成各个报文接收队列的报文接收数量,然后,根据转发处理器的利用率确定报文转发模式。即,当转发处理器的利用率小于第一阈值时,则接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列接收数量时,批量将接收到的报文加入相应的报文发送队列进行发送;当转发处理器的利用率大于或等于第一阈值时,则按照各个报文接收队列的报文接收数量依次接收各个报文接收队列的报文,当接收完所有报文接收队列的报文后,批量将接收的所有报文加入相应的报文发送队列进行统一发送,在保证吞吐性能的基础上,优化延迟性能,提升整体转发性能。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种报文转发方法、装置及相关产品。
背景技术
对于安全厂商而言,防火墙设备的吞吐量和延迟时间是重要指标。吞吐量是指防火墙设备单位时间的转发性能,例如每秒转发报文的数量。单包延迟是指防火墙设备从收到报文到转发成功的处理时间,时间越短说明延迟越低。防火墙设备的延迟时间可以包括平均延迟和/或最大延迟,平均延迟指单位时间内所有报文的平均延迟时间,最大延迟指单位时间内所有报文中最大的单包延迟。
软件防火墙,例如基于DPDK(Data Plane Development Kit,数据平面开发套件)的防火墙,吞吐量和延迟时间却是相对互斥的概念。为了实现高吞吐量的转发依赖于批量接收报文和批量发送报文,即防火墙设备把接收到的报文积攒到一定数量才发送,会导致延迟时间增加。因此,如何在软件防火墙设备中实现高性能转发的同时也保证低延迟成为业界的难题。
发明内容
有鉴于此,本申请实施例提供一种报文转发方法、装置及相关产品,以实现降低软件防火墙的延迟时间。
为解决上述问题,本申请实施例提供的技术方案如下:
一种报文转发方法,所述方法包括:
转发处理器动态生成各个报文接收队列的报文接收数量;
在所述转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;
在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文,当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
在一种可能的实现方式中,在所述转发处理器在非初始状态时,所述转发处理器动态生成各个报文接收队列的报文接收数量,包括:
在所述转发处理器的利用率大于或等于第二阈值时,将预先确定的各个报文接收队列的报文接收数量最大值分别确定为各个报文接收队列的报文接收数量;
当所述转发处理器的利用率小于所述第二阈值时,将各个报文接收队列对应的设备的性能参数大于或等于第三阈值的报文接收队列确定为第一目标报文接收队列,将各个报文接收队列对应的设备的性能参数小于所述第三阈值的报文接收队列确定为第二目标报文接收队列;
将预先确定的所述第一目标报文接收队列的报文接收数量最大值确定为所述第一目标报文接收队列的报文接收数量;
将所述第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到所述第二目标报文接收队列的报文接收数量。
在一种可能的实现方式中,所述将第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到所述第二目标报文接收队列的报文接收数量,包括:
获取所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数;
将所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数输入预先训练的决策树模型,得到所述第二目标报文接收队列的报文接收数量。
在一种可能的实现方式中,所述决策树模型的训练过程包括:
获取训练数据,所述训练数据包括实际报文接收队列对应的单位时间的性能参数和/或所述实际报文接收队列对应的多轮处理的性能参数;
根据所述训练数据以及所述训练数据的标签数据训练生成决策树模型,所述标签数据包括所述实际报文接收队列的报文延迟时间以及所述实际报文接收队列的报文接收数量。
在一种可能的实现方式中,预先确定各个所述报文接收队列的报文接收数量最大值的方法包括:
在所述报文接收队列对应的设备达到第一预设条件时,设置不同的第一报文接收数量测试值进行报文转发测试,在所述第一报文接收数量测试值中选取延迟时间最小的第一报文接收数量确定为所述报文接收队列的报文接收数量最大值。
在一种可能的实现方式中,在转发处理器在初始状态时,所述转发处理器动态生成各个报文接收队列的报文接收数量,包括:
所述转发处理器将预先确定的各个报文接收队列的初始报文接收数量分别确定为各个报文接收队列的报文接收数量;
预先确定各个所述报文接收队列的初始报文接收数量的方法包括:
在所述报文接收队列对应的设备达到第二预设条件时,设置不同的第二报文接收数量测试值进行报文转发测试,在所述第二报文接收数量测试值中选取延迟时间最小的第二报文接收数量确定为所述报文接收队列的初始报文接收数量。
在一种可能的实现方式中,在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文之前,所述方法还包括:
判断当前报文接收队列是否满足第三预设条件;
若所述当前报文接收队列满足第三预设条件,接收当前报文接收队列的报文,当接收到的当前报文接收队列的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的报文加入相应的报文发送队列进行发送;
若所述当前报文接收队列不满足第三预设条件,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文,当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
一种报文转发装置,所述装置包括:
生成单元,用于动态生成各个报文接收队列的报文接收数量;
第一接收单元,用于在所述转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文;
第一发送单元,用于当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;
第二接收单元,用于在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文;
第二发送单元,用于当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的报文转发方法。
一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述的报文转发方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先由转发处理器动态生成各个报文接收队列的报文接收数量,然后,根据转发处理器的利用率确定报文转发模式。即,当转发处理器的利用率小于第一阈值时,则接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列接收数量时,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;当转发处理器的利用率大于或等于第一阈值时,则按照各个报文接收队列的报文接收数量依次接收各个报文接收队列的报文,当接收完所有报文接收队列的报文后,批量将接收的所有报文加入相应的报文发送队列进行统一发送。可见,通过本申请实施例提供的方法,不仅可以动态调整各个接收队列的报文接收数量,还可以当转发处理器的利用率较小时,表明转发处理器负载较小,则转发处理器可以从一个报文接收队列接收完报文之后,批量将接收到的报文加入相应的报文发送队列进行发送;当转发处理器的利用率较大时,表明转发处理器负载较重,为避免频繁转发增加转发处理器系统开销,则转发处理器等到接收到所有报文接收队列的报文后,批量将接收到的报文加入各自对应的发送队列,统一进行发送,在保证吞吐性能的基础上,优化延迟性能,提升整体转发性能。
附图说明
图1为本申请实施例提供的一种报文转发模式示意图;
图2为本申请实施例提供的一种报文转发方法的流程图;
图3为本申请实施例提供的一种确定报文接收数量方法的流程图;
图4为本申请实施例提供的一种报文转发装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请提供的技术方案,下面先对本申请的背景技术进行说明。
发明人在对传统的防火墙转发报文方法研究中发现,传统的报文转发是转发处理器在收到报文后积攒到固定数量后才进行转发,如果未积攒到固定数量则定时将所接收的报文进行转发,导致报文延迟较大。而且,每次从单个接收队列接收的报文数量固定,当每次从单个接收队列接收的报文数量较大时,可能导致处理时间增长,从而导致从其它接收队列接收的报文无法得到及时处理,使报文延迟增大。
基于此,本申请实施例提供一种报文转发方法,首先由转发处理器动态生成各个报文接收队列的报文接收数量,即实现动态调整各个报文接收队列的报文接收数量,不再固定各个报文接收队列的报文接收数量。其次,当确定出各个报文接收队列的报文接收数量后,根据转发处理器的利用率确定转发模式,即根据转发处理器的利用率确定是单个报文接收队列的报文接收完毕后立刻发送,还是当所有报文接收队列均接收完毕后再统一进行转发送,当转发处理器的利用率小于第一阈值时,表明转发处理器负载较小,则转发处理器可以从单个报文接收队列接收完报文之后,将所接收的当前报文接收队列的报文加入该报文接收队列对应的报文发送队列,立刻进行发送;当转发处理器的利用率大于或等于第一阈值时,表明转发处理器负载较重,为避免频繁转发增加转发处理器系统开销,则转发处理器在接收报文时,待所有报文接收队列的报文被接收后,将所接收的报文加入各个报文接收队列对应的报文发送队列,统一进行发送,在保证吞吐性能的基础上,优化延迟性能,提升整体转发性能。
为便于理解本申请提供的技术方案,下面将先对本申请中转发处理器的工作原理进行说明。参见图1,该图为本申请实施例提供的报文转发示意图,通过图1可知,转发处理器不仅可以接收网卡发送的报文,还可以接收其他转发处理器发送的报文以及配置处理器发送的报文。也就是,转发处理器对应的报文接收队列可以包括三种报文接收队列,一种是网卡接收队列,每个网卡与转发处理器建立一个网卡接收队列,以便转发处理器通过该网卡接收队列接收报文;另一种是核间队列,表示转发处理器与其它转发处理器之间的接收队列,转发处理器通过核间队列接收其它转发处理器发送的报文;再一种是核间通道,表示转发处理器与配置处理器之间的接收队列,转发处理器通过核间通道接收配置处理器发送的报文。
需要说明的是,本实施例中,每个转发处理器可以接收多个网卡发送的报文,也可以接收其它任意一个或多个转发处理器发送的报文,也可以接收一个或多个配置处理器发送的报文。
基于上述说明,下面将结合附图对本申请实施例提供的一种报文转发方法进行说明。
参见图2,该图为本申请实施例提供的一种报文转发方法流程图,如图2 所示,该方法可以包括:
S201:转发处理器动态生成各个报文接收队列的报文接收数量。
本实施例中,当转发处理器在进行一轮收包时,首先生成该轮收包对应的各个报文接收队列的报文接收数量,以便根据各个报文接收队列的报文接收数量进行报文接收。在具体实现时,转发处理器可以根据影响报文转发延迟的各个因素确定每个报文接收队列分别对应的报文接收数量,即不再按照固定值从报文接收队列中接收报文,而是根据各个影响转发性能的因素动态调整每个报文接收对应的报文接收数量,避免因某个报文接收队列对应的接收数量较大而导致处理时间较长,进而影响已经接收的报文的转发。其中,关于转发处理器动态生成各个报文接收队列的报文数量的具体实现将在后续实施例进行说明。
其中,一轮收包是指转发处理器从其对应的各个报文接收队列依次进行接收报文,当转发处理器从所有报文接收队列接收报文后,该轮收包结束。例如,转发处理器共对应3个报文接收队列,分别为报文接收队列1、报文接收队列2以及报文接收队列3,确定报文接收队列1在当前轮的报文接收数量为 10,报文接收队列2在当前轮的报文接收数量为12,报文接收队列3在当前轮的报文接收数量为16。在当前轮接收完毕后,转发处理器可以重新确定每个报文接收队列的报文接收数量。
需要说明的是,本实施例中报文接收队列可以为网卡报文接收队列、核间队列以及核间通道中的一种或多种。
S202:在转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送。
本实施例中,当转发处理器动态生成各个接收队列的报文接收数量后,可以判断自身的利用率与第一阈值的关系,如果转发处理器的利用率小于第一阈值,则执行S202,转发处理器开始逐个从报文接收队列接收报文,即从当前报文接收队列中接收报文,当接收的报文数量等于当前报文接收队列的报文接收数量时,将所接收到的报文批量加入相应的报文发送队列中,以对接收的报文进行发送。例如,接收的报文需要发往网卡2,则转发处理器将报文加入发往网卡2对应的报文发送队列,如果接收的报文有发往网卡3,则转发处理器将报文加入发往网卡3对应的报文发送队列中。
其中,第一阈值可以根据转发处理器的实际工作性能进行确定,表示转发处理器的负载大小,本申请实施例对第一阈值不进行限定。当转发处理器的利用率小于第一阈值,表明转发处理器负载较小,则转发处理器可以从一个报文接收队列接收完报文之后,将接收的报文批量加入相应的报文发送队列进行转发。也就是,当转发处理器的利用率小于第一阈值时,针对任意一个报文接收队列,均是在转发处理器接收完该接收队列的报文后立刻进行转发。例如,第一阈值为40%,当转发处理器的利用率小于40%,转发处理器从报文接收队列1中接收10个报文后,将10个报文批量加入相应的报文发送队列进行转发;然后,转发处理器从报文接收队列2中接收12个报文后,将12 个报文批量加入相应的报文发送队列进行转发;然后,转发处理器从报文接收队列3中接收16个报文后,将16个报文批量加入相应的报文发送队列进行转发。
S203:在转发处理器的利用率大于或等于第一阈值时,按照各个报文接收队列的报文接收数量依次接收各个报文接收队列的报文,当接收完各个报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
本实施例中,当转发处理器确定自身的利用率大于或等于第一阈值时,表明转发处理器负载较重,为避免频繁转发增加转发处理器系统开销,则转发处理器按照各个报文接收队列的报文数量,开始从各个报文接收队列中接收报文,当所有报文接收队列的报文均被接收完毕后,也就是积攒所有报文接收队列中的报文后,统一将接收的报文批量地加入到相应的报文发送队列进行发送。即经过一轮收包后,将所有报文接收队列的报文统一进行发送。
通过本实施例所描述的内容可知,转发处理器不仅可以动态调整各个接收队列的报文接收数量,以避免因某个报文接收队列对应的接收数量较大而导致处理时间较长,进而影响已经接收的报文的转发。还可以根据转发处理器自身的利用率调整报文转发模式,当转发处理器的利用率较小时,表明转发处理器负载较小,则转发处理器可以从一个报文接收队列接收到该报文接收队列对应的报文接收数量后,将积攒的报文发送到对应的发送队列并立刻进行发送,仅积攒单个报文接收队列的报文延迟较小;当转发处理器的利用率较大时,表明转发处理器负载较重,为避免频繁转发增加转发处理器系统开销,则转发处理器在接收到所有报文接收队列的报文完成一轮收包后,将接收到的所有报文加入相应的报文发送队列中,统一进行发送,仅经过一轮收包即进行报文发送,不再经过多轮收包将报文积攒到一定数量后才发送,或者经过多轮收包未积攒够数量需等到一定时间再进行报文转发,在保证吞吐性能的基础上,优化延迟性能,提升整体转发性能。
在本申请实施例一种可能的实现方式中,当转发处理器的利用率大于或等于第一阈值时,还需进一步判断每个报文接收队列是否满足第三预设条件,当报文接收队列满足第三预设条件时,仍按照接收完毕当前接收队列的报文后立刻进行转发。具体为,在转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文之前,还可以判断当前报文接收队列是否满足第三预设条件,若当前报文接收队列满足第三预设条件,接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的报文加入相应的报文发送队列进行发送;若当前报文接收队列不满足第三预设条件,按照各个报文接收队列的报文接收数量依次接收各个报文接收队列的报文,当接收完各个报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。其中,第三预设条件可以根据实际情况进行设定,可以为当前报文接收队列对应设备发送的报文均固定发送某设备,例如,当前报文接收队列1对应的网卡1发送的报文均发送给网卡2,当前报文接收队列 3对应的网卡3发送的报文均发送给网卡4。
在具体实现时,可以由配置处理器判断每个报文接收队列对应的设备是否满足其所发送的报文均发送给固定设备,如果是,则配置处理器将该设备对应的标签位forward-fixded置为1。当转发处理器在通过报文接收队列接收报文时,判断当前报文接收队列对应设备的标签位forward-fixded是否为1,如果是,则按照当前报文接收队列的报文接收数量接收当前报文接收队列的报文,并在当前报文接收队列接收完后立即进行报文转发。如果当前报文接收队列对应设备的标签为forward-fixded为0,则转发处理器在将所有报文接收队列的报文接收完毕后,统一进行发送。
基于上述实施例,转发处理器在进行一轮收包之前,首先确定每个报文接收队列的报文接收数量,避免以固定数量接收报文而影响其它报文处理时间,下面将结合附图对该确定方法进行说明。
参见图3,该图为本申请实施例提供的一种转发处理器动态生成报文接收队列的报文接收数量方法流程图,如图3所示,该方法可以包括:
S300:转发处理器在初始状态时,将预先确定的各个报文接收队列的初始报文接收数量分别确定为各个报文接收队列的报文接收数量。
在启动转发处理器进行工作时,首先初始化各个报文接收队列的报文接收数量,将预先确定的各个报文接收队列的初始报文接收数量分别确定为各个报文接收队列的报文接收数量,以便根据初始化的报文接收数量从各个报文接收队列中接收报文。
在实际应用中,可以各个报文接收队列对应的初始化报文接收数量可以相同,也可以不同。在本实施例中,提供了一种确定各个报文接收队列的初始报文接收数量的方法,具体为,在报文接收队列对应的设备达到第二预设条件时,设置不同的第二报文接收数量测试值进行报文转发测试,在第二报文接收数量测试值中选取延迟时间最小的第二报文接收数量确定为报文接收队列的初始报文接收数量。
在实际应用时,针对每个报文接收队列,在该报文接收队列对应的设备达到第二预设条件时,为该报文接收队列设置不同的第二报文接收数量,然后获取该报文接收队列在不同的第二报文接收数量下分别对应的延迟时间,将最小延迟时间对应的第一报文接收数量确定为该报文接收队列对应的报文接收数量最大值,依次进行测试,从而获取每个报文接收队列的报文接收数量最大值。其中,第二预设条件可以为设备以预设阈值的线速发送报文,例如设备以30%线速发送报文。
例如,报文接收队列1对应的设备1达到以30%的线速发送报文,分别设备的第一报文接收数量为1、2、4、6、…、20。然后,分别在不同的第二报文接收数量下测试报文的延迟,如果第一报文接收数量为12时对应的延迟最小,则将12确定为报文接收队列1的初始报文接收数量。
S301:转发处理器在非初始状态时,确定转发处理器的利用率。
本实施例中,转发处理器在非初始状态时,在动态生成各个报文接收队列的报文接收数量之前,首先确定自身的利用率,以便根据利用率的大小确定报文接收队列的报文接收数量。
S302:转发处理器在转发处理器的利用率大于或等于第二阈值时,将预先确定的各个报文接收队列的报文接收数量最大值分别确定为各个报文接收队列的报文接收数量。
本实施例中,转发处理器首先确定自身的利用率是否大于或等于第二阈值,如果转发处理器的利用率大于或等于第二阈值时,代表当前转发处理器报文转发负载较重,需要较多考虑吞吐量性能,则不启动后续步骤中的决策树模型,而是将预先确定的每个报文接收队列的报文接收数量最大值分别确定为该报文接收队列的报文接收数量。需要说明的是,每个报文接收队列均各自对应一个报文接收数量最大值,在转发处理器的利用率大于或等于第二阈值时,则将每个报文接收队列各自对应的报文接收数量最大值确定为该报文接收队列的报文接收数量。
其中,第二阈值可以根据实际情况设定,例如为95%,本申请实施例对第二阈值不进行限定,第一阈值与第二阈值可以相同、也可以不同。例如,当转发处理的利用率大于或等于95%时,则将各个报文接收队列各自对应的报文接收数量最大值确定为该报文接收对应的报文接收数量。
在具体实现时,本实施例提供了一种预先确定各个报文接收队列的报文接收数量最大值的方法,具体为,在报文接收队列对应的设备达到第一预设条件时,根据实际情况设置不同的第一报文接收数量测试值进行报文转发测试,在第一报文接收数量测试值中选取延迟时间最小的第一报文接收数量确定为报文接收队列的报文接收数量最大值。
在本实施例中,针对每个报文接收队列,在报文接收队列对应的设备达到第一预设条件时,为该报文接收队列设置不同的第一报文接收数量,然后获取该报文接收队列在不同的第一报文接收数量下分别对应的延迟时间,将最小延迟时间对应的第一报文接收数量确定为该报文接收队列对应的报文接收数量最大值,依次进行测试,获取每个报文接收队列的报文接收数量最大值。其中,第一预设条件可以为设备以预设阈值的线速发送报文,例如设备以100%线速发送报文。
例如,报文接收队列1对应的设备1达到以100%的线速发送报文,分别设置的第一报文接收数量为1、2、4、8、10,…,32。然后,分别在不同的第一报文接收数量下测试报文的延迟,如果第一报文接收数量为20时对应的延迟最小,则将20确定为报文接收队列1的报文接收数量最大值。
S303:当转发处理器的利用率小于第二阈值时,将各个报文接收队列对应的设备的性能参数大于或等于第三阈值的报文接收队列确定为第一目标报文接收队列,将各个报文接收队列对应的设备的性能参数小于第三阈值的报文接收队列确定为第二目标报文接收队列。
本实施例中,当转发处理器的利用率小于第二阈值时,可以根据各个报文接收队列对应的设备的性能参数对报文接收队列进行分类,具体为,将报文接收队列对应的设备的性能参数大于或等于第三阈值的报文接收队列确定为第一目标报文接收队列;将报文接收队列对应的设备的性能参数小于第三阈值的报文接收队列确定为第二目标报文接收队列。
其中,设备的性能参数可以为设备在最近一段时间内平均性能参数,第三阈值可以根据设备的实际性能进行设置,本申请实施例对第三阈值不进行限定,例如为线速的95%,当设备在最近3秒平均性能参数达到线速的95%,则将该设备的报文接收队列确定为第一目标报文接收队列。如果设备在最近3 秒平均性能参数小于线速的95%,则将该设备的报文接收队列确定为第二目标报文接收队列。
需要说明的是,在实际应用中,在转发处理器的利用率小于第二阈值时,所有报文接收队列均为第一目标报文接收队列,或者,所有报文接收队列均为第二目标报文接收队列,也可以为一部分报文接收队列为第一目标报文接收队列,而另一部分为第二目标报文接收队列。
S304:将预先确定的第一目标报文接收队列的报文接收数量最大值确定为第一目标报文接收队列的报文接收数量。
本实施例中,当通过S302确定出第一目标报文接收队列后,将预先确定的该第一目标报文接收队列的报文接收数量最大值确定为第一目标报文接收队列的报文接收数量。第一目标报文接收队列代表转发处理器转发这些报文接收队列的报文的负载较大,为了加快这些报文接收队列报文的转发,则将第一目标报文接收队列的报文接收数量最大值确定为第一目标报文接收队列的报文接收数量。
可以理解的是,当通过S302确定出多个第一目标报文接收队列时,分别将每个第一目标报文接收队列对应的报文接收数量最大值确定该第一目标报文接收队列的报文接收数量。
S305:将第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到第二目标报文接收队列的报文接收数量。
本实施例中,当确定出第二目标报文接收队列后,将第二目标报文接收队列对应的特征值输入预先训练的决策树模型生成第二目标报文接收队列的报文接收数量。也就是,将每个第二目标报文接收队列对应的特征值分别输入预先训练的决策树模型中,以得到当前第二目标报文接收队列的报文接收数量。第二目标报文接收队列代表转发处理器转发这些报文接收队列的报文负载较小,且当前转发处理器的利用率也小于第二阈值,则可以启动决策树模型,动态调整第二目标报文接收队列的报文接收数量,以进一步提升延迟性能。其中,关于将第二目标报文接收队列对应的特征值输入预先训练的决策树模型生成报文接收数量的实现将在后续实施例进行说明。
可以理解的是,在本实施例中,在转发处理器的利用率大于或等于第二阈值时,表明转发处理器当前流量负载较重,为避免利用决策树模型计算而消耗转发处理器的资源,保证转发处理器的转发性能,则不启动决策树模型,而是直接将每个报文接收队列的报文接收数量最大值确定该报文接收队列的报文接收数量。在转发处理器的利用率小于第二阈值时,表明转发处理器当前流量负载小,则进一步判断各个报文接收队列对应的设备的性能参数是否大于或等于第三阈值,如果否,表明设备的发送负载较小,则可以启动决策树模型调整第二目标报文接收队列的报文接收数量。
在本申请实施例一种可能的实现方式中,提供了一种利用决策树模型确定第二目标报文接收队列的报文接收数量的方法,具体包括以下步骤:
1)获取第二目标报文接收队列对应的单位时间的性能参数和/或第二目标报文接收队列对应的多伦处理的性能参数。
本实施例中,第二目标报文接收队列对应的特征值可以为其对应的单位时间的性能参数和/或对应的多轮处理的性能参数。其中,第二目标报文接收队列对应的单位时间的性能参数可以为以秒为单位的性能参数,可以包括转发处理器单位时间的性能参数、第二目标报文接收队列对应的设备单位时间的性能参数、转发处理器核间通道单位时间的性能参数、转发处理器核间队列单位时间的性能参数中的一项或多项。
其中,转发处理器单位时间的性能参数可以包括转发处理器最近一段时间的占有率,例如最近三秒的占有率;最近一段时间内单位时间超时会话总数,例如最近5秒内每秒的超时会话总数;最近一段时间内的新建会话数、销毁会话数,以及最近一段时间内的平均新建数、平均销毁会话数。
其中,第二目标报文接收队列对应的设备单位时间的性能参数可以包括设备在最近一段时间的收包速率、速度以及平均收包速率;设备在最近一段时间的发包速率、速度以及平均发包速率。
其中,转发处理器核间通道单位时间的性能参数可以包括该核间通道在最近一段时间的收包总数以及平均收包总数;转发处理器核间队列单位时间的性能参数可以包括该核间队列在最近一段时间的收包总数和平均收包总数。
本实施例中第二目标报文接收队列对应的多轮处理的性能参数可以包括转发处理器多轮处理的性能参数、转发处理器定时器的性能参数中的一项或多项。其中,转发处理器多轮处理的性能参数可以包括转发处理器前N轮从第二目标报文接收队列接收报文的总数、转发处理器前N轮从第二目标报文接收队列接收报文数量的平均值、转发处理器前N轮处理报文数量的平均值、转发处理器前N轮处理所有报文的时长。转发处理器定时器的性能参数可以为转发处理器在处理一轮报文时该定时器的时长,其中,N为大于等于1的正整数。
在具体实现时,对于转发处理器来讲,其在单位时间内可以进行多轮收包循环,如果在每轮收包前,均由转发处理器来计算每个第二目标报文接收队列对应的单位时间的性能参数,将消耗较大的性能开销,影响转发处理器的转发性能。为优化整体转发性能,在对于单位时间的性能参数将由配置处理器进行计算,对于多轮处理的性能参数由转发处理器进行计算。则在本申请实施例一些可能的实现方式中,当需要利用决策树模型确定第二目标报文接收队列的报文接收数量时,转发处理器从配置处理器获取第二目标报文接收队列对应的单位时间的性能参数,和/或计算第二目标报文接收队列对应的单位时间的性能参数。即,将计算量较大的性能参数分配给配置处理器处理,减少对转发处理器资源的占用,提高转发性能。
2)将第二目标报文接收队列对应的单位时间的性能参数和/或第二目标报文接收队列对应的多轮处理的性能参数输入预先训练的决策树模型,得到第二目标报文接收队列的报文接收数量。
本实施例中,当获取第二目标接收队列对应的单位时间的性能参数和/ 或第二目标报文接收队列对应的多轮处理的性能参数,将获取的一项或多项性能参数输入预先训练的决策树模型,以获得该第二目标接收队列的报文接收数量。
需要说明的是,本实施例中在确定第二目标接收队列的报文接收数量时,不仅考虑转发处理器的新建会话数、销毁会话数、最近N轮实际收包均值等多项因素,还考虑了转发处理器核间队列、核间通道的性能参数,降低了核间通道、核间队列的收发包拥堵,缩短了核间队列的收包延迟,提升整体转发性能。
在实际应用中,可以仅将第二目标接收队列对应的单位时间的性能参数作为第二目标接收队列的特征值输入预先训练的决策树模型;也可将仅将第二目标接收队列对应的多轮处理的性能参数作为第二目标接收队列的特征值输入预先训练的决策树模型;还可以将第二目标接收队列对应的单位时间的性能参数和对应的多轮处理的性能参数作为第二目标接收队列的特征值输入预先训练的决策树模型。当然,在具体实现时,需要将哪些性能参数输入预先训练的决策树模型,还需与训练决策树模型所利用的训练数据一致。
需要说明的是,本实施例中之所以使用决策树进行报文接收数量的动态调整,主要是因为每轮中每个报文接收队列在收包前均需要进行调整,动态调整的频率较高。而决策树的计算复杂度较低,且适用于数值型数据,可以快速计算每个报文接收队列的报文接收数量,提高整体转发性能。
在本申请实施例一种可能的实现方式中,提供了一种决策树模型的训练过程,具体可以包括以下步骤:
1)获取训练数据,其中训练数据包括实际报文接收队列对应的单位时间的性能参数和/或实际报文接收队列对应的多轮处理的性能参数。
本实施例中,为训练生成决策树模型,获取每个实际报文接收队列对应的单位时间的性能参数和/或该实际报文接收队列对应的多轮处理的性能参数,将其作为训练数据。
在实际应用中,可以将获取实际报文接收队列对应的单位时间的性能参数作为训练数据,也可以仅将实际报文接收队列对应的多轮处理的性能参数作为训练数据,也可将实际报文接收队列对应的单位时间的性能参数和多轮处理的性能参数作为训练数据。
其中,实际报文接收队列对应的单位时间的性能参数可以包括转发处理器单位时间的性能参数、实际报文接收队列对应的设备单位时间的性能参数、转发处理器核间通道单位时间的性能参数、转发处理器核间队列单位时间的性能参数中的一项或多项;实际报文接收队列对应的多轮处理的性能参数包括转发处理器多轮处理的性能参数、转发处理器定时器的性能参数中的一项或多项。
2)根据训练数据以及训练数据的标签数据训练生成决策树模型,训练数据的标签数据包括实际报文接收队列的报文延迟时间以及实际报文接收队列的报文接收数量。
本实施例中,当获取训练数据时,将实际报文接收队列的报文延迟时间以及实际报文接收队列的报文接收数量作为标签,以报文延迟时间最小为目标,以报文接收数量为输出训练初始模型,以训练生成决策树模型。
在实际训练时,获取大量的实际报文接收队列对应的单位时间的性能参数和/或实际报文接收队列对应的多轮处理的性能参数作为训练数据,以及该实际报文接收队列对应的报文延迟时间、实际报文接收队列的报文接收数量。将实际报文接收队列的报文延迟时间以及实际报文接收队列的报文接收数量作为标签数据,然后将训练数据和标签数据输入初始模型,对初始模型进行训练,以训练获得决策树模型,从而使得决策树模型可以根据报文接收队列对应的单位时间的性能参数和/或报文接收队列对应的多轮处理的性能参数,输出该报文接收队列对应的报文接收数量。
在实际应用时,当将第二目标报文接收队列对应的特征值输入决策树模型时,该决策树模型可以确定出第二目标报文接收队列的报文接收数量,且转发处理器在以该报文接收数量从第二目标报文接收队列接收报文时,对应的报文延迟时间最小,减少收包延迟。
本实施例在训练生成决策树模型时,不仅考虑实际报文接收队列对应设备的性能参数,还考虑转发处理器的性能参数,以提升模型训练的准确性。
为便于理解本申请整体技术方案,下面将对现有技术与本申请进行对比,存在以下不同点:
(1)现有技术中转发处理器从每个报文接收队列中接收的报文数量固定不变,而本申请可以根据当前报文接收队列的特征值进行动态调整,以避免在转发处理器负载较重时,仍以固定数量接收报文而影响其它报文的处理时长,进而导致延迟较大;
(2)现有技术中是在经过多轮收包在报文积攒到一定数量后才发送,如果未积攒到一定数量,则按照预设设置的时间定时发送报文;而本申请不存在未积攒到一定数量进行定时发送的情况,而是根据转发处理器的利用率确定每轮收包是在当前报文接收队列收包完毕后立刻发送,还是在该轮所有报文接收队列均收包完毕后在统一进行发送,在保证吞吐量的前提下,优化延迟性能。
使用本申请实施例提供的报文转发方法,基于DPDK平台的防火墙在进行各类型网卡的延迟测试中,最大延迟可以低于90ns,在基于DPDK平台的防火墙进行真实流量、复杂混合流量测试时,最大延迟基本上都能保证90ns 以内,小于现有软件防火墙的最大延迟,在保证吞吐性能的基础上,降低了延迟。
基于上述方法实施例,本实施还提供了一种报文转发装置,下面将结合附图对该装置进行说明。
参见图4,该图为本申请实施例提供的一种报文转发装置结构图,如图4 所示,该装置可以包括:
生成单元401,用于动态生成各个报文接收队列的报文接收数量;
第一接收单元402,用于在所述转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文;
第一发送单元403,用于当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的报文加入相应的报文发送队列进行发送;
第二接收单元404,用于在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文;
第二发送单元405,用于当接收完各个所述报文接收队列的报文,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送。
在一种可能的实现方式中,所述转发处理器在非初始状态时,所述生成单元,包括:
第一确定子单元,用于在所述转发处理器的利用率大于或等于第二阈值时,将预先确定的各个报文接收队列的报文接收数量最大值分别确定为各个报文接收队列的报文接收数量;
第二确定子单元,用于当所述转发处理器的利用率小于所述第二阈值时,将各个报文接收队列对应的设备的性能参数大于或等于第三阈值的报文接收队列确定为第一目标报文接收队列,将各个报文接收队列对应的设备的性能参数小于所述第三阈值的报文接收队列确定为第二目标报文接收队列;
第三确定子单元,用于将预先确定的所述第一目标报文接收队列的报文接收数量最大值确定为所述第一目标报文接收队列的报文接收数量;
第四确定子单元,用于将所述第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到所述第二目标报文接收队列的报文接收数量。
在一种可能的实现方式中,所述第四确定子单元,包括:
获取子单元,用于获取所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数;
输入子单元,用于将所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数输入预先训练的决策树模型,得到所述第二目标报文接收队列的报文接收数量。
在一种可能的实现方式中,所述获取子单元,具体用于从配置处理器获取所述第二目标报文接收队列对应的单位时间的性能参数和/或计算所述第二目标报文接收队列对应的多轮处理的性能参数,所述配置处理器用于计算所述第二目标报文接收队列对应的单位时间的性能参数。
在一种可能的实现方式中,所述决策树模型的训练过程包括:
获取训练数据,所述训练数据包括实际报文接收队列对应的单位时间的性能参数和/或所述实际报文接收队列对应的多轮处理的性能参数;
根据所述训练数据以及所述训练数据的标签数据训练生成决策树模型,所述标签数据包括所述实际报文接收队列的报文延迟时间以及所述实际报文接收队列的报文接收数量。
在一种可能的实现方式中,所述转发处理器在初始状态时,所述生成单元,包括:
第五确定子单元,用于将预先确定的各个报文接收队列的初始报文接收数量分别确定为各个报文接收队列的报文接收数量;
预先确定各个所述报文接收队列的报文接收数量最大值的方法包括:
在报文接收队列对应的设备达到第一预设条件时,设置不同的第一报文接收数量测试值进行报文转发测试,在所述第一报文接收数量测试值中选取延迟时间最小的第一报文接收数量确定为所述报文接收队列的报文接收数量最大值。
在一种可能的实现方式中,所述确定单元,具体用于在报文接收队列对应的设备达到第二预设条件时,设置不同的第二报文接收数量测试值进行报文转发测试,在所述第二报文接收数量测试值中选取延迟时间最小的第二报文接收数量确定为所述报文接收队列的初始报文接收数量。
在一种可能的实现方式中,所述装置还包括:
判断单元,用于在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文之前,判断当前报文接收队列是否满足第三预设条件;
第三接收单元,用于如果所述判断单元的判断结果为所述当前报文接收队列满足第三预设条件,接收当前报文接收队列的报文;
第三发送单元,用于当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的报文加入相应的报文发送队列进行发送;
所述第二接收单元,用于如果所述判断单元的判断结果为所述当前报文接收队列不满足第三预设条件,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文;
所述第二发送单元,用于当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
需要说明的是,本实施例中各个单元的实现可以参照上述方法实施例,本实施例在此不再赘述。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的报文转发方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行所述的报文转发方法。
本申请实施例首先由转发处理器动态生成各个报文接收队列的报文接收数量,然后,根据转发处理器的利用率确定报文转发模式。即,当转发处理器的利用率小于第一阈值时,则接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列接收数量时,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;当转发处理器的利用率大于或等于第一阈值时,则按照各个报文接收队列的报文接收数量依次接收各个报文接收队列的报文,当接收完所有报文接收队列的报文后,批量将接收的所有报文加入相应的报文发送队列进行统一发送。可见,通过本申请实施例提供的方法,不仅可以动态调整各个接收队列的报文接收数量,还可以当转发处理器的利用率较小时,表明转发处理器负载较小,则转发处理器可以从一个报文接收队列接收完报文之后,批量将接收到的报文加入相应的报文发送队列进行发送;当转发处理器的利用率较大时,表明转发处理器负载较重,为避免频繁转发增加转发处理器系统开销,则转发处理器等到接收到所有报文接收队列的报文后,批量将接收到的报文加入各自对应的发送队列,统一进行发送,在保证吞吐性能的基础上,优化延迟性能,提升整体转发性能。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或 c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种报文转发方法,其特征在于,所述方法包括:
转发处理器动态生成各个报文接收队列的报文接收数量;
在所述转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文,当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;
在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文,当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
2.根据权利要求1所述的方法,其特征在于,所述转发处理器在非初始状态时,所述转发处理器动态生成各个报文接收队列的报文接收数量,包括:
在所述转发处理器的利用率大于或等于第二阈值时,将预先确定的各个报文接收队列的报文接收数量最大值分别确定为各个报文接收队列的报文接收数量;
当所述转发处理器的利用率小于所述第二阈值时,将各个报文接收队列对应的设备的性能参数大于或等于第三阈值的报文接收队列确定为第一目标报文接收队列,将各个报文接收队列对应的设备的性能参数小于所述第三阈值的报文接收队列确定为第二目标报文接收队列;
将预先确定的所述第一目标报文接收队列的报文接收数量最大值确定为所述第一目标报文接收队列的报文接收数量;
将所述第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到所述第二目标报文接收队列的报文接收数量。
3.根据权利要求2所述的方法,其特征在于,所述将所述第二目标报文接收队列对应的特征值输入预先训练的决策树模型得到所述第二目标报文接收队列的报文接收数量,包括:
获取所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数;
将所述第二目标报文接收队列对应的单位时间的性能参数和/或所述第二目标报文接收队列对应的多轮处理的性能参数输入预先训练的决策树模型,得到所述第二目标报文接收队列的报文接收数量。
4.根据权利要求2或3所述的方法,其特征在于,所述决策树模型的训练过程包括:
获取训练数据,所述训练数据包括实际报文接收队列对应的单位时间的性能参数和/或所述实际报文接收队列对应的多轮处理的性能参数;
根据所述训练数据以及所述训练数据的标签数据训练生成决策树模型,所述标签数据包括所述实际报文接收队列的报文延迟时间以及所述实际报文接收队列的报文接收数量。
5.根据权利要求2所述的方法,其特征在于,预先确定各个所述报文接收队列的报文接收数量最大值的方法包括:
在所述报文接收队列对应的设备达到第一预设条件时,设置不同的第一报文接收数量测试值进行报文转发测试,在所述第一报文接收数量测试值中选取延迟时间最小的第一报文接收数量确定为所述报文接收队列的报文接收数量最大值。
6.根据权利要求1所述的方法,其特征在于,所述转发处理器在初始状态时,所述转发处理器动态生成各个报文接收队列的报文接收数量,包括:
所述转发处理器将预先确定的各个报文接收队列的初始报文接收数量分别确定为各个报文接收队列的报文接收数量;
预先确定各个所述报文接收队列的初始报文接收数量的方法包括:
在所述报文接收队列对应的设备达到第二预设条件时,设置不同的第二报文接收数量测试值进行报文转发测试,在所述第二报文接收数量测试值中选取延迟时间最小的第二报文接收数量确定为所述报文接收队列的初始报文接收数量。
7.根据权利要求1所述的方法,其特征在于,在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文之前,所述方法还包括:
判断当前报文接收队列是否满足第三预设条件;
若所述当前报文接收队列满足第三预设条件,接收当前报文接收队列的报文,当接收到的当前报文接收队列的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的报文加入相应的报文发送队列进行发送;
若所述当前报文接收队列不满足第三预设条件,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文,当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
8.一种报文转发装置,其特征在于,所述装置应用于转发处理器,所述装置包括:
生成单元,用于动态生成各个报文接收队列的报文接收数量;
第一接收单元,用于在所述转发处理器的利用率小于第一阈值时,接收当前报文接收队列的报文;
第一发送单元,用于当接收到的报文数量达到当前报文接收队列的报文接收数量,批量将接收到的当前报文接收队列的报文加入相应的报文发送队列进行发送;
第二接收单元,用于在所述转发处理器的利用率大于或等于所述第一阈值时,按照各个所述报文接收队列的报文接收数量依次接收各个所述报文接收队列的报文;
第二发送单元,用于当接收完各个所述报文接收队列的报文,批量将接收到的报文加入相应的报文发送队列进行发送。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-7任一项所述的报文转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910313833.6A CN110061924B (zh) | 2019-04-18 | 2019-04-18 | 一种报文转发方法、装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910313833.6A CN110061924B (zh) | 2019-04-18 | 2019-04-18 | 一种报文转发方法、装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110061924A CN110061924A (zh) | 2019-07-26 |
CN110061924B true CN110061924B (zh) | 2022-05-06 |
Family
ID=67319423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910313833.6A Active CN110061924B (zh) | 2019-04-18 | 2019-04-18 | 一种报文转发方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110061924B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708234B (zh) * | 2019-09-24 | 2022-05-17 | 深圳证券交易所 | 消息发送的处理方法、消息发送的处理装置及存储介质 |
CN112162901A (zh) * | 2020-09-21 | 2021-01-01 | 东软集团股份有限公司 | Cpu利用率的确定方法、系统、存储介质和电子设备 |
CN113852961A (zh) * | 2021-09-18 | 2021-12-28 | 江苏亨鑫众联通信技术有限公司 | 一种安全节能的低时延高带宽通信方法、设备及存储介质 |
CN113923132B (zh) * | 2021-09-23 | 2023-05-12 | 深信服科技股份有限公司 | 数据提醒方法、装置、电子设备和存储介质 |
CN113746724B (zh) * | 2021-11-05 | 2022-04-12 | 阿里云计算有限公司 | 消息传输方法、装置、电子设备及介质 |
CN114697457A (zh) * | 2022-02-28 | 2022-07-01 | 青岛海尔科技有限公司 | 语音消息的处理方法及装置、存储介质、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8208406B1 (en) * | 2008-03-25 | 2012-06-26 | Juniper Networks, Inc. | Packet forwarding using feedback controlled weighted queues dynamically adjusted based on processor utilization |
WO2013168207A1 (en) * | 2012-05-09 | 2013-11-14 | Nec Corporation | Communication system, communication method, and program |
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN108040019A (zh) * | 2017-12-21 | 2018-05-15 | 杭州迪普科技股份有限公司 | 报文转发的方法及装置 |
-
2019
- 2019-04-18 CN CN201910313833.6A patent/CN110061924B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8208406B1 (en) * | 2008-03-25 | 2012-06-26 | Juniper Networks, Inc. | Packet forwarding using feedback controlled weighted queues dynamically adjusted based on processor utilization |
WO2013168207A1 (en) * | 2012-05-09 | 2013-11-14 | Nec Corporation | Communication system, communication method, and program |
CN108023829A (zh) * | 2017-11-14 | 2018-05-11 | 东软集团股份有限公司 | 报文处理方法及装置、存储介质、电子设备 |
CN108040019A (zh) * | 2017-12-21 | 2018-05-15 | 杭州迪普科技股份有限公司 | 报文转发的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110061924A (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110061924B (zh) | 一种报文转发方法、装置及相关产品 | |
CN110401511B (zh) | 一种传输速率的确定方法、装置、设备和存储介质 | |
CN109905259B (zh) | 通信连接维持方法、系统和相关设备 | |
US9992116B2 (en) | Method and device for processing packet congestion | |
CN104301066A (zh) | 数据包传输方法及装置 | |
CN110099013B (zh) | 一种报文发送控制方法及装置 | |
CN106533826A (zh) | 网络状态的探测方法及系统 | |
CN105554049B (zh) | 分布式业务量控制方法和装置 | |
CN108512727A (zh) | 一种中央处理器利用率的确定方法及装置 | |
CN110290529B (zh) | 组网均衡方法、装置及服务器 | |
CN112596985B (zh) | 一种it资产探测方法、装置、设备和介质 | |
CN111209998B (zh) | 基于数据类型的机器学习模型的训练方法及装置 | |
CN113676423A (zh) | 一种端口流量控制方法、装置、交换芯片和存储介质 | |
CN110380927B (zh) | 一种报文延迟测试方法、设备及存储设备、程序产品 | |
CN112491573B (zh) | 一种网络参数配置方法及装置 | |
CN112380011A (zh) | 一种服务容量的动态调整方法及装置 | |
CN114827281B (zh) | 一种网络请求的发送及接收方法、系统及装置 | |
CN109219064B (zh) | 一种tdd/fdd网络互操作处理方法及基站 | |
CN107888540B (zh) | 一种网络防攻击方法及网络设备 | |
CN106899510B (zh) | 一种基于iSCSI协议的传输速率控制方法和装置 | |
CN107181778B (zh) | 一种数据分流方法及装置 | |
CN117354252A (zh) | 一种数据传输处理方法、装置、存储介质及电子装置 | |
CN112822120B (zh) | 一种实现拥塞控制的方法、装置和系统 | |
CN111867111B (zh) | 一种调度设备的方法及装置 | |
CN114567603B (zh) | 一种报文传输方法、报文传输装置、电子设备及存储介质 |
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 |