【技术实现步骤摘要】
一种基于FPGA的数据包连接控制器及其数据包处理方法
[0001]本专利技术属于基于网络、PCI、PCIe等接口的FPGA调用式数据处理
,具体涉及一种基于FPGA的数据包连接控制器及其数据包处理方法。
技术介绍
[0002]在支持多连接的FPGA调用式数据处理业务中,为了保证客户端数据运算的正确性,通常在上位机驱动层设计一个服务程序,用于为客户端提供连接管理和数据通讯。驱动服务程序需要满足非常高的稳定性,不然会影响所有客户端的数据处理业务。由于操作系统下软件程序运行的不确定性,多平台下软件的稳定性,及多软件运行下可能存在的异常,如果驱动服务软件出现了紊乱、重启或者死循环等情况,直接影响客户端的数据业务处理,会导致无法提供可靠服务,或者严重时无法再提供服务。
技术实现思路
[0003](一)要解决的技术问题
[0004]本专利技术要解决的技术问题是:如何在多客户端同时访问FPGA设备时保证其高效性和安全性,并通过老化机制改善由于客户端异常引起的连接资源浪费问题。
[0005](二)技术方案
[0006]为了解决上述技术问题,本专利技术提供了一种基于FPGA的数据包连接控制器,所述数据包连接控制器,即多连接控制器包括:主控制器单元、随机数产生单元、时间产生单元、未使用连接管理单元、已使用连接管理单元及老化管理单元;其中,
[0007]所述主控制器单元用于完成数据包的接收、转发及错误数据包的响应,主控制器单元通过对所述已使用连接管理单元、时间产生单元、随机数产生单元的 ...
【技术保护点】
【技术特征摘要】
1.一种基于FPGA的数据包连接控制器,其特征在于,所述数据包连接控制器,即多连接控制器包括:主控制器单元、随机数产生单元、时间产生单元、未使用连接管理单元、已使用连接管理单元及老化管理单元;其中,所述主控制器单元用于完成数据包的接收、转发及错误数据包的响应,主控制器单元通过对所述已使用连接管理单元、时间产生单元、随机数产生单元的调度,来实现错误连接号和已失效连接号业务包的识别,并完成识别后的处理;其中,所述数据包中包含的字段包括业务类型、连接号、连接号对应的随机数、业务数据;业务类型:业务数据需要通过FPGA板卡进行业务数据处理,FPGA板卡处理数据过程中需要按照业务类型进行数据处理;数据包类型包括首包、中间包、尾包及独包;连接号及其对应的随机数:数据包中首包和独包中填充为0,无实际意义,首包返回包携带多连接控制器申请的真实连接号及同时产生的随机数,独包返回包中连接号及其对应的随机数填充为0;数据包中的中间包和尾包中需要将首包的返回包中连接号和对应的随机数字段填入包中;业务数据:需要板卡处理的业务数据;所述随机数产生单元用于实现随机数的产生,当主控制器单元发起随机数请求时,随机数产生单元高效地产生随机数据;所述时间产生单元用于实现FPGA内部的时间信息产生,可随时供主控制器单元和老化管理单元随时获取当前时间信息,主控制器单元每处理一个数据包,均需要获取时间信息,该时间信息是用于维护该数据包对应连接号的当前内部时间,且被发送给已使用连接管理单元进行统一管理;所述未使用连接管理单元用于实现未使用连接号的申请与回收管理,当主控制器单元接收的业务包为首包时,通过未使用连接管理单元获取一个连接号,该连接号与随机数一起使用,已使用连接管理单元释放连接号时通知未使用连接管理单元进行对所释放连接号的回收;所述已使用连接管理单元用于管理已使用连接号、该连接号的时间信息和该连接号的随机数信息;当主控制器单元接收的业务包为首包时,通过已使用连接管理单元维护一个连接号,及其对应的时间信息及随机数;当主控制器单元接收的业务包为中间包时,通过已使用连接管理单元查询该业务包连接号和随机数的真实性,对于真实有效的连接号,还将该连接号的时间信息更新到当前时间;所述老化管理单元用于通过定时调用时间产生单元和已使用连接管理单元,来实现当前每个有效连接号的生存时间统计,当统计到一个连接号的生存时间大于预设的老化时间时,老化管理单元通过已使用连接管理单元释放该连接号,并通过未使用连接管理单元对该连接号进行回收。2.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中存储的连接号由主控制器单元通过未使用连接管理单元申请得到并储存,用于业务后续数据包的字段校验。3.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中存储的连接号建立时获取的随机数由主控制器单元通过随机数产生单元申请得到并储存,用于业务后续数据包的字段校验,校验原理是验证数据包中连接号和随机数是否与存储器中的数据匹配,匹配进行后续数据包处理,不匹配则返回错误信息。4.如权利要求1所述的数据包连接控制器,其特征在于,所述已使用连接管理单元中还
存储连接号上次处理时的时间,主控制器单元在进行数据包首包处理时,会通过时间产生单元获取时间信息并与连接号、随机数一起进行存储;在对数据包中的中间包、尾包进行处理时,会通过时间产生单元获取时间信息并更新存储器中对应连接号的时间信息字段,时间信息可被老化管理单元所使用,作为连接号是否超过老化时间的判断依据。5.一种基于如权利要求1至4中任一项所述的数据包连接控制器实现的对数据包处理的方法,其特征在于,多连接控制器作为FPGA板卡的一部分,根据输入数据包的类型及特征字进行数据处理,数据处理的方式根据业务包类型可分为首包处理、中间包处理、尾包处理、独包处理,包括:对多客户端的业务流首包进行连接号和其对应的随机数的编码,对多客户端的业务流中间包进行连接号和其对应的随机数的验证,对多客户端的业务流尾包进行连接号和其对应的随机数的验证、回收,对多客户端的业务流独包直接进行处理,对客户端长时间占用连接号行为进行识别并老化。6.如权利要求5所述的方法,其特征在于,多连接控制器根据输入数据包的类型及特征字进行数据处理的具体步骤如下:业务流首包处理:多连接控制器的主控制器单元收到业务流首包后向未使用连接管理单元申请连接号;向时间产生单元申请当前时间信息;向随机数产生单元...
【专利技术属性】
技术研发人员:赵永杰,张伟,鲍丽娜,陈俊来,
申请(专利权)人:北京左江科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。