一种基于FPGA的网络报文快速分片方法技术

技术编号:34936824 阅读:74 留言:0更新日期:2022-09-15 07:34
本发明专利技术涉及一种基于FPGA的网络报文快速分片方法,属于网络报文处理领域。本发明专利技术根据当前设备需求,配置相应分片参数,包括MTU值、分片长度、分片级数和分片数;根据规则来确定当前三层报文是否分片,允许分片进入分片实现模块,不允许分片直接完整分片报文输出;将三层报文分出N个三层分片报文,N个三层分片报文并行处理,实现线速运行,同时三层分片报文包含更新后的当前分片报文长度和偏移,N个分片报文按顺序重新计算三层校验和,并更新到当前分片报文的三层头对应字段,最终实现N个标准的完整分片报文输出。本发明专利技术具有FPGA功耗低,扩展性强,资源可预估,功耗低,分片速度快等优点。点。点。

【技术实现步骤摘要】
一种基于FPGA的网络报文快速分片方法


[0001]本专利技术属于网络报文处理领域,具体涉及一种基于FPGA的网络报文快速分片方法。

技术介绍

[0002]对复杂的网络设备,整个环境的组网可能包括了很多台网络设备和路由设备,网络部署如图1所示,三层网络设备,即能够基于IP头信息对报文进行识别和处理的网络设备,在转发IP报文的时候,经常会遇到来自上层的数据报过长,从而导致打上MAC头的帧不符合IEEE802.3标准规定的最大帧长,造成不能被转发和对端解析的问题,这样就需要在三层进行分片,将过长的IP报文拆分成小的数据块,分片发生在发送端或者中转路由器,且在传输过程中可能被多次分片,目前以上分片流程的实现以软件为主。
[0003]目前在复杂网络环境情况下,基于TCP/IP协议栈的分片方法消耗大量CPU资源,导致网络带宽降低,同时,现有的基于FPGA的网络报文分片方法无法实现线速运行。本专利技术基于FPGA的网络报文分片方法利用FPGA的硬件特性、并行处理特性,对于超出链路MTU的报文,由FPGA进行高效、快速的分片,不仅可以释放CPU的资源,而且基于FPGA的网络报文分片可灵活配置分片长度以及MTU长度,实现线速运行,并且不影响原有的通信系链路,从而减少开发和后期维护成本以及难度。

技术实现思路

