一种基于FPGA的数据包连接控制器及其数据包处理方法技术

技术编号:36074468 阅读:10 留言:0更新日期:2022-12-24 10:45
本发明专利技术涉及一种基于FPGA的数据包连接控制器及其数据包处理方法,属于基于网络、PCI、PCIe等接口的FPGA调用式数据处理技术领域。本发明专利技术提出的技术方案构建了“多连接管理分配机制”、“业务数据包连接校验机制”、“连接超时老化机制”三大机制,通过多连接管理机制,可以保证不同业务客户端业务数据同时处理且不会互相干扰;通过业务数据包连接校验机制,可防止异常数据包对正常业务数据包可能存在的干扰;通过连接超时老化机制对异常连接号的回收功能,可提高有限数量的连接号的使用效率。从而使得本发明专利技术能够在多客户端同时访问FPGA设备时保证其高效性和安全性,并通过老化机制改善由于客户端异常引起的连接资源浪费问题。由于客户端异常引起的连接资源浪费问题。由于客户端异常引起的连接资源浪费问题。

【技术实现步骤摘要】
一种基于FPGA的数据包连接控制器及其数据包处理方法


[0001]本专利技术属于基于网络、PCI、PCIe等接口的FPGA调用式数据处理
,具体涉及一种基于FPGA的数据包连接控制器及其数据包处理方法。

技术介绍

[0002]在支持多连接的FPGA调用式数据处理业务中,为了保证客户端数据运算的正确性,通常在上位机驱动层设计一个服务程序,用于为客户端提供连接管理和数据通讯。驱动服务程序需要满足非常高的稳定性,不然会影响所有客户端的数据处理业务。由于操作系统下软件程序运行的不确定性,多平台下软件的稳定性,及多软件运行下可能存在的异常,如果驱动服务软件出现了紊乱、重启或者死循环等情况,直接影响客户端的数据业务处理,会导致无法提供可靠服务,或者严重时无法再提供服务。

技术实现思路

