CN114422617B - 一种报文处理方法、系统及计算机可读存储介质 - Google Patents
一种报文处理方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114422617B CN114422617B CN202111660604.5A CN202111660604A CN114422617B CN 114422617 B CN114422617 B CN 114422617B CN 202111660604 A CN202111660604 A CN 202111660604A CN 114422617 B CN114422617 B CN 114422617B
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- unit
- data
- uoe
- 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 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 213
- 238000000034 method Methods 0.000 claims description 41
- 238000004458 analytical method Methods 0.000 claims description 40
- 239000000284 extract Substances 0.000 claims description 10
- 238000004148 unit process Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 17
- 238000005538 encapsulation Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种报文处理方法,其中在接收方向上,本发明可无需对报文进行分流处理,可避免分流处理对报文处理的时延影响;在发送方向上,主机在接收到待封装数据后,会主动判断其对应的报文类型,若为UDP类型,则会为该数据添加用于UDP报文封装的头信息,并将完成添加的待封装数据发送至UOE单元,以便该单元在接收到待封装数据后,直接利用头信息将待封装数据封装为UDP报文,无需查询Session表,可避免Session表查询对UDP报文封装的时延影响,同时也能够避免UDP报文封装对片内存储资源的占用。本发明还提供一种报文处理系统及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本发明涉及网络设备领域,特别涉及一种报文处理方法、系统及计算机可读存储介质。
背景技术
智能网卡是专用于处理网络数据的硬件设备,而TOE单元(TCP Offload Engine,TCP协议卸载引擎)和UOE单元(UDP Offload Engine,UDP协议卸载引擎)中两个用于进行报文处理和报文封装的模块。相关技术中,在接收方向上,来自外部网络的报文需由分流模块根据报文协议分流至TOE单元和UOE单元之后,这两个单元才能开始进行报文处理,而分流操作增加了报文处理的时延;而发送方向上,TOE/UOE单元都需要查找session表才能得到报文封装所需的信息,当需要支持的TCP/UDP会话数很多时,不仅容易占用大量片内存储资源,同时也容易增加报文封装的时延。
因此,如何降低报文处理时延,是本领域技术人员所需面对的技术问题。
发明内容
本发明的目的是提供一种报文处理方法、系统及计算机可读存储介质,在报文接收方向上可避免分流处理对报文处理的时延影响,在报文发送方向上可避免Session表查询对UDP报文封装的时延影响,进而可有效提升报文处理效率。
为解决上述技术问题,本发明提供一种报文处理方法,包括:
MAC模块接收外部网络发送的报文,并将所述报文发送至处理单元;处理单元包括TOE单元和UOE单元;
所述处理单元在确定可解析所述报文的报文协议时对所述报文进行处理,并将处理结果发送至主机;
所述主机将所述处理结果发送至对应程序进行业务处理,并在接收到所述程序发送的待封装数据时,确定所述待封装数据对应的报文类型;
所述主机在确定所述报文类型为UDP时,为所述待封装数据添加头信息,并将完成添加的待封装数据发送至所述UOE单元;所述头信息包含创建UDP报文所需的配置信息;
所述UOE单元利用所述头信息将所述待封装数据封装为所述UDP报文,并通过所述MAC模块将所述UDP报文发送至所述外部网络。
可选地,所述将完成添加的待封装数据发送至所述UOE单元,包括:
所述主机将所述完成添加的待封装数据发送至所述UOE单元对应的内部RAM,以使所述UOE单元从所述内部RAM中提取所述完成添加的待封装数据。
可选地,所述将处理结果发送至主机,包括:
所述处理单元将所述处理结果发送至缓存队列,以使所述主机从所述缓存队列中提取所述处理结果。
可选地,所述将处理结果发送至主机,包括:
所述处理单元通过PCIE DMA模块将所述处理结果发送至所述主机;
相应的,所述将完成添加的待封装数据发送至所述UOE单元,包括:
所述主机通过所述PCIE DMA模块将所述完成添加的待封装数据发送至所述UOE单元。
可选地,所述将所述报文发送至处理单元,包括:
所述MAC模块将所述报文发送至所述处理单元对应的协议解析模块;
相应的,在处理单元确定可解析所述报文的报文协议之前,还包括:
所述协议解析模块判断可否解析所述报文协议;
若可解析,则对所述报文进行协议解析,将解析结果发送至所述处理单元,并将所述协议解析模块与所述处理单元之间的预设信号设置为正常状态;
相应的,所述处理单元在确定可解析所述报文的报文协议时对所述报文进行处理,包括:
所述处理单元在确定所述预设信号为所述正常状态时确定可解析所述报文协议,并对所述解析结果进行处理。
可选地,所述将所述协议解析模块与所述处理单元之间的预设信号设置为正常状态,包括:
所述协议解析模块将所述预设信号由低电平设置为高电平。
本发明还提供一种报文处理系统,包括:MAC模块、处理单元和主机,所述处理单元包括TOE单元和UOE单元,其中,
所述MAC模块,用于接收外部网络发送的报文,并将所述报文发送至所述处理单元;
所述处理单元,用于在确定可解析所述报文的报文协议时对所述报文进行处理,并将处理结果发送至主机;
所述主机,用于将所述处理结果发送至对应程序进行业务处理,并在接收到所述程序发送的待封装数据时,确定所述待封装数据对应的报文类型;在确定所述报文类型为UDP时,为所述待封装数据添加头信息,并将完成添加的待封装数据发送至所述UOE单元;所述头信息包含创建UDP报文所需的配置信息;
所述UOE单元,还用于利用所述头信息将所述待封装数据封装为所述UDP报文,并通过所述MAC模块将所述UDP报文发送至所述外部网络。
可选地,还包括:内部RAM,其中,
所述主机,还用于将所述完成添加的待封装数据发送至所述UOE单元对应的内部RAM;
所述UOE单元,还用于从所述内部RAM中提取所述完成添加的待封装数据。
可选地,还包括:缓存队列,其中,
所述处理单元,还用于将所述处理结果发送至缓存队列;
所述主机,还用于从所述缓存队列中提取所述处理结果。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的报文处理方法。
本发明提供一种报文处理方法,包括:MAC模块接收外部网络发送的报文,并将所述报文发送至处理单元;处理单元包括TOE单元和UOE单元;所述处理单元在确定可解析所述报文的报文协议对所述报文进行处理,并将处理结果发送至主机;所述主机将所述处理结果发送至对应程序进行业务处理,并在接收到所述程序发送的待封装数据时,确定所述待封装数据对应的报文类型;所述主机在确定所述报文类型为UDP时,为所述待封装数据添加头信息,并将完成添加的待封装数据发送至所述UOE单元;所述头信息包含创建UDP报文所需的配置信息;所述UOE单元利用所述头信息将所述待封装数据封装为所述UDP报文,并通过所述MAC模块将所述UDP报文发送至所述外部网络。
可见,在本发明中,MAC模块在接收到外部网络发送的报文后,并不会将其发送至分流模块,而是直接将其发送至处理单元,由该单元自行决定是否处理该报文;而处理单元在接收到报文后,会自动判断自身能否解析报文的报文协议,若能够解析则对报文进行处理,并将处理结果发送至主机,而在无法解析则自动忽略该报文。换而言之,在接收方向上,本发明可无需对报文进行分流处理,可避免分流处理对报文处理的时延影响;另外,在发送方向上,主机在接收到待封装数据后,会主动判断其对应的报文类型,若为UDP类型,则会为待封装数据添加用于UDP报文封装的头信息,并将完成添加的待封装数据发送至UOE单元;而UOE单元在接收到待封装数据后,会直接利用头信息将待封装数据封装为UDP报文,无需查询Session表,进而能够提升UDP报文的封装速度,同时也能够避免UDP报文封装对片内存储资源的占用。本发明还提供一种报文处理系统及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种报文处理方法的流程图;
图2为本发明实施例所提供的TOE/UOE接收方向处理数据流的示意图;
图3为本发明实施例所提供的TOE/UOE发送方向处理数据流的示意图;
图4a为本发明实施例所提供的第一种报文处理系统的结构框图;
图4b为本发明实施例所提供的第二种报文处理系统的结构框图;
图4c为本发明实施例所提供的第三种报文处理系统的结构框图;
图4d为本发明实施例所提供的第四种报文处理系统的结构框图;
图4e为本发明实施例所提供的第五种报文处理系统的结构框图;
图4f为本发明实施例所提供的第六种报文处理系统的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,在接收方向上,来自外部网络的报文需由分流模块根据报文协议分流至TOE单元和UOE单元之后,这两个单元才能开始进行报文处理,而分流操作增加了报文处理的时延;而发送方向上,TOE/UOE单元都需要查找session表才能得到报文封装所需的信息,当需要支持的TCP/UDP会话数很多时,不仅容易占用大量片内存储资源,同时也容易增加报文封装的时延。有鉴于此,本发明提供一种报文处理方法,可在报文接收方向上可避免分流处理对报文处理的时延影响,在报文发送方向上可避免Session表查询对UDP报文封装的时延影响,进而可有效提升报文处理效率。请参考图1,图1为本发明实施例所提供的一种报文处理方法的流程图,该方法可以包括:
S101、MAC模块接收外部网络发送的报文,并将报文发送至处理单元;处理单元包括TOE单元和UOE单元。
在本发明实施例中,在报文发送方向上,MAC模块可直接与TOE单元和UOE单元相连接,而无需额外连接至报文分流模块;而在接收到外部网络发送的报文时,MAC模块可直接将报文同时发送至TOE单元和UOE单元,由这些单元自行决定是否对报文进行处理。可以理解的是,MAC模块可将接收到的报文复制为两份,并将这两份报文分别发送至TOE单元和UOE单元。需要说明的是,本发明实施例并不限定具体的MAC模块,也不限定MAC模块的具体工作流程,此外,可以理解的是,MAC模块可能也会对报文进行相关的协议处理,本发明实施例在此不做限定,可参考网络设备的相关技术。
进一步,由于本发明实施例中不需要额外分流模块,而是由处理单元自行决定是否处理报文,因此处理单元可设置对应的协议解析模块,并利用该协议解析模块来确定该单元是否能对接收到的报文进行处理;相应的,MAC模块可将报文发送至处理单元对应的协议解析模块。本发明实施例并不限定协议解析模块的具体设置位置,例如可设置在处理单元外部,也可以设置在处理单元内部。为提高集成度,在本发明实施例中,协议解析模块可设置与处理单元内部。需要强调的是,协议解析模块对硬件逻辑资源的占用量较小,此外网络设备中通常包含有丰富的硬件逻辑资源,因此本发明实施例为处理单元额外增加的协议解析模块不仅可提升报文接收方向上的报文处理速度,同时也可提升硬件资源的利用率。需要说明的是,本发明实施例并不限定具体的协议解析模块,可参考网络设备的相关技术。
在一种可能的情况中,将报文发送至处理单元,可以包括:
步骤11:MAC模块将报文发送至处理单元对应的协议解析模块。
S102、处理单元在确定可解析报文的报文协议时对报文进行处理,并将处理结果发送至主机。
可以理解的是,处理单元只有在确定自身能够处理报文对应的报文协议时,才可对报文进行处理,例如,TOE单元一般用于处理TCP协议的报文,若将UDP报文发送给这一单元,则该单元将无法解析报文对应的协议;同样的,UOE单元一般用于处理UDP协议的报文,无法处理TCP协议的报文,因此在本发明实施例中,处理单元需要首先确定能否解析接收到的报文所使用的报文协议,若能够解析则可进行后续处理,否则将忽略该报文。
可选地,对报文协议的解析判断可由处理单元对应的协议解析模块处理,即协议解析模块在接收到MAC模块发送的报文之后,首先判断能否解析该报文的报文协议,若可解析,则向处理单元发送表示该报文可被处理的信号。本发明实施例并不限定该信号的具体形式,例如可以为预设指令,也可以为一个高电平或低电平。在本发明实施例中,考虑到协议解密模块和处理模块均为硬件设备,而硬件设备之间通常利用电信号进行数据传输,因此在本发明实施例中,可在协议解析模块和处理单元之间增设一个可传输电信号的预设信号通道,进而协议解析模块在确定报文协议可被解析后,可将该通道中的预设信号设置为正常状态,以告知处理单元该报文可被处理。可以理解的是,协议解析模块也可以对报文进行协议解析,并将解析结果发送至处理单元进行后续处理。需要说明的是,本发明实施例并不限定协议解析的具体过程,可参考网络设备的相关技术。
在一种可能的情况中,在处理单元确定可解析报文的报文协议之前,还可以包括:
步骤21:协议解析模块判断可否解析报文协议;若可解析,则进入步骤22;若不可解析,则忽略该报文或不进行操作;
步骤22:对报文进行协议解析,将解析结果发送至处理单元,并将协议解析模块与处理单元之间的预设信号设置为正常状态。
相应的,处理单元在确定可解析报文的报文协议时对报文进行处理,可以包括:
步骤31:处理单元在确定预设信号为正常状态时确定可解析报文协议,并对解析结果进行处理。
需要强调的是,预设信号具有默认值,在本发明实施例中,该默认值表示报文处于异常状态。换而言之,在协议解析模块确定报文可被解析后,将预设信号由默认值修改为正常状态。可以理解的是,在完成对处理单元的通知后,协议解析模块需将预设信号重新调整为默认值。需要说明的是,本发明实施例并不限定默认值及正常状态对应的电平值,例如默认值为高电平,正常状态为低电平;默认值也可以为低电平,相应的正常状态为高电平。在本发明实施例中,为方便设置和解析,可将默认值设置为低电平,而将正常状态设置为高电平,进而协议解析模块在确定报文协议可被解析后,可将预设信号由低电平设置为高电平。
在一种可能的情况中,将协议解析模块与处理单元之间的预设信号设置为正常状态,可以包括:
步骤41:协议解析模块将预设信号由低电平设置为高电平。
进一步,可以理解的是,为避免处理结果丢失,处理单元可将处理结果进行缓存,而主机则从缓存中提取处理结果。需要说明的是,本发明实施例并不限定具体的缓存类型,例如可以内存(DDR),也可以为缓存队列(FIFO,First In First Out)。在本发明实施例中,为提升传输效率,处理单元可将处理结果发送至缓存队列,而主机则从缓存队列中提取处理结果。
在一种可能的情况中,将处理结果发送至主机,可以包括:
步骤51:处理单元将处理结果发送至缓存队列,以使主机从缓存队列中提取处理结果。
进一步,本发明实施例并不限定处理单元与主机之间传输数据的方式,例如可采用PCIE DMA模块进行传输,其中PCIE(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,DMA(Direct Memory Access,直接存储器访问)是一种数据传输技术。
在一种可能的情况中,将处理结果发送至主机,可以包括:
步骤61:处理单元通过PCIE DMA模块将处理结果发送至主机。
需要说明的是,若处理单元将处理结果保存在缓存队列中,则主机需通过PCIEDMA模块从缓存队列中提取处理结果。本发明实施例并不限定提取的具体过程,可参考DMA的相关技术。
S103、主机将处理结果发送至对应程序进行业务处理,并在接收到程序发送的待封装数据时,确定待封装数据对应的报文类型。
相关技术中,在发送方向上,主机并不会主动确定待封装数据对应的报文类型,而是由各处理单元进行识别及处理;而在本发明实施例中,主机则将主动确定待封装数据所对应的报文类型,并对不同类型的报文进行区别处理。需要说明的是,本发明实施例并不限定主机确定待封装数据报文类型的具体方式,可参考相关的网络技术。
进一步,需要说明的是,在实际应用中,接收方向上(外部网络至主机)的报文处理和发送方向上(主机至外部网络)的报文处理通常并行处理,即由步骤S101至步骤S103中的“主机将处理结果发送至对应程序进行业务处理”组成的流程和与由步骤S103中的“在接收到程序发送的待封装数据时,确定待封装数据对应的报文类型”至步骤S105组成的流程通常可被并行执行,没有固定的先后顺序。
S104、主机在确定报文类型为UDP时,为待封装数据添加头信息,并将完成添加的待封装数据发送至UOE单元;头信息包含创建UDP报文所需的配置信息。
在本发明实施例中,主机在确定报文类型为UDP时,会主动为待封装数据添加头信息,并将完成头数据添加的待封装数据发送至UOE单元,其中头信息中包含有创建UDP报文所需的配置信息,例如目的IP、目的端口等信息。这是由于UDP是一种无连接的传输协议,利用UDP协议进行通信的双方无需建立连接即可传输UDP报文,因此在进行UDP报文传输时,可无需记录与连接有关的会话(Session)信息,进而主机端可将目的IP、目的端口这些轻量的配置信息预先写入待封装数据中,避免UOE单元在Session表中进行查询,进而可有效提升UOE单元封装UDP报文的效率;此外,由于创建UDP报文所需的配置信息由主机进行封装,因此UOE单元也无需将这些配置信息写入Session表,进而也能够有效节省硬件存储资源。需要说明的是,本发明实施例并不限定头信息的具体形式,只要其能够包含用于封装UDP报文的配置信息即可。
进一步,可以理解的是,为避免待封装数据丢失,主机可将处理结果进行缓存,而UOE单元则从缓存中提取待封装数据。需要说明的是,本发明实施例并不限定具体的缓存类型,例如可以DDR内存,也可以为UOE单元对应的RAM内存。在本发明实施例中,为提升传输效率,主机可将待封装数据发送至UOE单元对应的内部RAM,而UOE单元则从内部RAM中提取待封装数据。
在一种可能的情况中,将完成添加的待封装数据发送至UOE单元,可以包括:
步骤71:主机将完成添加的待封装数据发送至UOE单元对应的内部RAM,以使UOE单元从内部RAM中提取完成添加的待封装数据。
进一步,主机也可以通过PCIE DMA模块向UOE单元发送待封装数据。
在一种可能的情况中,将完成添加的待封装数据发送至UOE单元,可以包括:
步骤81:主机通过PCIE DMA模块将完成添加的待封装数据发送至UOE单元。
需要说明的是,若主机需将待封装数据保存在UOE单元对应的内部RAM中,则主机需通过PCIE DMA模块将待封装数据写入该内部RAM。本发明实施例并不限定数据写入的具体过程,可参考DMA的相关技术。
S105、UOE单元利用头信息将待封装数据封装为UDP报文,并通过MAC模块将UDP报文发送至外部网络。
需要说明的是,本发明实施例并不限定UDP报文的封装过程,可参考UDP的相关技术。进一步,可以理解的是,在发送方向上,UOE单元与MAC单元之间可能还连接有其他模块,例如用于对报文进行整合的仲裁模块等,可参考网络设备的相关技术。
基于上述实施例,在本发明中,MAC模块在接收到外部网络发送的报文后,并不会将其发送至分流模块,而是直接将其发送至处理单元,由该单元自行决定是否处理该报文;而处理单元在接收到报文后,会自动判断自身能否解析报文的报文协议,若能够解析则对报文进行处理,并将处理结果发送至主机,而在无法解析则自动忽略该报文。换而言之,在接收方向上,本发明可无需对报文进行分流处理,可避免分流处理对报文处理的时延影响;另外,在发送方向上,主机在接收到待封装数据后,会主动判断其对应的报文类型,若为UDP类型,则会为待封装数据添加用于UDP报文封装的头信息,并将完成添加的待封装数据发送至UOE单元;而UOE单元在接收到待封装数据后,会直接利用头信息将待封装数据封装为UDP报文,无需查询Session表,进而能够提升UDP报文的封装速度,同时也能够避免UDP报文封装对片内存储资源的占用。
下面基于实际的示意图介绍上述报文处理过程。
请参考图2,图2为本发明实施例所提供的TOE/UOE接收方向处理数据流的示意图。在接收方向,MAC接口输入的报文分别给TOE单元和UOE单元(复制),TOE/UOE单元内部有协议解析模块,当TOE单元的解析模块发现解析后的报文不是TCP协议报文,则把该报文设置无效,该报文就不会进行后续处理。UOE单元与TOE单元的处理流程类似。这样,便可实现对TCP/UDP协议报文的分流,该方案虽然复制了协议解析模块,但删减了分流处理模块,减少了处理延时(协议解析模块占用很少量的硬件逻辑资源(硬件逻辑资源通常比较富裕))。其次,TOE/UOE单元处理后的数据可以缓存在内部FIFO中,而不是DDR中,可以减少缓存读取时间,从而更进一步减少延时
请参考图3,图3为本发明实施例所提供的TOE/UOE发送方向处理数据流的示意图。在发送方向,主机在发送数据时就区分TCP报文和UDP报文,对于UDP报文,直接在发送的数据前增加一个头信息(head proc),其中包含了UDP协议相关字段,如目的IP,目的端口等信息,UOE单元直接解析头信息即可,而不需要去查找Session表,也不需要维护Session表,简化处理流程并减少了Session表的使用;同时主机把UDP数据通过PCIEDMA存储在内部RAM而不是DDR中,这样减少了读内存的时间,降低了延时。
下面对本发明实施例提供的报文处理系统及计算机可读存储介质进行介绍,下文描述的报文处理系统及计算机可读存储介质与上文描述的报文处理方法可相互对应参照。
请参考图4a,图4a为本发明实施例所提供的第一种报文处理系统的结构框图,该系统可以包括:MAC模块410、处理单元420和主机430,处理单元420包括TOE单元421和UOE单元422,其中,
MAC模块410,可以用于接收外部网络发送的报文,并将报文发送至处理单元420;
处理单元420,可以用于在确定可解析报文的报文协议时对报文进行处理,并将处理结果发送至主机430;
主机430,可以用于将处理结果发送至对应程序进行业务处理,并在接收到程序发送的待封装数据时,确定待封装数据对应的报文类型;在确定报文类型为UDP时,为待封装数据添加头信息,并将完成添加的待封装数据发送至UOE单元422;头信息包含创建UDP报文所需的配置信息;
UOE单元422,还可以用于利用头信息将待封装数据封装为UDP报文,并通过MAC模块410将UDP报文发送至外部网络。
可选地,请参考图4b,图4b为本发明实施例所提供的第二种报文处理系统的结构框图,该系统还可以包括:内部RAM423,其中,
主机430,还可以用于将完成添加的待封装数据发送至UOE单元422对应的内部RAM432;
UOE单元422,还可以用于从内部RAM423中提取完成添加的待封装数据。
可选地,请参考图4c,图4c为本发明实施例所提供的第三种报文处理系统的结构框图,该系统还可以包括:缓存队列424,其中,
处理单元420,还可以用于将处理结果发送至缓存队列424;
主机430,还可以用于从缓存队列424中提取处理结果。
可选地,请参考图4d,图4d为本发明实施例所提供的第四种报文处理系统的结构框图,该系统还可以包括:PCIE DMA模块440,其中
处理单元420,还可以用于通过PCIE DMA模块440将处理结果发送至主机430;
相应的,主机430,还可以用于通过PCIE DMA模块440将完成添加的待封装数据发送至UOE单元422。
可选地,请参考图4e,图4e为本发明实施例所提供的第五种报文处理系统的结构框图,TOE单元421还可以包括协议解析模块425,UOE单元422还可以包括协议解析模块426,其中,
MAC模块410,还可以用于将报文发送至处理单元420对应的协议解析模块425和426;
相应的,协议解析模块425和426,还可以用于判断可否解析报文协议;若可解析,则对报文进行协议解析,将解析结果发送至处理单元420,并将协议解析模块与处理单元420之间的预设信号设置为正常状态;
相应的,处理单元420,还可以用于在确定预设信号为正常状态时确定可解析报文协议,并对解析结果进行处理。
可选地,协议解析模块425和426,还可以用于将预设信号由低电平设置为高电平。
当然,本发明实施例还提供完整的报文处理系统,如图4f所示,图4f为本发明实施例所提供的第六种报文处理系统的结构框图。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的报文处理方法的步骤。
由于计算机可读存储介质部分的实施例与报文处理方法部分的实施例相互对应,因此存储介质部分的实施例请参见报文处理方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种报文处理方法、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种报文处理方法,其特征在于,包括:
MAC模块接收外部网络发送的报文,并将所述报文直接发送至处理单元;处理单元包括TOE单元和UOE单元,所述MAC模块直接与所述TOE单元和所述UOE单元相连接;
所述处理单元判断自身能否解析所述报文的报文协议,在确定无法解析所述报文的报文协议时自动忽略所述报文,在确定可解析所述报文的报文协议时对所述报文进行处理,并将处理结果发送至主机;
所述主机将所述处理结果发送至对应程序进行业务处理,并在接收到所述程序发送的待封装数据时,确定所述待封装数据对应的报文类型;
所述主机在确定所述报文类型为UDP时,为所述待封装数据添加头信息,并将完成添加的待封装数据发送至所述UOE单元;所述头信息包含创建UDP报文所需的配置信息;
所述UOE单元利用所述头信息将所述待封装数据封装为所述UDP报文,并通过所述MAC模块将所述UDP报文发送至所述外部网络。
2.根据权利要求1所述的报文处理方法,其特征在于,所述将完成添加的待封装数据发送至所述UOE单元,包括:
所述主机将所述完成添加的待封装数据发送至所述UOE单元对应的内部RAM,以使所述UOE单元从所述内部RAM中提取所述完成添加的待封装数据。
3.根据权利要求1所述的报文处理方法,其特征在于,所述将处理结果发送至主机,包括:
所述处理单元将所述处理结果发送至缓存队列,以使所述主机从所述缓存队列中提取所述处理结果。
4.根据权利要求1所述的报文处理方法,其特征在于,所述将处理结果发送至主机,包括:
所述处理单元通过PCIE DMA模块将所述处理结果发送至所述主机;
相应的,所述将完成添加的待封装数据发送至所述UOE单元,包括:
所述主机通过所述PCIE DMA模块将所述完成添加的待封装数据发送至所述UOE单元。
5.根据权利要求1至4任一项所述的报文处理方法,其特征在于,所述将所述报文发送至处理单元,包括:
所述MAC模块将所述报文发送至所述处理单元对应的协议解析模块;
相应的,在处理单元确定可解析所述报文的报文协议之前,还包括:
所述协议解析模块判断可否解析所述报文协议;
若可解析,则对所述报文进行协议解析,将解析结果发送至所述处理单元,并将所述协议解析模块与所述处理单元之间的预设信号设置为正常状态;
相应的,所述处理单元在确定可解析所述报文的报文协议时对所述报文进行处理,包括:
所述处理单元在确定所述预设信号为所述正常状态时确定可解析所述报文协议,并对所述解析结果进行处理。
6.根据权利要求5所述的报文处理方法,其特征在于,所述将所述协议解析模块与所述处理单元之间的预设信号设置为正常状态,包括:
所述协议解析模块将所述预设信号由低电平设置为高电平。
7.一种报文处理系统,其特征在于,包括:MAC模块、处理单元和主机,所述处理单元包括TOE单元和UOE单元,所述MAC模块直接与所述TOE单元和所述UOE单元相连接,其中,
所述MAC模块,用于接收外部网络发送的报文,并将所述报文直接发送至所述处理单元;
所述处理单元,用于判断自身能否解析所述报文的报文协议,在确定无法解析所述报文的报文协议时自动忽略所述报文,在确定可解析所述报文的报文协议时对所述报文进行处理,并将处理结果发送至主机;
所述主机,用于将所述处理结果发送至对应程序进行业务处理,并在接收到所述程序发送的待封装数据时,确定所述待封装数据对应的报文类型;在确定所述报文类型为UDP时,为所述待封装数据添加头信息,并将完成添加的待封装数据发送至所述UOE单元;所述头信息包含创建UDP报文所需的配置信息;
所述UOE单元,还用于利用所述头信息将所述待封装数据封装为所述UDP报文,并通过所述MAC模块将所述UDP报文发送至所述外部网络。
8.根据权利要求7所述的报文处理系统,其特征在于,还包括:内部RAM,其中,
所述主机,还用于将所述完成添加的待封装数据发送至所述UOE单元对应的内部RAM;
所述UOE单元,还用于从所述内部RAM中提取所述完成添加的待封装数据。
9.根据权利要求7所述的报文处理系统,其特征在于,还包括:缓存队列,其中,
所述处理单元,还用于将所述处理结果发送至缓存队列;
所述主机,还用于从所述缓存队列中提取所述处理结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至6任一项所述的报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660604.5A CN114422617B (zh) | 2021-12-30 | 2021-12-30 | 一种报文处理方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660604.5A CN114422617B (zh) | 2021-12-30 | 2021-12-30 | 一种报文处理方法、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422617A CN114422617A (zh) | 2022-04-29 |
CN114422617B true CN114422617B (zh) | 2023-07-25 |
Family
ID=81272390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111660604.5A Active CN114422617B (zh) | 2021-12-30 | 2021-12-30 | 一种报文处理方法、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422617B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208830B (zh) * | 2022-05-27 | 2023-09-08 | 上海大学 | 一种高性能无阻塞数据发送方法及装置 |
CN117119076A (zh) * | 2023-07-26 | 2023-11-24 | 中国人民解放军战略支援部队信息工程大学 | 一种基于队列实现tcp链接管理的装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457853A (zh) * | 2013-09-06 | 2013-12-18 | 华为数字技术(苏州)有限公司 | 通信方法与设备 |
CN107769992A (zh) * | 2017-09-15 | 2018-03-06 | 通鼎互联信息股份有限公司 | 一种报文解析分流方法及装置 |
WO2020063298A1 (zh) * | 2018-09-27 | 2020-04-02 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
-
2021
- 2021-12-30 CN CN202111660604.5A patent/CN114422617B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457853A (zh) * | 2013-09-06 | 2013-12-18 | 华为数字技术(苏州)有限公司 | 通信方法与设备 |
CN107769992A (zh) * | 2017-09-15 | 2018-03-06 | 通鼎互联信息股份有限公司 | 一种报文解析分流方法及装置 |
WO2020063298A1 (zh) * | 2018-09-27 | 2020-04-02 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114422617A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114422617B (zh) | 一种报文处理方法、系统及计算机可读存储介质 | |
CN106664290B (zh) | 一种光电混合网络的数据传输方法及装置 | |
CN111327603B (zh) | 数据传输方法、装置和系统 | |
CN109547162B (zh) | 基于两套单向边界的数据通信方法 | |
US12034604B2 (en) | MQTT protocol simulation method and simulation device | |
CN111294235B (zh) | 数据处理方法、装置、网关及可读存储介质 | |
WO2014135038A1 (zh) | 基于pcie总线的报文传输方法与装置 | |
CN113746749A (zh) | 网络连接设备 | |
CN112751788A (zh) | 一种支持多类型帧混合传输的双平面交换方法 | |
CN117041370A (zh) | 一种通信方法及系统 | |
CN105933325A (zh) | 一种基于NFSoRDMA的内核态RPC通信加速方法 | |
CN114301576A (zh) | 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置 | |
CN114489840A (zh) | 基于fpga的tcp/ip硬件卸载系统及其实现方法 | |
WO2024037366A1 (zh) | 转发规则下发方法、智能网卡及存储介质 | |
US20120041998A1 (en) | Network Interface for Accelerating XML Processing | |
CN113973091A (zh) | 一种报文处理方法、网络设备以及相关设备 | |
WO2023231723A1 (zh) | 流媒体数据处理方法及系统 | |
CN109756498B (zh) | 通信设备上tcp协议的nat alg转换方法及系统 | |
KR20200143881A (ko) | 제어기 통신 장치 및 그 방법 | |
CN114244758B (zh) | 安卓平台的网络诊断方法、存储介质、电子设备及系统 | |
CN112039801B (zh) | 设置ip信息的方法、系统和代理服务器 | |
CN114079675B (zh) | 报文处理方法、装置、终端设备及移动宽带上网设备 | |
CN113973105A (zh) | 一种简化服务总线上soap消息的系统及方法 | |
CN113014606A (zh) | 一种网络芯片中硬件模块的访问装置及方法 | |
CN115982090B (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 |