[0004](一)要解决的技术问题本专利技术要解决的技术问题是如何提供一种基于FPGA的网络报文快速分片方法,以解决基于TCP/IP协议栈的分片方法消耗大量CPU资源,导致网络带宽降低,同时,现有的基于FPGA的网络报文分片方法无法实现线速运行的问题。
[0005](二)技术方案为了解决上述技术问题,本专利技术提出一种基于FPGA的网络报文快速分片方法,该方法包括分片配置流程和分片处理流程;分片配置流程:在进入分片处理流程之前,上位机软件通过FPGA的配置通道,以寄存器地址解析方式,根据当前设备需求,配置相应分片参数,包括MTU值、分片长度、分片级数和分片数;分片处理流程包括规则检索模块、分片实现模块和更新校验码模块;规则检索模块根据规则来确定当前三层报文是否分片,允许分片进入分片实现模块,不允许分片直接完整分片报文输出;分片实现模块将三层报文分出N个三层分片报文,N个三层分片报文并行处理,实现线速运行,同时三层分片报文包含更新后的当前分片报文长度和偏移,N个分片报文按顺序输出到更新校验码模块;更新校验码模块重新计算三层校验和,并更新到当前分片报文的三层头对应字
段,最终实现N个标准的完整分片报文输出。
[0006]进一步地,所述寄存器地址解析包括:按地址划分功能,对应地址下发对应功能的参数数据。
[0007]进一步地,MTU为二层报文的最大传送单元,通过计算获得该MTU值对应三层长度。
[0008]进一步地,分片长度用于指示三层分片报文长度,三层分片报文总长度为分片长度,末片以实际长度计算。
[0009]进一步地,分片级数用于指示支持多级分片的级数。
[0010]进一步地,分片数用于指示一个报文支持的分片数量。
[0011]进一步地,所述规则检索模块的规则包括两部分:第一部分规则即查看当前三层总长度是否超出分片配置的MTU值对应三层长度,不超出不分片,超出查看第二部分规则;第二部分规则即查看当前三层报文的分片标识字段是否允许分片。
[0012]进一步地,所述分片实现模块的实现流程包括:三层报文进入拆分模块,将完整三层报文拆分为三层头和三层载荷,在拆分过程中进行分片数N的计算;设计for循环算法,循环N次,截取分片长度值相应的三层载荷部分,并计算更新当前N个分片对应的分片报文长度和偏移,封装第N片三层载荷和三层头,封装完成三层分片报文后,顺序流水输出至更新校验码模块。
[0013]进一步地,分片数N计算时,根据分片配置流程配置的MTU值、分片长度、分片数以及当前三层报文长度,算出报文分片数N。
[0014]进一步地,三层载荷包括四层TCP/UDP头。
[0015](三)有益效果本专利技术提出一种基于FPGA的网络报文快速分片方法,本专利技术的分片参数的灵活配置,实现不同使用场景的高效调配;本专利技术的分片处理流程设计结构是线速低功耗高扩展性的FPGA设计架构;本专利技术的分片实现按参适配不同MTU值、分片长度、分片级数、分片数的需求,并按照高效的分片设计结构和FPGA的并行处理实现分片线速处理。
[0016]本专利技术应用FPGA现场可编程器件,实现了线速对标准TCP/UDP网络报文分片处理流程,支持分片相关参数配置,适应不同使用场景的高效调配,分片按不同规则处理降低FPGA功耗,扩展性强,资源可预估,功耗低,分片速度快等优点,大大降低项目硬件成本。
附图说明
[0017]图1为网络设备部署示意图;图2为本专利技术的分片配置示意图;图3为本专利技术的分片处理流程图;图4为本专利技术的分片实现流程图;图5为标准三层(IP)和四层(TCP/UDP)报文协议格式示意图。
具体实施方式
[0018]为使本专利技术的目的、内容和优点更加清楚,下面结合附图和实施例,对本专利技术的具
体实施方式作进一步详细描述。
[0019]本专利技术基于FPGA现场可编程器件,以高效快速的FPGA设计结构,实现达到线速对标准TCP/UDP网络报文分片处理流程的方法,支持分片相关参数配置,适应不同使用场景的高效调配,分片按不同规则处理降低FPGA功耗,并以模块化方式设计,具有扩展性强,资源可预估,功耗低,分片速度快等优点,大大降低项目硬件成本。
[0020]本专利技术的整体处理流程包含分片配置和分片处理两个流程,分片配置如图2所示,分片处理如图3所示。
[0021]1. 分片配置流程:在进入分片处理流程之前,上位机软件通过FPGA的配置通道,避免与业务通道冲突,以寄存器地址解析方式,根据当前设备需求,配置相应分片参数,配置参数有MTU值、分片长度、分片级数、分片数等。
[0022]名词解释:寄存器地址解析:按地址划分功能,对应地址下发对应功能的数据;MTU:Maximum Transmission Unit,最大传送单元,是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位),大部分网络设备的MTU为1500;该MTU为二层报文的最大传送单元,通过计算可获得该MTU值对应三层长度。
[0023]分片长度:用于指示三层分片报文长度,三层分片报文总长度为分片长度,末片以实际长度计算;分片级数:支持多级分片的级数;分片数:一个报文支持的分片数量;2.分片处理流程:本专利技术分片处理从三层报文开始,对二层报文的拆分和封装不属于本专利技术的处理流程,标准三层(IP)和四层(TCP/UDP)报文协议格式如附录1所示。
[0024](1)规则检索模块:接收到完整三层报文后,首先进入规则检索模块,根据规则来确定当前三层报文是否分片,允许分片进入分片实现模块,不允许分片直接输出到完整分片报文输出阶段,减少功耗占用;规则包含两部分如下:第一部分规则即查看本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的网络报文快速分片方法,其特征在于,该方法包括分片配置流程和分片处理流程;分片配置流程:在进入分片处理流程之前,上位机软件通过FPGA的配置通道,以寄存器地址解析方式,根据当前设备需求,配置相应分片参数,包括MTU值、分片长度、分片级数和分片数;分片处理流程包括规则检索模块、分片实现模块和更新校验码模块;规则检索模块根据规则来确定当前三层报文是否分片,允许分片进入分片实现模块,不允许分片直接完整分片报文输出;分片实现模块将三层报文分出N个三层分片报文,N个三层分片报文并行处理,实现线速运行,同时三层分片报文包含更新后的当前分片报文长度和偏移,N个分片报文按顺序输出到更新校验码模块;更新校验码模块重新计算三层校验和,并更新到当前分片报文的三层头对应字段,最终实现N个标准的完整分片报文输出。2.如权利要求1所述的基于FPGA的网络报文快速分片方法,其特征在于,所述寄存器地址解析包括:按地址划分功能,对应地址下发对应功能的参数数据。3.如权利要求1所述的基于FPGA的网络报文快速分片方法,其特征在于,MTU为二层报文的最大传送单元,通过计算获得该MTU值对应三层长度。4.如权利要求1所述的基于FPGA的网络报文快速分片方法,其特征在于,分片长度用于指示三层分片报文长度,三层分片报文总长度为分片长度,末片以实际长度计算。5.如权利要求1所述的基于...

【专利技术属性】
技术研发人员:张伟陈俊来孙光来于洪涛
申请(专利权)人:北京左江科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1