掌桥专利:专业的专利平台
掌桥专利
首页

基于单个端口测试报文上CPU速率的方法及应用

文献发布时间:2023-06-19 19:40:14


基于单个端口测试报文上CPU速率的方法及应用

技术领域

本发明是关于通信领域,特别是关于一种基于单个端口测试报文上CPU速率的方法及应用。

背景技术

报文是网络中交换与传输的数据单元,其中包含了将要发送的完整的数据信息,同时,报文也是网络传输的单位,传输过程中会不断的封装成分组、包或帧来传输。互联网业务的多样化和差异化要求网络设备能够根据网络中报文的相关信息对报文进行差异化处理,针对不同类别的报文采取不同的操作。

在现有技术中,CPU资源是有限的,大量异常报文上送CPU处理,占用CPU资源,导致CPU负荷过重。在以太网交换机中,大部分的数据报文是通过专用芯片转发的,不需要CPU进行处理,而网络中的各种协议报文则是需要经过专用芯片传输到系统内存中,使CPU能够访问并对协议报文进行处理。

CPU处理的业务种类较多,逻辑一般较为复杂,在CPU被攻击时,会导致CPU使用率较高,从而在处理一些重要业务时出现混乱,导致系统混乱,从而导致所有报文都转发不通,并且用户不了解报文转发行为或其余硬件辅助设备不充裕的情况下不能测试报文上CPU的速率。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种基于单个端口测试报文上CPU速率的方法及应用,解决在不了解报文转发行为或其余硬件辅助设备不充裕的情况下不能测试报文上CPU的速率的问题。

为实现上述目的,本发明的实施例提供了一种基于单个端口测试报文上CPU速率的方法。

在本发明的一个或多个实施方式中,所述方法包括:将报文转发控制标志位设置为第一值,其中,当所述报文转发控制标志位设置为第一值时,所述报文经CPU处理后返回至所述芯片的入端口并从所述入端口转发;以及从芯片的任意入端口发送报文至CPU,并根据所述入端口出方向的报文流量,测试报文上CPU的速率。

在本发明的一个或多个实施方式中,所述从芯片的任意入端口发送报文至CPU,并根据所述入端口出方向的报文流量,测试报文上CPU的速率,包括:所述报文转发控制标志位设置为第一值时,按照预设周期从芯片的任意入端口发送大速率的报文至CPU;以及在所述入端口监听所述报文,并计算报文上CPU的速率。

在本发明的一个或多个实施方式中,所述计算报文上CPU的速率,包括:记录所述入端口出方向在T1时刻收到所述报文时的报文数量NUM1;记录所述入端口出方向在T2时刻收到所述报文时的报文数量NUM2;计算所述报文上CPU的速率为(NUM2-NUM1)/(T2-T1)。

在本发明的一个或多个实施方式中,所述方法还包括:在所述端口出方向每收到一个报文至CPU时,将所述报文数量增加1。

在本发明的一个或多个实施方式中,所述方法还包括:在所述报文转发控制标志位设置为第二值时,将所述报文从芯片的出端口转发。

在本发明的一个或多个实施方式中,所述方法还包括:将所述报文转发控制标志位预先设置为第二值。

在本发明的一个或多个实施方式中,所述方法还包括:判断所述报文是否转发至CPU进行处理;若是,将报文从芯片发送至CPU进行解析;若否,直接通过所述芯片处理所述报文,并从出端口转发所述报文。

在本发明的另一个方面当中,提供了一种基于单个端口测试报文上CPU速率的装置,其包括控制模块和测试模块。

控制模块,用于将报文转发控制标志位设置为第一值,其中,当所述报文转发控制标志位设置为第一值时,所述报文经CPU处理后返回至所述芯片的入端口并从所述入端口转发。

测试模块,用于从芯片的任意入端口发送报文至CPU,并根据所述入端口出方向的报文流量,测试报文上CPU的速率。

在本发明的一个或多个实施方式中,所述测试模块还用于:在所述报文转发控制标志位设置为第一值时,按照预设周期从芯片的任意入端口发送大速率的报文至CPU;以及在所述入端口监听所述报文,并计算报文上CPU的速率。

在本发明的一个或多个实施方式中,所述测试模块还用于:记录所述入端口出方向在T1时刻收到所述报文时的报文数量NUM1;记录所述入端口出方向在T2时刻收到所述报文时的报文数量NUM2;计算所述报文上CPU的速率为(NUM2-NUM1)/(T2-T1)。

在本发明的一个或多个实施方式中,所述测试模块还用于:在所述端口出方向每收到一个报文至CPU时,将所述报文数量增加1。

在本发明的一个或多个实施方式中,所述控制模块还用于:在所述报文转发控制标志位设置为第二值时,将所述报文从芯片的出端口转发。

