CN117041272B - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117041272B CN117041272B CN202311285110.2A CN202311285110A CN117041272B CN 117041272 B CN117041272 B CN 117041272B CN 202311285110 A CN202311285110 A CN 202311285110A CN 117041272 B CN117041272 B CN 117041272B
- Authority
- CN
- China
- Prior art keywords
- message
- original
- metadata
- stage pipeline
- header
- 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
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 386
- 238000000034 method Methods 0.000 claims abstract description 103
- 238000004590 computer program Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 30
- 238000000605 extraction Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 7
- 239000000284 extract Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000010445 mica Substances 0.000 description 1
- 229910052618 mica group Inorganic materials 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请实施例公开了一种数据处理方法、装置、设备及存储介质,应用于云技术,该方法包括:将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;通过N级流水线,根据原始数据报文对应的原始报文流表,对原始报文头进行处理,得到处理后的原始报文头;根据原始报文头,生成原始报文头对应的镜像报文头;通过N级流水线,根据原始数据报文对应的镜像报文流表,对镜像报文头进行处理,得到处理后的镜像报文头;从报文缓存器中读取原始报文体,将原始报文体和处理后的原始报文头发送至第二设备,将原始报文体和处理后的镜像报文头发送至第三设备。通过本申请能够降低报文镜像过程中的资源消耗。
Description
技术领域
本申请涉及云技术等领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
报文镜像可以是指在不影响交换机/路由器等网络设备的报文正常处理流程的情况下,将指定源的报文复制一份到目的端口。目的端口与检测设备直接或间接相连,检测设备上安装了分析软件,可以对报文进行分析,得到分析结果。该分析结果用于反映指定源与目的端口之间的网络是否存在攻击、故障等异常情况,当网络存在异常情况时,还可以通过镜像功能对报文进行获取并分析,以获取网络存在异常的原因。目前,报文镜像过程中需要消耗大量资源,使报文镜像受限。
发明内容
本申请实施例提供一种数据处理方法、装置、设备及存储介质,降低报文镜像过程中的资源消耗。
本申请实施例一方面提供一种数据处理方法,包括:
将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数;
通过所述N级流水线,根据所述原始数据报文对应的原始报文流表,对所述原始报文头进行处理,得到处理后的原始报文头;
根据所述原始报文头,生成所述原始报文头对应的镜像报文头;
通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
本申请实施例一方面提供一种数据处理装置,包括:
存储模块,用于将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数;
第一处理模块,用于通过所述N级流水线,根据所述原始数据报文对应的原始报文流表,对所述原始报文头进行处理,得到处理后的原始报文头;
生成模块,用于根据所述原始报文头,生成所述原始报文头对应的镜像报文头;
第二处理模块,用于通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
发送模块,用于从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,上述存储器存储有计算机程序,上述处理器执行上述计算机程序时实现上述的方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述的方法的步骤。
本申请实施例一方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
本申请中,原始报文头的处理流程和镜像报文头的处理流程复用同一组流水线(即N级流水线),不需要为镜像报文头的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。另外,通过在报文缓存器中存储原始数据报文的原始报文体,只需要将原始数据报文的原始报文头输入至N级流水线中,可以降低所消耗的流量资源。同时,镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种数据处理系统示意图;
图2a是本申请提供的一种第一设备、第二设备以及第三设备之间的设备关系场景示意图;
图2b是本申请提供的又一种第一设备、第二设备以及第三设备之间的设备关系场景示意图;
图2c是本申请提供的再一种第一设备、第二设备以及第三设备之间的设备关系场景示意图;
图2d是本申请提供的另一种第一设备、第二设备以及第三设备之间的设备关系场景示意图;
图2e是本申请提供的还一种第一设备、第二设备以及第三设备之间的设备关系场景示意图;
图3是本申请提供的一种数据处理方法的流程示意图;
图4是本申请提供的又一种数据处理方法的流程示意图;
图5本申请提供的一种四级流水线针对原始报文头、镜像报文头的第一轮处理过程的场景示意图;
图6本申请提供的一种四级流水线针对原始报文头、镜像报文头的第二轮处理过程的场景示意图;
图7本申请提供的一种四级流水线针对原始报文头、镜像报文头的第三轮处理过程的场景示意图;
图8本申请提供的一种四级流水线针对原始报文头、镜像报文头的第四轮处理过程的场景示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例云技术中的云安全,云安全(Cloud Security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
例如,本申请中,第一设备可以将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中,通过N级流水线,根据原始数据报文对应的原始报文流表,对原始报文头进行处理,得到处理后的原始报文头,根据原始报文头,生成原始报文头对应的镜像报文头;通过N级流水线,根据原始数据报文对应镜像报文流表,对该镜像报文头进行处理,得到处理后的镜像报文头。从该报文缓存器中读取原始报文体,将该原始报文体和处理后原始报文头发送至第二设备,将该原始报文体和处理后的镜像报文头作为处理后的镜像数据报文发送至第三设备,第三设备可以根据处理后的镜像数据报文对第一设备和第二设备进行检测,根据处理后的镜像报文检测第一设备和第二设备之间是否存在网络攻击、网络故障等异常情况,以便为用户提供安全的报文传输服务。
为了便于更清楚理解本申请,首先介绍实现本申请的数据处理系统,该数据处理系统包括第一设备100、第二设备101以及第三设备102。第一设备100可以与第二设备101进行网络连接,以便第一设备100与第二设备101能够进行数据交互,第一设备100可以与第三设备102行网络连接,以便第一设备100与第三设备102能够进行数据交互。
其中,第一设备100可以用于处理原始数据报文,以及生成镜像数据报文并对镜像数据报文进行处理,将处理后的原始数据报文发送至第二设备101,将处理后的镜像数据报文发送至第三设备102,第一设备100可以称为源设备。第二设备101可以用于接收处理后的原始数据报文,第二设备可以称为目的设备。第三设备102可以用于接收处理后的镜像数据报文,以及根据处理后的镜像数据报文对第一设备100和第二设备101进行检测,即第三设备102可以称为分析设备。
可理解的是,原始数据报文包括原始报文头和原始报文体,原始报文头中包括源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型、接口索引、报文方向等,原始报文体可以包括待传输的数据,待传输的数据可以与场景相关;原始报文头中的源IP地址、目的IP地址、协议号、源端口、目的端口、报文方向等中的一项或多项,可以称为原始报文头中的关键数据,也可以称为原始报文头中的原始元数据,原始报文头中除原始元数据以外的数据可以称为非元数据。
例如,在AI推理加速场景下,该待传输的数据可以是指用于对推理模型进行训练的训练数据、训练得到的推理模型、需要推理模型识别的数据(如图像、音频等)等。在视频处理/离线渲染场景下,该待传输的数据可以是指渲染得到的音视频流等。在数据库以及缓存服务场景下、云原生应用等场景下,待传输的数据可以是指待存储至云网络(或数据库、缓存器)中的数据、从云网络中读取到的数据等。
可理解的是,镜像数据报文包括原始报文体和处理后的镜像报文头,处理后的镜像报文头是由N级流水线对镜像元数据进行处理得到的,镜像元数据是对原始报文头中的原始元数据进行复制得到的。
可选的,第一设备100可以包括N级流水线和报文缓存器,报文缓存器可以用于存储原始数据报文中的原始报文体;N可以为正整数。流水线(pipeline):是一种处理和传输数据的方法,它涉及将一系列处理步骤或任务组合在一起,以便数据可以顺序地通过这些步骤进行处理。每个步骤都会对数据执行某种操作,然后将结果传递给下一个步骤。这种方法可以提高处理效率,因为各个步骤可以并行执行,从而加速整个处理过程。
例如,图1中以N为四为例进行说明,四级流水线包括第一级流水线、第二级流水线、第三级流水线以及第四级流水线。第一级流水线用于提取原始报文头中的原始元数据,原始元数据可以是指原始报文头中的关键数据,如原始元数据可以包括源IP地址、目的IP地址、协议号、源端口、目的端口、报文方向等中的一项或多项。第二级流水线可以用于对原始元数据进行复制,得到镜像元数据,第三级流水线和第四级流水线可以用于对原始元数据进行处理,得到处理后的原始报文头,以及用于对镜像元数据进行处理,得到处理后的镜像报文头。
可理解的是,第一级流水和第四级流水线之间包括循环路径,该循环路径用于将第四级流水线得到的报文头返回至第一级流水线,以便报文头进入新的一轮处理。
可选的,第一设备100、第二设备101、第三设备102可以是指虚拟子机,虚拟子机(Virtual Manufacturing,VM):是通过虚拟化技术在云母机上创建的独立的计算环境,它模拟了独立的计算机系统,包括处理器、内存、存储和网络资源。云母机(也称为宿设备或物理机)是承载虚拟子机(VM)的物理服务器。
可选的,第一设备100、第二设备101、第三设备102为虚拟子机时,第一设备100、第二设备101、第三设备102可以属于同一宿主设备,或者,第一设备100、第二设备101、第三设备102可以不属于同一宿主设备。
例如,在图2a中,第一设备100、第二设备101、第三设备102均属于第一宿主设备,即源设备、目标设备以及分析设备均属于同一个宿主设备。在图2b中,第一设备100、第二设备101均属于第一宿主设备,第三设备102属于第二宿主设备,即源设备和目标设备属于同一宿主设备,源设备和分析设备不属于同一宿主设备。在图2c中,第一设备100属于第一宿主设备,第二设备101和第三设备102属于第二宿主设备,即源设备和目标设备不属于同一宿主设备,源设备和分析设备不属于同一宿主设备。在图2d中,第一设备100属于第一宿主设备,第二设备101属于第二宿主设备,第三设备102属于第三宿主设备,即源设备和目标设备不属于同一宿主设备,源设备和分析设备不属于同一宿主设备,且目标设备和分析设备不属于同一宿主设备。在图2e中,第一设备100、第三设备102均属于第一宿主设备,即源设备、分析设备均属于同一个宿主设备。第二设备101属于第二宿主设备,即源设备和目标设备不属于同一宿主设备,且目的设备与分析设备不属于同一宿主设备。
需要说明的是,图2a、图2b、图2c以及图2d、图2e描述了第一设备100、第二设备101、第三设备102之间的五种设备关系场景,在不同设备关系场景下,原始数据报文的处理方式以及镜像报文的处理方式略有不同,具体可以参见下文描述。
需要说明的是,第一设备100、第二设备101、第三设备102可以是指独立的宿主设备,这时原始数据报文的处理方式以及镜像报文的处理方式,可以参见图2d中原始数据报文的处理方式以及镜像报文的处理方式。
可理解的是,当第一设备100、第二设备101、第三设备102为虚拟子机时,第一设备100、第二设备101、第三设备102所属的宿主设备可以是指终端或服务器;当第一设备100、第二设备101、第三设备102是指独立的宿主设备时,第一设备100、第二设备101、第三设备102可以是终端或服务器。
可理解的是,服务器可以是独立的一个物理服务器,也可以是至少两个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery NetworK,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端具体可以是指车载终端、智能手机、平板电脑、笔记本电脑、桌上型电脑、智能音箱、有屏音箱、智能电视、智能手表等等,但并不局限于此。各个终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
进一步地,请参见图3,是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可由图1中的第一设备来执行,其中,该方法可以包括如下步骤:
S101、将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数。
可理解的是,原始数据报文可以是指需要第一设备转发至第二设备的数据报文,原始数据报文可以是由其他设备发送至第一设备的,或者,原始数据报文可以是由第一设备所生成的。
可理解的是,报文缓存器可以是为N级流水线分配的存储空间,该报文缓存器的存储空间的大小可以是根据第一设备中需要镜像处理的原始数据报文的数据量动态确定的,或者,该报文缓存器的存储空间的大小可以是预先设置的。
本申请中,当需要将原始数据报文传输至第二设备时,第一设备可以将该原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中。镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率。
S102、通过该N级流水线,根据该原始数据报文对应的原始报文流表,对该原始报文头进行处理,得到处理后的原始报文头。
S103、根据该原始报文头,生成该原始报文头对应的镜像报文头。
可理解的是,原始报文流表包括属于第一宿主设备的虚拟子机在报文输入方向和报文输出方向上分别对应的原始报文处理规则,第一宿主设备是指第一设备所属的宿主设备。例如,原始报文流表可以包括第一设备的报文输出方向的第一原始报文处理规则,第一原始报文处理规则用于指示如何对第一设备所输出的原始数据报文的原始报文头进行处理,该第一原始报文处理规则是预先配置得到的。当第二设备也属于第一宿主设备时,原始报文流表还可以包括第二设备的报文输入方向的第二原始报文处理规则,该第二原始报文处理规则用于指示如何对需要输入至第二设备的原始数据报文的原始报文头进行处理。需要说明的是,以第一设备为例,报文输入方向可以是指报文传入至第一设备的方向,即报文输入方向为第一设备接收报文的方向,报文输出方向可以是指第一设备传出报文的方向,即报文输出方向为第一设备发送报文的方向。例如,如图2a所示,当第一设备100向第二设备101发送报文(或报文头)时,线段21的箭头所指示的方向为第一设备的报文输出方向;当第一设备100接收第二设备101所发送的报文(或报文头)时,线段22的箭头所指示的方向为第一设备的报文输入方向。
本申请中,第一设备可以通过N级流水线,根据该原始数据报文对应的原始报文流表,对原始报文头进行处理,得到处理后的原始报文头,对原始报文头的处理过程可以称为原始数据报文的处理过程;对原始报文头进行复制处理,得到该原始报文头对应的镜像报文头。
需要说明的是,N级流水线包括循环路径,循环路径是指用于将最后一级流水线所得到的报文头返回至第一级流水线的路径,即循环路径用于将最后一级流水线所得到的报文头返回至第一级流水线,该循环路径为第一级流水线和最后一级流水线直接相连所构成的路径。最后一级流水线是指位于N级流水线的输出端的流水线,第一级流水线是指位于N级流水线的输入端的流水线。一旦报文头从循环路径返回至第一级流水线,则该报文头会被N级流水线进行新的一轮处理,N级流水线可以采用串行方式或并行方式处理报文头,串行方式是指同一时间仅单个流水线对报文头进行处理,并行方式是指同一时间存在多个流水线对报文头进行处理。当N级流水线以串行方式处理报文头时,N级流水线对报文头的处理顺序可以是预先设置的,本申请中,主要以N级流水线以串行方式处理报文头为例进行说明。
例如,当N为四时,循环路径为用于将第四级流水线得到的报文头返回至第一级流水线的路径,以便四级流水线对报文头进行新的一轮处理。四级流水线对报文头的处理顺序由先到后的顺序为:第一级流水线、第二级流水线、第三级流水线、第四级流水线。其中,第一级流水线与第二级流水线相连接,以将第一级流水线所处理后的数据传输至第二流水线;第二级流水线用于对第一级流水线所处理后的数据进行处理,第二级流水线与第三级流水线相连接,以将第一级流水线所处理后的数据传输至第三流水线。第三级流水线用于对第二级流水线所处理后的数据进行处理,第三级流水线与第四级流水线相连接,以将第三级流水线所处理后的数据传输至第四流水线。第四级流水线用于对第三级流水线所处理后的数据进行处理,第四级流水线与第一级流水线相连接所构成的路径称为循环路径。第一级流水线、第二级流水线、第三级流水线以及第四级流水线对数据的处理方式不相同,具体描述请参考针对图1的描述。
S104、通过该N级流水线,根据该原始数据报文对应的镜像报文流表,对该镜像报文头进行处理,得到处理后的镜像报文头。
可理解的是,镜像报文流表可以用于指示如何对镜像报文头进行处理,镜像报文流表和原始报文流表均存储在第一设备的DDR中,该镜像报文流表和原始报文流表具有相同的表项结构,不需要为镜像报文功能预留固定大小的表项存储空间,可弹性改变二者(镜像报文流表和原始报文流表)容量大小,可节省存储资源。镜像报文流表和原始报文流表的表项结构不需要为兼容报文镜像功能而将表项结构设计的比较大导致整体流表空间变大。对于只有少量流需要镜像的场景,镜像会话(镜像数据报文)也不会大量挤占原始会话(原始数据报文),镜像会话与原始会话分别对应流表的大小可以弹性分配。以数据处理器(Data Processing Unit,DPU)为例,原始报文流表可以采用3组双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR),共6GB能够存储16M(即1600万) 流表,镜像报文流表的表项结构与原始报文流表的表项相同,可以与原始报文流表共享16M 流表空间。二者容量可弹性改变,若第一宿主设备上的所有虚拟子机(VM)的流量(即所有原始数据报文)都需要镜像,则该第一宿主设备上的所有虚拟子机一共可建立8M的原始报文流表和8M的镜像报文流表。若第一宿主设备上的所有虚拟子机(VM)只有一条流量需要镜像,即需要一个虚拟子机所发送的原始数据报文需要镜像,则该第一宿主设备上的所有虚拟子机一共可建立(16M-1)的原始报文流表,可建立1M的镜像报文流表。
本申请中,第一设备可以通过该N级流水线,根据该原始数据报文对应的镜像报文流表,对该镜像报文头进行处理,得到处理后的镜像报文头,此处对镜像报文头的处理可以包括限速处理、报文头编辑处理等;该对镜像报文头的处理过程可以称为镜像数据报文的处理过程,通过原始数据报文的处理过程和镜像数据报文的处理过程复用该N级流水线,不需要为镜像数据报文的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。
S105、从该报文缓存器中读取该原始报文体,将该原始报文体和该处理后的原始报文头发送至第二设备,将该原始报文体和该处理后的镜像报文头发送至第三设备,该第三设备用于根据该原始报文体和该处理后的镜像报文头对该第一设备和第二设备进行检测。
本申请中,当获取到处理后的镜像报文头和处理后的原始报文头之后,第一设备可以从该报文缓存器中读取该原始报文体,将该原始报文体和处理后的原始报文头作为处理后的原始数据报文,将处理后的原始数据报文发送至第二设备。第二设备为该处理后的原始数据报文的接收端,第二设备可以根据该处理后的原始数据报文进行相应的处理,或第二设备可以将该处理后的原始数据报文转发给其他设备。第一设备可以将该原始报文体和处理后的镜像报文头,作为处理后的镜像数据报文,将处理后的镜像数据报文发送至第三设备。第三设备用于根据处理后镜像数据报文,对第一设备和第二设备进行检测,对第一设备和第二设备进行检测是指如下的一种或多种:1、分析从第一设备传出的流量,2、分析传入第二设备的流量,3、分析第一设备和第二设备之间的网络是否存在异常,异常是指网络攻击、网络故障等。
本申请中,原始报文头的处理流程和镜像报文头的处理流程复用同一组流水线(即N级流水线),不需要为镜像报文头的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。另外,通过在报文缓存器中存储原始数据报文的原始报文体,只需要将原始数据报文的原始报文头输入至N级流水线中,可以降低所消耗的流量资源。同时,镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率,能够提升云网络中的复杂场景下只能网卡或DPU中报文镜像的能力。
进一步地,请参见图4,是本申请实施例提供的一种数据处理方法的流程示意图。如图4所示,该方法可由图1中的终端集群中的任一终端来执行,也可以由图1中的服务器来执行,还可以由图1中的终端集群中的终端和服务器来协同执行,本申请中用于执行该数据处理方法的设备可以统称为计算机设备。其中,该方法可以包括如下步骤:
S201、将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数。
S202、通过第一级流水线,从该原始报文头中提取第一原始元数据,将该第一原始元数据传输至第二级流水线。
本申请中,以N为四为例进行说明,第一设备可以通过第一级流水线,从该原始报文头中提取第一原始元数据,将该第一原始元数据传输至第二级流水线。通过将第一原始报文头中的关键数据传输至第二级流水线,这样可以降低后续处理过程中所消耗的流量。
其中,第一原始元数据可以是指原始报文头中的关键数据,如第一原始元数据(关键数据)可以包括源IP地址、目的IP地址、协议号、源端口、目的端口、报文方向等中的一项或多项。
S203、通过该第二级流水线,从该原始报文流表中,查询该第一设备的报文输出方向的第一原始报文处理规则。
本申请中,第一设备可以通过该第二级流水线,根据第一原始元数据中的报文方向以及源IP地址(或源端口),从原始报文流表中,查询第一设备的报文输出方向的第一原始报文处理规则,该第一原始报文处理规则用于指示如何对第一设备所输出的原始元数据进行处理,第一原始报文处理规则包括对原始云数据的限速处理、报文头编辑等处理规则。
可理解的是,第一原始报文处理规则可以包括限速处理方式和报文头编辑方式,该限速处理方式包括单速单桶方式、单速双桶方式、双速双桶方式中的任一种,报文头编辑方式可以包括删除报文头信息、添加报文头信息(即:在报文头信息中添加内容)、修改报文头信息中的任一种,删除报文头信息可以包括剥掉GRE/VXLAN 等隧道报文的外层头,添加报文头信息可以包括添加GRE/VXLAN 等隧道报文的外层头,修改报文头信息可以包括修改报文头外层或内层的dport/sport等信息。例如,当原始数据报文是其他宿主设备中的虚拟子机所发送的时,报文编辑方式可以是指删除报文头信息;当该原始数据报文是由第一宿主设备中的其他虚拟子机(非第一设备)生成的时,该报文编辑方式可以为添加报文头信息;当原始数据报文是由第一设备生成的时,该报文编辑方式可以为修改报文头。
需要说明的是,隧道报文格式(Generic Routing Encapsulation,GRE)是一种网络封装技术。虚拟拓扑扩展局域网(Virtual eXtensible Local Area Network,VXLAN),是一种构建虚拟局域网(VLAN)的技术。隧道报文的外层头可以包括GRE头或VXLAN头等,GRE头包括报文类型、版本号、报文长度等信息;VXLAN头包括VXLAN flags(即标志位)和Reserved(保留位)。 dport表示目的端口,sport表示来源端口。
S204、通过第三级流水线和第四级流水线,根据该第一原始报文处理规则,对该第一原始元数据进行处理,得到处理后的原始报文头。
本申请中,第一设备可以通过第三级流水线和第四级流水线,根据该第一原始报文处理规则,对该第一原始元数据进行处理,得到处理后的原始报文头。
可选的,步骤S204可以包括:第一设备通过该第三级流水线对该第一原始元数据进行限速处理,将限速处理后的第一原始元数据传输至第四级流水线;通过该第四级流水线,对该限速处理后的第一原始元数据进行原始报文头编辑,得到处理后的原始报文头。
具体的,第一设备可以根据第一原始报文处理规则中的限速处理方式,对第一原始云数据进行限速处理,将限速处理后第一原始元数据传输至第四级流水线,通过对第一原始元数据进行限速处理,这样可以避免第一设备和第二设备之间的出现网络拥塞等问题。进一步,第一设备可以通过第四级流水线,按照第一原始报文处理规则中的报文头编辑方式,对限速处理后的第一原始元数据进行原始报文头编辑,得到处理后的原始报文头,通过对限速处理后的第一原始元数据进行报文头编辑,这样有利于处理后的原始数据报文能够准确地传输至第二设备。
可选的,上述通过该第四级流水线,对该限速处理后的第一原始元数据进行报文头编辑,得到处理后的原始报文头,包括:第一设备可以通过该第四级流水线,对该限速处理后的第一原始元数据进行报文头编辑,得到编辑后的第一原始元数据;若所述第一设备与所述第二设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第一原始元数据中的报文方向更新为所述第二设备的报文输入方向,得到更新后的第一原始元数据,根据该更新后的第一原始元数据对该原始报文头进行更新,得到第一候选报文头。根据所述第一候选报文头,确定处理后的原始报文头;若该第一设备与该第二设备不属于同一宿主设备,则采用该编辑后的第一原始元数据更新所述原始报文头,得到处理后的原始报文头。
具体的,第一设备可以通过该第四级流水线根据第一原始报文处理规则中的限速处理方式,对该限速处理后的第一原始元数据进行报文头编辑,得到编辑后的第一原始元数据。若该第一设备与所述第二设备属于同一宿主设备,则通过该第四级流水线,将该编辑后的第一原始元数据中的报文方向更新为该第二设备的报文输入方向,得到更新后的第一原始元数据,采用更新后的第一原始元数据替换原始报文头中的原始元数据,得到第一候选报文头,根据该第一候选报文头,确定处理后的原始报文头。若该第一设备与该第二设备不属于同一宿主设备,则采用该编辑后的第一原始元数据替换原始报文头中的原始元数据,得到处理后的原始报文头。也就是说,原始数据报文的接收端(即第二设备)和发送端(即第二设备)均属于同一个宿主设备时,需要通过N级流水线对编辑后的第一原始元数据进行新的一轮处理,才能得到处理后的原始报文头。如果原始数据报文的接收端和发送端不属于同一宿主设备,不需要通过N级流水线对编辑后的第一原始元数据进行新的一轮处理,直接将编辑后的第一原始元数据对原始报文头进行更新,得到处理后的原始报文头。
可选的,上述根据该第一候选报文头,确定处理后的原始报文头,包括:通过循环路径,将该第一候选报文头返回至该第一级流水线,通过该第一级流水线,从该第一候选报文头中提取第二原始元数据,将该第二原始元数据传输至该第二级流水线。根据该第二原始元数据中的报文方向,从该原始报文流表中,查询该第二设备的报文输入方向的第二原始报文处理规则;通过该第三级流水线和第四级流水线,根据该第二原始报文处理规则,对该第二原始元数据进行处理,得到处理后的原始报文头。
可理解的是,该循环路径是指第四级流水线到达第一级流水线的路径,用于将第四级流水线得到的报文头返回至第一级流水线,以便报文头进入新的一轮处理。第二原始元数据可以是指第一候选报文头中的关键数据,该第二原始元数据可以包括源IP地址、目的IP地址、协议号、源端口、目的端口、报文方向等中的一项或多项。
具体的,当原始数据报文的接收端和发送端属于同一个宿主设备时,第一设备可以通过循环路径将第一候选报文头,从第四级流水线返回至第一级流水线,通过该第一级流水,从第一候选报文头中提取第二原始元数据,将该第二原始元数据传输至第二级流水线。由于第二原始元数据的报文方向为第二设备的报文输入方向,因此,第一设备可以通过第二级流水线,从原始报文流表中查询第二设备的报文输入方向的第二原始报文处理规则,通过第三级流水和第四级流水线,根据该第二原始报文处理规则对第二原始元数据进行处理,得到处理后原始报文头。换言之,当原始数据报文的接收端和发送端属于同一个宿主设备时,第一设备的报文输出方向对原始报文头的处理过程,和第二设备的报文输入方向对原始报文头的处理过程复用同一组流水线,可以避免为第二设备的报文输入方向单独创建电路或流水线,这样降低所消耗的硬件资源,提高流水线的利用率。
可理解的是,上述第二原始报文处理规则用于指示如何对输入至第二设备的原始报文头进行处理,第二原始报文处理规则可以包括限速处理方式和报文头编辑方式,该限速处理方式包括单速单桶方式、单速双桶方式、双速双桶方式中的任一种,报文头编辑方式可以包括删除报文头信息、添加报文头信息、修改报文头信息中的任一种。第二原始报文处理规则可以预先配置得到。
可选的,上述通过该第三级流水线和第四级流水线,根据该第二原始报文处理规则,对该第二原始元数据进行处理,得到处理后的原始报文头,包括:第一设备可以通过第三级流水线,按照第二原始报文处理规则中的限速处理方式,对第二原始元数据进行限速处理,得到限速处理后的第二原始元数据,将限速处理后的第二原始元数据传输至第四级流水线。通过第四级流水线,按照第二原始报文处理规则中的报文头编辑方式,对限速处理后的第二原始元数据进行报文头编辑,得到处理后的原始报文头。
S205、根据该原始报文头,生成该原始报文头对应的镜像报文头。
可理解的是,原始报文头对应的镜像报文头可以包括第一镜像报文头和第二镜像报文头中的至少一个,第一镜像报文头根据第一原始元数据生成的,第二镜像报文头可以是指根据第二原始元数据生成的。
可选的,当原始报文头对应的镜像报文头包括所述第一镜像报文头时,上述步骤S205可以包括:通过该第二级流水线,对该第一原始元数据进行复制,得到第一镜像元数据,将该第一镜像元数据传输至该第三级流水线;通过该第三级流水线,将该第一镜像元数据传输至该第四级流水线。通过该第四级流水线,在该第一镜像元数据中添加报文头信息,将报文头方向更新为该第一设备的报文输出方向,得到更新后的第一镜像元数据;采用该更新后的第一镜像元数据对该原始报文头进行更新,得到第一镜像报文头。
可理解的是,原始报文流表中还可以包括报文镜像规则,报文镜像规则用于指示如下的一种或多种:需要对哪些原始数据报文进行镜像处理,需要对哪些设备所输出的原始数据报文需要镜像处理,以及需要对哪些设备所输入的原始数据报文进行镜像处理,即该报文镜像规则包括设备标识、报文标识,设备标识可以是指IP地址、Mac地址、设备编号等,报文标识可以是指报文编号、报文名称等。
具体的,第一设备可以通过第二级流水线,判断该第一原始元数据是否满足报文镜像规则,如报文镜像规则中包括第一原始元数据中的设备标识, 则确定第一原始元数据满足报文镜像规则,对第一原始元数据进行复制,得到第一镜像元数据,第一镜像元数据可以与第一原始元数据相同或相似。通过第二级流水线将第一镜像元数据传输至第三级流水线,通过第三级流水线将第一镜像元数据传输至第四级流水线,通过第四级流水线,在该第一镜像元数据中添加报文头信息,将报文头方向更新为该第一设备的报文输出方向,得到更新后的第一镜像元数据,采用该更新后的第一镜像元数据替换原始报文头中的原始元数据,得到第一镜像报文头。通过原始数据报文的处理过程和镜像报文头的生成过程复用同一组流水线,不需要为镜像报文头的生成过程单独创建电路或流水线,降低所消耗的硬件资源,提高流水线的利用率。
可选的,当原始报文头对应的镜像报文头包括该第二镜像报文头,上述步骤S205可以包括:第一设备可以通过该第二级流水线,对该第二原始元数据进行复制,得到第二镜像元数据,将所述第二镜像元数据传输至所述第三级流水线。进一步,通过所述第三级流水线,将所述第二镜像元数据传输至所述第四级流水线;通过所述第四级流水线,在所述第二镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第二镜像元数据;采用该更新后第二镜像元数据更新该原始报文头,得到第二镜像报文头。
具体的,第一设备可以通过第二级流水线,判断该第二原始元数据是否满足报文镜像规则,如报文镜像规则中包括第二原始元数据中的设备标识, 则确定第二原始元数据满足报文镜像规则,对第二原始元数据进行复制,得到第二镜像元数据,第二镜像元数据可以与第二原始元数据相同或相似。通过第二级流水线将第二镜像元数据传输至第三级流水线,通过第三级流水线将第二镜像元数据传输至第四级流水线,通过第四级流水线,在该第二镜像元数据中添加报文头信息,将报文头方向更新为该第一设备的报文输出方向,得到更新后的第二镜像元数据;采用该更新后第二镜像元数据替换所述原始报文头中的原始元数据,得到第二镜像报文头。通过原始数据报文的处理过程和镜像报文头的生成过程复用同一组流水线,不需要为镜像报文头的生成过程单独创建电路或流水线,降低所消耗的硬件资源,提高流水线的利用率。
需要说明的是,当原始报文头对应的镜像报文头包括第一镜像报文头和该第二镜像报文头时,获取原始报文头对应的镜像报文头的实现方式可以参考上文所描述的,重复之处不再赘述。
S206、通过该N级流水线,根据该原始数据报文对应的镜像报文流表,对该镜像报文头进行处理,得到处理后的镜像报文头。
可选的,当原始报文头对应的镜像报文头包括所述第一镜像报文头时,上述步骤S206可以包括:第一设备可以通过循环路径,从第四级流水线将该第一镜像报文头返回至该第一级流水线;通过该第一级流水线,从该第一镜像报文头中提取第三镜像元数据,将该第三镜像元数据传输至该第二级流水线。进一步,通过该第二级流水线,根据该第三镜像元数据中的报文方向,获取该原始数据报文对应的镜像报文流表;通过该第三级流水线和该第四级流水线,根据该镜像报文流表,对该第三镜像元数据进行处理,得到处理后的镜像报文头。
具体的,第一设备可以通过循环路径,从第四级流水线将该第一镜像报文头返回至第一级流水线,通过该第一级流水线,从该第一镜像报文头中提取第三镜像元数据,将该第三镜像元数据传输至第二级流水线。第三镜像元数据可以是指第一镜像报文头中的关键数据,第三镜像元数据可以包括源IP地址、目的IP地址、协议号、源端口、目的端口、报文方向等中的一项或多项。进一步,通过第二级流水线,根据该第三镜像元数据中的报文方向,获取原始数据报文对应的镜像报文流表;通过第三级流水线和第四级流水线,根据该镜像报文流表,对第三镜像元数据进行处理,得到处理后的镜像报文头。通过原始报文头的处理过程和镜像报文头的处理过程复用同一组流水线,不需要为镜像报文头的处理过程单独创建电路或流水线,降低所消耗的硬件资源,提高流水线的利用率。
可理解的是,镜像报文流表包括上文限速处理方式和报文头编辑方式,该限速处理方式包括单速单桶方式、单速双桶方式、双速双桶方式中的任一种,报文头编辑方式可以包括删除报文头信息、添加报文头信息、修改报文头信息中的任一种。
可选的,上述通过该第三级流水线和该第四级流水线,根据该镜像报文流表,对该第三镜像元数据进行处理,得到处理后的镜像报文头,包括:第一设备可以通过该第三级流水线,根据该镜像报文流表,对该第三镜像元数据进行限速处理,将限速处理后的第三镜像元数据传输至所述第四级流水线。通过该第四级流水线,对该限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头;该处理后的镜像报文头包括该处理后的第三镜像报文头。
此处的镜像报文头编辑可以是指按照镜像报文流表中的报文头编辑方式对第三镜像元数据进行处理,镜像报文流表中的报文头编辑方式与原始报文流表中的报文头编辑方式可以相同,也可以不相同。
具体的,第一设备可以通过第三级流水线,按照镜像报文流表中的限速处理方式,对该第三镜像元数据进行限速处理,将限速处理后的第三镜像元数据传输至所述第四级流水线。通过该第四级流水线,按照镜像报文流表中的报文头编辑方式,对该限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头;该处理后的镜像报文头包括该处理后的第三镜像报文头。通过原始报文头的处理过程和镜像报文头的处理过程复用同一组流水线,不需要为镜像报文头的处理过程单独创建电路或流水线,降低所消耗的硬件资源,提高流水线的利用率。
可选的,上述通过该第四级流水线,对该限速处理后的第三镜像元数据进行报文头编辑,得到处理后的第三镜像报文头,包括:第一设备可以通过该第四级流水线,对该限速处理后的第三镜像元数据进行报文头编辑,得到编辑后的第三镜像元数据;若所述第一设备与所述第三设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第三镜像元数据中的报文方向更新为所述第三设备的报文输入方向,得到更新后的第三镜像元数据,采用更新后的第三镜像元数据,更新所述原始报文头,得到第二候选报文头,根据所述第二候选报文头,确定处理后的第三镜像报文头。若该第一设备与所述第三设备不属于同一宿主设备,则采用所述编辑后的第三镜像元数据对该原始报文头进行更新,得到处理后的第三镜像报文头。
具体的,第一设备可以通过该第四级流水线,按照镜像报文流表中的报文头编辑方式,对该限速处理后的第三镜像元数据进行报文头编辑,得到编辑后的第三镜像元数据。若该第一设备与该第三设备属于同一宿主设备,表明原始数据报文的发送设备和镜像数据报文的分析设备属于同一宿主设备,则第一设备可以通过该第四级流水线,将该编辑后的第三镜像元数据中的报文方向更新为该第三设备的报文输入方向,得到更新后的第三镜像元数据,采用更新后的第三镜像元数据替换原始报文头中的原始元数据,得到第二候选报文头,根据该第二候选报文头,确定处理后的第三镜像报文头。若该第一设备与所述第三设备不属于同一宿主设备,则采用该编辑后的第三镜像元数据替换该原始报文头中的原始元数据,得到处理后的第三镜像报文头。换言之,也就是说,如果原始数据报文的发送端和分析设备均属于同一个宿主设备时,需要通过N级流水线对编辑后的第三镜像元数据进行新的一轮处理,才能得到处理后的第三镜像报文头。如果原始数据报文的发送端和分析设备不属于同一个宿主设备时,不需要通过N级流水线对编辑后的第三镜像元数据进行新的一轮处理,可以直接采用该编辑后的第三镜像元数据对原始报文头进行更新得到处理后的第三镜像报文头。
可选的,上述根据该第二候选报文头,确定处理后的第三镜像报文头,包括:通过循环路径,将第二候选报文头返回至第一级流水线,通过第一级流水线从第二候选报文头提取第四镜像元数据,将该第四镜像元数据传输至第二级流水线,该第四镜像元数据可以是第二候选报文头中的关键数据。通过第二级流水线,按照第四镜像元数据的报文方向获取第三设备的输入方向的报文处理方式,通过第三级流水和第四级流水根据第三设备的输入方向的报文处理方式,对第四镜像元数据进行处理,得到处理后的第四镜像元数据,采用处理后的第四镜像元数据替换原始报文头中的原始元数据,得到处理后的第三镜像报文头。
可选的,第三设备的输入方向的报文处理方式可以包括限速处理方式和报文头编辑方式,第一设备可以通过第三级流水线,按照限速处理方式,对第四镜像元数据进行限速处理,得到限速处理后的第四镜像元数据,按照报文头编辑方式,对限速处理后的第四镜像元数据进行报文头编辑,得到处理后的第四镜像元数据。
需要说明的是,当原始报文头对应的镜像报文头包括该第二镜像报文头时,对第二镜像报文头的处理过程,可以参考上文对第一镜像报文头的处理过程,重复之处,不再赘述。
S207、从该报文缓存器中读取该原始报文体,将该原始报文体和该处理后的原始报文头发送至第二设备,将该原始报文体和该处理后的镜像报文头发送至第三设备,该第三设备用于根据该原始报文体和该处理后的镜像报文头对该第一设备和第二设备进行检测。
可选的,若N级流水线的输出端的报文头需要通过循环路径返回该N级流水线的输入端,或,该N级流水线的输出端的报文头产生镜像,则增加计分板中的第一记分参数的值;若该N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则增加所述计分板中的第二记分参数的值;根据该第一记分参数的值与该第二记分参数的值,从该报文缓存器中删除该原始报文体。
可理解的是,N级流水线的输出端可以是指最后一级流水线的输出端,N级流水线的输入端可以是指第一级流水线的输入端。第一记分参数的初始值可以大于第二记分参数的初始值,如第一初始记分参数(score-line)的初始值为1,第二记分参数(score-cnt)的初始值为0。
具体的,原始数据报文需要产生多份镜像数据报文时,需要在N级流水线进行多轮处理,且因访问DDR存储器导致报文乱序处理,而各个数据报文之间相互独立处理,导致难以判断报文缓存器释放存储资源的条件,基于此,第一设备可以采用记分牌算法,释放多个数据报文之间的共享存储资源,能够提升云网络中的复杂场景下只能网卡或DPU中报文镜像的能力,带来极致的网络性能、为高流量、高转发的网络型应用场景提供超强的网络性能,支持100G网络带宽、超高包转发能力、满足超高内网传输需求,网络转发性能达到45MPPS,可以轻松应对高性能网络收发包场景。可以更好的服务AI推理加速、视频处理/离线渲染、数据库及缓存服务器、云原生应用等更多场景,兼顾性能与性价比。
具体实现中,若该N级流水线的输出端的报文头是从该N级流水线的输入端输入的,则根据针对该N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值;此处的报文头可以是指上文的镜像报文头、第一候选报文头、第二候选报文头等,此处的操作可以包括镜像操作和从循环路径返回至N级流水线的输入端中的至少一种。若该N级流水线的输出端的报文头是从该N级流水线的输入端输入的,表明报文头实际经过完整的N级流水线,则增加所述计分板中的第二记分参数的值。如第一初始记分参数(score-line)的初始值为1,第二记分参数(score-cnt)的初始值为0时,若该第一记分参数的值与该第二记分参数的值相等,则从该报文缓存器中删除原始报文体,这样有利于提高报文缓存器的利用率,降低报文缓存器的存储压力,在存在多分镜像数据报文且乱序处理的条件实现对共享存储空间的有序管理。
上述根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值,包括:若该N级流水线的输出端的报文头产生镜像,或,该所述N级流水线的输出端的报文头需要通过循环路径返回至该N级流水线的输入端,则按照第一数值,增加所述计分板中的第一记分参数的值,即第一记分参数的值在原来的基础上增加第一数值,如第一记分参数的值为2,第一数值为1,增加后的第一记分参数为3。若该N级流水线的输出端的报文头产生镜像,且该所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第二数值,增加该计分板中的第一记分参数的值;该第一数值小于该第二数值,即第二记分参数在原来的基础上增加第二数值,如第二记分参数的值为3,第一数值为2,增加后的第二记分参数为5。如第一数值、第二数值可以是预设设置的,本申请中以第一数值为1,第二数值为2为例进行说明。
需要说明的是,第一记分参数的值的更新条件包括N级流水线所输出的报文头的更新条件包括:1、报文头经过完整的N级流水线;2、报文头产生镜像;3、报文头需要通过循环路径;即当报文头满足条件1和2,或者,满足条件1和3时第一记分参数的值增加1;当报文头满足条件1、2、3时,第一记分参数的值增加2。第二记分参数的值的更新条件包括报文头经过完整的N级流水线。
本申请中,原始报文头的处理流程和镜像报文头的处理流程复用同一组流水线(即N级流水线),不需要为镜像报文头的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。另外,通过在报文缓存器中存储原始数据报文的原始报文体,只需要将原始数据报文的原始报文头输入至N级流水线中,可以降低所消耗的流量资源。同时,镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率。
在实际应用中,当第一设备、第二设备以及第三设备之间的设备关系场景如图2a所示时,需要N级流水线进行四轮处理,才能得到处理后的原始数据报文和处理后的镜像数据报文,具体实现过程如图5、图6、图7和图8所示,如下以N为四进行说明。
其中,图5为四级流水线的第一轮处理过程,具体的,第一设备可以将原始数据报文的原始报文体存储至报文缓存器中,将原始数据报文的原始报文头输入至第一级流水线中,第一级流水线提取原始报文头中的第一原始元数据,标记为元数据0(info0),将该元数据0传输至第二级流水线。第二级流水线采用元数据0中的信息组成key,计算key的哈希值,根据key的哈希值从原始报文流表中查询第一设备的报文输出方向的第一原始报文处理规则。根据原始报文流表判断该元数据0是否满足报文镜像规则,当满足报文镜像规则时,第二级流水线对元数据0进行复制,得到第一镜像元数据,标记为镜像元数据0(mirror_info0)。第二级流水线将元数据0和镜像元数据0传输至第三级流水线。
第三级流水线按照第一报文处理规则中的限速处理方式,对元数据0进行限速处理,将限速处理后的元数据0传输至第四级流水线,第四级流水线按照第一报文处理规则中的报文头编辑方式,对限速处理后的元数据0进行报文头编辑,将该限速处理后的元数据0的报文方向更新为第二设备的报文输入方向(ingress),得到编辑后的元数据0(即上文提到的第一候选报文)。此时如图2a中,由于第一设备与第二设备属于同一宿主设备,因此,可以将该编辑后的元数据0通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。此时,由于元数据0经过四级流水线,且产生镜像,且需要经过循环路径,因此,第四级流水线可以更新计分板,得到score-line=3,score-cnt=1。
第三级流水线可以将镜像元数据0传输至第四级流水线,第四级流水线,在该镜像元数据0中添加报文头信息(如添加VXLAN和UDP头),将报文头方向更新为该第一设备的报文输出方向(即egress),得到编辑后的镜像元数据0(即第一镜像报文头)。由于该编辑后的镜像元数据0还需要根据镜像报文流表处理,因此,可以将镜像元数据0通过循环路径返回第一级流水线进行新的一轮处理。由于镜像元数据0是在第二级流水线处生成的,即编辑后的镜像元数据0未经过完整的四级流水线,即不需要更新第一记分参数的值和第二记分参数的值,计分板仍为score-line=3,score-cnt=1。
其中,图6为四级流水线的第二轮处理过程,具体的,第一级流水线从编辑后的元数据0的提取元数据1(即第二原始元数据),从编辑后的镜像元数据0提取镜像元数据1(即第二镜像元数据)。由于编辑后的元数据0的报文方向为ingress,因此,编辑后的元数据0属于同一宿主设备转发,将元数据1的标记位flag更新为1,即标记位的值为1用于指示元数据1是属于同宿主设备转发的数据。由于编辑后的镜像元数据0的报文方向为egress,即编辑后的镜像元数据0为镜像报文头的再次查找,因此,将镜像元数据1的标记位flag更新为0,即标记位的值为0用于指示镜像元数据1是镜像再次查找,镜像再次查找是指需要查找镜像报文流表,根据镜像报文流表对镜像元数据1进行处理。
第二级流水线根据元数据1的标记位,从原始报文流表中查询第二设备的报文输入方向的第二原始报文处理规则,根据原始报文流表判断该元数据1是否满足报文镜像规则,如果满足,则对元数据1进行复制,得到第二镜像元数据,标记为镜像元数据1-1(mirror_info1_1)。将镜像元数据1-1和元数据1传输至第三级流水线,第三级流水线按照第二原始报文处理规则中的限速处理方式对元数据1进行限速处理,将限速处理后的元数据1传输至第四级流水线,第四级流水按照第二报文处理规则中的报文头编辑方式,对限速处理后的元数据1进行报文头编辑,得到处理后的原始报文头。从报文缓存器中读取原始报文体,将处理后的原始报文头和原始报文体作为处理后的原始数据报文,将处理后的原始数据报文发送至第二设备。此时,元数据1经过完整的四级流水线,且产生镜像,第四级流水线可以更新计分板,得到score-line=4,score-cnt=2。
第二级流水线根据镜像元数据1的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据1传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据1进行限速处理,得到限速处理后的镜像元数据1。将该限速处理后的镜像元数据1传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据1进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据1(即上文提到的第二候选报文头)。此时如图2a中,由于第一设备与第三设备属于同一宿主设备,因此,可以将编辑后的镜像元数据1通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。此时,镜像元数据1经过完整的四级流水线,且需要经过循环路径,因此,第四级流水线可以更新计分板,得到score-line=5,score-cnt=3。
第三级流水线可以将镜像元数据1-1传输至第四级流水线,第四级流水线,在该镜像元数据1-1中添加报文头信息(如添加VXLAN和UDP头),将报文头方向更新为该第一设备的报文输出方向(即egress),得到编辑后的镜像元数据1-1(即第二镜像报文头)。由于该编辑后的镜像元数据1-1还需要根据镜像报文流表处理,因此,可以将镜像元数据1-1通过循环路径返回第一级流水线进行新的一轮处理。由于镜像元数据1-1是在第二级流水线处生成的,即编辑后的镜像元数据1-1未经过完整的四级流水线,即不需要更新第一记分参数和第二记分参数的值,更新计分板仍为score-line=5,score-cnt=3。
其中,图7为四级流水线的第三轮处理过程,具体的,第一级流水线从编辑后的镜像元数据1的提取元数据2(即上文提到的第四镜像元数据),从编辑后的镜像元数据1-1提取镜像元数据2。由于编辑后的镜像元数据1的报文方向为ingress,因此,编辑后的镜像元数据1属于同一宿主设备转发,将元数据2的标记位flag更新为1,即标记位的值为1用于指示元数据2是属于同宿主设备转发的数据。由于编辑后的镜像元数据1-1的报文方向为egress,即编辑后的镜像元数据1-1为镜像报文头的再次查找,因此,将镜像元数据2的标记位flag更新为0,即标记位的值为0用于指示镜像元数据2是镜像再次查找。
第二级流水线根据元数据2的标记位,从原始报文流表中查询第三设备的报文输入方向的第三原始报文处理规则,将元数据2传输至第三级流水线,第三级流水线按照第三原始报文处理规则中的限速处理方式对元数据2进行限速处理,将限速处理后的元数据2传输至第四级流水线,第四级流水按照第三报文处理规则中的报文头编辑方式(如删除GRE头),对限速处理后的元数据2进行报文头编辑,得到处理后的第一镜像报文头。从报文缓存器中读取原始报文体,将处理后的第一镜像报文头和原始报文体作为处理后的第一镜像数据报文,将处理后的第一镜像数据报文发送至第三设备。处理后的第一镜像数据报文为对第一设备的报文输出端进行镜像得到的,第四级流水线可以更新计分板,得到score-line=5,score-cnt=4。
第二级流水线根据镜像元数据2的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据2传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据2进行限速处理,得到限速处理后的镜像元数据2。将该限速处理后的镜像元数据2传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据2进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据2(即上文提到的第二候选报文头)。此时如图2a中,由于第一设备与第三设备属于同一宿主设备,因此,可以将编辑后的镜像元数据2通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。此时,第四级流水线可以更新计分板,得到score-line=6,score-cnt=5。
其中,图8为四级流水线的第四轮处理过程,具体的,第一级流水线从编辑后的镜像元数据2的提取元数据3,由于编辑后的镜像元数据2的报文方向为ingress,因此,编辑后的镜像元数据2属于同一宿主设备转发,将元数据3的标记位flag更新为1,即标记位的值为1用于指示元数据3是属于同宿主设备转发的数据。
第二级流水线根据元数据3的标记位,从原始报文流表中查询第三设备的报文输入方向的第三原始报文处理规则,将元数据3传输至第三级流水线,第三级流水线按照第三原始报文处理规则中的限速处理方式对元数据3进行限速处理,将限速处理后的元数据3传输至第四级流水线,第四级流水按照第三报文处理规则中的报文头编辑方式(如删除GRE头),对限速处理后的元数据3进行报文头编辑,得到处理后的第二镜像报文头。从报文缓存器中读取原始报文体,将处理后的第二镜像报文头和原始报文体作为处理后的第二镜像数据报文,将处理后的第二镜像数据报文发送至第三设备。处理后的第二镜像数据报文是对第二设备的输入进行镜像得到的,第四级流水线可以更新计分板,得到score-line=6,score-cnt=6。此时由于第一记分参数的值和第二记分参数的值相同,因此,可以从报文缓存器中删除原始报文体,以释放报文缓存器的存储空间。
综上,在图2a场景下,四级流水线经过每轮处理后,计分板中的第一记分参数和第二记分参数的值如下表1所示,即记分板中score-line的初始值为1,score-cnt的初始值为0;在第一轮处理后,score-line=3,score-cnt=1;在第二轮处理后,score-line=5,score-cnt=3;在第三轮处理后,score-line=6,score-cnt=5;在第四轮处理后,score-line=6,score-cnt=6:
表1
需要说明的是,当第一设备、第二设备以及第三设备之间的设备关系场景如图2b所示时,需要四级流水线进行三轮处理,才能得到处理后的原始数据报文和处理后的镜像数据报文。
其中,在图2b的场景下,四级流水线的第一轮处理过程与上文图5的处理过程相同,四级流水线的第二轮处理过程具体包括:第一级流水线从编辑后的元数据0的提取元数据1(即第二原始元数据),从编辑后的镜像元数据0提取镜像元数据1(即第二镜像元数据)。由于编辑后的元数据0的报文方向为ingress,因此,编辑后的元数据0属于同一宿主设备转发,将元数据1的标记位flag更新为1,即标记位的值为1用于指示元数据1是属于同宿主设备转发的数据。由于编辑后的镜像元数据0的报文方向为egress,即编辑后的镜像元数据0为镜像报文头的再次查找,因此,将镜像元数据1的标记位flag更新为0,即标记位的值为0用于指示镜像元数据1是镜像再次查找。
第二级流水线根据元数据1的标记位,从原始报文流表中查询第二设备的报文输入方向的第二原始报文处理规则,根据原始报文流表判断该元数据1是否满足报文镜像规则,如果满足,则对元数据1进行复制,得到第二镜像元数据,标记为镜像元数据1-1(mirror_info1_1)。将镜像元数据1-1和元数据1传输至第三级流水线,第三级流水线按照第二原始报文处理规则中的限速处理方式对元数据1进行限速处理,将限速处理后的元数据1传输至第四级流水线,第四级流水按照第二报文处理规则中的报文头编辑方式,对限速处理后的元数据1进行报文头编辑,得到处理后的原始报文头。从报文缓存器中读取原始报文体,将处理后的原始报文头和原始报文体作为处理后的原始数据报文,将处理后的原始数据报文发送至第二设备。由于此处元数据1产生了镜像,且元数据1经过完整的四级流水线,因此,第四级流水线可以更新计分板,得到score-line=4,score-cnt=2。
第二级流水线根据镜像元数据1的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据1传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据1进行限速处理,得到限速处理后的镜像元数据1。将该限速处理后的镜像元数据1传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据1进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据1(即上文提到的第二候选报文头)。此时如图2b中,由于第一设备与第三设备不属于同一宿主设备,因此,不需要将编辑后的镜像元数据1通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。可以将编辑后的镜像元数据1,作为处理后的第一镜像报文头,从报文缓存器中读取原始报文体,将原始报文体和处理后的第一镜像报文头作为处理的第一镜像数据报文,将处理后的第一镜像数据报文发送至第三设备。此时,该镜像元数据1经过完整的四级流水线,且未产生镜像,不需要经过循环路径,即需要更新第二记分参数,不需要更新第一记分参数;第四级流水线可以更新计分板,得到score-line=4,score-cnt=3。
第三级流水线可以将镜像元数据1-1传输至第四级流水线,第四级流水线,在该镜像元数据1-1中添加报文头信息(如添加VXLAN和UDP头),将报文头方向更新为该第一设备的报文输出方向(即egress),得到编辑后的镜像元数据1-1(即第二镜像报文头)。由于该编辑后的镜像元数据1-1还需要根据镜像报文流表处理,因此,可以将镜像元数据1-1通过循环路径返回第一级流水线进行新的一轮处理。由于镜像元数据1-1是在第二级流水线处生成的,即编辑后的镜像元数据1-1未经过完整的四级流水线,即不需要更新第二记分参数的值,第四级流水线可以更新计分板,得到score-line=4,score-cnt=3。
在图2b的场景下,四级流水线的第三轮处理过程具体包括:第一级流水线从编辑后的镜像元数据1-1提取镜像元数据2。由于编辑后的镜像元数据1-1的报文方向为egress,即编辑后的镜像元数据1-1为镜像报文头的再次查找,因此,将镜像元数据2的标记位flag更新为0,即标记位的值为0用于指示镜像元数据2是镜像再次查找。
第二级流水线根据镜像元数据2的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据2传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据2进行限速处理,得到限速处理后的镜像元数据2。将该限速处理后的镜像元数据2传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据2进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据2(即上文提到的第二候选报文头)。此时如图2b中,由于第一设备与第三设备不属于同一宿主设备,因此,可以将编辑后的镜像元数据2,作为处理后的第二镜像报文头,从报文缓存器中读取原始报文体,将原始报文体和处理后的第二镜像报文头作为处理的第二镜像数据报文,将处理后的第二镜像数据报文发送至第三设备。此时,该镜像元数据2经过完整的四级流水线,且未产生镜像,不需要经过循环路径,即需要更新第二记分参数,不需要更新第一记分参数;第四级流水线可以更新计分板,得到score-line=4,score-cnt=4。此时由于第一记分参数的值和第二记分参数的值相同,因此,可以从报文缓存器中删除原始报文体,以释放报文缓存器的存储空间。
需要说明的是,当第一设备、第二设备以及第三设备之间的设备关系场景如图2c所示时,需要四级流水线进行两轮处理,才能得到处理后的原始数据报文和处理后的镜像数据报文。在图2c的场景下,四级流水线的第一轮处理过程包括:第一设备可以将原始数据报文的原始报文体存储至报文缓存器中,将原始数据报文的原始报文头输入至第一级流水线中,第一级流水线提取原始报文头中的第一原始元数据,标记为元数据0(info0),将该元数据0传输至第二级流水线。第二级流水线采用元数据0中的信息组成key,计算key的哈希值,根据key的哈希值从原始报文流表中查询第一设备的报文输出方向的第一原始报文处理规则。根据原始报文流表判断该元数据0是否满足报文镜像规则,当满足报文镜像规则时,第二级流水线对元数据0进行复制,得到第一镜像元数据,标记为镜像元数据0(mirror_info0)。第二级流水线将元数据0和镜像元数据0传输至第三级流水线。
第三级流水线按照第一报文处理规则中的限速处理方式,对元数据0进行限速处理,将限速处理后的元数据0传输至第四级流水线,第四级流水线按照第一报文处理规则中的报文头编辑方式,对限速处理后的元数据0进行报文头编辑,将该限速处理后的元数据0的报文方向更新为第二设备的报文输入方向(ingress),得到编辑后的元数据0(即上文提到的第一候选报文)。此时如图2c中,由于第一设备与第二设备不属于同一宿主设备,因此,不需要将该编辑后的元数据0通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。将编辑后的元数据0,确定为处理后的原始报文头,从报文缓存器中读取原始报文体,将处理后的原始报文头和原始报文体,发送至第二设备,此时由于元数据0产生了镜像,因此,第四级流水线可以更新计分板,得到score-line=2,score-cnt=1。
第三级流水线可以将镜像元数据0传输至第四级流水线,第四级流水线,在该镜像元数据0中添加报文头信息(如添加VXLAN和UDP头),将报文头方向更新为该第一设备的报文输出方向(即egress),得到编辑后的镜像元数据0(即第一镜像报文头)。由于该编辑后的镜像元数据0还需要根据镜像报文流表处理,因此,可以将镜像元数据0通过循环路径返回第一级流水线进行新的一轮处理。由于镜像元数据0是在第二级流水线处生成的,即编辑后的镜像元数据0未经过完整的四级流水线,即不需要更新第二记分参数和第一记分参数的值,计分板仍为score-line=2,score-cnt=1。
在图2c的场景下,四级流水线的第二轮处理过程包括:第一级流水线从编辑后的镜像元数据0提取镜像元数据1(即第二镜像元数据)。由于编辑后的镜像元数据0的报文方向为egress,即编辑后的镜像元数据0为镜像报文头的再次查找,因此,将镜像元数据1的标记位flag更新为0,即标记位的值为0用于指示镜像元数据1是镜像再次查找。
第二级流水线根据镜像元数据1的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据1传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据1进行限速处理,得到限速处理后的镜像元数据1。将该限速处理后的镜像元数据1传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据1进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据1(即上文提到的第二候选报文头)。此时如图2c中,由于第一设备与第三设备不属于同一宿主设备,因此,不需要将编辑后的镜像元数据1通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。可以将编辑后的镜像元数据1,作为处理后的第一镜像报文头,从报文缓存器中读取原始报文体,将原始报文体和处理后的第一镜像报文头作为处理的第一镜像数据报文,将处理后的第一镜像数据报文发送至第三设备。此时,第四级流水线可以更新计分板,得到score-line=2,score-cnt=2。此时由于第一记分参数的值和第二记分参数的值相同,因此,可以从报文缓存器中删除原始报文体,以释放报文缓存器的存储空间。
需要说明的是,当第一设备、第二设备以及第三设备之间的设备关系场景如图2d所示时,需要四级流水线进行两轮处理,才能得到处理后的原始数据报文和处理后的镜像数据报文。图2d场景下获取处理后的镜像数据报文和处理后的原始数据报文的过程,与图2c场景下获取处理后的镜像数据报文和处理后的原始数据报文的过程相同。
需要说明的是,当第一设备、第二设备以及第三设备之间的设备关系场景如图2e所示时,需要四级流水线进行三轮处理,才能得到处理后的原始数据报文和处理后的镜像数据报文。在图2e的场景下,四级流水线的第一轮处理过程包括:第一设备可以将原始数据报文的原始报文体存储至报文缓存器中,将原始数据报文的原始报文头输入至第一级流水线中,第一级流水线提取原始报文头中的第一原始元数据,标记为元数据0(info0),将该元数据0传输至第二级流水线。第二级流水线采用元数据0中的信息组成key,计算key的哈希值,根据key的哈希值从原始报文流表中查询第一设备的报文输出方向的第一原始报文处理规则。根据原始报文流表判断该元数据0是否满足报文镜像规则,当满足报文镜像规则时,第二级流水线对元数据0进行复制,得到第一镜像元数据,标记为镜像元数据0(mirror_info0)。第二级流水线将元数据0和镜像元数据0传输至第三级流水线。
第三级流水线按照第一报文处理规则中的限速处理方式,对元数据0进行限速处理,将限速处理后的元数据0传输至第四级流水线,第四级流水线按照第一报文处理规则中的报文头编辑方式,对限速处理后的元数据0进行报文头编辑,将该限速处理后的元数据0的报文方向更新为第二设备的报文输入方向(ingress),得到编辑后的元数据0(即上文提到的第一候选报文)。此时如图2e中,由于第一设备与第二设备不属于同一宿主设备,因此,不需要将该编辑后的元数据0通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。将编辑后的元数据0,确定为处理后的原始报文头,从报文缓存器中读取原始报文体,将处理后的原始报文头和原始报文体,发送至第二设备,此时由于元数据0产生了镜像,因此,第四级流水线可以更新计分板,得到score-line=2,score-cnt=1。
第三级流水线可以将镜像元数据0传输至第四级流水线,第四级流水线,在该镜像元数据0中添加报文头信息(如添加VXLAN和UDP头),将报文头方向更新为该第一设备的报文输出方向(即egress),得到编辑后的镜像元数据0(即第一镜像报文头)。由于该编辑后的镜像元数据0还需要根据镜像报文流表处理,因此,可以将镜像元数据0通过循环路径返回第一级流水线进行新的一轮处理。由于镜像元数据0是在第二级流水线处生成的,即编辑后的镜像元数据0未经过完整的四级流水线,即不需要更新第二记分参数和第一记分参数的值,计分板仍为score-line=2,score-cnt=1。
在图2e的场景下,四级流水线的第二轮处理过程包括:第一级流水线从编辑后的镜像元数据0提取镜像元数据1(即第二镜像元数据)。由于编辑后的镜像元数据0的报文方向为egress,即编辑后的镜像元数据0为镜像报文头的再次查找,因此,将镜像元数据1的标记位flag更新为0,即标记位的值为0用于指示镜像元数据1是镜像再次查找。
第二级流水线根据镜像元数据1的标记位或报文方向,获取原始数据报文对应的镜像报文流表,将该镜像元数据1传输至第三级流水线,第三级流水线可以按照镜像报文流表中的限速处理方式,对镜像元数据1进行限速处理,得到限速处理后的镜像元数据1。将该限速处理后的镜像元数据1传输至第四级流水线,第四级流水线按照镜像报文流表中的报文头编辑方式,对限速处理后的镜像元数据1进行报文头编辑,将报文方向更新为第三设备的报文输入方向(即ingress),得到编辑后的镜像元数据1(即上文提到的第二候选报文头)。此时如图2e中,由于第一设备与第三设备属于同一宿主设备。因此,可以将编辑后的镜像元数据1通过循环路径loop_path重新返回第一级流水线进行新的一轮处理。此时,镜像元数据1经过完整的四级流水线,且需要经过循环路径,因此,第四级流水线可以更新计分板,得到score-line=3,score-cnt=2。
在图2e的场景下,四级流水线的第三轮处理过程包括:第一级流水线从编辑后的镜像元数据1的提取元数据2(即上文提到的第四镜像元数据),由于编辑后的镜像元数据1的报文方向为ingress,因此,编辑后的镜像元数据1属于同一宿主设备转发,将元数据2的标记位flag更新为1,即标记位的值为1用于指示元数据2是属于同宿主设备转发的数据。
第二级流水线根据元数据2的标记位,从原始报文流表中查询第三设备的报文输入方向的第三原始报文处理规则,将元数据2传输至第三级流水线,第三级流水线按照第三原始报文处理规则中的限速处理方式对元数据2进行限速处理,将限速处理后的元数据2传输至第四级流水线,第四级流水按照第三报文处理规则中的报文头编辑方式(如删除GRE头),对限速处理后的元数据2进行报文头编辑,得到处理后的第一镜像报文头。从报文缓存器中读取原始报文体,将处理后的第一镜像报文头和原始报文体作为处理后的第一镜像数据报文,将处理后的第一镜像数据报文发送至第三设备。处理后的第一镜像数据报文为对第一设备的报文输出端进行镜像得到的,第四级流水线可以更新计分板,得到score-line=3,score-cnt=3。此时由于第一记分参数的值和第二记分参数的值相同,因此,可以从报文缓存器中删除原始报文体,以释放报文缓存器的存储空间。
请参见图9,是本申请实施例提供的一种数据处理装置的结构示意图。如图9所示,该数据处理装置可以包括:
存储模块911,用于将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数;
第一处理模块912,用于通过所述N级流水线,根据所述原始数据报文对应的原始报文流表,对所述原始报文头进行处理,得到处理后的原始报文头;
生成模块913,用于根据所述原始报文头,生成所述原始报文头对应的镜像报文头;
第二处理模块914,用于通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
发送模块915,用于从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
可选的,所述N为四,所述第一处理模块912包括提取单元91a、查询单元92a、第一处理单元93a;
提取单元91a,用于通过第一级流水线,从所述原始报文头中提取第一原始元数据,将所述第一原始元数据传输至第二级流水线;
查询单元92a,用于通过所述第二级流水线,从所述原始报文流表中,查询所述第一设备的报文输出方向的第一原始报文处理规则;
第一处理单元93a,用于通过第三级流水线和第四级流水线,根据所述第一原始报文处理规则,对所述第一原始元数据进行处理,得到处理后的原始报文头。
可选的,所述第一处理单元93a通过第三级流水线和第四级流水线,根据所述第一原始报文处理规则,对所述原始报文头进行处理,得到处理后的原始报文头,包括:
通过所述第三级流水线对所述第一原始元数据进行限速处理,将限速处理后的第一原始元数据传输至第四级流水线;
通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到处理后的原始报文头。
可选的,第一处理单元93a通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到处理后的原始报文头,包括:
通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到编辑后的第一原始元数据;
若所述第一设备与所述第二设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第一原始元数据中的报文方向更新为所述第二设备的报文输入方向,得到更新后的第一原始元数据,根据所述更新后的第一原始元数据对所述原始报文头进行更新,得到第一候选报文头,根据所述第一候选报文头,确定处理后的原始报文头;
若所述第一设备与所述第二设备不属于同一宿主设备,则采用所述编辑后的第一原始元数据更新所述原始报文头,得到处理后的原始报文头。
可选的,第一处理单元93a根据所述第一候选报文头,确定处理后的原始报文头,包括:
通过循环路径,将所述第一候选报文头返回至所述第一级流水线;
通过所述第一级流水线,从所述第一候选报文头中提取第二原始元数据,将所述第二原始元数据传输至所述第二级流水线;
根据所述第二原始元数据中的报文方向,从所述原始报文流表中,查询所述第二设备的报文输入方向的第二原始报文处理规则;
通过所述第三级流水线和第四级流水线,根据所述第二原始报文处理规则,对所述第二原始元数据进行处理,得到处理后的原始报文头。
可选的,生成模块913根据所述原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第一原始元数据进行复制,得到第一镜像元数据,将所述第一镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第一镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第一镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第一镜像元数据;
采用所述更新后的第一镜像元数据对所述原始报文头进行更新,得到第一镜像报文头;所述原始报文头对应的镜像报文头包括所述第一镜像报文头。
可选的,生成模块913根据所述原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第二原始元数据进行复制,得到第二镜像元数据,将所述第二镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第二镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第二镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第二镜像元数据;采用所述更新后第二镜像元数据更新所述原始报文头,得到第二镜像报文头;所述原始报文头对应的镜像报文头包括所述第二镜像报文头。
可选的,第二处理模块914包括发送单元94b、传输单元95b、获取单元96b以及第二处理单元97b;
发送单元94b,用于通过循环路径,从所述第四级流水线将所述第一镜像报文头返回至所述第一级流水线;
传输单元95b,用于通过所述第一级流水线,从所述第一镜像报文头中提取第三镜像元数据,将所述第三镜像元数据传输至所述第二级流水线;
获取单元96b,用于通过所述第二级流水线,根据所述第三镜像元数据中的报文方向,获取所述原始数据报文对应的镜像报文流表;
第二处理单元97b,用于通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头。
可选的,第二处理单元97b通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头,包括:
通过所述第三级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行限速处理,将限速处理后的第三镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头;所述处理后的镜像报文头包括所述处理后的第三镜像报文头。
可选的,第二处理单元97b通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行报文头编辑,得到处理后的第三镜像报文头,包括:
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行报文头编辑,得到编辑后的第三镜像元数据;
若所述第一设备与所述第三设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第三镜像元数据中的报文方向更新为所述第三设备的报文输入方向,得到更新后的第三镜像元数据,采用更新后的第三镜像元数据,更新所述原始报文头,得到第二候选报文头,根据所述第二候选报文头,确定处理后的第三镜像报文头;
若所述第一设备与所述第三设备不属于同一宿主设备,则采用所述编辑后的第三镜像元数据对所述原始报文头进行更新,得到处理后的第三镜像报文头。
可选的,该方法还包括第一增加模块916、第二增加模块917和删除模块918;
第一增加模块916,用于若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值;
第二增加模块917,用于若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则增加所述计分板中的第二记分参数的值;
删除模块918,用于根据所述第一记分参数的值与所述第二记分参数的值,从所述报文缓存器中删除所述原始报文体。
可选的,所述第一增加模块916根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值,包括:
若所述N级流水线的输出端的报文头产生镜像,或,所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第一数值,增加所述计分板中的第一记分参数的值;若所述N级流水线的输出端的报文头产生镜像,且所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第二数值,增加所述计分板中的第一记分参数的值;所述第一数值小于所述第二数值。
本申请中,原始报文头的处理流程和镜像报文头的处理流程复用同一组流水线(即N级流水线),不需要为镜像报文头的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。另外,通过在报文缓存器中存储原始数据报文的原始报文体,只需要将原始数据报文的原始报文头输入至N级流水线中,可以降低所消耗的流量资源。同时,镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率。
请参见图10,是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,上述计算机设备1000可以是指终端或服务器,包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一条通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(DiSPlay)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatileMeMory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个在远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。
在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于提供输入的接口;而处理器1001可以用于通过存储器1005中存储的计算机程序,以执行:
将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为正整数;
通过所述N级流水线,根据所述原始数据报文对应的原始报文流表,对所述原始报文头进行处理,得到处理后的原始报文头;
根据所述原始报文头,生成所述原始报文头对应的镜像报文头;
通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
可选的,所述N为四,所述通过所述N级流水线,处理器1001用于通过存储器1005中存储的计算机程序,以执行根据所述原始数据报文对应的原始报文流表,对所述原始报文头进行处理,得到处理后的原始报文头,包括:
通过第一级流水线,从所述原始报文头中提取第一原始元数据,将所述第一原始元数据传输至第二级流水线;
通过所述第二级流水线,从所述原始报文流表中,查询所述第一设备的报文输出方向的第一原始报文处理规则;
通过第三级流水线和第四级流水线,根据所述第一原始报文处理规则,对所述第一原始元数据进行处理,得到处理后的原始报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行通过第三级流水线和第四级流水线,根据所述第一原始报文处理规则,对所述原始报文头进行处理,得到处理后的原始报文头,包括:
通过所述第三级流水线对所述第一原始元数据进行限速处理,将限速处理后的第一原始元数据传输至第四级流水线;
通过所述第四级流水线,对所述限速处理后的第一原始元数据进行报文头编辑,得到处理后的原始报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行通过所述第四级流水线,对所述限速处理后的第一原始元数据进行报文头编辑,得到处理后的原始报文头,包括:
通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到编辑后的第一原始元数据;
若所述第一设备与所述第二设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第一原始元数据中的报文方向更新为所述第二设备的报文输入方向,得到更新后的第一原始元数据,根据所述更新后的第一原始元数据对所述原始报文头进行更新,得到第一候选报文头,根据所述第一候选报文头,确定处理后的原始报文头;
若所述第一设备与所述第二设备不属于同一宿主设备,则采用所述编辑后的第一原始元数据更新所述原始报文头,得到处理后的原始报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行根据所述第一候选报文头,确定处理后的原始报文头,包括:
通过循环路径,从所述第四级流水线将所述第一候选报文头返回至所述第一级流水线;
通过所述第一级流水线,从所述第一候选报文头中提取第二原始元数据,将所述第二原始元数据传输至所述第二级流水线;
根据所述第二原始元数据中的报文方向,从所述原始报文流表中,查询所述第二设备的报文输入方向的第二原始报文处理规则;
通过所述第三级流水线和第四级流水线,根据所述第二原始报文处理规则,对所述第二原始元数据进行处理,得到处理后的原始报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行根据所述原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第一原始元数据进行复制,得到第一镜像元数据,将所述第一镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第一镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第一镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第一镜像元数据;采用所述更新后的第一镜像元数据对所述原始报文头进行更新,得到第一镜像报文头;所述原始报文头对应的镜像报文头包括所述第一镜像报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行根据所述原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第二原始元数据进行复制,得到第二镜像元数据,将所述第二镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第二镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第二镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第二镜像元数据;采用所述更新后第二镜像元数据更新所述原始报文头,得到第二镜像报文头;所述原始报文头对应的镜像报文头包括所述第二镜像报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头,包括:
通过循环路径,从所述第四级流水线将所述第一镜像报文头返回至所述第一级流水线;
通过所述第一级流水线,从所述第一镜像报文头中提取第三镜像元数据,将所述第三镜像元数据传输至所述第二级流水线;
通过所述第二级流水线,根据所述第三镜像元数据中的报文方向,获取所述原始数据报文对应的镜像报文流表;
通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头,包括:
通过所述第三级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行限速处理,将限速处理后的第三镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头;所述处理后的镜像报文头包括所述处理后的第三镜像报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头,包括:
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到编辑后的第三镜像元数据;
若所述第一设备与所述第三设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第三镜像元数据中的报文方向更新为所述第三设备的报文输入方向,得到更新后的第三镜像元数据,采用更新后的第三镜像元数据,更新所述原始报文头,得到第二候选报文头,根据所述第二候选报文头,确定处理后的第三镜像报文头;
若所述第一设备与所述第三设备不属于同一宿主设备,则采用所述编辑后的第三镜像元数据对所述原始报文头进行更新,得到处理后的第三镜像报文头。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值;
若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则增加所述计分板中的第二记分参数的值;
根据所述第一记分参数的值与所述第二记分参数的值,从所述报文缓存器中删除所述原始报文体。
可选的,处理器1001用于通过存储器1005中存储的计算机程序,以执行:
若所述N级流水线的输出端的报文头产生镜像,或,所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第一数值,增加所述计分板中的第一记分参数的值;
若所述N级流水线的输出端的报文头产生镜像,且所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第二数值,增加所述计分板中的第一记分参数的值;所述第一数值小于所述第二数值。
本申请中,原始报文头的处理流程和镜像报文头的处理流程复用同一组流水线(即N级流水线),不需要为镜像报文头的处理流程单独创建流水线或电路,可以提高流水线的利用率,降低所消耗的硬件资源。另外,通过在报文缓存器中存储原始数据报文的原始报文体,只需要将原始数据报文的原始报文头输入至N级流水线中,可以降低所消耗的流量资源。同时,镜像数据报文和原始数据报文可以共享该报文缓存器的存储空间,即镜像数据报文和原始数据报文共享报文缓存器中的原始报文体,不需要单独为镜像数据报文存储原始报文体,降低所消耗的存储资源,提高报文缓存器的利用率。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署在一个地点的至少两个计算机设备上执行,又或者,在分布在至少两个地点且通过通信网络互连的至少两个计算机设备上执行,分布在至少两个地点且通过通信网络互连的至少两个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的中部存储单元,例如计算机设备的硬盘或中存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(SMart Media card,SMC),安全数字(Secure digital,SD)卡,闪存卡(flaSh card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的中部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同媒体中容,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本申请书中相关数据(如用户的交行为对应的初始行为特征,以及用户的对象特征等)收集处理在实例应用时应该严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,上述计算机程序被处理器执行时实现前文对应实施例中对上述数据处理方法、解码方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品的实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程网络连接设备的处理器以产生一个机器,使得通过计算机或其他可编程网络连接设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程网络连接设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程网络连接设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为四;
通过第一级流水线,从所述原始数据报文的原始报文头中提取第一原始元数据,将所述第一原始元数据传输至第二级流水线;
通过所述第二级流水线,从所述原始数据报文对应的原始报文流表中,查询所述第一设备的报文输出方向的第一原始报文处理规则;
通过第三级流水线根据所述第一原始报文处理规则中的限速处理方式,对所述第一原始元数据进行限速处理,将限速处理后的第一原始元数据传输至第四级流水线;
通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到编辑后的第一原始元数据;
若所述第一设备与第二设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第一原始元数据中的报文方向更新为所述第二设备的报文输入方向,得到更新后的第一原始元数据,根据所述更新后的第一原始元数据对所述原始报文头进行更新,得到第一候选报文头,通过循环路径,从所述第四级流水线将所述第一候选报文头返回至所述第一级流水线;通过所述第一级流水线,从所述第一候选报文头中提取第二原始元数据,将所述第二原始元数据传输至所述第二级流水线;根据所述第二原始元数据中的报文方向,从所述原始报文流表中,查询所述第二设备的报文输入方向的第二原始报文处理规则;通过所述第三级流水线和第四级流水线,根据所述第二原始报文处理规则,对所述第二原始元数据进行处理,得到处理后的原始报文头;
若所述第一设备与所述第二设备不属于同一宿主设备,则采用所述编辑后的第一原始元数据更新所述原始报文头,得到处理后的原始报文头;
根据所述原始数据报文的原始报文头,生成所述原始报文头对应的镜像报文头;
通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至所述第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始数据报文的原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第一原始元数据进行复制,得到第一镜像元数据,将所述第一镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第一镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第一镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第一镜像元数据;
采用所述更新后的第一镜像元数据对所述原始报文头进行更新,得到第一镜像报文头;所述原始报文头对应的镜像报文头包括所述第一镜像报文头。
3.根据权利要求1所述的方法,其特征在于,所述根据所述原始数据报文的原始报文头,生成所述原始报文头对应的镜像报文头,包括:
通过所述第二级流水线,对所述第二原始元数据进行复制,得到第二镜像元数据,将所述第二镜像元数据传输至所述第三级流水线;
通过所述第三级流水线,将所述第二镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,在所述第二镜像元数据中添加报文头信息,将报文头方向更新为所述第一设备的报文输出方向,得到更新后的第二镜像元数据;
采用所述更新后的第二镜像元数据更新所述原始报文头,得到第二镜像报文头;所述原始报文头对应的镜像报文头包括所述第二镜像报文头。
4.根据权利要求2所述的方法,其特征在于,所述通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头,包括:
通过循环路径,从所述第四级流水线将所述第一镜像报文头返回至所述第一级流水线;
通过所述第一级流水线,从所述第一镜像报文头中提取第三镜像元数据,将所述第三镜像元数据传输至所述第二级流水线;
通过所述第二级流水线,根据所述第三镜像元数据中的报文方向,获取所述原始数据报文对应的镜像报文流表;
通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头。
5.根据权利要求4所述的方法,其特征在于,所述通过所述第三级流水线和所述第四级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行处理,得到处理后的镜像报文头,包括:
通过所述第三级流水线,根据所述镜像报文流表,对所述第三镜像元数据进行限速处理,将限速处理后的第三镜像元数据传输至所述第四级流水线;
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头;所述处理后的镜像报文头包括所述处理后的第三镜像报文头。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到处理后的第三镜像报文头,包括:
通过所述第四级流水线,对所述限速处理后的第三镜像元数据进行镜像报文头编辑,得到编辑后的第三镜像元数据;
若所述第一设备与所述第三设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第三镜像元数据中的报文方向更新为所述第三设备的报文输入方向,得到更新后的第三镜像元数据,采用更新后的第三镜像元数据,更新所述原始报文头,得到第二候选报文头,根据所述第二候选报文头,确定处理后的第三镜像报文头;
若所述第一设备与所述第三设备不属于同一宿主设备,则采用所述编辑后的第三镜像元数据对所述原始报文头进行更新,得到处理后的第三镜像报文头。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值;
若所述N级流水线的输出端的报文头是从所述N级流水线的输入端输入的,则增加所述计分板中的第二记分参数的值;
根据所述第一记分参数的值与所述第二记分参数的值,从所述报文缓存器中删除所述原始报文体。
8.根据权利要求7所述的方法,其特征在于,所述根据针对所述N级流水线的输出端的报文头所执行的操作,增加计分板中的第一记分参数的值,包括:
若所述N级流水线的输出端的报文头产生镜像,或,所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第一数值,增加所述计分板中的第一记分参数的值;
若所述N级流水线的输出端的报文头产生镜像,且所述N级流水线的输出端的报文头需要通过循环路径返回至所述N级流水线的输入端,则按照第二数值,增加所述计分板中的第一记分参数的值;所述第一数值小于所述第二数值。
9.一种数据处理装置,其特征在于,包括:
存储模块,用于将第一设备中待发送的原始数据报文的原始报文体,存储至N级流水线对应的报文缓存器中;所述N为四;
第一处理模块,用于通过所述N级流水线,根据所述原始数据报文对应的原始报文流表,对所述原始数据报文的原始报文头进行处理,得到处理后的原始报文头;
所述第一处理模块包括提取单元、查询单元以及第一处理单元;
所述提取单元,用于通过第一级流水线,从所述原始报文头中提取第一原始元数据,将所述第一原始元数据传输至第二级流水线;
所述查询单元,用于通过所述第二级流水线,从所述原始报文流表中,查询所述第一设备的报文输出方向的第一原始报文处理规则;
所述第一处理单元,用于通过第三级流水线根据所述第一原始报文处理规则中的限速处理方式,对所述第一原始元数据进行限速处理,将限速处理后的第一原始元数据传输至第四级流水线;通过所述第四级流水线,对所述限速处理后的第一原始元数据进行原始报文头编辑,得到编辑后的第一原始元数据;若所述第一设备与第二设备属于同一宿主设备,则通过所述第四级流水线,将所述编辑后的第一原始元数据中的报文方向更新为所述第二设备的报文输入方向,得到更新后的第一原始元数据,根据所述更新后的第一原始元数据对所述原始报文头进行更新,得到第一候选报文头,通过循环路径,从所述第四级流水线将所述第一候选报文头返回至所述第一级流水线;通过所述第一级流水线,从所述第一候选报文头中提取第二原始元数据,将所述第二原始元数据传输至所述第二级流水线;根据所述第二原始元数据中的报文方向,从所述原始报文流表中,查询所述第二设备的报文输入方向的第二原始报文处理规则;通过所述第三级流水线和第四级流水线,根据所述第二原始报文处理规则,对所述第二原始元数据进行处理,得到处理后的原始报文头;若所述第一设备与所述第二设备不属于同一宿主设备,则采用所述编辑后的第一原始元数据更新所述原始报文头,得到处理后的原始报文头;
生成模块,用于根据所述原始数据报文的原始报文头,生成所述原始报文头对应的镜像报文头;
第二处理模块,用于通过所述N级流水线,根据所述原始数据报文对应的镜像报文流表,对所述镜像报文头进行处理,得到处理后的镜像报文头;
发送模块,用于从所述报文缓存器中读取所述原始报文体,将所述原始报文体和所述处理后的原始报文头发送至所述第二设备,将所述原始报文体和所述处理后的镜像报文头发送至第三设备,所述第三设备用于根据所述原始报文体和所述处理后的镜像报文头对所述第一设备和所述第二设备进行检测。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311285110.2A CN117041272B (zh) | 2023-10-07 | 2023-10-07 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311285110.2A CN117041272B (zh) | 2023-10-07 | 2023-10-07 | 数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117041272A CN117041272A (zh) | 2023-11-10 |
CN117041272B true CN117041272B (zh) | 2024-01-30 |
Family
ID=88635788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311285110.2A Active CN117041272B (zh) | 2023-10-07 | 2023-10-07 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117041272B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105207958A (zh) * | 2014-06-05 | 2015-12-30 | 中兴通讯股份有限公司 | 一种元数据处理方法、交换机及控制器 |
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和系统 |
US10230810B1 (en) * | 2016-03-18 | 2019-03-12 | Barefoot Networks, Inc. | Storing packet data in mirror buffer |
CN113259143A (zh) * | 2020-02-07 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 信息处理方法、设备、系统及存储介质 |
CN114172854A (zh) * | 2021-11-30 | 2022-03-11 | 新华三大数据技术有限公司 | 报文镜像、镜像配置方法、虚拟交换机及镜像配置装置 |
CN116134799A (zh) * | 2020-11-30 | 2023-05-16 | 华为技术有限公司 | 一种报文处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11876696B2 (en) * | 2021-08-31 | 2024-01-16 | Pensando Systems Inc. | Methods and systems for network flow tracing within a packet processing pipeline |
-
2023
- 2023-10-07 CN CN202311285110.2A patent/CN117041272B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105207958A (zh) * | 2014-06-05 | 2015-12-30 | 中兴通讯股份有限公司 | 一种元数据处理方法、交换机及控制器 |
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和系统 |
US10230810B1 (en) * | 2016-03-18 | 2019-03-12 | Barefoot Networks, Inc. | Storing packet data in mirror buffer |
CN113259143A (zh) * | 2020-02-07 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 信息处理方法、设备、系统及存储介质 |
CN116134799A (zh) * | 2020-11-30 | 2023-05-16 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN114172854A (zh) * | 2021-11-30 | 2022-03-11 | 新华三大数据技术有限公司 | 报文镜像、镜像配置方法、虚拟交换机及镜像配置装置 |
Non-Patent Citations (1)
Title |
---|
一种缓存数据流信息的处理器前端设计;刘炳涛;王达;叶笑春;张浩;范东睿;张志敏;;计算机研究与发展(06);第1221-1237页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117041272A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391500B (zh) | 一种配置管理方法、装置及设备 | |
WO2022083417A1 (zh) | 一种数据包处理方法、装置、电子设备、计算机可读存储介质以及计算机程序产品 | |
CN105684382A (zh) | 报文的控制方法、交换机及控制器 | |
US10284460B1 (en) | Network packet tracing | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
CN110647698B (zh) | 页面加载方法、装置、电子设备及可读存储介质 | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
CN106921578B (zh) | 一种转发表项的生成方法和装置 | |
CN107347062A (zh) | 一种日志数据处理的方法、电子设备和可读存储介质 | |
CN113726907B (zh) | 一种路由处理方法、网元设备、装置以及可读存储介质 | |
CN112887229A (zh) | 一种会话信息同步方法及装置 | |
CN104852955B (zh) | 一种数据处理方法及系统 | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
US9692723B2 (en) | Network management of devices residing behind a network device | |
CN113992559A (zh) | 消息处理方法、装置、设备及计算机可读存储介质 | |
CN117041272B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN106506400B (zh) | 一种数据流识别方法及出口设备 | |
WO2015154393A1 (zh) | 业务节点能力处理方法、装置、业务分类器及业务控制器 | |
CN116015796A (zh) | 一种流表更新方法、装置、防火墙设备及存储介质 | |
CN115499230A (zh) | 网络攻击检测方法和装置、设备及存储介质 | |
EP3408989B1 (en) | Detecting malware on spdy connections | |
CN115361455A (zh) | 一种数据传输存储方法、装置以及计算机设备 | |
CN113315736B (zh) | 一种业务进程间的数据同步方法和装置 | |
CN109451030B (zh) | 一种视联网文件的下载方法和系统 | |
JP2022007690A (ja) | ネットワークサービスシステム、ネットワーク管理方法およびコンピュータプログラム |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40097756 Country of ref document: HK |