CN115695588A - 一种网络报文编辑的硬件加速方法 - Google Patents
一种网络报文编辑的硬件加速方法 Download PDFInfo
- Publication number
- CN115695588A CN115695588A CN202211180633.6A CN202211180633A CN115695588A CN 115695588 A CN115695588 A CN 115695588A CN 202211180633 A CN202211180633 A CN 202211180633A CN 115695588 A CN115695588 A CN 115695588A
- Authority
- CN
- China
- Prior art keywords
- message
- editing
- network
- network processor
- message editing
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网络报文编辑的硬件加速方法,属于网络处理器领域。本发明接口硬件模块包括用以从以太网口接收报文的报文接收模块;发送数据到以太网口的报文发送模块,报文发送模块还负责执行报文编辑的命令;存储报文唤醒网络处理器,并接收网络处理器的编辑命令的存储模块。通过这三个模块和网络处理器模块的配合工作,既达到了解放网络处理器让其实现更加复杂的功能,同时还能够提高网络报文处理的性能。本发明可以实现很大程度的降低网络处理器的负荷,由于网络处理器不需要将整包报文读到网络处理器,而将这部分工作转移给接口硬件模块来实现。
Description
技术领域
本发明属于网络处理器领域,具体涉及一种网络报文编辑的硬件加速方法。
背景技术
网络发展迅速,网络带宽越来越高,网络协议越来越复杂,同时很多用户还喜欢将自己的私有协议定义的数据承载在以太网报文中,这时候网络报文的处理一般都放在专用的网络处理器中进行处理。硬件只提供数据通路,不参与协议本身的解析。这种做法大大提高了网络报文处理的灵活性,但是会加重网络处理器的负担。
所以,目前的现状是:
1、网络处理器的处理的报文越来越灵活多样,硬件只做数据通路,而不进行协议解析;
2、网络处理器的复杂度和负荷越来越重,一个报文的所有处理都由网络处理器来完成。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种网络报文编辑的硬件加速方法,以解决现有的报文处理方法加重网络处理器的负担的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种网络报文编辑的硬件加速方法,该方法包括如下步骤:
step1:报文接收模块接收以太网口的报文,并进行分类和处理,产生报文的指示信息供后续模块使用;
step2:报文接收模块将接收的报文和生成的报文的指示信息发送给报文存储模块;报文存储模块把报文按照cell的方式用链表串链存储起来,整包报文存完之后再在链头串2个空白cell,这两个空白cell用以存放网络处理器写给报文存储模块的报文编辑命令;
step3:报文存储模块将存储好的报文和报文相关的信息发送给网络处理器NP,报文相关的信息包括报文存储的头指针;
step4:网络处理器NP将报文进行解析和预处理,并生成需要硬件协助完成的报文编辑命令,将报文编辑命令写入报文存储模块中报文存储链头的两个空白cell;
step5:报文存储模块将网络处理器预处理过后的报文以及报文编辑命令一起送给报文发送模块;报文发送模块的报文编辑单元首先解析报文编辑命令,提取出对报文的操作指示,操作指示包括删除,替换或插入数据、操作的位置以及插入、替换的数据;然后再依次根据命令对报文进行编辑;
step6:报文发送模块按报文编辑命令处理完报文后,将报文从以太网口发送出去。
进一步地,报文存储模块把报文按照128字节一个cell的方式用链表串链存储起来。
进一步地,整包报文存完之后再在链头串2个空白cell,共256字节。
进一步地,报文编辑命令中包括需在报文编辑的位置,以及要进行的操作,包括替换,删除和插入;如果是对报文进行替换和插入一定长度的数据,则报文编辑命令除了包含相应操作的位置,还要包括用来替换和插入的数据;如果是对报文进行删除,则报文编辑命令只包含删除的位置和长度,没有数据。
进一步地,报文编辑命令最大支持4条操作。
进一步地,所述步骤step5中对报文进行编辑时,每条操作都是基于上一条操作的结果进行。
进一步地,所述步骤step3中,报文存储模块向网络处理器NP发送前,先唤醒网络处理器NP。
进一步地,所述step4中预处理包括对报文进行规则的过滤或者改写。
进一步地,所述step4中网络处理器NP不将整包报文读到网络处理器NP。
进一步地,所述报文发送模块的报文编辑单元的处理步骤包括:
第一步:报文发送模块的报文编辑处理单元接收报文存储模块的送过来的256字节的报文编辑命令,以双方约定的报文编辑的命令格式,解析出至少1条至多4条报文编辑命令;
第二步:报文发送模块的报文编辑处理单元将第一步解析的报文编辑命令提取出来,准备对256字节之后的报文进行编辑;
第三步:报文发送模块的报文编辑处理单元一条条执行报文编辑命令,对报文进行删除,替换和插入,每一条编辑命令都是基于前一条处理的结果进行编辑。
(三)有益效果
本发明提出一种网络报文编辑的硬件加速方法,与现有技术相比,本发明提出的技术方案可以实现很大程度的降低网络处理器的负荷,由于网络处理器不需要将整包报文读到网络处理器,而将这部分工作转移给接口硬件模块来实现。该接口硬件模块包括用以从以太网口接收报文的报文接收模块;发送数据到以太网口的报文发送模块,报文发送模块还负责执行报文编辑的命令;存储报文唤醒网络处理器,并接收网络处理器的编辑命令的存储模块。通过这三个模块和网络处理器模块的配合工作,既达到了解放网络处理器让其实现更加复杂的功能,同时还能够提高网络报文处理的性能。
附图说明
图1为本发明技术方案的流程图;
图2为报文编辑的实现流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的目的就是要降低网络处理器的负荷。用硬件来协助网络处理器完成部分报文编辑的功能。
本发明主要解决了以下2个难点问题:
1、提供一个通路给网络处理器和硬件之间进行报文编辑命令的通信;
2、硬件配合网络处理器进行准确高效报文编辑。
图1是本发明技术方案的流程和三大主要模块和网络处理器的结构图。如图1所示,本发明提出的网络报文编辑的硬件加速方法包括如下步骤:
step1:报文接收模块接收以太网口的报文,并进行简单的分类和处理,产生一些报文的指示信息供后续模块使用。
step2:报文接收模块将接收的报文和生成的报文的指示信息送给报文存储模块。报文存储模块把报文按照128字节一个cell的方式用链表串链存储起来,整包报文存完之后再在链头串2个空白cell,这两个空白cell用以存放网络处理器写给报文存储模块的报文编辑命令,一共256字节。
该命令包含了网络处理器让硬件通路模块对报文进行编辑的编辑命令。报文编辑命令里包含需在报文编辑的位置,以及要进行的操作,包括替换,删除和插入。
如果是对报文进行替换和插入一定长度的数据,则这个报文编辑命令除了包含相应操作的位置,还要包含用来替换和插入的数据。
如果是对报文进行删除,则报文编辑命令只包含删除的位置和长度,没有数据。
step3:报文存储模块将存储好的报文和报文相关的信息,包括报文存储的头指针等一系列关键信息发送给网络处理器NP;某些实施例中,报文存储模块向网络处理器NP发送前,先唤醒网络处理器NP。
step4:网络处理器NP将报文进行解析和预处理,预处理可以是对报文进行规则的过滤,或者改写,并生成需要硬件协助完成的报文编辑命令,将报文编辑命令写入报文存储模块中报文存储链头的两个空白cell。其中,网络处理器NP并不需要将整包报文读到网络处理器。
step5:报文存储模块将网络处理器预处理过后的报文以及报文编辑命令一起送给报文发送模块。报文发送模块的报文编辑单元首先解析报文编辑命令的头256个字节,提取出对报文的操作指示,操作指示包括删除,替换或插入数据,以及操作的位置和插入,替换的数据。然后再依次根据命令对报文进行编辑。报文编辑命令一共支持最大4条操作。每条操作都是基于上一条操作的结果进行。
step6:报文发送模块按报文编辑命令处理完报文后,将报文从以太网口发送出去。
图2是本发明技术方案中对图1的第4步,报文编辑的实现流程的补充。
第一步:报文发送模块的报文编辑处理单元接收报文存储模块的送过来的256字节的报文编辑命令,以双方约定的报文编辑的命令格式,解析出至少1条至多4条报文编辑命令。
第二步:报文发送模块的报文编辑处理单元将第一步解析的报文编辑命令提取出来,准备对256字节之后的报文进行编辑
第三步:报文发送模块的报文编辑处理单元一条条执行报文编辑命令,对报文进行,删除,替换和插入编辑命令指定长度的数据。每一条编辑命令都是基于前一条处理的结果进行编辑。比如,原报文长1000字节。报文编辑命令包含3条编辑命令。第一条为删除操作,删除报文的200字节位置开始100字节的数据,第一条命令执行之后报文变成了900字节长度。第二条命令为插入操作,在报文的第500字节的位置开始插入50字节的数据,第二条命令执行完后,报文从900字节变成了950字节。第三条命令为替换操作,在保文的低800字节的位置开始插入80字节的数据,第三条命令执行完后,报文变成了1030字节。这三条(可以最小1条,最大4条)命令的操作可以相同,也可以不同,由网络处理器来决定。
与现有技术相比,本发明提出的技术方案可以实现很大程度的降低网络处理器的负荷,由于网络处理器不需要将整包报文读到网络处理器,而将这部分工作转移给接口硬件模块来实现。该接口硬件模块包括用以从以太网口接收报文的报文接收模块;发送数据到以太网口的报文发送模块,报文发送模块还负责执行报文编辑的命令;存储报文唤醒网络处理器,并接收网络处理器的编辑命令的存储模块。通过这三个模块和网络处理器模块的配合工作,既达到了解放网络处理器让其实现更加复杂的功能,同时还能够提高网络报文处理的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种网络报文编辑的硬件加速方法,其特征在于,该方法包括如下步骤:
step1:报文接收模块接收以太网口的报文,并进行分类和处理,产生报文的指示信息供后续模块使用;
step2:报文接收模块将接收的报文和生成的报文的指示信息发送给报文存储模块;报文存储模块把报文按照cell的方式用链表串链存储起来,整包报文存完之后再在链头串2个空白cell,这两个空白cell用以存放网络处理器写给报文存储模块的报文编辑命令;
step3:报文存储模块将存储好的报文和报文相关的信息发送给网络处理器NP,报文相关的信息包括报文存储的头指针;
step4:网络处理器NP将报文进行解析和预处理,并生成需要硬件协助完成的报文编辑命令,将报文编辑命令写入报文存储模块中报文存储链头的两个空白cell;
step5:报文存储模块将网络处理器预处理过后的报文以及报文编辑命令一起送给报文发送模块;报文发送模块的报文编辑单元首先解析报文编辑命令,提取出对报文的操作指示,操作指示包括删除,替换或插入数据、操作的位置以及插入、替换的数据;然后再依次根据命令对报文进行编辑;
step6:报文发送模块按报文编辑命令处理完报文后,将报文从以太网口发送出去。
2.如权利要求1所述的网络报文编辑的硬件加速方法,其特征在于,所述step2中,报文存储模块把报文按照128字节一个cell的方式用链表串链存储起来。
3.如权利要求2所述的网络报文编辑的硬件加速方法,其特征在于,整包报文存完之后再在链头串2个空白cell,共256字节。
4.如权利要求1所述的网络报文编辑的硬件加速方法,其特征在于,报文编辑命令中包括需在报文编辑的位置,以及要进行的操作,包括替换,删除和插入;如果是对报文进行替换和插入一定长度的数据,则报文编辑命令除了包含相应操作的位置,还要包括用来替换和插入的数据;如果是对报文进行删除,则报文编辑命令只包含删除的位置和长度,没有数据。
5.如权利要求4所述的网络报文编辑的硬件加速方法,其特征在于,报文编辑命令最大支持4条操作。
6.如权利要求5所述的网络报文编辑的硬件加速方法,其特征在于,所述步骤step5中对报文进行编辑时,每条操作都是基于上一条操作的结果进行。
7.如权利要求1所述的网络报文编辑的硬件加速方法,其特征在于,所述步骤step3中,报文存储模块向网络处理器NP发送前,先唤醒网络处理器NP。
8.如权利要求1所述的网络报文编辑的硬件加速方法,其特征在于,所述step4中预处理包括对报文进行规则的过滤或者改写。
9.如权利要求8所述的网络报文编辑的硬件加速方法,其特征在于,所述step4中网络处理器NP不将整包报文读到网络处理器NP。
10.如权利要求1-9任一项所述的网络报文编辑的硬件加速方法,其特征在于,所述报文发送模块的报文编辑单元的处理步骤包括:
第一步:报文发送模块的报文编辑处理单元接收报文存储模块的送过来的256字节的报文编辑命令,以双方约定的报文编辑的命令格式,解析出至少1条至多4条报文编辑命令;
第二步:报文发送模块的报文编辑处理单元将第一步解析的报文编辑命令提取出来,准备对256字节之后的报文进行编辑;
第三步:报文发送模块的报文编辑处理单元一条条执行报文编辑命令,对报文进行删除,替换和插入,每一条编辑命令都是基于前一条处理的结果进行编辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180633.6A CN115695588A (zh) | 2022-09-26 | 2022-09-26 | 一种网络报文编辑的硬件加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211180633.6A CN115695588A (zh) | 2022-09-26 | 2022-09-26 | 一种网络报文编辑的硬件加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695588A true CN115695588A (zh) | 2023-02-03 |
Family
ID=85062901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211180633.6A Pending CN115695588A (zh) | 2022-09-26 | 2022-09-26 | 一种网络报文编辑的硬件加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695588A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319332A (zh) * | 2023-11-30 | 2023-12-29 | 成都北中网芯科技有限公司 | 一种网络报文切片的可编程硬件加速方法和网络处理芯片 |
-
2022
- 2022-09-26 CN CN202211180633.6A patent/CN115695588A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319332A (zh) * | 2023-11-30 | 2023-12-29 | 成都北中网芯科技有限公司 | 一种网络报文切片的可编程硬件加速方法和网络处理芯片 |
CN117319332B (zh) * | 2023-11-30 | 2024-04-02 | 成都北中网芯科技有限公司 | 一种网络报文切片的可编程硬件加速方法和网络处理芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101745456B1 (ko) | HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법 | |
CN115695588A (zh) | 一种网络报文编辑的硬件加速方法 | |
CN109936715A (zh) | 一种mp4文件的处理方法及其相关设备 | |
CN110297810A (zh) | 一种流数据处理方法、装置及电子设备 | |
CN110191156B (zh) | 一种基于区块链的数据处理方法及装置 | |
CN111881044A (zh) | 一种根据配置文件自动匹配测试案例系统 | |
CN115878212A (zh) | 基于Autosar架构的控制器软件路由信息配置文件自动生成方法及装置 | |
CN108304358A (zh) | 基于陆用捷联惯导产品SDCard存储装置的数据解析方法 | |
CN115242787A (zh) | 消息处理系统及方法 | |
CN109840110B (zh) | 用于处理代码消息的方法、装置、设备和可读存储介质 | |
CN111063347B (zh) | 实时语音识别方法、服务端及客户端 | |
US7788402B1 (en) | Circuit for modification of a network packet by insertion or removal of a data segment | |
US9843636B2 (en) | Computer-readable medium storing data editing program | |
CN112217896A (zh) | 一种json报文转换方法以及相关装置 | |
CN113905106A (zh) | 一种报文解析方法、装置、设备及存储介质 | |
CN109347671B (zh) | 一种在芯片中实现带内OAM Metadata编辑的系统及方法 | |
CN115396363B (zh) | 一种sdn网络环境下的流量分类方法及系统 | |
CN109492329A (zh) | 一种背钻设置的设计方法 | |
Priyanga et al. | A fixed length payload encoding for can | |
CN117319332B (zh) | 一种网络报文切片的可编程硬件加速方法和网络处理芯片 | |
CN117807034A (zh) | 一种智能电表的日志流量控制方法、介质及终端 | |
JPS6150441A (ja) | 船舶用デ−タ通信処理方式 | |
CN113490292B (zh) | 通信处理方法和电子设备 | |
CN115567460B (zh) | 数据包处理方法及装置 | |
CN109981481B (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 |