在本发明的一个或多个实施方式中,所述控制模块还用于:将所述报文转发控制标志位预先设置为第二值。

在本发明的一个或多个实施方式中,所述控制模块还用于:判断所述报文是否转发至CPU进行处理;若是,将报文从芯片发送至CPU进行解析;若否,直接通过所述芯片处理所述报文,并从出端口转发所述报文。

在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的基于单个端口测试报文上CPU速率的方法。

在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的基于单个端口测试报文上CPU速率的方法的步骤。

与现有技术相比,根据本发明实施方式的基于单个端口测试报文上CPU速率的方法及应用,其能够通过配置标志位控制报文的转发行为,根据实际情况选择报文的发送端口;还能够只用一个端口即可测试报文上CPU的速率进而可以了解CPU的负荷,不仅可以节省转发设备的端口,还可以节省测试仪的端口资源,在用户不了解报文转发行为或其余硬件辅助设备不充裕的情况下也可以测试报文上CPU的速率。

附图说明

图1是根据本发明一实施方式的基于单个端口测试报文上CPU速率的方法的流程图;

图2是根据本发明一实施方式的基于单个端口测试报文上CPU速率的方法的结构图;

图3是根据本发明一实施方式的基于单个端口测试报文上CPU速率的方法的具体流程图;

图4是根据本发明一实施方式的基于单个端口测试报文上CPU速率的装置的结构图;

图5是根据本发明一实施方式的基于单个端口测试报文上CPU速率的计算设备的硬件结构图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

以下结合附图,详细说明本发明各实施例提供的技术方案。

实施例1

如图1至图2所示,介绍本发明的一个实施例中基于单个端口测试报文上CPU速率的方法,该方法包括如下步骤。

在步骤S101中,将报文转发控制标志位设置为第一值。

报文转发设备主要处理以下两类报文:第一种是数据层面对报文的转发,第二种是处理上CPU的报文。CPU主要用来处理一些较为复杂的报文,如对网络管理方面的任务和请求进行处理,对各种协议报文的处理以及转发设备的芯片处理不了的报文进行处理。

ASIC主要通过查表等手段对数据报文进行转发(如图2中实线部分),从ASIC的接收端口(RX)接收报文,经ASIC处理后从发送端口(TX)将报文转发出去。另一方面,ASIC也有一些处理不了的报文,则使用专门的通道将报文上送至CPU进行处理(如图2中虚线部分),从ASIC的接收端口(RX)接收报文,并将报文上送至CPU,经CPU解析后再将报文下发至ASIC,从ASIC的发送端口(TX)将报文转发出去。

CPU处理的业务种类较多,逻辑一般较为复杂,有时还会出现CPU被攻击的场景,这样会导致CPU使用率较高,从而在处理一些重要业务时出现混乱,导致系统混乱。

由于CPU处理能力有限,因此在报文上CPU逻辑的基础上,再增加一种处理模式,该处理模式可以使得上CPU的报文原路返回。具体的,在报文上CPU处理时,给报文增加转发控制标志位,在控制标志位为第一值(1)时,报文经CPU处理后返回至芯片的入端口并从入端口转发;在控制标志位为第二值(0)时,报文经CPU处理后从芯片的出端口转发。控制标志位用于根据实际需求控制报文转发时的发送端口,以确保在任何情况下CPU都不会出现负载过高的状况,从而能为用户提供一个稳定的网络环境。

在步骤S102中,从芯片的任意入端口发送报文至CPU,并根据入端口出方向的报文流量,测试报文上CPU的速率。

在实际应用中,测试报文上CPU的速率也非常重要,根据报文上CPU的速率可以在分析CPU忙碌情况时提供参考。

在本实施例中,在报文转发控制标志位设置为第一值时,测试报文上CPU的速率。从任意端口打入大速率的报文,打流结束后统计该端口出方向初次接收到报文时的报文数量和打流结束前任意时刻的接收到报文时的报文数量,根据两次报文数量的差值和两次接收报文的时间间隔,可以得到报文上CPU的速率,报文上CPU的速率为单位时间内流出的报文数量。

根据本发明实施方式的基于单个端口测试报文上CPU速率的方法及应用,可以在用户不了解报文转发行为或其余硬件辅助设备不充裕的情况下(例如仅有一个测试端口)测试报文上CPU的速率。

实施例2

如图3所示,介绍本发明的一个实施例中基于单个端口测试报文上CPU速率的方法,该方法包括如下步骤。

在步骤S201中,判断报文是否转发至CPU进行处理。

报文转发设备主要处理以下两类报文:第一种是数据层面对报文的转发,第二种是处理上CPU的报文。CPU主要用来处理一些较为复杂的报文,如对网络管理方面的任务和请求进行处理,对各种协议报文的处理以及转发设备的芯片处理不了的报文进行处理。

