CN117560276A - 一种报文处理方法、装置及系统 - Google Patents

一种报文处理方法、装置及系统 Download PDF

Info

Publication number
CN117560276A
CN117560276A CN202410038517.3A CN202410038517A CN117560276A CN 117560276 A CN117560276 A CN 117560276A CN 202410038517 A CN202410038517 A CN 202410038517A CN 117560276 A CN117560276 A CN 117560276A
Authority
CN
China
Prior art keywords
message
capturing
capture
block
programmable gate
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
Application number
CN202410038517.3A
Other languages
English (en)
Other versions
CN117560276B (zh
Inventor
朱天全
鲍胜青
蒋贺雷
何铁军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Opwill Technologies Beijing Co ltd
Original Assignee
Opwill Technologies Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Opwill Technologies Beijing Co ltd filed Critical Opwill Technologies Beijing Co ltd
Priority to CN202410038517.3A priority Critical patent/CN117560276B/zh
Publication of CN117560276A publication Critical patent/CN117560276A/zh
Application granted granted Critical
Publication of CN117560276B publication Critical patent/CN117560276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文处理方法、装置及系统,应用于捕获设备,所述方法包括:在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。本发明的方案可以抓取业务设备异常时的畸形报文,进而方便业务设备异常问题定位。

Description

一种报文处理方法、装置及系统
技术领域
本发明涉及报文捕获方法技术领域,特别是指一种报文处理方法、装置及系统。
背景技术
以太网是目前应用最广泛计算机局域网技术,按照速率可以分为多种速率的以太网。以太网设备按照网络拓扑可以分为以太网终端和以太网网络设备,以太网终端指具有以太网网卡的计算机,以太网网络设备指以太网交换机/路由器/防火墙等网络设备。
随着网络业务的丰富,出现越来越多的更加“智能”的网络设备(比如防火墙/负载分担/分流器/DPI等),能够对高层网络协议(或者说业务层面)进行分析和处理,一般使用CPU/NP/FPGA这类可编程硬件对网络报文进行智能处理。
对于一个“智能”网络设备,其产品生命周期可以简单分为研发/运维两个阶段,在研发阶段会面临各种产品问题,由于此时产品还未发布,测试环境可控,比较容易定位和解决问题。
在运维阶段,产品部署在客户生产环境,会经常面临各种意想不到的问题,比如各种异常/畸形网络报文,如果设备的业务逻辑可靠性/完备性不足,则会导致设备运行异常;这种设备异常,一方面在实验室环境很难复现,一方面在生产环境几周/几个月才能发生一次,导致设备厂家需要投入大量人力物力定位和解决问题。
在客户生产环境分析定位问题,网络抓包就成为关键手段。
(1)以太网速度小于或者等于1000M,采用开源抓包软件即可满足需求;此类软件基于计算机硬件,使用以太网网卡,通过软件库进行报文捕获,性能较低,容易产生丢包,只适用于低速场景。
(2)以太网速度小于100G,可以采用定制化产品满足需求。此类产品基于高性能CPU或FPGA来实现,一般配置多块ssd硬盘,满足报文捕获和报文存储需求。
(3)以太网速度大于或者等于100G,目前没有产品满足需求。在这种速度下,100Gbps相当于每秒需要保存12.5G字节数据,即使高性能ssd能满足存储性能要求,也无法满足存储寿命要求。
固态硬盘有数据量TBW(太字节)指标,比如一个1T的硬盘TBW指标为512T,表示硬盘容量为1T,总写入量达到512T后,固态硬盘就会失去质保期,继续使用有硬盘损坏风险。对于一个100G以太网端口,每秒生成12.5G数据,使用TBW为512T的固态硬盘存储,则可用时间为:512*1024/12.5=41943.04秒=11.65小时,不到一天硬盘就面临损坏。
发明内容
本发明提供一种报文处理方法、装置及系统。用以解决速率高于100G时的报文捕获问题。
为解决上述技术问题,本发明的技术方案如下:
一种报文处理方法,应用于捕获设备,所述方法包括:
在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;
将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
可选地,根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表,包括:
根据所述第一指令中的业务设备标识符和业务设备端口,查询报文捕获端口映射表,得到捕获端口列表。
可选地,将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,包括:
将所述捕获端口列表,通过高速串行计算机扩展PCIe总线发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块中的至少一个报文流水线,一个报文流水线对应所述捕获设备的一个以太网端口。
可选地,根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件,包括:
调用至少一个报文流水线中的目标报文流水线的以太网模块停止报文捕获;
调用所述目标报文流水线的报文管理模块,根据与所述报文管理模块通信连接的寄存器中的配置信息,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出。
可选地,所述寄存器包括:配置寄存器、现场可编程逻辑门阵列模块状态寄存器和时间寄存器;
其中,所述配置寄存器中的第一配置信息包括以下至少一项:
报文流水线使用的内存起始地址;
报文流水线使用的内存大小;
所述现场可编程逻辑门阵列模块状态寄存器中的第二配置信息包括以下至少一项:
根据报文捕获的批次按照预设规则进行递增;
最后使用的管理块序号;
最后使用的内存块数量;
所述现场可编程逻辑门阵列模块状态寄存器根据所述报文流水线的规则对第二配置信息进行设定;
所述时间寄存器中的第三配置信息包括以下至少一项:
时间精度。
可选的,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出,包括:
在所述现场可编程逻辑门阵列模块接收到所述捕获端口列表下发停止报文捕获命令后,通过直接内存访问将所述现场可编程逻辑门阵列模块中的目标数据发送至中央处理器,使得所述中央处理器将所述目标数据存储于目标报文,并将所述目标报文进行导出。
可选的,将所述目标报文进行导出,包括:
根据所述现场可编程逻辑门阵列模块的写入方式,将所述目标报文进行导出。
本发明的实施例还提供一种报文处理装置,包括:
收发模块,用于在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
处理模块,用于根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
本发明的实施例还提供一种报文处理系统,包括:业务设备和至少一个捕获设备,所述业务设备与所述至少一个捕获设备通过分流设备通信连接,或者,所述业务设备与所述至少一个捕获设备直接通信连接;
所述业务设备在检测到自身异常时,向所述捕获设备发送第一指令;
所述捕获设备接收第一指令,并根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。
本发明的上述方案至少包括以下有益效果:
本发明的上述方案,通过在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。本发明的方案可以抓取业务设备异常时的畸形报文,进而方便业务设备异常问题定位。
附图说明
图1是本发明的实施例报文处理方法流程图;
图2是本发明实施例中旁挂模式结构图;
图3是本发明实施例中串行模式结构图;
图4是本发明实施例中捕获设备结构图;
图5是本发明实施例中报文流水线结构图;
图6为本发明实施例中现场可编程逻辑门阵列模块结构图;
图7为本发明实施例中管理块与数据块之间的流程图;
图8为本发明实施例中报文处理装置结构图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
在本发明实施例中,基于背景技术不难发现,目前对于速率100G以上的以太网,市面上没有对应的报文捕获产品;而对于智能网络设备制造商,迫切需要一款高速报文捕获产品来辅助产品问题定位。
为方便起见,运行在客户生产环境下,需要定位问题的高速智能网络设备称为业务设备;对网络进行报文捕获,辅助问题定位的设备称为捕获设备。对于业务设备上的定位问题,本质上是保存引发业务设备异常的畸形报文。
如图1所示,本发明的实施例提供一种报文处理方法,应用于捕获设备,所述方法包括:
步骤1,在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
步骤2,根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;
步骤3,将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
本发明的该实施例,通过在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
如图2所示,为捕获设备和业务设备之间的拓扑关系,旁挂模式,这种模式下,需要增加分流设备,对业务设备的物理链路进行复制。
分流设备可以是工作在物理层的有源/无源分光器,对物理链路进行一分二;也可以是工作在链路层的分流器或交换机,对网络报文进行复制。此时分流设备自身也是一个故障风险点;如果使用无源分光器,能够保障稳定性。这种模式下,捕获设备最少可以只支持一个端口。
如图3所示,为捕获设备和业务设备之间的拓扑关系,串行模式,这种模式下,捕获设备作为一个透明二层设备,串接在业务设备的物理链路上。此时捕获设备自身也是一个故障风险点,一般用于没有分流设备的场景下使用。这种模式下,捕获设备最少需要支持两个端口。
如图4所示,本发明的实施例中,捕获设备是一个嵌入式设备;
(1)设备主体是一个PC(计算机)架构,由CPU+内存+网口+硬盘构成。
(2)CPU通过PCIe挂接一个或多个FPGA(现场可编程逻辑门阵列模块)芯片。
(3)每个FPGA支持一个或多个以太网端口,支持一个或多个内存控制器。
假设每个FPGA支持ETH_COUNT个速率为ETH_SPEED(Gbps)以太网端口,FPGA外接MEM_SIZE(字节)的内存,则每个以太网端口能够线速保存最少CAP_WINDOW_MIN(秒),最多CAP_WINDOW_MAX(秒)的报文。
CAP_WINDOW_MAX表示FPGA只使用一个端口时,线速保存报文的时间长度。
CAP_WINDOW_MAX=MEM_SIZE/(1024*1024*1024)/(ETH_SPEED/8)。
CAP_WINDOW_MIN表示FPGA使用所有端口时,线速保存报文的时间长度。
CAP_WINDOW_MIN=CAP_WINDOW_MAX/ETH_COUNT;
假设ETH_SPEED=100,ETH_COUNT=2,MEM_SIZE=64G,则CAP_WINDOW_MAX=MEM_SIZE/(1024*1024*1024)/(ETH_SPEED/8)
=5.12秒;
CAP_WINDOW_MIN=CAP_WINDOW_MAX/ETH_COUNT=2.56秒。
假设捕获设备线速保存报文的时间规格为CAP_WINDOW(秒),则设捕获设备可以通过定制MEM_SIZE/ETH_COUNT/ETH_SPEED指标,满足 CAP_WINDOW<= CAP_WINDOW_MIN约束。
本发明的一种可选实施例中,步骤2可以包括:
步骤21,根据所述第一指令中的业务设备标识符和业务设备端口,查询报文捕获端口映射表,得到捕获端口列表。
本实施例中,通过以下流程进行业务设备配置:
(1)捕获设备列表
配置哪些捕获设备对自己的业务端口执行报文捕获。
表项内容为:(a)捕获设备标识符。(b)捕获设备IP地址,用于设备联动通信。
(2)业务端口映射表
配置每个捕获设备对自己哪些业务端口执行报文捕获。
表项内容为:(a)自己的业务端口。(b)捕获设备标识符。
一个业务端口只能由一个捕获设备执行报文捕获;多个业务端口可以由一个捕获设备执行报文捕获。
通过以下流程进行捕获设备配置:
(1)业务设备列表
配置自己对哪些业务设备执行报文捕获。
表项内容为:(a)业务设备标识符。(b)业务设备IP地址,用于设备联动通信。
(2)捕获端口映射表
配置自己的捕获端口对应的业务端口。
表项内容为:(a)自己的捕获端口。(b)业务设备标识符。(c)业务设备端口。
业务设备通过联动协议,通知捕获设备启动捕获。
联动协议报文通过业务设备CPU的管理网口发送到捕获设备CPU的管理网口。
这里不对联动协议报文格式进行限定,对于启动捕获,应包含如下信息
(a)业务设备标识符,标识是哪个业务设备。(b)业务设备端口列表。
本发明的一种可选实施例中,步骤3可以包括:
步骤31,将所述捕获端口列表,通过高速串行计算机扩展PCIe总线发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块(FPGA)中的至少一个报文流水线,一个报文流水线对应所述捕获设备的一个以太网端口。
本实施例中,捕获设备收到启动捕获通知,通过业务设备标识符和业务设备端口查询捕获端口映射表,得到捕获端口列表,通过PCIe通知FPGA启动报文捕获。
本发明的一种可选实施例中,步骤3还可以包括:
步骤32,调用至少一个报文流水线中的目标报文流水线的以太网模块停止报文捕获;
步骤33,调用所述目标报文流水线的报文管理模块,根据与所述报文管理模块通信连接的寄存器中的配置信息,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出。
本实施例中,业务设备感知自身异常有多种手段,跟业务设备的软硬件实现相关,这里只列举一些可能的方法。
如果业务设备是基于高性能CPU实现,此时业务核心逻辑是一个进程,可以通过进程监控方式检测业务核心进程释放异常;也可以由业务核心进程自行进行心跳检测,比如定期增加基于共享内存的健康计数器,监控进程定期检测健康计数器。
如果业务设备是基于FPGA或NP实现,可以由FPGA或NP定期写入CPU侧健康计数器,CPU侧由监控进程定期检查健康计数器。或者FPGA或NP内部维护健康计数器,CPU侧定期通过PCIe读取FPGA或NP健康计数器。
如果连续多个轮次感知到健康计数器没有变化,则可以判定自身异常。
业务设备感知自己异常后,通过联动协议,通知捕获设备停止捕获。
联动协议报文通过业务设备CPU的管理网口发送到捕获设备CPU的管理网口。
本发明实施例中不对联动协议报文格式进行限定,对于停止捕获,应包含如下信息:(a)业务设备标识符,标识是哪个业务设备;(b)受业务设备异常影响到的业务端口列表。
捕获设备收到停止捕获通知,通过业务设备标识符和业务设备端口查询捕获端口映射表,得到捕获端口列表,通过PCIe通知FPGA停止报文捕获,执行报文导出和持久化。
在本发明实施例中,FPGA内部逻辑由PCIe逻辑和报文流水线逻辑构成。如图5所示,捕获设备CPU通过PCIe控制FPGA。FPGA内部可以有多条报文流水线,一个以太网端口对应一条报文流水线。
报文流水线逻辑由以太网逻辑,寄存器,报文管理逻辑,内存控制器构成。报文流水线使用定长的内存块存储报文,内存块长度记为MEM_BLOCK_SIZE;标准以太网报文最小64字节,最大1518字节,为平衡内存使用效率,建议MEM_BLOCK_SIZE为128或256字节,本文假设为256字节。以太网逻辑负责接收以太网报文,将以太网报文送报文管理逻辑。
本发明的一种可选实施例中,所述寄存器包括:配置寄存器、现场可编程逻辑门阵列模块状态寄存器和时间寄存器;
其中,所述配置寄存器中的第一配置信息包括以下至少一项:
MEM_START:报文流水线使用的内存起始地址;
MEM_SIZE:报文流水线使用的内存大小;
所述现场可编程逻辑门阵列模块状态寄存器中的第二配置信息包括以下至少一项:
BATCH:根据报文捕获的批次按照预设规则进行递增;
LAST_MEM_BLOCK_ID:最后使用的管理块序号;
LAST_MEM_BLOCK_COUNT:最后使用的内存块数量;
所述现场可编程逻辑门阵列模块状态寄存器根据所述报文流水线的规则对第二配置信息进行设定;
所述时间寄存器中的第三配置信息包括以下至少一项:时间精度。
如图6所示,本实施例中,寄存器包含配置寄存器,状态寄存器,时间寄存器。
(a)配置寄存器
配置寄存器提供报文捕获功能的可配置性,至少包含如下信息:
MEM_START:报文流水线使用的内存起始地址。
MEM_SIZE:报文流水线使用的内存大小。
外部CPU可以通过PCIe读写配置寄存器,报文流水线可读取配置寄存器。
(b)FPGA状态寄存器
BATCH:报文捕获批次,是一个自增的整数。即根据报文捕获的批次,按照预设规则进行递增。
LAST_MEM_BLOCK_ID:最后使用的管理块序号。
LAST_MEM_BLOCK_COUNT:最后使用的内存块数量。
状态寄存器均由报文流水线自动管理。
(c)时间寄存器
TIME:提供高精度时间(至少提供纳秒级精度)。
外部CPU可以通过PCIe读写时间寄存器,报文流水线自动递增时间寄存器。报文管理逻辑通过读取时间寄存器获得当前时间,为报文打时间戳。报文管理逻辑是FPGA内部核心逻辑,负责报文存储与报文导出。报文管理逻辑通过内存控制器读写内存。
针对报文流水线内存管理进行如下流程:
报文流水线拥有自己的内存,最大支持内存块数量为:
MEM_BLOCK_COUNT = MEM_SIZE/MEM_BLOCK_SIZE( 使用的内存块数量=报文流水线使用的内存大小/内存块的大小)。
内存块按照功能分为管理块和数据块,都是MEM_BLOCK_SIZE大小。
管理块包含固定长度管理头,剩余部分存放报文数据。数据块只存放报文数据。
管理头数据格式如下描述(例如使用C语言结构描述)
struct mem_block_header {
uint8_tbatch;
uint8_tdata_block_count: 4;
uint8_tprev_mem_block_count: 4;
uint16_tpacket_size;
uint32_tmem_block_id;
uint64_ttimestamp;
};
管理头大小为16字节,记为MEM_BLOCK_HDRSIZE;
batch:当前内存中报文捕获的批次号。用于报文导出时容错处理。
data_block_count:当前管理块包含有效数据块个数,不包含管理块自身。
packet_size:报文大小。
prev_mem_block_count:上一个存储的报文占用的内存块数量,包含管理块和数据块总数。如果当前是第一个报文,则本字段填0。
mem_block_id:当前管理块对应的内存块ID。
timestamp:时间戳。标识报文的接收时间。
根据管理块与数据块之间的关系;如图7所示。
如果当前管理块后接数据块,则数据块的内存块ID为:
mem_block_id+1
mem_block_id+2
......
mem_block_id+data_block_count。
本发明的一种可选实施例中,步骤32中,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出,包括:
步骤321,在所述现场可编程逻辑门阵列模块接收到所述捕获端口列表下发停止报文捕获命令后,通过直接内存访问将所述现场可编程逻辑门阵列模块中的目标数据发送至中央处理器,使得所述中央处理器将所述目标数据存储于目标报文,并将所述目标报文进行导出。
具体实现时,所述现场可编程逻辑门阵列模块接收所述捕获端口列表下发停止报文捕获命令,通过直接内存访问将所述现场可编程逻辑门阵列模块中的内容进行存储;所述现场可编程逻辑门阵列模块至少访问一次直接内存访问,并包括以下流程:当中央处理器接收所述现场可编程逻辑门阵列模块访问一次直接内存访问完成时,设置本地变量并更新已导出的内存块数量;
所述更新已导出的内存块数量包括更新已导出的管理块数量和更新已导出的管理块使用的数据块数量;当得到最后一组已导出的管理块数量和已导出的管理块使用的数据块数量时,完成目标报文的导出;将所述导出的目标报文存储在报文文件中并调整报文文件顺序。具体来说,FPGA收到导出命令,通过DMA将FPGA内存起始地址为fpga_address,内存大小为fpga_size的内容发送到CPU侧物理内存地址为address处。由于PCIe DMA有大小限制,本步骤FPGA会执行多次DMA,具体不再详述。
CPU分析导出数据,CPU等待DMA完成后,设置本地变量 struct mem_block_header*header 指向address;
更新已导出内存块数量 export_block_count
export_block_count += header->data_block_count + 1;
更新最后一个管理块ID:last_mem_block_id
last_mem_block_id -= header->data_block_count + 1;
更新最后一个管理块使用的数据块数量:last_data_block_count
last_data_block_count = header->data_block_count;
将本次CPU导出的报文存储到文件中。这里不对报文文件格式进行限定,需要注意的是报文导出是倒序的,全部导出后需要调整报文顺序。
本发明的一种可选实施例中,将所述目标报文进行导出,包括:
根据所述现场可编程逻辑门阵列模块的写入方式,将所述目标报文进行导出;
具体实现时,由中央处理器进行导出,根据所述现场可编程逻辑门阵列模块写入方式,判断是否停止导出报文文件;
当所述现场可编程逻辑门阵列模块未被循环写入时,并判定内存块数量为0,停止导出;
当所述现场可编程逻辑门阵列模块已被循环写入时,根据导出的内存块数量与使用的内存块数量之间的关系确定是否停止导出;
当导出的内存块数量大于等于最大内存块的数量减7,则停止导出;当内存块中管理块数量为0,则停止导出;
当内存块中当前报文捕获的批次号与上一次报文捕获的批次号不同时,则停止导出;
若未停止导出,再重新根据最后一组已导出的管理块数量和已导出的管理块使用的数据块数量进行执行报文导出流程。
在本发明实施例中,对于上述报文处理方法,具有一整套完整的FPGA流程,具体如下:
一、FPGA初始化
清零每条报文流水线的配置寄存器(ENABLE,MEM_START,MEM_SIZE)
清零每条报文流水线的状态寄存器(BATCH,LAST_MEM_BLOCK_ID,LAST_MEM_BLOCK_COUNT)。
二、FPGA启动报文捕获
捕获设备CPU通过PCIe通知FPGA启动报文捕获。
这里不对FPGA的PCIe配置空间格式做详细限定,FPGA如果有多个以太网端口,则对应多条报文流水线,每条报文流水线有独立的PCIe配置空间,对应FPGA报文流水线配置寄存器。捕获设备CPU写PCIe配置空间,FPGA将信息保存到报文流水线配置寄存器。
启动报文捕获的PCIe命令至少包含如下信息MEM_START和MEM_SIZE信息,捕获设备CPU应提前规划好每条报文流水线使用的内存。
FPGA收到启动报文捕获的PCIe命令后进行如下设置:
(a)设置报文流水线寄存器
设置MEM_START和MEM_SIZE寄存器为PCIe命令中指定的值;
将BATCH寄存器加1,设置LAST_MEM_BLOCK_ID寄存器为0,设置LAST_MEM_BLOCK_COUNT寄存器为0。
(b)开启报文捕获流水线
FPGA开启报文流水线后,以太网开始接收报文,报文捕获逻辑开始工作。
报文捕获逻辑按照如下步骤执行:
(a)接收和解析以太网报文
报文捕获逻辑从以太网接收到报文,得到报文总长度PACKET_SIZE;
(b)计算报文需要使用的内存块数量
如果报文足够小,满足PACKET_SIZE + MEM_BLOCK_HDRSIZE <=MEM_BLOCK_SIZE;
则整个报文能放入管理块的数据区域,只需要1个管理块。
报文保存在管理块中的数据大小为:PACKET_SIZE1 = PACKET_SIZE。
报文保存在数据块中的数据大小为:PACKET_SIZE2 = 0。
所需数据块数量为:DATA_BLOCK_COUNT = 0。
如果报文数据较大,则需要1个管理块和至少1个数据块,
此时报文保存在管理块中的数据大小为:PACKET_SIZE1 = MEM_BLOCK_SIZE -MEM_BLOCK_HDRSIZE;
报文保存在数据块中的数据大小为:PACKET_SIZE2 = PACKET_SIZE - PACKET_SIZE1;
所需数据块数量为:
DATA_BLOCK_COUNT=(PACKET_SIZE2+MEM_BLOCK_SIZE-1)/MEM_BLOCK_SIZE;
这里“/”为整数除(只保留商,丢弃余数)。
(c)计算并填充管理块
计算管理块ID;
MEM_BLOCK_ID=LAST_MEM_BLOCK_ID+LAST_MEM_BLOCK_COUNT。
计算管理块索引(取余):
MEM_BLOCK_INDEX = MEM_BLOCK_ID % MEM_BLOCK_COUNT。
计算管理块内存地址:
MEM_BLOCK_ADDRESS=MEM_START+MEM_BLOCK_INDEX*MEM_BLOCK_SIZE;
填充管理块内存头部数据(即struct mem_block_header)
设置batch = BATCH;
设置data_block_count = DATA_BLOCK_COUNT;
设置pre_mem_block_count = LAST_MEM_BLOCK_COUNT;
设置packet_size = PACKET_SIZE;
设置mem_block_id = MEM_BLOCK_ID;
设置timestamp = TIME。
如果报文足够小,只需要管理块,此时需将报文全部拷贝到管理块数据区。
如果报文足够大,需要DATA_BLOCK_COUNT个数据块,将报文前PACKET_SIZE1字节数据拷贝到管理块数据区。
使用如下伪码逻辑填充数据块:
for (i=0; i<DATA_BLOCK_COUNT;i++) {
// 计算数据块索引
index = (MEM_BLOCK_ID + 1 + i) % MEM_BLOCK_COUNT;
// 计算数据块地址 address
address = MEM_START + index * MEM_BLOCK_SIZE;
// 计算报文内容偏移offset
offset = PACKET_SIZE1 + i * MEM_BLOCK_SIZE;
// 计算报文拷贝内容大小size
if (i==(DATA_BLOCK_COUNT-1)) {
// “%”表示取余。如果是最后一个数据块,只拷贝报文剩余大小:
size = PACKET_SIZE2 % MEM_BLOCK_SIZE;
} else {
// 如果不是最后一个数据块,则拷贝内存块整块大小:
size = MEM_BLOCK_SIZE;
}
// packet[offset, size]表示从报文offset偏移开始,size大小的内容,
// 将从报文offset偏移开始,size大小的内容拷贝到address地址处:
copy(address, packet[offset, size]);
}
(d)更新状态寄存器
设置LAST_MEM_BLOCK_ID = MEM_BLOCK_ID;
设置LAST_MEM_BLOCK_COUNT = DATA_BLOCK_COUNT + 1。
(e)重复步骤(a),直到接收到停止捕获通知。
三、FPGA停止报文捕获
捕获设备CPU通过PCIe通知FPGA停止报文捕获。
FPGA收到停止报文捕获的PCIe命令后,关闭报文捕获流水线,主要是停止以太网报文接收,寄存器和内存保持不变。
四、导出报文
FPGA将内存映射为PCIe设备内存空间,CPU侧通过PCIe使用DMA方式将FPGA内存读取到CPU侧内存。
(a)CPU通过PCIe读取报文流水线寄存器
初始化最后一个管理块ID:last_mem_block_id;
last_mem_block_id = LAST_MEM_BLOCK_ID。
初始化最后一个管理块使用的数据块数量:last_data_block_count;
last_data_block_count = LAST_MEM_BLOCK_COUNT – 1。
初始化已导出内存块数量 export_block_count;
export_block_count = 0。
(b)CPU分配本地内存
物理内存地址为address;
内存大小为size,应确保size满足如下条件:
size >=(last_data_block_count + 1) * MEM_BLOCK_SIZE。
(c)CPU读取FPGA内存
CPU计算FPGA内存块索引;
last_mem_block_index = last_mem_block_id % MEM_BLOCK_COUNT;
CPU计算FPGA内存块地址:
fpga_address=MEM_START + last_mem_block_index * MEM_BLOCK_SIZE
CPU计算FPGA内存大小:
fpga_size = MEM_BLOCK_SIZE * (last_data_block_count + 1);
CPU通过PCIe向FPGA发起导出命令,包含如下信息:
Address、fpga_address、fpga_size。
FPGA收到导出命令,通过DMA将FPGA内存起始地址为fpga_address,内存大小为fpga_size的内容发送到CPU侧物理内存地址为address处。由于PCIe DMA有大小限制,本步骤FPGA会执行多次DMA,具体不再详述。
(d)CPU分析导出数据
CPU等待DMA完成后设置本地变量 struct mem_block_header *header 指向address;更新已导出内存块数量 export_block_count;export_block_count += header->data_block_count + 1;更新最后一个管理块ID:last_mem_block_id;
last_mem_block_id -= header->data_block_count + 1;更新最后一个管理块使用的数据块数量:last_data_block_count;last_data_block_count = header->data_block_count。
将本次CPU导出的报文存储到文件中。这里不对报文文件格式进行限定,需要注意的是报文导出是倒序的,全部导出后需要调整报文顺序。
(e)判定是否停止导出
由于FPGA是循环写入,我们从最后一个报文开始倒序导出会面临两种情况:
情况1:内存还没有写满,内存块还没有被循环写入。
此时CPU执行导出,只要判定内存块ID降低到0,即可停止导出。
情况2:内存已经写满,内存块已经被循环写入。
此时CPU执行导出,没有明显的分界点。可以通过已导出内存块数量进行判定export_block_count >= MEM_BLOCK_COUNT - 7
此时可能会舍弃最新的一个报文,但对整体没有影响。
CPU执行如下逻辑:
如果export_block_count >= MEM_BLOCK_COUNT - 7,则停止导出。
如果header->mem_block_id等于0,则停止导出。
如果header->batch 不等于 BATCH,说明已经越界,则停止导出。
如果未停止导出,则执行步骤(b)。至此完成整个报文导出过程。
本发明的上述实施例,捕获设备将捕获的网络报文保存在内存中,业务设备异常后,能够通知捕获设备停止捕获网络报文,则捕获设备上留存的网络报文大概率会包含引发业务设备异常的畸形报文(捕获设备内存足够大)。将捕获设备上留存的网络报文导出,保存为文件。通过放弃报文实时持久化到硬盘,规避实时硬盘写入的性能和寿命问题,通过业务设备与捕获设备联动,解决高速网络下畸形报文抓取问题。捕获设备支持固定内存块管理,支持变长报文存储,支持报文循环存储;简化捕获设备逻辑,提高内存使用效率。业务设备与捕获设备联动机制,使捕获设备能够使用可接受的内存大小,捕获引发业务设备异常的畸形报文。
如图8所示,本发明的还提供一种报文处理装置80,包括:
收发模块81,用于在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
处理模块82,用于根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
可选地,根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表,包括:
根据所述第一指令中的业务设备标识符和业务设备端口,查询报文捕获端口映射表,得到捕获端口列表。
可选地,将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,包括:
将所述捕获端口列表,通过高速串行计算机扩展PCIe总线发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块中的至少一个报文流水线,一个报文流水线对应所述捕获设备的一个以太网端口。
可选地,根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件,包括:
调用至少一个报文流水线中的目标报文流水线的以太网模块停止报文捕获;
调用所述目标报文流水线的报文管理模块,根据与所述报文管理模块通信连接的寄存器中的配置信息,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出。
可选地,所述寄存器包括:配置寄存器、现场可编程逻辑门阵列模块状态寄存器和时间寄存器;
其中,所述配置寄存器中的第一配置信息包括以下至少一项:
报文流水线使用的内存起始地址;
报文流水线使用的内存大小;
所述现场可编程逻辑门阵列模块状态寄存器中的第二配置信息包括以下至少一项:
根据报文捕获的批次按照预设规则进行递增;
最后使用的管理块序号;
最后使用的内存块数量;
所述现场可编程逻辑门阵列模块状态寄存器根据所述报文流水线的规则对第二配置信息进行设定;
所述时间寄存器中的第三配置信息包括以下至少一项:
时间精度。
可选的,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出,包括:
在所述现场可编程逻辑门阵列模块接收到所述捕获端口列表下发停止报文捕获命令后,通过直接内存访问将所述现场可编程逻辑门阵列模块中的目标数据发送至中央处理器,使得所述中央处理器将所述目标数据存储于目标报文,并将所述目标报文进行导出。
可选的,将所述目标报文进行导出,包括:
根据所述现场可编程逻辑门阵列模块的写入方式,将所述目标报文进行导出。
需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
本发明还提供一种报文处理系统,包括:业务设备和至少一个捕获设备,所述业务设备与所述至少一个捕获设备通过分流设备通信连接,或者,所述业务设备与所述至少一个捕获设备直接通信连接;
所述业务设备在检测到自身异常时,向所述捕获设备发送第一指令;
所述捕获设备接收第一指令,并根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
该系统是与上述方法对应的系统,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
本发明还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。
本发明在业务设备需进行软件改造,支持异常监控,支持联动协议。本发明具有以下创新:
(1)捕获设备放弃报文实时持久化到硬盘,将报文保存到内存;规避实时硬盘写入的性能和寿命问题。
(2)捕获设备支持固定内存块管理,支持变长报文存储,支持报文循环存储;简化捕获设备逻辑,提高内存使用效率。
(3)业务设备与捕获设备联动机制,使捕获设备能够使用可接受的内存大小,捕获引发业务设备异常的畸形报文。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种报文处理方法,其特征在于,应用于捕获设备,所述方法包括:
在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;
将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
2.根据权利要求1所述的报文处理方法,其特征在于,根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表,包括:
根据所述第一指令中的业务设备标识符和业务设备端口,查询报文捕获端口映射表,得到捕获端口列表。
3.根据权利要求1所述的报文处理方法,其特征在于,将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,包括:
将所述捕获端口列表,通过高速串行计算机扩展PCIe总线发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块中的至少一个报文流水线,一个报文流水线对应所述捕获设备的一个以太网端口。
4.根据权利要求3所述的报文处理方法,其特征在于,根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件,包括:
调用至少一个报文流水线中的目标报文流水线的以太网模块停止报文捕获;
调用所述目标报文流水线的报文管理模块,根据与所述报文管理模块通信连接的寄存器中的配置信息,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出。
5.根据权利要求4所述的报文处理方法,其特征在于,所述寄存器包括:配置寄存器、现场可编程逻辑门阵列模块状态寄存器和时间寄存器;
其中,所述配置寄存器中的第一配置信息包括以下至少一项:
报文流水线使用的内存起始地址;
报文流水线使用的内存大小;
所述现场可编程逻辑门阵列模块状态寄存器中的第二配置信息包括以下至少一项:
根据报文捕获的批次按照预设规则进行递增;
最后使用的管理块序号;
最后使用的内存块数量;
所述现场可编程逻辑门阵列模块状态寄存器根据所述报文流水线的规则对第二配置信息进行设定;
所述时间寄存器中的第三配置信息包括以下至少一项:
时间精度。
6.根据权利要求4所述的报文处理方法,其特征在于,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出,包括:
在所述现场可编程逻辑门阵列模块接收到所述捕获端口列表下发停止报文捕获命令后,通过直接内存访问将所述现场可编程逻辑门阵列模块中的目标数据发送至中央处理器,使得所述中央处理器将所述目标数据存储于目标报文,并将所述目标报文进行导出。
7.根据权利要求6所述的报文处理方法,其特征在于,将所述目标报文进行导出,包括:
根据所述现场可编程逻辑门阵列模块的写入方式,将所述目标报文进行导出。
8.一种报文处理装置,其特征在于,包括:
收发模块,用于在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
处理模块,用于根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
9.一种报文处理系统,其特征在于,包括:业务设备和至少一个捕获设备,其特征在于,所述业务设备与所述至少一个捕获设备通过分流设备通信连接,或者,所述业务设备与所述至少一个捕获设备直接通信连接;
所述业务设备在检测到自身异常时,向所述捕获设备发送第一指令;
所述捕获设备接收第一指令,并根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
10.一种计算机可读存储介质,其特征在于,存储指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的方法。
CN202410038517.3A 2024-01-11 2024-01-11 一种报文处理方法、装置及系统 Active CN117560276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410038517.3A CN117560276B (zh) 2024-01-11 2024-01-11 一种报文处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410038517.3A CN117560276B (zh) 2024-01-11 2024-01-11 一种报文处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN117560276A true CN117560276A (zh) 2024-02-13
CN117560276B CN117560276B (zh) 2024-03-19

Family

ID=89815081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410038517.3A Active CN117560276B (zh) 2024-01-11 2024-01-11 一种报文处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN117560276B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184024A (zh) * 2006-11-14 2008-05-21 中兴通讯股份有限公司 优先级调度装置
US20130094515A1 (en) * 2011-08-31 2013-04-18 Nils Gura Systems, apparatus, and methods for removing duplicate data packets from a traffic flow of captured data packets transmitted via a communication network
CN108462642A (zh) * 2018-03-16 2018-08-28 西安电子科技大学 基于fpga的udp/ip硬件协议栈及实现方法
CN110519302A (zh) * 2019-09-29 2019-11-29 锐捷网络股份有限公司 一种防报文攻击的方法和装置
CN113645095A (zh) * 2021-08-10 2021-11-12 浪潮思科网络科技有限公司 基于snmptrap告警信息的交换机自动化测试方法、设备及介质
CN114629830A (zh) * 2022-03-02 2022-06-14 深圳市吉祥腾达科技有限公司 自动化控制TestCenter仪器测试的方法及系统
CN115766491A (zh) * 2022-10-27 2023-03-07 上海晨驭信息科技有限公司 支持业务瞬时异常检测的分布式网络数据分析系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184024A (zh) * 2006-11-14 2008-05-21 中兴通讯股份有限公司 优先级调度装置
US20130094515A1 (en) * 2011-08-31 2013-04-18 Nils Gura Systems, apparatus, and methods for removing duplicate data packets from a traffic flow of captured data packets transmitted via a communication network
CN108462642A (zh) * 2018-03-16 2018-08-28 西安电子科技大学 基于fpga的udp/ip硬件协议栈及实现方法
CN110519302A (zh) * 2019-09-29 2019-11-29 锐捷网络股份有限公司 一种防报文攻击的方法和装置
CN113645095A (zh) * 2021-08-10 2021-11-12 浪潮思科网络科技有限公司 基于snmptrap告警信息的交换机自动化测试方法、设备及介质
CN114629830A (zh) * 2022-03-02 2022-06-14 深圳市吉祥腾达科技有限公司 自动化控制TestCenter仪器测试的方法及系统
CN115766491A (zh) * 2022-10-27 2023-03-07 上海晨驭信息科技有限公司 支持业务瞬时异常检测的分布式网络数据分析系统及方法

Also Published As

Publication number Publication date
CN117560276B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
JP7039685B2 (ja) トラフィック測定方法、デバイス、およびシステム
CN113708995B (zh) 一种网络故障诊断方法、系统、电子设备及存储介质
CN111124277B (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
US20090147673A1 (en) Storage system and route switch
CN109271098A (zh) 一种数据迁移方法及装置
CN103188116A (zh) 一种刀片服务器的网络性能检测方法和系统
JP6543246B2 (ja) ネットワークインターフェイス
CN108965010A (zh) 一种网络链路流控异常监控方法、系统及主机总线适配器
CN113377815A (zh) 一种面向实时数据库的写快照断点续传的方法
CN117560276B (zh) 一种报文处理方法、装置及系统
CN103714060A (zh) 中断期历史数据的处理方法及前端采集子系统设备
CN112714077B (zh) 一种报文去重方法、装置、汇聚分流设备及存储介质
WO2020238746A1 (zh) 日志信息处理系统、日志信息处理方法及装置和交换机
CN104780123A (zh) 一种网络包收发处理装置及其设计方法
CN110297785A (zh) 一种基于fpga的金融数据流控装置和流控方法
US11050653B2 (en) Telemetry capture system for storage systems
JP2019153941A (ja) 通信制御装置及び通信制御システム
CN113867890A (zh) 一种日志采集方法、装置、介质
CN103135703B (zh) 一种用于快速读取现场可更换单元信息的方法
CN109039822A (zh) 一种bfd协议报文过滤方法及系统
KR0145936B1 (ko) 전전자교환기에 있어서 과금데이타 관리방법
CN113157645B (zh) 集群数据迁移方法、装置、设备及存储介质
CN114389960B (zh) 一种网络业务性能采集上报的方法和系统
CN112764666B (zh) 用于存储管理的方法、设备和计算机程序产品
CN209250664U (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