CN114553757A - 基于可编程交换机的协议报文处理方法、装置和设备 - Google Patents
基于可编程交换机的协议报文处理方法、装置和设备 Download PDFInfo
- Publication number
- CN114553757A CN114553757A CN202210111588.2A CN202210111588A CN114553757A CN 114553757 A CN114553757 A CN 114553757A CN 202210111588 A CN202210111588 A CN 202210111588A CN 114553757 A CN114553757 A CN 114553757A
- Authority
- CN
- China
- Prior art keywords
- message
- protocol
- queue
- information
- abstract
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 123
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 19
- 230000009467 reduction Effects 0.000 claims description 2
- 238000012360 testing method Methods 0.000 abstract description 44
- 230000006870 function Effects 0.000 description 27
- 230000009471 action Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于可编程交换机的协议报文处理方法、装置和设备。该方法包括获取被测设备传输的协议报文,被测设备为与可编程交换机进行数据传输的设备;根据协议报文,确定预设协议报文摘要队列中的摘要信息;基于摘要信息和模板报文,生成摘要报文;以及,根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息;根据配置信息,调整摘要报文,得到协议报文的反馈结果,并向被测设备发送协议报文的反馈结果。根据本申请实施例提供的基于可编程交换机的数据处理方法,能够支持网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的测试需求。
Description
技术领域
本申处理方法、装置、设备和存储介质。请涉及计算机技术领域,尤其涉及一种基于可编程交换机的协议报文处理方法、装置和设备。
背景技术
网络测试设备如交换机设备的功能测试依赖于传输控制协议(TransmissionControl Protocol,TCP)、超文本传输协议(Hyper Text Transfer Protocol,HTTP)等协议数据。
一般而言,为了测试交换机设备的协议处理功能,交换机设备需要根据协议数据产生协议流量,并将协议流量发送给其他网络设备,接着,交换机在接收到其他网络设备发送的数据包时,以满足协议规定的方式产生回复数据包。由于传统的交换机难以支持对协议流量生成和处理,从而无法满足交换机的协议处理功能的测试需求。
发明内容
本申请实施例提供一种基于可编程交换机的协议报文处理方法、装置、设备和存储介质,能够支持网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的测试需求。
根据本申请实施例的第一方面,提供一种基于可编程交换机的协议报文处理方法,包括:
获取被测设备传输的协议报文,所述被测设备为与可编程交换机进行数据传输的设备;
根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,并向所述被测设备发送所述协议报文的反馈结果。
根据本申请实施例的第二方面,提供一种基于可编程交换机的数据处理方法,包括:
获取协议报文;
根据协议报文,确定预设协议报文摘要队列中的摘要信息;
基于摘要信息和模板报文,生成摘要报文;以及,根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息;
根据配置信息,调整摘要报文,得到协议报文的反馈结果。
根据本申请实施例的第三方面,提供一种基于可编程交换机的协议报文处理装置,包括:
获取模块,用于获取被测设备传输的协议报文,所述被测设备为与可编程交换机进行数据传输的设备;
确定模块,用于根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块,用于基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
调整模块,用于根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,并向所述被测设备发送所述协议报文的反馈结果。
根据本申请实施例的第四方面,提供一种基于可编程交换机的数据处理装置,包括:
获取模块,用于获取协议报文;
确定模块,用于根据协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块,用于基于摘要信息和模板报文,生成摘要报文;以及,根据摘要信息,获取与协议报文对应的数据流中的配置信息;
调整模块,用于根据配置信息,调整摘要报文,得到协议报文的反馈结果。
根据本申请实施例的第五方面,提供一种计算机设备,包括:存储器和处理器;
存储器,用于存储有计算机程序;
处理器,用于执行存储器中存储的计算机程序,计算机程序运行时使得处理器执行如第一方面所示的基于可编程交换机的协议报文处理方法的步骤,或者如第二方面所示的基于可编程交换机的数据处理方法的步骤。
根据本申请实施例的第六方面,提供一种计算机可读存储介质,计算机可读存储介质上存储程序或指令,在程序或指令被计算机设备执行的情况下,使得计算机设备执行如第一方面所示的基于可编程交换机的协议报文处理方法的步骤,或者如第二方面所示的基于可编程交换机的数据处理方法的步骤。
根据本申请实施例的第七方面,提供一种计算机程序产品,包括计算机程序,在计算机程序被计算机设备执行的情况下,使得计算机设备执行如第一方面所示的基于可编程交换机的协议报文处理方法的步骤,或者如第二方面所示的基于可编程交换机的数据处理方法的步骤。
根据本申请实施例中的基于可编程交换机的协议报文处理方法、装置、设备和存储介质,通过获取与可编程交换机进行数据传输的被测设备传输的协议报文,确定预设协议报文摘要队列中的摘要信息,并基于摘要信息和可编程交换机对应的控制平面下发的模板报文,生成摘要报文,以及根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息,进而根据配置信息调整摘要报文,得到协议报文的反馈结果。这样,可以支持高吞吐的网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的大规模测试需求。
附图说明
从下面结合附图对本申请的具体实施方式的描述中可以更好地理解本申请其中,相同或相似的附图标记表示相同或相似的特征。
图1是示出根据一个实施例的一种数据处理架构示意图之一;
图2是示出根据一个实施例的一种数据处理架构示意图之二;
图3是示出根据一个实施例的一种数据处理架构示意图之三;
图4是示出根据一个实施例的一种数据处理架构示意图之四;
图5是示出根据一个实施例的一种数据处理架构示意图之五;
图6是示出根据一个实施例的一种数据处理方法的流程图;
图7是示出根据一个实施例的一种基于可编程交换机的数据处理装置的结构示意图;
图8是示出根据一个实施例的一种基于可编程交换机的数据处理装置的结构示意图;
图9是示出根据一个实施例的计算机设备的硬件结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
在相关技术中,现有的网络测试设备如交换机可以通过硬件和软件,生成并处理有状态或者无状态的数据流,其中,在硬件上可以实现无状态报文的生成和处理;软件上可以实现有状态报文的生成和处理。但是,对于硬件测试来说,由于自身限制,在一些场景下,难以生成和处理高吞吐的有状态的数据流;对于软件测试来说,难以生成和处理高吞吐的数据流,无法向协议处理设备提供目标压力测试。由此,以上现有技术无法满足网络测试设备的协议处理功能的测试需求。
基于此,本申请实施例提供了一种基于可编程交换机的协议报文处理方法,通过可编程交换机所能支持的报文类型,将软件生成并处理流量的能力实现在可编程交换机硬件中,克服了网络性能测试设备封闭的硬件测试能力,并且可编程交换机支持线速的带状态报文的生成和处理,能达到高并发和高吞吐的处理性能,可以实现对协议处理功能的大规模测试需求。
基于此,下面结合附图1所示的本申请实施例提供的数据处理架构,对本申请实施例提供的数据处理方法进行详细地说明。
在一种或者多种可能的实施例中,如图1所示,本申请实施例提出的数据处理架构包括数据处理网络10,数据处理网络10包括至少一个被测设备101、处理模块102和可编程交换机103。
下面分别对数据处理网络10进行详细说明。
在本申请实施例中,至少一个被测设备101可以包括设备1、设备2、……、设备N,N为大于1的整数。
处理模块102包括数据平面模块1021(controlp lane)和控制平面模块1022(controlp lane)。数据平面模块1021用于负责处理和转发交换机(如本申请实施例中的可编程交换机103)各不同端口上各种类型的数据包。控制平面模块1022用于控制和管理多种网络协议的运行,并提供了数据平面数据处理转发前所需要的各种网络信息和转发查询项。需要说明的是,数据平面模块1021与上述涉及的至少一个被测设备101中每个被测设备对应,网络协议可以包括下述中的至少一种:带状态协议、无状态协议。
可编程交换机103包括可编程交换机芯片(programmable switching ASIC),可编程交换机芯片为数据平面模块1021各个数据包处理表可以被灵活编程修改的交换机芯片。需要说明的是,可编程交换机103与上述涉及的至少一个被测设备101中每个被测设备进行数据传输。示例性地,在针对带状态或者无状态协议的协议处理功能的测试中,可编程交换机103可以用于接收设备1发送的数据包A,接着,通过本申请实施例提供的数据处理方法,以满足协议规定的方式产生回复数据包A的反馈结果,从而形成双向带状态流量,以满足协议处理功能的测试需求。
在一种或者多种可能的实施例中,如图2所示,可编程交换机103可以包括获取报文模块1031、协议报文队列模块1032和协议报文处理模块1033,基于获取报文模块1031、协议报文队列模块1032和协议报文处理模块1033可实现本申请实施例提供的基于可编程交换机的协议报文处理方法,具体如下所示。
在一些示例中,获取报文模块1031可以用于接收至少一个被测设备101发送的数据包,数据包包括协议报文A。获取报文模块1031还用于,向协议报文队列模块1032传输协议报文A。另外,获取报文模块1031还用于向协议报文队列模块1032转发模板报文,模板报文由控制平面模块1022下发,作为协议报文的反馈结果的模板,模块报文包括指示字段,指示字段用于指示可编程交换机对模块报文进行内部循环和改写。
协议报文队列模块1032用于根据协议报文A,确定协议报文队列模块1032中的摘要信息,并在获取报文模块1031获取控制平面模块1022下发的模板报文的情况下,接收获取报文模块1031传输的模板报文。基于此,协议报文队列模块1032还可以用于,根据摘要信息和模板报文,生成摘要报文,并向协议报文处理模块1033传输摘要报文。在一些示例中,协议报文队列模块1032存储有协议报文摘要队列,协议报文摘要队列用于存储上述涉及的摘要信息。
协议报文处理模块1033用于接收摘要报文,以及根据摘要报文中的摘要信息,获取与协议报文A对应的网络协议数据流中的配置信息。基于此,协议报文处理模块1033还用于,根据配置信息,调整所述摘要报文,得到协议报文的反馈结果。在一些示例中,
协议报文处理模块1033存储有摘要处理程序表,摘要处理程序表用于存储与协议报文A对应的网络协议数据流中的配置信息。进一步地,协议报文处理模块1033用于根据摘要处理程序表,匹配配置信息,其中,摘要处理程序表是可编程交换机103中的一张匹配操作(Match-Action)表,即匹配域和对应的执行动作,该表描述了某状态匹配到某报文字段执行某动作并获得某新状态的动作(Action),以便根据摘要报文的流状态从Match-action表中查找需要对摘要报文执行的动作序列,选择要执行的动作,最后执行选定的动作,例如添加负载、修改报文字段、状态转移等动作。
在另一种或者多种可能的实施例中,本申请实施例在获取协议报文之前,可编程交换机103还可以根据报文的类型,提供不同的处理方式。由此,基于图2中的获取报文模块1031,结合图3对获取报文模块1031进行详细的说明。
如图3所示,获取报文模块1031具体可以包括报文分类模块10311和报文转发模块10312。
报文分类模块10311用于在可编程交换机103入端口接收到报文X的情况下,通过识别报文X中的报头(或者报文X中携带的字段),确定报文X的分类结果,分类结果包括报文X的报文类型。这里,报文X的报文类型可以为普通报文、协议报文或者模板报文。进一步地,普通报文来自上述涉及的至少一个设备,普通报文包括指示字段A,指示字段A用于指示可编程交换机103对普通报文进行正常转发。协议报文来自其他网络设备,协议报文包括指示字段B,指示字段B用于指示可编程交换机103对协议报文进行处理和反馈。模板报文由控制平面模块1022下发,作为协议报文的反馈结果的模板,模块报文包括指示字段C,指示字段C用于指示可编程交换机对模块报文进行内部循环和改写。
报文转发模块10312用于接收报文分类模块10311传输的报文X,报文X携带报文X的分类结果。报文转发模块10312还用于,基于报文X的分类结果确定报文X的转发策略信息。在报文X的分类结果表征报文X为协议报文或模板报文时,转发策略信息为向协议报文队列模块1032发送协议报文或模板报文。在报文X的分类结果表征报文X为普通报文时,转发策略信息为按照路由表,通过可编程交换机103出端口转发至上述涉及的至少一个设备。在报文X的分类结果表征报文X为结果报文时,转发策略信息为按照结果报文携带的多播转发信息,将结果报文的至少一个第一副本转发至可编程交换机103出端口,并通过可编程交换机103出端口向上述涉及的至少一个设备发送至少一个第一副本,以及对结果报文的第二副本进行还原得到模板报文。
在一种或者多种可能的实施例中,在上述接收到的协议报文为协议数据流中的任一状态的报文时,本申请实施例提供的数据处理方法可以对协议数据流进行处理。基于如图2或者图3所示的结构,如图4所示,可编程交换机103还包括状态寄存器104和还原模块105。
状态寄存器104用于存储协议报文队列模块1032的预设协议报文摘要队列中的摘要信息。以及,在获取协议报文处理模块1033输出协议报文写入的新状态的情况下,用于存储表征协议报文的状态的信息,以便更新所述预设协议报文摘要队列中的摘要信息。
还原模块105用于将与协议报文结构不一致的结果报文还原为模板报文。当获取报文模块1031获取的结果报文与协议报文结构不一致时,获取报文模块1031向还原模块105发送该结果报文,还原模块105将该结果报文还原为模板报文,并向协议报文队列模块1032发送模板报文。还原模块105还用于将与协议报文结构不一致的结果报文携带的负载删除,从而避免循环添加负载。
因此,本申请实施例中的可编程交换机103,一方面可以实现上述涉及的数据处理方法以及处理网络协议数据流的能力,另一方面,本申请实施例中的可编程交换机103可以提供编程功能和转发功能,例如,在网络功能实现在可编程交换机103的情况下,可编程交换机103可以超过其它网关设备通过软件所能达到的吞吐能力。由此,将协议流量生成和处理功能实现在可编程交换机103上,并利用可编程交换机103所在的硬件对协议进行处理,可以满足对网络测试设备的协议处理功能的大规模测试需求。
基于如图2和图3所示的数据处理架构,对本申请实施例提供的数据处理方法详细说明。
可编程交换机103接收至少一个被测设备101发送的数据包,数据包包括报文A。可编程交换机103中的报文分类模块10311对报文进行分类,并经过协议转发模块102对分类后的报文进行转发,协议报文队列模块1032接收协议转发模块102转发的协议报文,确定协议报文队列模块1032中预设协议报文摘要队列中的摘要信息。以及,可编程交换机103获取控制平面模块1022下发的模块报文,协议报文队列模块1032基于摘要信息和模板报文,生成摘要报文B。协议报文队列模块1032向协议报文处理模块1033传输摘要报文B。协议报文处理模块1033获取摘要报文B。接着,协议报文处理模块1033根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息,配置信息可以是摘要处理程序表中匹配摘要报文的关键字段以及流状态的信息,然后,根据配置信息调整摘要报文,得到协议报文的反馈结果,协议报文的反馈结果包括结果报文。
由此,通过可编程交换机103可以实现有状态和无状态报文的生成和处理。将协议流量生成和处理功能实现在可编程交换机103上,并利用可编程交换机103使用硬件对协议进行处理,可以实现本申请实施例提供的数据处理方法,对于硬件测试来说,可以生成和处理高吞吐的有状态的数据流;对于软件测试来说,可以生成和处理高吞吐的数据流,可以向协议处理设备提供目标压力测试。通过协议报文处理模块1033根据配置信息调整摘要报文,可以实现自定义报文结构,对自定义的协议报文进行测试。通过协议报文处理模块1033循环将协议报文多次写入新状态,可以实现高吞吐的网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的大规模测试需求。
另外,本申请实施例中的可编程交换机103可以根据处理的不同类别的报文提供不同的功能。示例性地,如图4所示,当协议报文摘要队列为单队列时,协议报文摘要队列序号Qi固定为0,维护队列数据结构的队列头指针、队列尾指针和队列长度各只需要一个寄存器。若协议报文处理模块1033对摘要报文的处理过程不涉及历史报文时,则摘要处理程序表和协议报文队列不需要存储流状态,此时可编程交换机103等价于仅有两个状态的确定性自动机,这两个状态仅从开始状态转移到结束状态。
在另一个示例中,如图5的结构所示,当不需要对结果报文携带的负载进行修改,且结果报文和协议报文结构一致时,可以省略图3所示的结构中的协议报文队列模块1032和循环的模板报文。
需要说明的是,本申请实施例中的可编程交换机103可以应用于任何对协议处理功能测试的场景中,例如可以应用到数据中心,数据中心需要检测多个设备的协议处理性能,为此需要生成并处理长时间、高吞吐的协议流量,用以检测多个设备或设备群在高压下的稳定性、功耗、时延等参数,从而判断数据中心服务是否存在瓶颈。
此外,本申请实施例中的可编程交换机103还可以应用到公有云、私有云、专有云和混合云中的至少一个云平台,也可以应用到实体设备中,例如SNA网络测试仪设备,或者可以应用到某些需要进行协议处理功能测试的软件应用程序(Application,App)中,对网络协议数据流能达到高并发和高吞吐的处理性能,可以实现对协议处理功能的大规模测试需求。
另外,可编程交换机103还可以以计算机程序产品的形式或者以计算机可读存储介质的形式执行上述方式,例如,在以计算机程序产品的形式时,可编程交换机103为系统网络体系结构网络测试仪设备(Smart Network Appliance,SNA)。
根据上述架构以及应用场景,下面分别结合图6对本申请实施例提供的基于可编程交换机的数据处理方法进行详细说明。
图6是示出根据一个实施例的一种基于可编程交换机的数据处理方法的流程图。
如图6所示,数据处理方法可以应用于基于可编程交换机的数据处理设备,基于可编程交换机的数据处理方法具体可以包括:
步骤610,获取协议报文;步骤620,根据协议报文,确定预设协议报文摘要队列中的摘要信息;步骤630,基于摘要信息和模板报文,生成摘要报文;以及,根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息;步骤640,根据配置信息,调整摘要报文,得到协议报文的反馈结果。
下面对上述步骤进行详细说明,具体如下所示。
涉及步骤610之前,本申请实施例中的基于可编程交换机的数据处理方法还可以包括:
接收至少一个报文;
根据至少一个报文中每个报文的报头和字段,对每个报文进行分类,得到每个报文的报文类型;
标记所述每个报文的报文类型在每个报文的元数据。
基于此,涉及步骤610,具体可以包括:
识别每个报文的元数据,得到所述每个报文的报文类型;
在所述每个报文的报文类型满足预设协议报文类型的情况下,确定该报文为协议报文。
涉及步骤620,根据步骤610获取到的协议报文,确定预设协议报文摘要队列中的摘要信息,其中,摘要信息可以包括从协议报文中提取的关键字段和当前流状态。
基于此,本申请实施例中的步骤620具体可以包括步骤6201至步骤6203。
步骤6201,根据协议报文,提取协议报文中预设位置的协议字段。
步骤6202,将协议字段写入预设协议报文摘要队列中,得到摘要信息。
这里,预设位置可以是用户根据需求和带状态协议处理流程设置的位置,预设协议报文摘要队列可以是实现在可编程交换机中的多队列数据结构。
示例性地,根据协议报文的元数据,提取协议报文中预设位置的协议字段,将该协议字段作为该协议报文的摘要写入到预设协议报文摘要队列中,并根据协议报文特征查找当前流状态并一同入队到协议报文摘要队列中,得到摘要信息,其中,当前流状态可以是建立连接、关闭连接、响应等状态。
由此,在处理数据流中的协议报文时,通过预设协议报文摘要队列中表示该协议报文的当前流状态,提取协议报文中预设位置的协议字段,并将协议字段写入预设协议报文摘要队列中,得到摘要信息,以便后期准确处理该数据流中不同状态下的协议报文。
下面分别对上述涉及的步骤6201至步骤6203进行详细说明。
在一种或者多种可能的示例中,该步骤6202具体可以包括:
步骤62021,根据协议字段,获取协议报文在预设协议报文摘要队列中的入队序号,入队序号对应第一队列;
步骤62022,在寄存器中添加入队序号和第一队列的队列长度;
步骤62023,根据入队序号,获取第一队列的队列尾指针,并在寄存器中添加队列尾指针,队列尾指针用于指示第一队列的相对偏移量;
步骤62024,根据入队序号、第一队列的队列容量和队列尾指针,获取队列尾指针相对于寄存器的第一偏移量;
步骤62025,按照第一偏移量,将协议字段写入寄存器,得到摘要信息。
示例性地,在将协议字段写入预设协议报文摘要队列中,得到摘要信息时,设置一组队列头指针、一组队列尾指针和一组队列长度来维护各个队列的数据结构,单个队列的容量可以是2n。
基于此,根据协议字段,在预设协议报文摘要队列中获得入队序号Qi,入队序号Qi对应第一队列,在寄存器添加入队序号Qi和队列长度,其中,协议字段可以是协议报文的指定报头或字段。利用队列序号Qi作为下标,获取第一队列的队列尾指针Ti,该队列尾指针Ti指示第一队列的相对偏移量。将队列序号Qi左移N位,与队列尾指针Ti按位或,获取队列尾指针Ti相对于寄存器的偏移量Ti’,将协议报文的指定字段写入按偏移量Ti’偏移的寄存器中,得到摘要信息。
由此,针对P4语言中并不存在队列数据结构这一问题,本申请实施例提供的基于可编程交换机的数据处理方法可以在预设协议报文摘要队列为多队列的情况下,由可编程交换机中的寄存器组来实现数据处理,其中,在对多队列的预设协议报文摘要队列入队时,通过获取协议报文在预设协议报文摘要队列中的入队序号,与入队序号对应的第一队列,以及用于指示第一队列的相对偏移量的队列尾指针,接着,在寄存器中添加入队序号、第一队列的队列长度、队列尾指针。根据入队序号、第一队列的队列容量和队列尾指针,获取队列尾指针相对于寄存器的第一偏移量,并按照第一偏移量,将协议字段写入寄存器,得到摘要信息。这样,在预设协议报文摘要队列为多队列的情况下,可以有效维护可编程交换机中队列结构的寄存器。
需要说明的是,P4是一种交换机芯片编程语言,P4允许用户编写P4程序,然后通过编译器生成二进制码(binary code)到P4交换机的芯片中。
在一种或者多种可能的示例中,预设协议报文摘要队列中可以包括与协议报文对应的流状态队列,基于此,上述步骤62021具体可以包括:
根据协议字段,确定预设协议报文摘要队列中是否包括与协议报文对应的流状态队列;在预设协议报文摘要队列中包括与协议报文对应的流状态队列的情况下,将流状态队列的队列序号确定为入队序号。
示例性地,预设协议报文摘要队列中可以包括与协议报文对应的流状态队列,在预设协议报文摘要队列为多队列的情况下,将流状态队列的队列序号确定为入队序号Qi,在预设协议报文摘要队列为单队列的情况下,队列序号Qi固定为0。
由此,在对多队列的预设协议报文摘要队列入队时,通过在根据协议字段,确定预设协议报文摘要队列中包括与协议报文对应的流状态队列的情况下,将流状态队列的队列序号确定为入队序号,可以进一步有效维护可编程交换机中队列结构的寄存器。
基于此,在步骤630之前,本申请实施例中的基于可编程交换机的数据处理方法还可以包括:
根据模板报文,获取模板报文的出队序号,出队序号为第二队列的序号,出队序号与入队序号对应;根据第二队列的队列长度,调整寄存器中存储的队列长度;根据出队序号,获取第二队列的队列头指针,队列头指针用于指示第二队列的相对偏移量,并在寄存器中添加队列头指针;根据出队序号、第二队列的队列容量和队列头指针,获取队列头指针相对于寄存器的第二偏移量;按照第二偏移量,获取摘要报文。
示例性地,根据模板报文,从控制平台中配置模板报文的出队序号Qi,出队序号Qi为第二队列的序号,根据第二队列的队列长度,调整寄存器中存储的队列长度,若队列长度非零则自减。当队列长度非零时,用队列序号Qi作为下标,获取第二队列的队列头指针Hi,该队列头指针Hi指示目标队列的相对偏移量,并在寄存器中添加队列头指针Hi。将队列序号Qi左移N位,与队列头指针Hi按位或,获得队列头指针Hi相对于寄存器的偏移量Hi’,将按Hi’偏移的寄存器的数据写入指定的报文字段中,得到摘要报文。
由此,通过获取模板报文中与入队序号对应的第二队列的出队序号,并根据第二队列的队列长度,调整寄存器中存储的队列长度。根据出队序号,获取用于指示第二队列的相对偏移量的第二队列的队列头指针,并在寄存器中添加队列头指针。接着,根据出队序号、第二队列的队列容量和队列头指针,获取队列头指针相对于寄存器的第二偏移量,并按照第二偏移量,获取摘要报文。这样,可以使协议报文的摘要入队序号和出队序号相对应,保证摘要报文的准确性。
涉及步骤630,当接收到模板报文时,将步骤620涉及的协议报文的摘要信息,写入模板报文对应的字段中,生成摘要报文,并根据摘要报文中的摘要信息,从摘要处理程序表中获取与协议报文对应的网络协议数据流中的配置信息。
示例性地,获取控制平面下发的模板报文,根据预设协议报文摘要队列出队的摘要信息以及流状态,将摘要信息写入模板报文对应的字段中,生成摘要报文,并根据摘要处理程序表,匹配摘要报文的关键字段以及流状态的信息,其中,摘要处理程序表可以是可编程交换机中的一张匹配操作(Match-Action)表。
基于此,本申请实施例提供了下述两种生成摘要报文的方式,具体如下所示。
在一种或者多种可能的示例中,步骤630具体可以包括:
获取模板报文,模板报文携带预设指示字段;根据预设指示字段,获取第一位置,第一位置为预设指示字段指示摘要信息写入模板报文中第一目标字段的位置;按照第一位置,将摘要信息写入第一目标字段中,生成摘要报文。
示例性地,获取控制平面下发的模板报文,模块报文可以携带预设指示字段,预设指示字段用于指示对模块报文进行内部循环和改写,从预设指示字段中获取摘要信息写入模板报文中的位置,根据该位置,将摘要信息写入模板报文中与该位置对应的字段,生成摘要报文。
由此,在处理数据流中的模板报文时,根据模板报文携带的预设指示字段,获取预设指示字段指示摘要信息写入模板报文中第一目标字段的位置,并按照第一位置,将摘要信息写入第一目标字段中,生成摘要报文,这样,可以得到包含协议报文的预设指示字段的摘要报文,后续对摘要报文进行处理,相对于直接处理协议报文,更加方便。
在另一种或者多种可能的示例中,步骤630具体可以包括:
根据摘要信息的字段属性,确定模板报文中的第二位置,第二位置为摘要信息写入模板报文中第二目标字段的位置,字段属性可以是字段的长度、格式、必填字段等;
按照第二位置,将摘要信息写入第二目标字段,得到摘要报文。
示例性地,根据摘要信息的字段的长度、格式、必填字段等属性,确定摘要信息写入模板报文中第二目标字段的位置,并按照该位置,将摘要信息写入第二目标字段,得到摘要报文,由此,便于后续处理协议报文,节省空间。
然后,本申请实施例提供了下述两种获取配置信息的方式,具体如下所示。
在一种或者多种可能的示例中,涉及步骤630具体可以包括:
在预设摘要处理程序表中,根据摘要信息,获取与协议报文对应的数据流中的配置信息;其中,配置信息包括第一处理状态信息和与第一处理状态信息对应的预设操作的执行信息,第一状态信息用于表征协议报文在数据流中所处的状态信息。
需要说明的是,预设摘要处理程序表可以是可编程交换机中的一张匹配操作(Match-Action)表,数据平面各个Match-Action表可以通过数据平面编程(data planeprogramming)进行重新定制,使Match-Action表可以支持各种各样的协议和算法。第一状态信息可以是摘要报文的流状态的信息。
示例性地,根据摘要信息,从协议报文对应的数据流的数据包或元数据中查找状态信息,再根据状态信息执行Match-Action表进行查找,得到状态信息对应的预设操作的执行信息,后续可以选择执行的预设操作,并执行选定的预设操作。
由此,在预设摘要处理程序表中,根据摘要信息,获取与协议报文对应的数据流中协议报文所处的状态信息,以及与该状态信息对应的预设操作的执行信息,便于后续调整摘要报文。
在另一种或者多种可能的示例中,在摘要信息携带目标序号,目标序号包括下述中的至少一种:入队序号、出队序号的情况下,涉及步骤630具体可以包括:
在预设摘要处理程序表中,根据目标序号,获取与协议报文对应的数据流中的配置信息。
示例性地,从摘要信息中获取入队序号或出队序号中的至少一种目标序号,根据目标序号执行预设摘要处理程序表进行查找,得到与协议报文对应的数据流中目标序号对应的配置信息。
由此,在调整摘要报文时,通过在预设摘要处理程序表中,根据摘要信息携带的入队序号或出队序号中的至少一种目标序号,获取与协议报文对应的数据流中的配置信息,这样获取与目标序号对应的配置信息,提高了对协议报文处理的精确性。
涉及步骤640,根据配置信息改写摘要报文,得到协议报文的反馈结果,协议报文的反馈结果可以包括结果报文。
示例性地,获取摘要报文中流状态中的状态号,根据状态号从Match-action表中查找需要对摘要报文执行的动作序列,选择要执行的动作,最后执行选定的动作。执行的动作例如可以是添加负载、修改报文字段、状态转移等动作。对摘要报文执行选定的动作后,得出新的状态号并写入对应数据流的状态寄存器。另外,对摘要报文执行选定的动作后,生成协议报文的反馈结果,反馈结果可以包括结果报文。
由此,通过基于获取的协议报文,确定预设协议报文摘要队列中的摘要信息,并基于摘要信息和模板报文,生成摘要报文,以及根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息,进而根据配置信息调整摘要报文,得到协议报文的反馈结果。这样,可以实现高吞吐的网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的大规模测试需求,根据配置信息调整摘要报文,可以实现自定义报文结构,对自定义的协议报文进行测试。
在一种或者多种可能的示例中,步骤640具体可以包括:
按照执行信息对摘要报文执行预设操作,得到第一执行结果信息;根据第一执行结果信息,获取协议报文的第二处理状态信息;在预设摘要处理程序表中,获取与第二处理状态信息对应的第一结果报文;确定第一结果报文为协议报文的反馈结果。
第二处理状态信息可以是执行预设操作后生成的新状态的信息。
示例性地,从Match-Action表进行查找得到状态信息对应的预设操作的执行信息后,按照执行信息对摘要报文执行预设操作,得到第一执行结果信息,并在预设摘要处理程序表中生成与第一执行结果信息对应的第一结果报文,第一结果报文中可以包括协议报文的第二处理状态信息,其中,第二处理状态信息可以是执行预设操作后生成的状态信息。此时确定第一结果报文为协议报文的反馈结果。
由此,在对摘要报文处理时,按照执行信息对摘要报文执行预设操作,得到第一执行结果信息,根据第一执行结果信息,获取协议报文的第二处理状态信息,接着,在预设摘要处理程序表中,获取与第二处理状态信息对应的第一结果报文,确定第一结果报文为协议报文的反馈结果。这样,可以在执行预设操作后得到协议报文的新的处理状态信息,以及协议报文的反馈结果,便于后续循环对协议报文进行处理。
另外,本申请实施例提供的基于可编程交换机的数据处理方法在步骤640之后,还可以根据上述涉及的第二处理状态信息,更新预设协议报文摘要队列中的摘要信息,以便下次更为准确的获取网络协议数据流中的协议报文所处的处理状态,基于此,该基于可编程交换机的数据处理方法还包括:
将第二处理状态信息存储在寄存器中,以便更新预设协议报文摘要队列中的摘要信息。
示例性地,在对摘要报文执行预设操作后,将生成的新状态的信息写入寄存器中,由此,便于更新预设协议报文摘要队列中的摘要信息。
此外,本申请实施例提供了一种模板报文生成方式,即在反馈结果包括多播转发信息的情况下,本申请实施例的基于可编程交换机的数据处理方法还可以包括:
按照多播转发信息,向网络设备发送反馈结果的第一副本,且将反馈结果的第二副本进行报文还原,得到模板报文。
示例性地,在反馈结果包括多播转发信息时,按照反馈结果携带的多播转发信息,向至少一个网络设备发送反馈结果的至少一个第一副本,并对反馈结果的第二副本进行报文还原,得到模板报文。
由此,在反馈结果包括多播转发信息的情况下,按照多播转发信息,向网络设备发送反馈结果的第一副本,且将反馈结果的第二副本进行报文还原,得到模板报文。这样,可以通过循环处理协议报文,多次改写摘要报文,达到数据的高吞吐功能,实现对协议处理功能的大规模的测试需求。
综上,通过基于获取的协议报文,确定预设协议报文摘要队列中的摘要信息,并基于摘要信息和模板报文,生成摘要报文,以及根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息,进而根据配置信息调整摘要报文,得到协议报文的反馈结果。这样,可以支持高吞吐的网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的大规模测试需求。
基于相同的发明构思,本申请提供了与上述涉及的基于可编程交换机的数据处理方法对应的基于可编程交换机的数据处理装置。具体结合图7进行详细说明。
图7是示出根据一个实施例的一种基于可编程交换机的数据处理装置的结构示意图。
如图7所示,基于可编程交换机的数据处理装置700具体可以包括:
获取模块701,用于获取协议报文;
确定模块702,用于根据协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块703,用于基于摘要信息和模板报文,生成摘要报文;以及,根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息;
调整模块704,用于根据配置信息,调整摘要报文,得到协议报文的反馈结果。
基于此,下面对本申请实施例提供的基于可编程交换机的数据处理装置700进行详细说明:
在一种或者多种可能的实施例中,基于可编程交换机的数据处理装置700还可以包括提取模块和写入模块;
提取模块,用于根据协议报文,提取协议报文中预设位置的协议字段;
写入模块,用于将协议字段写入预设协议报文摘要队列中,得到摘要信息。
在一种或者多种可能的实施例中,基于可编程交换机的数据处理装置700还可以包括添加模块;
获取模块701还用于,根据协议字段,获取协议报文在预设协议报文摘要队列中的入队序号,入队序号对应第一队列;
添加模块,用于在寄存器中添加入队序号和第一队列的队列长度;
获取模块701还用于,根据入队序号,获取第一队列的队列尾指针,并在寄存器中添加队列尾指针,队列尾指针用于指示第一队列的相对偏移量;
获取模块701还用于,根据入队序号、第一队列的队列容量和队列尾指针,获取队列尾指针相对于寄存器的第一偏移量;
写入模块还用于,按照第一偏移量,将协议字段写入寄存器,得到摘要信息。
在一种或者多种可能的实施例中,确定模块702还用于,根据协议字段,确定预设协议报文摘要队列中是否包括与协议报文对应的流状态队列;
确定模块702还用于,在预设协议报文摘要队列中包括与协议报文对应的流状态队列的情况下,将流状态队列的队列序号确定为入队序号。
在一种或者多种可能的实施例中,获取模块701还用于,获取模板报文,报文模板携带预设指示字段;
获取模块701还用于,根据预设指示字段,获取第一位置,第一位置为预设指示字段指示摘要信息写入模板报文中第一目标字段的位置;
写入模块还用于,按照第一位置,将摘要信息写入第一目标字段中,生成摘要报文。
在一种或者多种可能的实施例中,确定模块702还用于,根据摘要信息的字段属性,确定模板报文中的第二位置,第二位置为摘要信息写入模板报文中第二目标字段的位置;
写入模块还用于,按照第二位置,将摘要信息写入第二目标字段,得到摘要报文。
在一种或者多种可能的实施例中,获取模块701还用于,基于摘要信息和模板报文,生成摘要报文之前,根据模板报文,获取与模板报文的出队序号,出队序号为第二队列的序号,出队序号与入队序号对应;
调整模块704还用于,根据第二队列的队列长度,调整寄存器中存储的队列长度;
获取模块701还用于,根据出队序号,获取第二队列的队列头指针,队列头指针用于指示第二队列的相对偏移量,并在寄存器中添加队列头指针;
获取模块701还用于,根据出队序号、第二队列的队列容量和队列头指针,获取队列头指针相对于寄存器的第二偏移量;
获取模块701还用于,按照第二偏移量,获取目标摘要。
在一种或者多种可能的实施例中,获取模块701还用于,在预设摘要处理程序表中,根据摘要信息,获取与协议报文对应的数据流中的配置信息;其中,
配置信息包括第一处理状态信息和与第一处理状态信息对应的预设操作的执行信息,第一状态信息用于表征协议报文在数据流中所处的状态信息。
在一种或者多种可能的实施例中,摘要信息携带目标序号,目标序号包括下述中的至少一种:入队序号、出队序号;该基于可编程交换机的数据处理装置700还可以包括执行模块;
获取模块701还用于,在预设摘要处理程序表中,根据目标序号,获取与协议报文对应的数据流中的配置信息。
在一种或者多种可能的实施例中,执行模块,用于按照执行信息对摘要报文执行预设操作,得到第一执行结果信息;
获取模块701还用于,根据第一执行结果信息,获取协议报文的第二处理状态信息;
获取模块701还用于,在预设摘要处理程序表中,获取与第二处理状态信息对应的第一结果报文;
确定模块702还用于,确定第一结果报文为协议报文的反馈结果。
在一种或者多种可能的实施例中,该基于可编程交换机的数据处理装置700还可以包括存储模块;
存储模块,用于将第二处理状态信息存储在寄存器中,以便更新预设协议报文摘要队列中的摘要信息。
在一种或者多种可能的实施例中,反馈结果包括多播转发信息,该基于可编程交换机的数据处理装置700还可以包括发送模块;
发送模块,用于按照多播转发信息,向网络设备发送反馈结果的第一副本,且将反馈结果的第二副本进行报文还原,得到模板报文。
由此,在预设协议报文摘要队列为多队列的情况下,可以有效维护可编程交换机中队列结构的寄存器,在对摘要报文处理时,在执行预设操作后得到协议报文的新的处理状态信息,以及协议报文的反馈结果,便于后续循环对协议报文进行处理,以达到数据的高吞吐功能,实现对协议处理功能的大规模的测试需求。
基于相同的发明构思,本申请提供了与上述涉及的基于可编程交换机的数据处理方法对应的基于可编程交换机的数据处理装置。具体结合图7进行详细说明。
图8是示出根据一个实施例的一种基于可编程交换机的协议报文处理装置的结构示意图。
如图8所示,基于可编程交换机的协议报文处理装置800具体可以包括:
获取模块801,用于获取被测设备传输的协议报文,所述被测设备为与可编程交换机进行数据传输的设备;
确定模块802,用于根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块803,用于基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
调整模块804,用于根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,并向所述被测设备发送所述协议报文的反馈结果。
由此,通过获取与可编程交换机进行数据传输的被测设备传输的协议报文,确定预设协议报文摘要队列中的摘要信息,并基于摘要信息和可编程交换机对应的控制平面下发的模板报文,生成摘要报文,以及根据摘要信息,获取与协议报文对应的网络协议数据流中的配置信息,进而根据配置信息调整摘要报文,得到协议报文的反馈结果。这样,可以支持高吞吐的网络协议数据流的生成和处理,实现对网络测试设备的协议处理功能的大规模测试需求。
图9是示出根据一个实施例的计算机设备的硬件结构示意图。
如图9所示,计算机设备900包括输入设备901、输入接口902、处理器903、存储器904、输出接口905、以及输出设备906。
输入接口902、处理器903、存储器904、以及输出接口905通过总线910相互连接,输入设备901和输出设备906分别通过输入接口902和输出接口905与总线910连接,进而与计算机设备900的其他组件连接。具体地,输入设备901接收来自外部的输入信息,并通过输入接口902将输入信息传送到处理器903;处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出接口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算机设备900的外部供用户使用。
在一个实施例中,图9所示的计算机设备900可以被实现为一种数据处理设备,该数据处理设备可以包括:存储器,被配置为存储程序;处理器,被配置为运行存储器中存储的程序,以执行上述实施例描述的数据处理方法。
在一个实施例中,该存储器还可以用于存储协议报文和模板报文以及结合上述图1至图6描述的数据处理中每个步骤的计算结果。作为示例,该计算结果至少包括:协议报文在预设协议报文摘要队列中的入队序号、第一队列的队列长度、指示所述第一队列的相对偏移量的第一队列的队列尾指针以及队列尾指针相对于所述寄存器的第一偏移量。
根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机可读存储介质。例如,本申请的实施例包括一种计算机可读存储介质,其包括在计算机可读存储介质上存储程序或指令,在程序或指令被计算机设备执行的情况下,使得计算机设备执行上述方法的步骤。
根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以从网络上被下载和安装,和/或从可拆卸存储介质被安装。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令,当其在计算机上运行时,使得计算机执行上述各个实施例中描述的方法。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (18)
1.一种基于可编程交换机的协议报文处理方法,包括:
获取被测设备传输的协议报文,所述被测设备为与可编程交换机进行数据传输的设备;
根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,并向所述被测设备发送所述协议报文的反馈结果。
2.一种基于可编程交换机的数据处理方法,包括:
获取协议报文;
根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果。
3.根据权利要求2所述的方法,其中,所述根据所述协议报文,确定预设协议报文摘要队列中的摘要信息,包括:
根据所述协议报文,提取所述协议报文中预设位置的协议字段;
将所述协议字段写入所述预设协议报文摘要队列中,得到所述摘要信息。
4.根据权利要求3所述的方法,其中,所述将所述协议字段写入所述预设协议报文摘要队列中,得到所述摘要信息,包括:
根据所述协议字段,获取所述协议报文在预设协议报文摘要队列中的入队序号,所述入队序号对应第一队列;
在寄存器中添加所述入队序号和所述第一队列的队列长度;
根据所述入队序号,获取所述第一队列的队列尾指针,并在所述寄存器中添加所述队列尾指针,所述队列尾指针用于指示所述第一队列的相对偏移量;
根据所述入队序号、所述第一队列的队列容量和所述队列尾指针,获取所述队列尾指针相对于所述寄存器的第一偏移量;
按照所述第一偏移量,将所述协议字段写入所述寄存器,得到所述摘要信息。
5.根据权利要求4所述的方法,其中,所述根据所述协议字段,获取所述协议报文在预设协议报文摘要队列中的入队序号,包括:
根据所述协议字段,确定所述预设协议报文摘要队列中是否包括与所述协议报文对应的流状态队列;
在所述预设协议报文摘要队列中包括与所述协议报文对应的流状态队列的情况下,将所述流状态队列的队列序号确定为所述入队序号。
6.根据权利要求2所述的方法,其中,所述基于所述摘要信息和模板报文,生成摘要报文,包括:
获取模板报文,所述报文模板携带预设指示字段;
根据所述预设指示字段,获取第一位置,所述第一位置为所述预设指示字段指示所述摘要信息写入所述模板报文中第一目标字段的位置;
按照所述第一位置,将所述摘要信息写入所述第一目标字段中,生成摘要报文。
7.根据权利要求2所述的方法,其中,所述基于所述摘要信息和模板报文,生成摘要报文,包括:
根据所述摘要信息的字段属性,确定所述模板报文中的第二位置,所述第二位置为所述摘要信息写入所述模板报文中第二目标字段的位置;
按照所述第二位置,将所述摘要信息写入所述第二目标字段,得到摘要报文。
8.根据权利要求2所述的方法,其中,所述基于所述摘要信息和模板报文,生成摘要报文之前,所述方法还包括:
根据所述模板报文,获取所述模板报文的出队序号,所述出队序号为第二队列的序号,所述出队序号与所述入队序号对应;
根据所述第二队列的队列长度,调整寄存器中存储的队列长度;
根据所述出队序号,获取所述第二队列的队列头指针,所述队列头指针用于指示所述第二队列的相对偏移量,并在所述寄存器中添加所述队列头指针;
根据所述出队序号、所述第二队列的队列容量和所述队列头指针,获取所述队列头指针相对于所述寄存器的第二偏移量;
按照所述第二偏移量,获取所述摘要报文。
9.根据权利要求2所述的方法,其中,所述根据所述摘要信息,获取与所述协议报文对应的数据流中的配置信息,包括:
在预设摘要处理程序表中,根据所述摘要信息,获取与所述协议报文对应的数据流中的配置信息;其中,
所述配置信息包括第一处理状态信息和与所述第一处理状态信息对应的预设操作的执行信息,所述第一状态信息用于表征所述协议报文在所述数据流中所处的状态信息。
10.根据权利要求9所述的方法,其中,所述摘要信息携带目标序号,所述目标序号包括下述中的至少一种:入队序号、出队序号;
所述在预设摘要处理程序表中,根据所述摘要信息,获取与所述协议报文对应的数据流中的配置信息,包括:
在所述预设摘要处理程序表中,根据所述目标序号,获取与所述协议报文对应的数据流中的配置信息。
11.根据权利要求9所述的方法,其中,所述根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,包括:
按照所述执行信息对所述摘要报文执行所述预设操作,得到第一执行结果信息;
根据所述第一执行结果信息,获取所述协议报文的第二处理状态信息;在预设摘要处理程序表中,获取与所述第二处理状态信息对应的第一结果报文;
确定所述第一结果报文为所述协议报文的反馈结果。
12.根据权利要求11所述的方法,其中,所述方法还包括:
将所述第二处理状态信息存储在寄存器中,以便更新所述预设协议报文摘要队列中的摘要信息。
13.根据权利要求2所述的方法,其中,所述反馈结果包括多播转发信息;所述方法还包括:
按照所述多播转发信息,向网络设备发送所述反馈结果的第一副本,且将所述反馈结果的第二副本进行报文还原,得到模板报文。
14.一种基于可编程交换机的协议报文处理装置,包括:
获取模块,用于获取被测设备传输的协议报文,所述被测设备为与可编程交换机进行数据传输的设备;
确定模块,用于根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块,用于基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的网络协议数据流中的配置信息;
调整模块,用于根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果,并向所述被测设备发送所述协议报文的反馈结果。
15.一种基于可编程交换机的数据处理装置,包括:
获取模块,用于获取协议报文;
确定模块,用于根据所述协议报文,确定预设协议报文摘要队列中的摘要信息;
生成模块,用于基于所述摘要信息和模板报文,生成摘要报文;以及,根据所述摘要信息,获取与所述协议报文对应的数据流中的配置信息;
调整模块,用于根据所述配置信息,调整所述摘要报文,得到所述协议报文的反馈结果。
16.一种计算机设备,包括:存储器和处理器,
所述存储器,用于存储有计算机程序;
所述处理器,用于执行所述存储器中存储的计算机程序,所述计算机程序运行时使得所述处理器执行权利要求1所述的基于可编程交换机的协议报文处理方法的步骤,或者执行权利要求1至13中任意一项所述的基于可编程交换机的数据处理方法的步骤。
17.一种计算机可读存储介质,所述计算机可读存储介质上存储程序或指令,在所述程序或指令被计算机设备执行的情况下,使得所述计算机设备执行如权利要求1所述的基于可编程交换机的协议报文处理方法的步骤,或者执行权利要求1至13中任意一项所述的基于可编程交换机的数据处理方法的步骤。
18.一种计算机程序产品,包括计算机程序,在所述计算机程序被计算机设备执行的情况下,使得所述计算机设备执行如权利要求1所述的基于可编程交换机的协议报文处理方法的步骤,或者执行权利要求1至13中任意一项所述的基于可编程交换机的数据处理方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210111588.2A CN114553757B (zh) | 2022-01-29 | 2022-01-29 | 基于可编程交换机的协议报文处理方法、装置和设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210111588.2A CN114553757B (zh) | 2022-01-29 | 2022-01-29 | 基于可编程交换机的协议报文处理方法、装置和设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114553757A true CN114553757A (zh) | 2022-05-27 |
| CN114553757B CN114553757B (zh) | 2024-06-18 |
Family
ID=81674305
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210111588.2A Active CN114553757B (zh) | 2022-01-29 | 2022-01-29 | 基于可编程交换机的协议报文处理方法、装置和设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114553757B (zh) |
Citations (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1303086A2 (en) * | 2001-10-09 | 2003-04-16 | Alcatel | A hierarchical protocol classification engine |
| WO2013059991A1 (zh) * | 2011-10-25 | 2013-05-02 | 华为技术有限公司 | 数据报文处理方法和系统、报文转发设备 |
| US20140236527A1 (en) * | 2013-02-21 | 2014-08-21 | Advantest Corporation | Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems |
| WO2014202030A1 (zh) * | 2013-06-21 | 2014-12-24 | 北京邮电大学 | 增强OpenFlow网络能力的网络控制器、交换机和方法 |
| US20150370675A1 (en) * | 2014-06-21 | 2015-12-24 | Ixia | Methods, systems, and computer readable media for utilizing abstracted user-defined data to conduct network protocol testing |
| CN105227407A (zh) * | 2015-10-16 | 2016-01-06 | 邦讯技术股份有限公司 | 一种协议调试方法、装置及系统 |
| WO2018113425A1 (zh) * | 2016-12-19 | 2018-06-28 | 华为技术有限公司 | 一种检测时延的方法、装置及系统 |
| CN109039814A (zh) * | 2018-07-26 | 2018-12-18 | 北京明朝万达科技股份有限公司 | 一种协议测试方法及装置 |
| CN109787833A (zh) * | 2019-01-23 | 2019-05-21 | 清华大学 | 网络异常事件感知方法和系统 |
| CN111683066A (zh) * | 2020-05-27 | 2020-09-18 | 平安养老保险股份有限公司 | 异构系统集成方法、装置、计算机设备和存储介质 |
| US20210092122A1 (en) * | 2019-09-23 | 2021-03-25 | Vmware, Inc. | Centralized capability system for programmable switches |
| CN112714047A (zh) * | 2021-03-29 | 2021-04-27 | 北京网测科技有限公司 | 基于工控协议流量的测试方法、装置、设备及存储介质 |
| CN112822722A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种数据报文的传输方法和装置 |
| CN113037691A (zh) * | 2019-12-24 | 2021-06-25 | 中国移动通信集团浙江有限公司 | 报文处理方法、装置及系统 |
| CN113055196A (zh) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | 报文处理方法、网络设备及计算机可读存储介质 |
| CN113162816A (zh) * | 2020-12-29 | 2021-07-23 | 深圳市吉祥腾达科技有限公司 | 一种交换机OSPFv3协议测试方法及测试系统 |
| CN113691486A (zh) * | 2020-05-19 | 2021-11-23 | 中移(成都)信息通信科技有限公司 | 报文修改的方法、装置、设备及存储介质 |
| CN113938405A (zh) * | 2020-07-10 | 2022-01-14 | 北京华为数字技术有限公司 | 一种数据处理的方法、装置 |
| WO2022017249A1 (zh) * | 2020-07-21 | 2022-01-27 | 阿里巴巴集团控股有限公司 | 可编程交换机、流量统计方法、防御方法和报文处理方法 |
-
2022
- 2022-01-29 CN CN202210111588.2A patent/CN114553757B/zh active Active
Patent Citations (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1303086A2 (en) * | 2001-10-09 | 2003-04-16 | Alcatel | A hierarchical protocol classification engine |
| WO2013059991A1 (zh) * | 2011-10-25 | 2013-05-02 | 华为技术有限公司 | 数据报文处理方法和系统、报文转发设备 |
| US20140236527A1 (en) * | 2013-02-21 | 2014-08-21 | Advantest Corporation | Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems |
| WO2014202030A1 (zh) * | 2013-06-21 | 2014-12-24 | 北京邮电大学 | 增强OpenFlow网络能力的网络控制器、交换机和方法 |
| US20150370675A1 (en) * | 2014-06-21 | 2015-12-24 | Ixia | Methods, systems, and computer readable media for utilizing abstracted user-defined data to conduct network protocol testing |
| CN105227407A (zh) * | 2015-10-16 | 2016-01-06 | 邦讯技术股份有限公司 | 一种协议调试方法、装置及系统 |
| WO2018113425A1 (zh) * | 2016-12-19 | 2018-06-28 | 华为技术有限公司 | 一种检测时延的方法、装置及系统 |
| CN109039814A (zh) * | 2018-07-26 | 2018-12-18 | 北京明朝万达科技股份有限公司 | 一种协议测试方法及装置 |
| CN109787833A (zh) * | 2019-01-23 | 2019-05-21 | 清华大学 | 网络异常事件感知方法和系统 |
| US20210092122A1 (en) * | 2019-09-23 | 2021-03-25 | Vmware, Inc. | Centralized capability system for programmable switches |
| CN113037691A (zh) * | 2019-12-24 | 2021-06-25 | 中国移动通信集团浙江有限公司 | 报文处理方法、装置及系统 |
| CN113055196A (zh) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | 报文处理方法、网络设备及计算机可读存储介质 |
| CN113691486A (zh) * | 2020-05-19 | 2021-11-23 | 中移(成都)信息通信科技有限公司 | 报文修改的方法、装置、设备及存储介质 |
| CN111683066A (zh) * | 2020-05-27 | 2020-09-18 | 平安养老保险股份有限公司 | 异构系统集成方法、装置、计算机设备和存储介质 |
| CN113938405A (zh) * | 2020-07-10 | 2022-01-14 | 北京华为数字技术有限公司 | 一种数据处理的方法、装置 |
| WO2022017249A1 (zh) * | 2020-07-21 | 2022-01-27 | 阿里巴巴集团控股有限公司 | 可编程交换机、流量统计方法、防御方法和报文处理方法 |
| CN113162816A (zh) * | 2020-12-29 | 2021-07-23 | 深圳市吉祥腾达科技有限公司 | 一种交换机OSPFv3协议测试方法及测试系统 |
| CN112822722A (zh) * | 2020-12-30 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种数据报文的传输方法和装置 |
| CN112714047A (zh) * | 2021-03-29 | 2021-04-27 | 北京网测科技有限公司 | 基于工控协议流量的测试方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114553757B (zh) | 2024-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112866111B (zh) | 流表管理的方法和装置 | |
| US10552205B2 (en) | Work conserving, load balancing, and scheduling | |
| US11714692B2 (en) | Classical management of qubit requests | |
| US11122136B2 (en) | Quantum payload service for facilitating communications between a quantum computing system and classical computing systems | |
| CN105939297B (zh) | 一种tcp报文重组方法和装置 | |
| CN105191235A (zh) | 针对慢速和快速端口的直通处理 | |
| US20090196288A1 (en) | Efficient Packet Replication | |
| US20230042747A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
| CN106789730B (zh) | 分片报文的处理方法及装置 | |
| CN105975433A (zh) | 一种报文处理方法及装置 | |
| TW201528142A (zh) | 具多核處理器的內部/外部存取之後援處理器單元 | |
| CN110784339A (zh) | Lacp报文超时的故障检测方法、装置、电子设备 | |
| CN117376285A (zh) | 报文转发方法、装置、电子设备和存储介质 | |
| US20070160052A1 (en) | Packet processing apparatus and method | |
| CN107896141B (zh) | 一种fc-ae-asm网络数据冗余方法 | |
| CN115567460B (zh) | 数据包处理方法及装置 | |
| US20130018987A1 (en) | Adaptive replication | |
| CN113992604A (zh) | 交换机和数据处理的系统 | |
| CN114553757B (zh) | 基于可编程交换机的协议报文处理方法、装置和设备 | |
| JP6654733B2 (ja) | データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 | |
| CN118353860A (zh) | 封包的重组方法及装置、存储介质、电子设备 | |
| CN118869610A (zh) | 消息发送与接收方法、相关装置和介质 | |
| JP2006235831A (ja) | 状態管理装置および方法およびプログラム | |
| CN113626295B (zh) | 压测数据的处理方法、系统及计算机可读存储介质 | |
| US9736080B2 (en) | Determination method, device and storage medium |
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 |