CN116567076A - 一种数据报文处理方法及相关装置 - Google Patents
一种数据报文处理方法及相关装置 Download PDFInfo
- Publication number
- CN116567076A CN116567076A CN202310606772.9A CN202310606772A CN116567076A CN 116567076 A CN116567076 A CN 116567076A CN 202310606772 A CN202310606772 A CN 202310606772A CN 116567076 A CN116567076 A CN 116567076A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- target
- message
- unloading
- format
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000006243 chemical reaction Methods 0.000 claims description 181
- 230000015654 memory Effects 0.000 claims description 150
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种数据报文处理方法及相关装置,该方法包括:获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息;获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。在上述方案的实现过程中,通过描述符格式来描述不同类型设备接口对应的报文格式,并使用描述符格式从数据描述符中解析出的报文描述信息来获取不同格式的目标报文,从而让卸载设备能够对不同格式的目标报文进行卸载处理,从而有效地提高了卸载设备的兼容性。
Description
技术领域
本申请涉及报文通信和报文卸载的技术领域,具体而言,涉及一种数据报文处理方法及相关装置。
背景技术
卸载(offload),是指为了降低服务器的CPU对数据包(又被称为报文)的负荷,而单独设置其它卸载设备来处理数据包中的非业务内容,非业务内容具体例如:对数据包进行网络地址端口转换(Network Address Port Translation,NAPT)的负荷,对数据包进行服务质量(Quality of Service,QoS)处理的性能负荷等等。
目前,对数据报文进行卸载大都是通过卸载设备的硬件方式进行加速卸载的,卸载设备支持的设备接口(例如网络设备接口)大概率是单一固定的,例如只支持光电以太网接口,或是特定的一种通用串行总线(Universal Serial Bus,USB)接口。由于不同类型设备接口对应的报文格式,且卸载设备对接的网络设备接口通常是单一固定的,所以一旦硬件开发工程师将卸载设备支持的网络设备接口开发完成,就难以更改该接口对接的网络设备接口对应的报文格式。也就是说,目前的卸载设备无法处理不同类型设备接口对应的报文格式,所以卸载设备对报文进行卸载的兼容性较差。
发明内容
本申请实施例的目的在于提供一种数据报文处理方法及相关装置,用于改善卸载设备对报文进行卸载的兼容性较差的问题。
第一方面,本申请实施例提供了一种数据报文处理方法,应用于卸载设备,包括:获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息;获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。在上述方案的实现过程中,通过描述符格式来描述不同类型设备接口对应的报文格式,并使用描述符格式从数据描述符中解析出的报文描述信息来获取不同格式的目标报文,从而让卸载设备能够对不同格式的目标报文进行卸载处理,从而有效地提高了卸载设备的兼容性。
在第一方面的一种可选实现方式中,数据报文处理方法,还包括:获取卸载报文对应的响应报文,并对响应报文进行加载处理,获得加载报文;根据原始描述符的描述符格式生成加载报文对应的描述符,该描述符用于获取该加载报文。在上述方案的实现过程中,通过根据原始描述符的描述符格式生成加载报文对应的描述符,以获取该加载报文,从而实现了报文的加载操作,即实现了卸载的反向操作功能,有效地提高了卸载设备的兼容性。
在第一方面的一种可选实现方式中,获取目标描述符和目标描述符的描述符格式,包括:通过卸载设备与网络设备绑定的端口接收目标描述符;获取端口的端口属性,并根据端口属性确定寄存器组标识;根据寄存器组标识从卸载设备的多个寄存器组中读取出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。在上述方案的实现过程中,通过根据该端口属性确定的寄存器组标识从卸载设备的多个寄存器组中读取出描述符格式,让卸载设备能够按照描述符格式解析出来的目标描述信息获取目标报文,从而有效地提高了卸载设备与不同网络设备的兼容性。
在第一方面的一种可选实现方式中,数据报文处理方法,还包括:对待处理报文进行加载处理,获得加载报文;将加载报文存储至卸载设备与网络设备的共享内存中;按照目标描述符的描述符格式,将加载报文在共享内存中的第一描述信息封装为第一描述符;通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,第一描述符用于网络设备获取共享内存中的加载报文。在上述方案的实现过程中,通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,以使网络设备获取共享内存中的加载报文,从而实现了报文的加载操作,即实现了卸载的反向操作功能,有效地提高了卸载设备的兼容性。
在第一方面的一种可选实现方式中,获取目标描述符和目标描述符的描述符格式,包括:从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。在上述方案的实现过程中,通过让格式转换设备作为卸载设备的代理中间设备来完成原始描述符到目标描述符的处理,使得卸载设备不用关心不同类型设备接口对应的报文格式差异,直接使用格式转换设备发送的目标描述符即可获得不同类型设备接口的目标报文,有效地提高了卸载设备的兼容性。
在第一方面的一种可选实现方式中,获取目标描述信息对应的目标报文,包括:在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的。在上述方案的实现过程中,通过在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,从而以数据包零拷贝的方式提高了数据处理的性能,此处的零拷贝是指不在共享内存中拷贝数据,即不存储相同的数据,只读取和存储不同的数据。
在第一方面的一种可选实现方式中,数据报文处理方法,还包括:对待处理报文进行加载处理,获得加载报文;将加载报文存储至卸载设备与格式转换设备的共享内存中;按照原始描述符的描述符格式,将加载报文在共享内存中的第二描述信息封装为第二描述符;通过卸载设备与格式转换设备绑定的端口向格式转换设备发送第二描述符,第二描述符用于格式转换设备或者网络设备获取共享内存中的加载报文。
第二方面,本申请实施例提供了一种数据报文处理方法,应用于格式转换设备,包括:接收网络设备发送的原始描述符;按照预先设置的描述符格式,将原始描述符转换为目标描述符;向卸载设备转发目标描述符。在上述方案的实现过程中,通过让格式转换设备作为卸载设备的代理中间设备来完成原始描述符到目标报文对应的目标描述符的处理,使得卸载设备不用关心不同类型设备接口对应的报文格式差异,直接使用格式转换设备发送的目标描述符即可获得不同类型设备接口的目标报文,有效地提高了卸载设备的兼容性。
在第二方面的一种可选实现方式中,按照预先设置的描述符格式,将原始描述符转换为目标描述符,包括:从原始描述符中解析出原始描述信息;从网络设备与格式转换设备的共享内存中查找出原始描述信息对应的原始报文;将原始报文存储至格式转换设备与卸载设备的共享内存中,获得目标报文;按照描述符格式,将原始描述信息转换为目标报文对应的目标描述信息,并将目标描述信息封装为目标描述符。在上述方案的实现过程中,在网络设备与格式转换设备的共享内存与格式转换设备与卸载设备的共享内存是不同物理内存的情况下,按照描述符格式,将原始描述信息转换为目标报文对应的目标描述信息,并将目标描述信息封装为目标描述符,使得卸载设备能够按照描述符格式解析出来的目标描述信息获取目标报文,从而有效地提高了卸载设备与不同网络设备的兼容性。
在第二方面的一种可选实现方式中,按照预先设置的描述符格式,将原始描述符转换为目标描述符,包括:从原始描述符中解析出原始描述信息;按照描述符格式,将原始描述信息转换为目标描述信息,并将目标描述信息封装为目标描述符。在上述方案的实现过程中,通过按照描述符格式,将原始描述信息转换为目标描述信息,并将目标描述信息封装为目标描述符,使得卸载设备能够按照描述符格式解析出来的目标描述信息获取目标报文,从而有效地提高了卸载设备与不同网络设备的兼容性。
在第二方面的一种可选实现方式中,格式转换设备是虚拟设备;和/或,向卸载设备转发目标描述符,包括:将目标描述符存储至描述符队列中,描述符队列用于被卸载设备获取目标描述符。在上述方案的实现过程中,通过使用描述符队列来传递描述符,从而让卸载设备能够根据描述符队列中的描述符获取不同格式的目标报文,从而有效地提高了卸载设备的兼容性。
第三方面,本申请实施例提供了一种数据报文处理系统,包括:网络设备和卸载设备;卸载设备用于获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息,目标描述符是网络设备发送的;卸载设备还用于获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。
在第三方面的一种可选实现方式中,网络设备用于通过卸载设备与网络设备绑定的端口,向卸载设备发送目标描述符;卸载设备还用于通过卸载设备与网络设备绑定的端口接收目标描述符;卸载设备还用于获取端口的端口属性,并根据端口属性确定寄存器组标识;卸载设备还用于根据寄存器组标识从卸载设备的多个寄存器组中筛选出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
在第三方面的一种可选实现方式中,卸载设备还用于对待处理报文进行加载处理,获得加载报文;卸载设备还用于将加载报文存储至卸载设备与网络设备的共享内存中;卸载设备还用于按照目标描述符的描述符格式,将加载报文在共享内存中的第一描述信息封装为第一描述符;卸载设备还用于通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,第一描述符用于网络设备获取共享内存中的加载报文。
在第三方面的一种可选实现方式中,该数据报文处理系统,还包括:格式转换设备;卸载设备还用于从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。
在第三方面的一种可选实现方式中,该数据报文处理系统,还包括:共享内存;卸载设备还用于在格式转换设备与卸载设备的共享内存中查找出目标描述信息对应的目标报文,目标报文是格式转换设备将网络设备转发的原始报文进行转换后,并存储在共享内存中的。
在第三方面的一种可选实现方式中,卸载设备还用于对待处理报文进行加载处理,获得加载报文;卸载设备还用于将加载报文存储至卸载设备与格式转换设备的共享内存中;卸载设备还用于按照原始描述符的描述符格式,将加载报文在所述共享内存中的第二描述信息封装为第二描述符;卸载设备还用于通过卸载设备与格式转换设备绑定的端口向格式转换设备发送第二描述符,第二描述符用于格式转换设备获取共享内存中的加载报文。
第四方面,本申请实施例提供了一种数据报文处理装置,应用于卸载设备,包括:目标描述解析模块,用于获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息;报文卸载处理模块,用于获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。
在第四方面的一种可选实现方式中,目标描述解析模块,包括:第一描述符接收子模块,用于通过卸载设备与网络设备绑定的端口接收目标描述符;寄存器标识确定子模块,用于获取端口的端口属性,并根据端口属性确定寄存器组标识;描述符格式读取子模块,用于根据寄存器组标识从卸载设备的多个寄存器组中读取出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
在第四方面的一种可选实现方式中,数据报文处理装置,还包括:第一加载处理模块,用于对待处理报文进行加载处理,获得加载报文;第一信息获取模块,用于将加载报文存储至卸载设备与网络设备的共享内存中;第一描述符封装模块,用于按照目标描述符的描述符格式,将加载报文在共享内存中的第一描述信息封装为第一描述符;第一描述符发送模块,用于通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,第一描述符用于网络设备获取共享内存中的加载报文。
在第四方面的一种可选实现方式中,目标描述解析模块,包括:第二描述符接收子模块,用于从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。
在第四方面的一种可选实现方式中,报文卸载处理模块,包括:目标报文查找子模块,用于在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的。
在第四方面的一种可选实现方式中,还包括:第二加载处理模块,用于对待处理报文进行加载处理,获得加载报文;第二信息获取模块,用于将加载报文存储至卸载设备与格式转换设备的共享内存中;第二描述符封装模块,用于按照原始描述符的描述符格式,将加载报文在共享内存中的第二描述信息封装为第二描述符;第二描述符发送模块,用于通过卸载设备与格式转换设备绑定的端口向格式转换设备发送第二描述符,第二描述符用于格式转换设备或者网络设备获取共享内存中的加载报文。
第五方面,本申请实施例提供了一种数据报文处理装置,应用于格式转换设备,包括:原始描述解析模块,用于接收网络设备发送的原始描述符;描述符封装模块,用于按照预先设置的描述符格式,将原始描述符转换为目标描述符;描述符转发模块,用于向卸载设备转发目标描述符。
在第五方面的一种可选实现方式中,描述符封装模块还具体用于:从原始描述符中解析出原始描述信息;从网络设备与格式转换设备的共享内存中查找出原始描述信息对应的原始报文;将原始报文存储至格式转换设备与卸载设备的共享内存中,获得目标报文;按照描述符格式,将原始描述信息转换为目标报文对应的目标描述信息,并将目标描述信息封装为目标描述符。
在第五方面的一种可选实现方式中,描述符封装模块还具体用于:从原始描述符中解析出原始描述信息;按照描述符格式,将原始描述信息转换为目标描述信息,并将目标描述信息封装为目标描述符。
在第五方面的一种可选实现方式中,格式转换设备是虚拟设备;和/或,描述符转发模块,包括:目标描述符存储子模块,用于将目标描述符存储至描述符队列中,描述符队列用于被卸载设备获取目标描述符。
第六方面,本申请实施例提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
本申请实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请实施例中的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的卸载设备执行的数据报文处理方法的流程示意图;
图2示出的本申请实施例提供的网络设备与卸载设备两者相互连接的示意图;
图3示出的本申请实施例提供的网络设备、格式转换设备和卸载设备三者依次连接的示意图;
图4示出的本申请实施例提供的格式转换设备执行的数据报文处理方法的流程示意图;
图5示出的本申请实施例提供的数据报文处理系统的结构示意图;
图6示出的本申请实施例提供的数据报文处理装置的结构示意图;
图7示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请实施例中的附图仅起到说明和描述的目的,并不用于限定本申请实施例的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请实施例中使用的流程图示出了根据本申请实施例的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请实施例内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请实施例的一部分,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例的选定实施例。
可以理解的是,本申请实施例中的“第一”“第二”用于区别类似的对象。本领域技术人员可以理解“第一”“第二”等字样并不对数量和执行次序进行限定,并且“第一”“第二”等字样也并不限定一定不同。在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组)。
需要说明的是,本申请实施例提供的数据报文处理方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备,例如:对报文进行卸载的x86设备或者非x86设备,非x86设备包括:大型机、小型机和UNIX设备。
为了改善卸载设备对报文进行卸载的兼容性,本申请实施例提供的数据报文处理方法的主要思路是采用描述符格式来描述不同类型设备接口对应的报文格式,并使用描述符格式从数据描述符中解析出的报文描述信息来获取不同格式的目标报文,从而让卸载设备能够对不同格式的目标报文进行卸载处理,从而有效地提高了卸载设备的兼容性。
下面介绍该数据报文处理方法适用的应用场景,这里的应用场景包括但不限于:使用该数据报文处理方法来提高网络设备的兼容性,由于网络设备支持的的设备接口通常是单一固定的,难以卸载处理串行计算机扩展总线标准(Peripheral ComponentInterconnect express,PCIe)、通用串行总线(Universal Serial Bus,USB)、安全数字输入输出(Secure Digital Input and Output,SDIO)等接口的网络数据包,此处的网络设备例如:移动路由器设备、家用路由器设备或是中小企业路由器设备,每种网络设备通常采用单一固定的接口。虽然网络设备的设备接口无法改变,网络数据包的报文格式也各不相同,但是可以采用该数据报文处理方法中的描述符格式来描述不同类型设备接口对应的报文格式,使得卸载设备可以根据描述符格式获取到不同网络设备格式的目标报文,从而完成对目标报文的卸载。
请参见图1示出的本申请实施例提供的卸载设备执行的数据报文处理方法的流程示意图;在卸载设备上执行的方法的实施方式可以包括:
步骤S110:卸载设备获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息。
卸载设备,是指对数据报文进行卸载(offload)的计算设备,此处的卸载设备上可以设置有特殊用途集成电路(Application Specific Integrated Circuit,ASIC)或者现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)。
目标描述符是指卸载设备获取到的数据描述符,该数据描述符可以用于描述数据报文中的每个字段信息。
可以理解的是,不同类型设备接口对应的报文格式(例如数据地址、长度和状态等)均不相同,例如:有些系统是64位地址,而有些系统是32位地址,64位地址可能被分段存储等等,因此,卸载设备这种硬件设备很难适应不同类型设备接口对应的报文格式。为了适应不同类型设备接口对应的报文格式,本申请实施例提供一种目标描述符的描述符格式,该描述符格式可以存储在卸载设备的寄存器组中,例如:每个寄存器可以存储数据描述符中的一个字段信息,因此,一个寄存器组可以用于存储数据描述符的所有字段信息的描述符格式。
下面的表格1示例出了一种用于描述报文信息描述符的描述符格式,该描述符格式可以包括:数据缓存(buff)基地址(表示为Head_addr)、数据字段偏移(Offset)、描述符子类代码(Code)、保留(Resv)字段、数据包长度(Len)、数据包错误(Error)状态、类型相关信息1(Ext1)和类型相关信息2(Ext2)。
表格1
可以理解的是,上述卸载设备获取目标描述符可以有很多种方式,包括但不限于:第一种获取方式,在网络设备与卸载设备两者相互连接的情况下,可以直接通过卸载设备与网络设备绑定的端口接收目标描述符;第二种获取方式,在网络设备、格式转换设备(详见后文阐述)和卸载设备三者依次连接的情况下,也就是说,在网络设备与格式转换设备通过第一端口连接,且格式转换设备与卸载设备通过第二端口连接的情况下,那么可以从卸载设备上与格式转换设备绑定的第二端口接收目标描述符,此处的第一端口和第二端口可以是物理端口,在后文中将详细地描述这两种方式。同理地,描述符格式的获取方式也有很多种,后文将详细地介绍卸载设备获取描述符格式的多种方式。
步骤S120:卸载设备获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。
由于按照描述符格式从目标描述符中解析出目标描述信息(例如:数据缓存基地址的具体值或数据字段偏移的具体值等),从该目标描述信息中可以知道目标报文的每个字段信息,例如:报文头部某字段的数据缓存(buff)基地址和数据字段偏移等等信息,从而可以根据该基地址和和数据字段偏移获取到报文头部某字段的数字内容(例如从内存中读取到该字段,或者,从其它存储位置中读取该字段),同理地,报文头部中的所有字段和报文体中的所有字段均可以根据解析出的目标描述信息来获取到。
可以理解的是,卸载设备可以对目标报文进行很多种卸载处理,例如:对数据包进行网络地址端口转换NAPT的负荷,对数据包进行服务质量QoS处理的性能负荷等等。在具体实践过程中,通过其它业务设备(例如审计设备或安全设备)来获取卸载报文,该业务设备可以通过总线的方式读取卸载报文,也可以由卸载设备将卸载报文存储至共享内存中,该业务设备就可以从共享内存中读取卸载报文。
在上述的实现过程中,通过描述符格式来描述不同类型设备接口对应的报文格式,并使用描述符格式从数据描述符中解析出的报文描述信息来获取不同报文格式的目标报文,从而让卸载设备能够对不同格式的目标报文进行卸载处理,有效地提高了卸载设备的兼容性。此处的卸载设备的兼容性是指将卸载设备的适用面大幅拓宽,卸载设备可以卸载处理很多网络设备接口对应报文格式的数据报文,此处的网络设备例如:100M/1000M级别的家用路由器,或者,10G级别的企业小型路由器。
在具体的实践过程中,数据报文处理方法,还可以包括:获取卸载报文对应的响应报文,例如:卸载设备可以向业务设备发送卸载报文,以使业务设备在接收到卸载报文之后,可以对卸载报文进行业务处理(例如数据查询、修改或增加等等),获得并返回该卸载报文对应的响应报文。对响应报文进行加载处理(即卸载处理的逆向过程,例如:网络地址转换的逆向过程、网络端口转换的逆向过程等等),获得加载报文;根据原始描述符的描述符格式生成加载报文对应的描述符,该描述符用于获取该加载报文。在上述方案的实现过程中,通过根据原始描述符的描述符格式生成加载报文对应的描述符,以获取该加载报文,从而实现了报文的加载操作,即实现了卸载的反向操作功能,有效地提高了卸载设备的兼容性。
请参见图2示出的本申请实施例提供的网络设备与卸载设备两者相互连接的示意图;作为上述步骤S110的第一种可选实施方式,在卸载设备与网络设备通过端口直接连接的情况下,获取目标描述符和目标描述符的描述符格式的实施方式可以包括:
步骤S111:卸载设备通过卸载设备与网络设备绑定的端口接收目标描述符。
上述步骤S111的实施方式例如:网络设备在获取目标报文之后,可以将目标报文存储在网络设备与卸载设备的共享内存中,并根据该目标报文在共享内存中的存储信息(例如目标报文的数据缓存基地址,以及每个字段的数据偏移等),获取目标报文对应的目标描述信息。然后,网络设备将目标描述信息封装为目标描述符,并在卸载设备与网络设备通过物理端口直接连接的情况下,网络设备可以直接通过该物理端口向卸载设备发送该目标描述符。同理地,卸载设备也可以直接通过卸载设备与网络设备绑定的物理端口接收网络设备发送的目标描述符。
可以理解的是,本申请实施例中的共享内存是指多个设备之间共享的内存,例如:在网络设备与卸载设备两者之间共享的内存,或者,在网络设备、格式转换设备和卸载设备三者之间共享的内存,此处的内存可以是随机存储器(Random-Access Memory,RAM)。
步骤S112:卸载设备获取端口的端口属性,并根据端口属性确定寄存器组标识。
寄存器组标识(Register Group Identification),是指寄存器组的唯一标识,寄存器组用于存储描述符格式,此处的描述符格式例如16个字节的描述符,0-5字节是地址,6-7两个字节是长度,8-9是键(key)值,10-11是控制码。
上述步骤S112的实施方式例如:获取卸载设备与网络设备连接的物理端口的端口属性,该端口属性与物理端口可以是有映射关系的,因此,可以从物理端口与端口属性之间的映射关系表(例如数据库中的端口属性关系表)中查询出物理端口对应的端口属性。根据端口属性确定寄存器组标识的实施方式有很多种,第一种实施方式例如:可以从端口属性中解析出用户预先配置的寄存器标识;第二种实施方式例如:当然也可以从端口属性与寄存器组标识之间的映射关系表(例如数据库中的端口属性关系表)中查询出端口属性对应的寄存器组标识。
步骤S113:卸载设备根据寄存器组标识从卸载设备的多个寄存器组中读取出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
寄存器组是指用于存储描述符格式的多个寄存器,每个寄存器可以存储描述符格式的其中一个字段,例如:假设共16个字节的描述符,可以使用0-5字节的寄存器来存储报文地址,可以使用6-7两个字节寄存器来存储报文长度,可以使用8-9两个字节寄存器来存储键(key)值,可以使用10-11两个字节寄存器来控制码。
上述步骤S113的实施方式例如:由于卸载设备设置有多个寄存器组,且多个寄存器组中的每个寄存器组存储有一种对应的描述符格式,因此,卸载设备可以根据寄存器组标识从卸载设备的多个寄存器组中查找出寄存器组标识对应的寄存器组,然后,从该寄存器组标识对应的寄存器组读取出用于解析目标描述符的描述符格式。卸载设备在获得描述符格式之后,还可以使用该描述符格式对目标描述符进行解析,获得目标描述符中的目标描述信息,并从卸载设备与网络设备的共享内存中查找到目标描述信息对应的目标报文。
可以理解的是,当卸载设备的全部寄存器组中的描述符格式无法描述清楚时(例如无法描述报文的所有字段),可以采用Linux驱动软件将数据报文进行预先设置的描述符格式转换(例如在Linux驱动软件中设置的描述符格式),Linux驱动软件规范定义了标准的发送接口和接收接口,发送接口可以调用ndo_start_xmit函数,接收接口可以把一个轮询函数(例如abc_poll函数)注册到Linux操作系统的napi结构上。由于描述符格式转换过程中不会修改数据报文本身,因此,使用Linux驱动软件将数据报文进行预先设置的描述符格式转换,能够达到很高的报文处理性能。
作为上述数据报文处理方法的一种可选实施方式,数据报文处理方法,还可以包括:
步骤S114:卸载设备对待处理报文进行加载处理,获得加载报文。
待处理报文,是指需要加载处理的报文,该报文可以是业务设备在接收到上述卸载报文之后返回的响应报文,当然,也可以是该业务设备主动发起用于推送给终端设备的请求报文。
加载(On Load)处理,是指卸载(Off Load)处理的逆处理过程,具体例如:假设卸载处理是解密,那么加载处理就是加密;同理地,假设卸载处理是网络地址转换(NetworkAddress Translation,NAT)的过程,那么加载处理就是NAT的逆向转换网络地址的过程。上述的加载报文就是指加载(On Load)处理后的报文,该报文与卸载报文是对应的。
上述步骤S114的实施方式有很多种,包括但不限于:第一种实施方式,卸载设备可以向业务设备发送卸载报文,以使业务设备在接收到卸载报文之后,可以对卸载报文进行业务处理(例如数据查询、修改或增加等等),获得并返回该卸载报文对应的响应报文;然后,卸载设备可以对响应报文进行加载处理(即卸载处理的逆向过程,例如:网络地址端口转换的逆向过程),获得加载报文。第二种实施方式,业务设备可以主动从卸载设备上读取该卸载报文,并对卸载报文进行业务处理,获得响应报文,然后将处理的响应报文存储在共享内存中。在业务设备将响应报文存储在共享内存中之后,卸载设备就可以从共享内存中获取响应报文,并对响应报文进行加载处理,获得加载报文。第三种实施方式,卸载设备接收到业务设备的请求报文,并对该请求报文进行加载处理,从而获得加载报文,其中,该请求报文是业务设备经过卸载设备推送给终端设备的报文。
步骤S115:卸载设备将加载报文存储至卸载设备与网络设备的共享内存中。
上述步骤S115的实施方式例如:卸载设备在获得加载报文之后,就可以将加载报文存储至卸载设备与网络设备的共享内存中,并获取加载报文在共享内存中的第一描述信息,此处的第一描述信息与上述的目标描述信息是类似的,包括但不限于:数据缓存基地址的具体值或数据字段偏移的具体值等,数据字段偏移是指一个数据字段距离数据缓存基地址的偏移量。
步骤S116:卸载设备按照目标描述符的描述符格式,将加载报文在所述共享内存中的第一描述信息封装为第一描述符。
步骤S117:卸载设备通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,第一描述符用于网络设备获取共享内存中的加载报文。
上述步骤S116至步骤S117的实施方式例如:卸载设备按照目标描述符的描述符格式(例如:数据缓存基地址或数据字段偏移等),将加载报文在所述共享内存中的第一描述信息封装为第一描述符,该第一描述符是网络设备的厂商按照预设描述符格式来设计的描述符。可以理解的是,不同类型的网络设备厂商设计的描述符是不相同的,所以,不同的网络设备绑定的端口需要发送不同描述符格式的描述符。
请参见图3示出的本申请实施例提供的网络设备、格式转换设备和卸载设备三者依次连接的示意图;作为上述步骤S110的第二种可选实施方式,获取目标描述符和目标描述符的描述符格式的实施方式可以包括:
步骤S118:卸载设备从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。
格式转换设备,是指用于对网络设备发送的原始描述符进行处理,从而将该原始描述符对应的原始报文进行格式转换的设备,该格式转换设备可以是物理设备(例如服务器),也可以是虚拟设备。
上述步骤S118的实施方式例如:网络设备在获得原始报文之后,将原始报文存储到网络设备与格式转换设备的共享内存中,并根据该原始报文在该共享内存中的存储信息(例如原始报文的数据缓存基地址,以及每个字段的数据偏移等),获取原始报文对应的原始描述信息。然后,网络设备将原始描述信息封装为原始描述符,并在网络设备与格式转换设备通过物理端口直接连接的情况下,网络设备可以直接通过该物理端口向格式转换设备发送该原始描述符。
同理地,格式转换设备在通过网络设备与格式转换设备之间的物理端口接收到原始描述符之后,可以从原始描述符中解析出原始描述符中的原始描述信息,并从网络设备与格式转换设备的共享内存中查找到原始描述信息对应的原始报文。格式转换设备在获得原始描述信息对应的原始报文之后,可以根据该原始报文获得目标报文,并将该目标报文存储在格式转换设备与卸载设备的共享内存中,并根据该目标报文在共享内存中的存储信息(例如目标报文的数据缓存基地址,以及每个字段的数据偏移等),获取目标报文对应的目标描述信息。然后,格式转换设备将目标描述信息封装为目标描述符,并在格式转换设备与卸载设备通过物理端口直接连接的情况下,格式转换设备可以直接通过该物理端口向卸载设备发送该目标描述符。同理地,卸载设备也可以直接通过卸载设备与格式转换设备绑定的物理端口接收网络设备发送的目标描述符。
最后,卸载设备从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,然后,使用预先设置的描述符格式对目标描述符进行解析,获得目标描述信息,并从卸载设备与格式转换设备的共享内存中查找到目标描述信息对应的目标报文。可以理解的是,上述的网络设备与格式转换设备的第一共享内存与卸载设备与格式转换设备的第二共享内存,可以是网络设备、格式转换设备和卸载设备这三者共同使用的同一块内存,第一共享内存和第二共享内存也可以分开使用的不同内存。
在上述方案的实现过程中,通过从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,让卸载设备能够按照预先设置的描述符格式解析出来的目标描述信息获取目标报文,从而让格式转换设备作为卸载设备的代理中间设备来完成原始描述符到目标描述符的处理,有效地提高了卸载设备的兼容性。
作为上述步骤S120的一种可选实施方式,获取目标描述信息对应的目标报文的实施方式可以包括:
步骤S121:卸载设备在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的。
可以理解的是,上述的共享内存也可以是以共享内存池的方式工作,即可以在网络设备和卸载设备之间申请共享内存池中的RAM和释放RAM,也可以在网络设备、格式转换设备和卸载设备之间申请共享内存池中的RAM和释放RAM。上述的寄存器共享内存池可以是由缓存管理器(Buffer Management,BMAN)来管理的,具体可以将每个共享内存池的起始地址、结束地址、内存块大小、内存块数量、内存池管理先进先出(First Input FirstOutput,FIFO)的基地址等池信息配置给BMAN,以便于BMAN根据这些池信息来对共享内存池进行管理。
上述步骤S121的实施方式例如:卸载设备在获得描述符格式之后,还可以使用该描述符格式对目标描述符进行解析,获得目标描述符中的目标描述信息,并在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的,具体可以参见上面步骤S111的实施方式或者步骤S114的实施方式。
在上述方案的实现过程中,通过在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,从而以数据包零拷贝的方式提高了数据处理的性能,此处的零拷贝是指不在共享内存中拷贝数据,即不存储相同的数据,只读取和存储不同的数据。
作为上述数据报文处理方法的一种可选实施方式,数据报文处理方法,还可以包括:
步骤S122:对待处理报文进行加载处理,获得加载报文。
步骤S123:将加载报文存储至卸载设备与格式转换设备的共享内存中。
其中,该步骤S122至步骤S123的实施原理和实施方式与步骤S114至步骤S115的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤S114至步骤S115的描述。
步骤S124:按照原始描述符的描述符格式,将加载报文在所述共享内存中的第二描述信息封装为第二描述符。
步骤S125:通过卸载设备与格式转换设备绑定的端口向格式转换设备发送第二描述符,第二描述符用于格式转换设备或者网络设备获取共享内存中的加载报文。
其中,该步骤S124至步骤S125的实施原理和实施方式与步骤S116至步骤S117的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤S116至步骤S117的描述。
请参见图4示出的本申请实施例提供的格式转换设备执行的数据报文处理方法的流程示意图;本申请实施例提供了一种数据报文处理方法,该方法可以应用于格式转换设备,该方法的实施方式可以包括:
步骤S210:格式转换设备接收网络设备发送的原始描述符。
上述步骤S210的实施方式例如:可以理解的是,在网络设备、格式转换设备和卸载设备三者依次连接的情况下,网络设备可以在获得原始报文之后,将原始报文存储到网络设备与格式转换设备的共享内存中,并根据该原始报文在该共享内存中的存储信息(例如原始报文的数据缓存基地址,以及每个字段的数据偏移等),获取原始报文对应的原始描述信息。然后,网络设备将原始描述信息封装为原始描述符,并在网络设备与格式转换设备通过物理端口直接连接的情况下,网络设备可以直接通过该物理端口向格式转换设备发送该原始描述符。然后,格式转换设备通过网络设备与格式转换设备之间的物理端口接收到原始描述符,格式转换设备在接收到原始描述符之后,可以从原始描述符中解析出原始描述符中的原始描述信息。
步骤S220:格式转换设备按照预先设置的描述符格式,将原始描述符转换为目标描述符。
步骤S230:格式转换设备向卸载设备转发目标描述符。
上述步骤S230的实施方式例如:格式转换设备还可以按照预先设置的描述符格式,将原始描述符转换为目标描述符,并在格式转换设备与卸载设备通过物理端口直接连接的情况下,格式转换设备可以直接通过该物理端口向卸载设备发送该目标描述符,目标描述符用于卸载处理该目标报文。卸载设备在接收到目标描述信息之后,可以从共享内存中获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载后的报文。
在上述方案的实现过程中,通过让格式转换设备作为卸载设备的代理中间设备来完成原始描述符到目标描述符的处理,使得卸载设备不用关心不同类型设备接口对应的报文格式差异,直接使用格式转换设备发送的目标描述符即可获得不同类型设备接口的目标报文,有效地提高了卸载设备的兼容性。
作为上述步骤S220的第一种可选实施方式,上述的按照预先设置的描述符格式,将原始描述符转换为目标描述符的实施方式可以包括:
步骤S221:格式转换设备从原始描述符中解析出原始描述信息。
步骤S222:格式转换设备从网络设备与格式转换设备的共享内存中查找出原始描述信息对应的原始报文。
步骤S223:格式转换设备将目标报文存储至格式转换设备与卸载设备的共享内存中,获得目标报文。
可以理解的是,若网络设备与格式转换设备的共享内存与格式转换设备与卸载设备的共享内存是不同物理内存,需要跨内存拷贝报文,即格式转换设备需要将目标报文存储至格式转换设备与卸载设备的共享内存中,获得目标报文。
步骤S224:格式转换设备按照预先设置的描述符格式,将原始描述信息转换为目标报文对应的目标描述信息,并将目标描述信息封装为目标描述符。
上述步骤S221至步骤S224的实施方式例如:格式转换设备从原始描述符中解析出原始描述符中的原始描述信息,可以从网络设备与格式转换设备的共享内存中查找到原始描述信息对应的原始报文。格式转换设备在获得原始描述信息对应的原始报文之后,可以格式转换设备将目标报文存储至格式转换设备与卸载设备的共享内存中,获得目标报文。格式转换设备按照描述符格式,将原始描述信息转换为目标报文对应的目标描述信息,并将目标描述信息封装为目标描述符。。
作为上述步骤S220的第二种可选实施方式,上述的按照预先设置的描述符格式,将原始描述符转换为目标描述符的实施方式可以包括:
步骤S225:格式转换设备从原始描述符中解析出原始描述信息。
步骤S226:格式转换设备按照描述符格式,将原始描述信息转换为目标描述信息,并将目标描述信息封装为目标描述符。
上述步骤S225至步骤S226的实施方式例如:格式转换设备使用预设编程语言编译或者解释的可执行程序从原始描述符中解析出原始描述信息,可以使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等等。格式转换设备按照预先设置的描述符格式,将原始描述信息转换为目标描述信息,并将目标描述信息封装为目标描述符。
作为上述步骤S250的一种可选实施方式,可以理解的是,上述的格式转换设备可以是虚拟设备,或者,上述的格式转换设备也可以是物理硬件设备;和/或,格式转换设备向卸载设备转发目标描述符的实施方式可以包括:
步骤S251:格式转换设备将目标描述符存储至描述符队列中,描述符队列用于被卸载设备获取目标描述符。
描述符队列(queue)是在用于存储描述符的队列,此处的描述符包括但不限于:网络设备发送给格式转换设备的原始描述符,格式转换设备发送给卸载设备的目标描述符,或者,网络设备发送给卸载设备的目标描述符。下面仅以格式转换设备向卸载设备转发目标描述符的实施方式为例进行说明,网络设备向格式转换设备发送原始描述符时也可以采用描述符队列,以及,格式转换设备向卸载设备发送目标描述符时也可以采用描述符队列,具体实施方式的原理是类似的,此处不再赘述。
上述步骤S251的实施方式例如:格式转换设备将目标描述符存储至描述符队列(queue)中,描述符队列用于被卸载设备获取目标描述符,该描述符队列可以是共享内存中的一种数据结构。也就是说,在格式转换设备将目标描述符存储至描述符队列之后,卸载设备就可以从描述符队列中读取目标描述符。
在上述方案的实现过程中,通过使用共享内存中的描述符队列来传递描述符,从而让卸载设备能够根据描述符队列中的描述符获取不同格式的目标报文,从而有效地提高了卸载设备的兼容性。
作为上述数据报文处理方法的一种可选实施方式,上述的格式转换设备可以是虚拟设备或实体设备,该虚拟设备是指通过操作系统的驱动程序(例如Linux驱动程序)模拟出来的虚拟网络外设,该虚拟设备可以用于统一将网络设备的原始报文转换为目标报文,以及上述的原始描述符经过一些列变化从而转换为目标描述符,理论上可以运行在任何硬件设备上,此处的硬件设备例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
当然,上述的格式转换设备也可以是一种硬件实体设备,对于芯片设计企业而言,任何实体设备都是很多电子元件构成的芯片,因此,上述的网络设备、格式转换设备和/或卸载设备也可以是电子元件构成的芯片,此时的网络设备、格式转换设备和/或卸载设备可以用Linux驱动程序来驱动,网络设备、格式转换设备和/或卸载设备之间也可以采用共享内存传输上面的数据报文。上述的描述符队列可以是共享内存中的一种队列数据结构,由于该描述符队列是存储在共享内存中的,因此,该描述符队列可以被网络设备、格式转换设备和/或卸载设备访问。
请参见图5示出的本申请实施例提供的数据报文处理系统的结构示意图;本申请实施例提供了一种数据报文处理系统300,包括:网络设备310和卸载设备320。
卸载设备320用于获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息,目标描述符是网络设备310发送的。
卸载设备320还用于获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。
可选地,在本申请实施例中,该数据报文处理系统,
网络设备310还用于通过卸载设备与网络设备绑定的端口,向卸载设备发送目标描述符。
卸载设备320还用于通过卸载设备与网络设备绑定的端口接收目标描述符。
卸载设备320还用于获取端口的端口属性,并根据端口属性确定寄存器组标识。
卸载设备320用于根据寄存器组标识从卸载设备的多个寄存器组中筛选出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
可选地,在本申请实施例中,卸载设备还用于对待处理报文进行加载处理,获得加载报文;
卸载设备还用于将加载报文存储至卸载设备与网络设备的共享内存中;
卸载设备还用于按照目标描述符的描述符格式,将加载报文在共享内存中的第一描述信息封装为第一描述符;
卸载设备还用于通过卸载设备与网络设备绑定的端口向网络设备发送第一描述符,第一描述符用于网络设备获取共享内存中的加载报文。
可选地,在本申请实施例中,该数据报文处理系统,还包括:格式转换设备。
卸载设备用于从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。
可选地,在本申请实施例中,该数据报文处理系统,还包括:共享内存。
卸载设备用于在格式转换设备与卸载设备的共享内存中查找出目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的。
可选地,在本申请实施例中,卸载设备还用于对待处理报文进行加载处理,获得加载报文;
卸载设备还用于将加载报文存储至卸载设备与格式转换设备的共享内存中;
卸载设备还用于按照原始描述符的描述符格式,将加载报文在所述共享内存中的第二描述信息封装为第二描述符;
卸载设备还用于通过卸载设备与格式转换设备绑定的端口向格式转换设备发送第二描述符,第二描述符用于格式转换设备获取共享内存中的加载报文。
需要说明的是,本申请实施例中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
请参见图6示出的本申请实施例提供的数据报文处理装置的结构示意图;本申请实施例提供了一种数据报文处理装置400,应用于卸载设备,包括:
目标描述解析模块410,用于获取目标描述符和描述符格式,并根据描述符格式解析出目标描述符中的目标描述信息。
报文卸载处理模块420,用于获取目标描述信息对应的目标报文,并对目标报文进行卸载处理,获得卸载报文。
可选地,在本申请实施例中,目标描述解析模块,包括:
第一描述符接收子模块,用于通过卸载设备与网络设备绑定的端口接收目标描述符。
寄存器标识确定子模块,用于获取端口的端口属性,并根据端口属性确定寄存器组标识。
描述符格式读取子模块,用于根据寄存器组标识从卸载设备的多个寄存器组中读取出描述符格式,多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
可选地,在本申请实施例中,目标描述解析模块,包括:
第二描述符接收子模块,用于从卸载设备上与格式转换设备绑定的端口接收目标描述符,并获取卸载设备上预先设置的描述符格式,目标描述符是格式转换设备对网络设备发送的原始描述符进行处理得到的。
可选地,在本申请实施例中,报文卸载处理模块,包括:
目标报文查找子模块,用于在格式转换设备与卸载设备的共享内存中查找目标描述信息对应的目标报文,目标报文是格式转换设备或者网络设备存储在共享内存中的。
本申请实施例还提供了一种数据报文处理装置,应用于格式转换设备,该数据报文处理装置可以包括:
原始描述解析模块,用于接收网络设备发送的原始描述符,并从原始描述符中解析出原始描述信息。
目标报文转换模块,用于从网络设备与格式转换设备的共享内存中查找出原始描述信息对应的原始报文,并将原始报文转换为目标报文。
目标描述获取模块,用于将目标报文存储至格式转换设备与卸载设备的共享内存中。
描述符封装模块,用于按照预先设置的描述符格式,将目标报文对应的目标描述信息封装为目标描述符。
描述符转发模块,用于向卸载设备转发目标描述符,目标描述符包括需要卸载处理的目标报文对应的目标描述信息。
可选地,在本申请实施例中,描述符转发模块,包括:
目标描述符存储子模块,用于将目标描述符存储至描述符队列中,描述符队列用于被卸载设备获取目标描述符。
可选地,在本申请实施例中,格式转换设备是虚拟设备。
应理解的是,该装置与上述的数据报文处理方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图7示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备500,包括:处理器510和存储器520,存储器520存储有处理器510可执行的机器可读指令,机器可读指令被处理器510执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质530,该计算机可读存储介质530上存储有计算机程序,该计算机程序被处理器510运行时执行如上的方法。其中,计算机可读存储介质530可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。此外,在本说明书的描述中,参考术语“一个实施例”“一些实施例”“示例”“具体示例”“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (14)
1.一种数据报文处理方法,其特征在于,应用于卸载设备,包括:
获取目标描述符和所述目标描述符的描述符格式,并根据所述描述符格式解析出所述目标描述符中的目标描述信息;
获取所述目标描述信息对应的目标报文,并对所述目标报文进行卸载处理,获得卸载报文。
2.根据权利要求1所述的方法,其特征在于,所述获取目标描述符和所述目标描述符的描述符格式,包括:
通过所述卸载设备与网络设备绑定的端口接收所述目标描述符;
获取所述端口的端口属性,并根据所述端口属性确定寄存器组标识;
根据所述寄存器组标识从所述卸载设备的多个寄存器组中读取出所述描述符格式,所述多个寄存器组中的每个寄存器组存储有一种对应的描述符格式。
3.根据权利要求2所述的方法,其特征在于,还包括:
对待处理报文进行加载处理,获得加载报文;
将所述加载报文存储至所述卸载设备与所述网络设备的共享内存中;
按照所述目标描述符的描述符格式,将所述加载报文在所述共享内存中的第一描述信息封装为第一描述符;
通过所述卸载设备与所述网络设备绑定的端口向所述网络设备发送所述第一描述符,所述第一描述符用于所述网络设备获取所述共享内存中的加载报文。
4.根据权利要求1所述的方法,其特征在于,所述获取目标描述符和所述目标描述符的描述符格式,包括:
从所述卸载设备上与格式转换设备绑定的端口接收所述目标描述符,并获取所述卸载设备上预先设置的所述描述符格式,所述目标描述符是所述格式转换设备对网络设备发送的原始描述符进行处理得到的。
5.根据权利要求4所述的方法,其特征在于,所述获取所述目标描述信息对应的目标报文,包括:
在所述格式转换设备与所述卸载设备的共享内存中查找所述目标描述信息对应的目标报文,所述目标报文是所述格式转换设备或者所述网络设备存储在所述共享内存中的;
和/或,
所述数据报文处理方法,还包括:
对待处理报文进行加载处理,获得加载报文;
将所述加载报文存储至所述卸载设备与所述格式转换设备的共享内存中;
按照所述原始描述符的描述符格式,将所述加载报文在所述共享内存中的第二描述信息封装为第二描述符;
通过所述卸载设备与所述格式转换设备绑定的端口向所述格式转换设备发送所述第二描述符,所述第二描述符用于所述格式转换设备或者所述网络设备获取所述共享内存中的加载报文。
6.一种数据报文处理方法,其特征在于,应用于格式转换设备,包括:
接收网络设备发送的原始描述符;
按照预先设置的描述符格式,将所述原始描述符转换为目标描述符;
向卸载设备转发所述目标描述符。
7.根据权利要求6所述的方法,其特征在于,所述按照预先设置的描述符格式,将所述原始描述符转换为目标描述符,包括:
从所述原始描述符中解析出原始描述信息;
从所述网络设备与所述格式转换设备的共享内存中查找出所述原始描述信息对应的原始报文;
将所述原始报文存储至所述格式转换设备与卸载设备的共享内存中,获得目标报文;
按照所述描述符格式,将所述原始描述信息转换为所述目标报文对应的目标描述信息,并将所述目标描述信息封装为所述目标描述符;
或者,
从所述原始描述符中解析出原始描述信息;
按照所述描述符格式,将所述原始描述信息转换为目标描述信息,并将所述目标描述信息封装为所述目标描述符。
8.根据权利要求6所述的方法,其特征在于,所述格式转换设备是虚拟设备;和/或,所述向卸载设备转发所述目标描述符,包括:
将所述目标描述符存储至描述符队列中,所述描述符队列用于被所述卸载设备获取所述目标描述符。
9.一种数据报文处理系统,其特征在于,包括:网络设备和卸载设备;
所述卸载设备用于获取目标描述符和描述符格式,并根据所述描述符格式解析出所述目标描述符中的目标描述信息,所述目标描述符是所述网络设备发送的;
所述卸载设备还用于获取所述目标描述信息对应的目标报文,并对所述目标报文进行卸载处理,获得卸载报文。
10.根据权利要求9所述的系统,其特征在于,所述网络设备用于通过所述卸载设备与所述网络设备绑定的端口,向所述卸载设备发送所述目标描述符;
所述卸载设备还用于通过所述卸载设备与所述网络设备绑定的端口接收所述目标描述符;
所述卸载设备还用于获取所述端口的端口属性,并根据所述端口属性确定寄存器组标识;
所述卸载设备还用于根据所述寄存器组标识从所述卸载设备的多个寄存器组中筛选出所述描述符格式,所述多个寄存器组中的每个寄存器组存储有一种对应的描述符格式;
和/或,
所述卸载设备还用于对待处理报文进行加载处理,获得加载报文;
所述卸载设备还用于将所述加载报文存储至所述卸载设备与所述网络设备的共享内存中;
所述卸载设备还用于按照所述目标描述符的描述符格式,将所述加载报文在所述共享内存中的第一描述信息封装为第一描述符;
所述卸载设备还用于通过所述卸载设备与所述网络设备绑定的端口向所述网络设备发送所述第一描述符,所述第一描述符用于所述网络设备获取所述共享内存中的加载报文。
11.根据权利要求9所述的系统,其特征在于,所述系统还包括:格式转换设备;
所述卸载设备还用于从所述卸载设备上与所述格式转换设备绑定的端口接收所述目标描述符,并获取所述卸载设备上预先设置的所述描述符格式,所述目标描述符是所述格式转换设备对所述网络设备发送的原始描述符进行处理得到的。
12.根据权利要求11所述的系统,其特征在于,所述系统还包括:共享内存;
所述卸载设备还用于在所述格式转换设备与所述卸载设备的所述共享内存中查找出所述目标描述信息对应的目标报文,所述目标报文是所述格式转换设备或者所述网络设备存储在所述共享内存中的;
和/或,
所述卸载设备还用于对待处理报文进行加载处理,获得加载报文;
所述卸载设备还用于将所述加载报文存储至所述卸载设备与所述格式转换设备的共享内存中;
所述卸载设备还用于按照所述原始描述符的描述符格式,将所述加载报文在所述共享内存中的第二描述信息封装为第二描述符;
所述卸载设备还用于通过所述卸载设备与所述格式转换设备绑定的端口向所述格式转换设备发送所述第二描述符,所述第二描述符用于所述格式转换设备获取所述共享内存中的加载报文。
13.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至8任一所述的方法。
14.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310606772.9A CN116567076A (zh) | 2023-05-25 | 2023-05-25 | 一种数据报文处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310606772.9A CN116567076A (zh) | 2023-05-25 | 2023-05-25 | 一种数据报文处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116567076A true CN116567076A (zh) | 2023-08-08 |
Family
ID=87486069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310606772.9A Pending CN116567076A (zh) | 2023-05-25 | 2023-05-25 | 一种数据报文处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116567076A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692416A (zh) * | 2024-02-04 | 2024-03-12 | 苏州元脑智能科技有限公司 | 网络报文处理方法、装置、计算机设备和存储介质 |
-
2023
- 2023-05-25 CN CN202310606772.9A patent/CN116567076A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692416A (zh) * | 2024-02-04 | 2024-03-12 | 苏州元脑智能科技有限公司 | 网络报文处理方法、装置、计算机设备和存储介质 |
CN117692416B (zh) * | 2024-02-04 | 2024-05-03 | 苏州元脑智能科技有限公司 | 网络报文处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112243046B (zh) | 通信方法和网卡 | |
CN110635933B (zh) | 用于管理sdn的网络的装置、控制方法及记录介质 | |
JP6269999B2 (ja) | パケット処理方法および装置 | |
CN112422393A (zh) | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 | |
US20150003461A1 (en) | Method for parsing network packets having future defined tags | |
CN110858821B (zh) | 容器通信方法及装置 | |
US11444874B2 (en) | Packet transmission method, and communications apparatus and system | |
US20220358075A1 (en) | Pcie-based data transmission method and apparatus | |
CN116567076A (zh) | 一种数据报文处理方法及相关装置 | |
CN113891396B (zh) | 数据包的处理方法、装置、计算机设备和存储介质 | |
CN111614580B (zh) | 一种数据转发方法、装置及设备 | |
CN113596017B (zh) | 一种协议解析方法、装置、软网关和存储介质 | |
CN112311692A (zh) | 报文处理方法及装置、端设备 | |
CN115733832A (zh) | 计算设备、报文接收方法、可编程网卡及存储介质 | |
CN115484322A (zh) | 数据包解封装卸载方法、装置、电子设备及存储介质 | |
EP4080840A1 (en) | Data transmission method and apparatus based on pcie | |
CN109639555B (zh) | 链路层报文生成方法、链路层报文生成装置及终端设备 | |
CN112039801B (zh) | 设置ip信息的方法、系统和代理服务器 | |
CN111459819B (zh) | 软件测试方法及装置、电子设备、计算机可读介质 | |
US7266614B1 (en) | Embedded channel adapter having link layer configured for concurrent retrieval of payload data during packet transmission | |
CN114697269A (zh) | 数据通信方法、装置、设备和介质 | |
CN111865801B (zh) | 一种基于Virtio端口传输数据的方法和系统 | |
CN113497767A (zh) | 传输数据的方法、装置、计算设备及存储介质 | |
CN114900458B (zh) | 报文转发方法、设备、介质及产品 | |
CN114079675B (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 |