ASIC主要通过查表等手段对数据报文进行转发,从ASIC的接收端口(RX)接收报文,经ASIC处理后从发送端口(TX)将报文转发出去。另一方面,ASIC也有一些处理不了的报文,则使用专门的通道将报文上送至CPU进行处理,从ASIC的接收端口(RX)接收报文,并将报文上送至CPU,经CPU解析后再将报文下发至ASIC,从ASIC的发送端口(TX)将报文转发出去。

在步骤S202中,将报文转发控制标志位设置为第一值。

由于CPU处理能力有限,因此在报文上CPU逻辑的基础上,再增加一种处理模式,该处理模式可以使得上CPU的报文原路返回。具体的,在报文上CPU处理时,给报文增加转发控制标志位,用于根据实际需求控制报文转发时的发送端口,以确保在任何情况下CPU都不会出现负载过高的状况,从而能为用户提供一个稳定的网络环境。

在步骤S203中,在报文转发控制标志位设置为第一值时,按照预设周期从芯片的任意端口发送大速率的报文至CPU。

在报文转发控制标志位设置为第一值时,报文需要上CPU,经CPU处理,此时测试可以准确的得到报文上CPU的速率。具体的,按照预设周期T从芯片的任意测试端口向CPU打入大速率的报文,由于报文转发控制标志位设置为第一值时,报文在CPU处理后由原路返回,因此仅用一个端口就可以测试报文上CPU的速率,该方法不仅可以节省转发设备的端口,还可以节省测试仪的端口资源。

在步骤S204中,在入端口监听报文,并计算报文上CPU的速率。

在从端口向CPU打入大速率报文时,在该端口监听报文,目的是统计在预设周期内一段时间的报文数量变化。具体的,记录入端口出方向在T1时刻(T1时刻可以是入端口的出方向初次接收到报文的时刻,也可以是预设周期内的其他任意时刻)收到报文时的报文数量NUM1,入端口出方向在T2时刻(T2时刻需在T1时刻后,且在预设周期内)收到报文时的报文数量NUM2。T1时刻至T2时刻时间段内,入端口的出方向每收到一个报文,报文数量加1,且该时段内报文是连续发出的,即(T2-T1)<

如图4所示,介绍根据本发明具体实施方式的基于单个端口测试报文上CPU速率的装置。

在本发明的实施方式中,基于单个端口测试报文上CPU速率的装置包括控制模块401和测试模块402。

控制模块401,用于将报文转发控制标志位设置为第一值,其中,当报文转发控制标志位设置为第一值时,报文经CPU处理后返回至芯片的入端口并从入端口转发。

测试模块402,用于从芯片的任意入端口发送报文至CPU,并根据入端口出方向的报文流量,测试报文上CPU的速率。

测试模块402还用于:在报文转发控制标志位设置为第一值时,按照预设周期从芯片的任意入端口发送大速率的报文至CPU;以及在入端口监听报文,并计算报文上CPU的速率。

测试模块402还用于:记录入端口出方向在T1时刻收到报文时的报文数量NUM1;记录入端口出方向在T2时刻收到报文时的报文数量NUM2;计算报文上CPU的速率为(NUM2-NUM1)/(T2-T1)。

测试模块402还用于:在入端口出方向每收到一个报文至CPU时,将报文数量增加1。

控制模块401还用于:在报文转发控制标志位设置为第二值时,将报文从芯片的出端口转发。

控制模块401还用于:将报文转发控制标志位预先设置为第二值。

控制模块401还用于:判断报文是否转发至CPU进行处理;若是,将报文从芯片发送至CPU进行解析;若否,直接通过芯片处理报文,并从出端口转发报文。

图5示出了根据本说明书的实施例的用于基于单个端口测试报文上CPU速率的计算设备50的硬件结构图。如图5所示,计算设备50可以包括至少一个处理器501、存储器502(例如非易失性存储器)、内存503和通信接口504,并且至少一个处理器501、存储器502、内存503和通信接口504经由总线505连接在一起。至少一个处理器501执行在存储器502中存储或编码的至少一个计算机可读指令。

应该理解,在存储器502中存储的计算机可执行指令当执行时使得至少一个处理器501进行本说明书的各个实施例中以上结合图1-5描述的各种操作和功能。

在本说明书的实施例中,计算设备50可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。

根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-5描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。

根据本发明实施方式的基于单个端口测试报文上CPU速率的方法及应用,其能够通过配置标志位控制报文的转发行为,根据实际情况选择报文的发送端口;还能够只用一个端口即可测试报文上CPU的速率进而可以了解CPU的负荷,不仅可以节省转发设备的端口,还可以节省测试仪的端口资源,在用户不了解报文转发行为或其余硬件辅助设备不充裕的情况下也可以测试报文上CPU的速率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

技术分类

06120115993586