[0003](一)要解决的技术问题
[0004]本专利技术要解决的技术问题是:如何在多客户端同时访问FPGA设备时保证其高效性和安全性,并通过老化机制改善由于客户端异常引起的连接资源浪费问题。
[0005](二)技术方案
[0006]为了解决上述技术问题,本专利技术提供了一种基于FPGA的数据包连接控制器,所述数据包连接控制器,即多连接控制器包括:主控制器单元、随机数产生单元、时间产生单元、未使用连接管理单元、已使用连接管理单元及老化管理单元;其中,
[0007]所述主控制器单元用于完成数据包的接收、转发及错误数据包的响应,主控制器单元通过对所述已使用连接管理单元、时间产生单元、随机数产生单元的调度,来实现错误连接号和已失效连接号业务包的识别,并完成识别后的处理;其中,所述数据包中包含的字段包括业务类型、连接号、连接号对应的随机数、业务数据;业务类型:业务数据需要通过FPGA板卡进行业务数据处理,FPGA板卡处理数据过程中需要按照业务类型进行数据处理;数据包类型包括首包、中间包、尾包及独包;连接号及其对应的随机数:数据包中首包和独包中填充为0,无实际意义,首包返回包携带多连接控制器申请的真实连接号及同时产生的随机数,独包返回包中连接号及其对应的随机数填充为0;数据包中的中间包和尾包中需要将首包的返回包中连接号和对应的随机数字段填入包中;业务数据:需要板卡处理的业务数据;
[0008]随机数产生单元用于实现随机数的产生,当主控制器单元发起随机数请求时,随机数产生单元高效地产生随机数据;
[0009]时间产生单元用于实现FPGA内部的时间信息产生,可随时供主控制器单元和老化管理单元随时获取当前时间信息,主控制器单元每处理一个数据包,均需要获取时间信息,该时间信息是用于维护该数据包对应连接号的当前内部时间,且被发送给已使用连接管理单元进行统一管理;
[0010]未使用连接管理单元用于实现未使用连接号的申请与回收管理,当主控制器单元接收的业务包为首包时,通过未使用连接管理单元获取一个连接号,该连接号与随机数一起使用,已使用连接管理单元释放连接号时通知未使用连接管理单元进行对所释放连接号的回收;
[0011]已使用连接管理单元用于管理已使用连接号、该连接号的时间信息和该连接号的随机数信息;当主控制器单元接收的业务包为首包时,通过已使用连接管理单元维护一个连接号,及其对应的时间信息及随机数;当主控制器单元接收的业务包为中间包时,通过已使用连接管理单元查询该业务包连接号和随机数的真实性,对于真实有效的连接号,还将该连接号的时间信息更新到当前时间;
[0012]老化管理单元用于通过定时调用时间产生单元和已使用连接管理单元,来实现当前每个有效连接号的生存时间统计,当统计到一个连接号的生存时间大于预设的老化时间时,老化管理单元通过已使用连接管理单元释放该连接号,并通过未使用连接管理单元对该连接号进行回收。
[0013]优选地,所述已使用连接管理单元中存储的连接号由主控制器单元通过未使用连接管理单元申请得到并储存,用于业务后续数据包的字段校验。
[0014]优选地,所述已使用连接管理单元中存储的连接号建立时获取的随机数由主控制器单元通过随机数产生单元申请得到并储存,用于业务后续数据包的字段校验,校验原理是验证数据包中连接号和随机数是否与存储器中的数据匹配,匹配进行后续数据包处理,不匹配则返回错误信息。
[0015]优选地,所述已使用连接管理单元中还存储连接号上次处理时的时间,主控制器单元在进行数据包首包处理时,会通过时间产生单元获取时间信息并与连接号、随机数一起进行存储;在对数据包中的中间包、尾包进行处理时,会通过时间产生单元获取时间信息并更新存储器中对应连接号的时间信息字段,时间信息可被老化管理单元所使用,作为连接号是否超过老化时间的判断依据。
[0016]本专利技术还提供了一种基于所述的数据包连接控制器实现的对数据包处理的方法,多连接控制器作为FPGA板卡的一部分,根据输入数据包的类型及特征字进行数据处理,数据处理的方式根据业务包类型可分为首包处理、中间包处理、尾包处理、独包处理,包括:对多客户端的业务流首包进行连接号和其对应的随机数的编码,对多客户端的业务流中间包进行连接号和其对应的随机数的验证,对多客户端的业务流尾包进行连接号和其对应的随机数的验证、回收,对多客户端的业务流独包直接进行处理,对客户端长时间占用连接号行为进行识别并老化。
[0017]优选地,多连接控制器根据输入数据包的类型及特征字进行数据处理的具体步骤如下:
[0018]业务流首包处理:多连接控制器的主控制器单元收到业务流首包后向未使用连接管理单元申请连接号;向时间产生单元申请当前时间信息;向随机数产生单元申请随机数;当主控制器单元获取到连接号,时间信息和随机数后,将这三要素发往已使用连接管理单元,已使用连接管理单元将数据写入连接信息管理表中;主控制器单元将数据包发往FPGA板卡中的业务处理单元进行业务处理;业务处理单元将数据包处理完成并产生返回包发往主控制器单元,主控制器单元接收到返回包后将通过发送通道发往FPGA板卡中的接口单
元;主控制器单元通过接口单元返回的数据包,包含业务流首包处理后数据、该业务流的连接号及随机数;
[0019]业务流中间包处理:多连接控制器的多连接主控制器单元收到业务流中间包后,提取包中的连接号和随机数信息;主控制器单元将连接号和随机数送往已使用连接管理单元,查询该连接号的正确性;主控制器单元收到已使用连接管理单元的返回结果后,根据结果进行下一步操作,如果返回连接号不存在或者连接号与随机数不匹配的信息,主控制器单元直接通过接口单元返回信息错误数据包,将错误信息反馈到业务本身;如果返回匹配正确信息,主控制器单元向时间产生单元申请当前时间信息;当主控制器单元获取时间信息后,将连接号、时间信息及随机数三要素发往已使用连接管理单元,已使用连接管理单元将数据更新到连接信息管理表中;主控制器单元将业务流中间包发往业务处理单元进行业务处理;业务处理单元将数据包处理完成并产生返回包发往主控制器单元,主控制器单元接收到返回包后将通过发送通道发往接口单元;主控制器单元通过接口单元返本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的数据包连接控制器,其特征在于,所述数据包连接控制器,即多连接控制器包括:主控制器单元、随机数产生单元、时间产生单元、未使用连接管理单元、已使用连接管理单元及老化管理单元;其中,所述主控制器单元用于完成数据包的接收、转发及错误数据包的响应,主控制器单元通过对所述已使用连接管理单元、时间产生单元、随机数产生单元的调度,来实现错误连接号和已失效连接号业务包的识别,并完成识别后的处理;其中,所述数据包中包含的字段包括业务类型、连接号、连接号对应的随机数、业务数据;业务类型:业务数据需要通过FPGA板卡进行业务数据处理,FPGA板卡处理数据过程中需要按照业务类型进行数据处理;数据包类型包括首包、中间包、尾包及独包;连接号及其对应的随机数:数据包中首包和独包中填充为0,无实际意义,首包返回包携带多连接控制器申请的真实连接号及同时产生的随机数,独包返回包中连接号及其对应的随机数填充为0;数据包中的中间包和尾包中需要将首包的返回包中连接号和对应的随机数字段填入包中;业务数据:需要板卡处理的业务数据;所述随机数产生单元用于实现随机数的产生,当主控制器单元发起随机数请求时,随机数产生单元高效地产生随机数据;所述时间产生单元用于实现FPGA内部的时间信息产生,可随时供主控制器单元和老化管理单元随时获取当前时间信息,主控制器单元每处理一个数据包,均需要获取时间信息,该时间信息是用于维护该数据包对应连接号的当前内部时间,且被发送给已使用连接管理单元进行统一管理;所述未使用连接管理单元用于实现未使用连接号的申请与回收管理,当主控制器单元接收的业务包为首包时,通过未使用连接管理单元获取一个连接号,该连接号与随机数一起使用,已使用连接管理单元释放连接号时通知未使用连接管理单元进行对所释放连接号的回收;所述已使用连接管理单元用于管理已使用连接号、该连接号的时间信息和该连接号的随机数信息;当主控制器单元接收的业务包为首包时,通过已使用连接管理单元维护一个连接号,及其对应的时间信息及随机数;当主控制器单元接收的业务包为中间包时,通过已使用连接管理单元查询该业务包连接号和随机数的真实性,对于真实有效的连接号,还将该连接号的时间信息更新到当前时间;所述老化管理单元用于通过定时调用时间产生单元和已使用连接管理单元,来实现当前每个有效连接号的生存时间统计,当统计到一个连接号的生存时间大于预设的老化时间时,老化管理单元通过已使用连接管理单元释放该连接号,并通过未使用连接管理单元对该连接号进行回收。2.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中存储的连接号由主控制器单元通过未使用连接管理单元申请得到并储存,用于业务后续数据包的字段校验。3.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中存储的连接号建立时获取的随机数由主控制器单元通过随机数产生单元申请得到并储存,用于业务后续数据包的字段校验,校验原理是验证数据包中连接号和随机数是否与存储器中的数据匹配,匹配进行后续数据包处理,不匹配则返回错误信息。4.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中还
存储连接号上次处理时的时间,主控制器单元在进行数据包首包处理时,会通过时间产生单元获取时间信息并与连接号、随机数一起进行存储;在对数据包中的中间包、尾包进行处理时,会通过时间产生单元获取时间信息并更新存储器中对应连接号的时间信息字段,时间信息可被老化管理单元所使用,作为连接号是否超过老化时间的判断依据。5.一种基于如权利要求1至4中任一项所述的数据包连接控制器实现的对数据包处理的方法,其特征在于,多连接控制器作为FPGA板卡的一部分,根据输入数据包的类型及特征字进行数据处理,数据处理的方式根据业务包类型可分为首包处理、中间包处理、尾包处理、独包处理,包括:对多客户端的业务流首包进行连接号和其对应的随机数的编码,对多客户端的业务流中间包进行连接号和其对应的随机数的验证,对多客户端的业务流尾包进行连接号和其对应的随机数的验证、回收,对多客户端的业务流独包直接进行处理,对客户端长时间占用连接号行为进行识别并老化。6.如权利要求5所述的方法,其特征在于,多连接控制器根据输入数据包的类型及特征字进行数据处理的具体步骤如下:业务流首包处理:多连接控制器的主控制器单元收到业务流首包后向未使用连接管理单元申请连接号;向时间产生单元申请当前时间信息;向随机数产生单元...

【专利技术属性】
技术研发人员:赵永杰张伟鲍丽娜陈俊来
申请(专利权)人:北京左江科技股份有限公司
类型:发明
国别省市:

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

1