System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及网络,特别涉及一种基于fpga的tcp镜像流处理装置。
技术介绍
1、目前针对tcp(transmission control protocol,传输控制协议)镜像流的处理基本上是采用软件解析的方式,使用处理器(cpu)需要将网络报文从网络接口设备拷贝到主机内存,会产生较大的传输时延,处理时延会受系统负载影响。
2、现有的cpu适合对串行的复杂的指令操作进行处理,对大量并行固定模式的计算并不适合,因而传统的基于软件解析的tcp/ip具有吞吐率低、延迟高等问题。fpga(fieldprogrammable gate array,现场可编辑逻辑门阵列)是一种可编程的集成电路,具有高度的灵活性和强大的并行处理能力。fpga可以根据需求定义其内部逻辑功能,其内部包含大量可并行工作的逻辑单元,能够同时处理多个任务,且fpga的硬件架构使其能够实现低延迟的数据处理,因而十分适用于对tcp镜像流的处理。
3、应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的
技术介绍
部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
技术实现思路
1、本专利技术的目的在于提供一种基于fpga的tcp镜像流处理装置,该装置支持乱序重排、伪重传报文过滤,支持并行处理多条镜像流,接收网络报文的同时解封装报文以降低处理延时,解决报文序列号回绕以支持长时间运行,可用于tcp连接双活热备份
2、为了解决上述问题,以下提供一种基于fpga的tcp镜像流处理装置,由网络接收模块、fpga模块和业务模块构成,所述fpga模块包括校验模块、连接管理模块、负载提取模块、以及数据传输模块;
3、所述网络接收模块用于接收网络数据并封装成网络数据包,分别输出至所述校验模块、连接管理模块以及负载提取模块中进行并行处理;
4、所述校验模块用于判断所述网络数据包是否为目标数据包以及是否完整,并将校验结果反馈至所述连接管理模块;
5、所述连接管理模块用于判断所述网络数据包是否应当接收,并为应当接收的所述网络数据包匹配所属的连接;
6、所述负载提取模块用于提取所述网络数据包中的tcp负载;
7、所述数据传输模块基于所述校验模块、连接管理模块以及负载提取模块的并行处理结果,将所述tcp负载传输至所述业务模块。
8、本专利技术提供的tcp镜像流处理装置能够实现tcp数据的检验、连接的匹配以及负载的提取进行并行处理,最后进行结果的合并,能够有效提高数据的处理效率,提高镜像流解析的吞吐率,减少延迟。
9、所述校验模块通过依次判断所述网络数据包是否为ip数据包、所述ip数据包的负载是否为tcp数据段来判断所述网络数据包是否为目标数据包;所述校验模块通过对所述目标数据包进行ip首部校验和tcp数据段校验,以确认所述目标数据包是否完整。校验模块进行校验工作并输出校验结果,通过对网络数据包进行筛选和校验,以此筛选出目标数据包并保证数据包的完整。
10、所述连接管理模块包括至少一组连接寄存器;所述连接寄存器用于存储不同tcp镜像流的四元组信息,所述四元组信息为源ip地址、源端口、目的ip地址以及目的端口;对多组所述连接寄存器进行编号,得连接索引,所述连接索引还对应关联有指针信息;所述连接管理模块提取所述网络数据包的四元组信息,并与所述连接寄存器进行匹配;匹配成功后,所述连接管理模块获取所述网络数据包的tcp数据段的负载长度和序列号,并和匹配的所述连接索引以及所述指针信息一起输出至所述数据传输模块;所述数据传输模块基于所述tcp数据段的负载长度、序列号、匹配的所述连接索引以及所述指针信息将所述tcp负载传输至所述业务模块。
11、所述连接管理模块还包括至少一组配置寄存器;所述配置寄存器用于进行源ip地址、源端口、目的ip地址、目的端口和老化时间的存储;所述连接管理模块将与所述连接寄存器不匹配的所述四元组信息和所述配置寄存器进行匹配;匹配成功后将所述四元组信息存储到未被占用的所述连接寄存器中;匹配失败则丢弃当前所述网络数据包。基于配置寄存器实现连接寄存器的自动形成,从而实现对每一个tcp镜像流的监控。
12、所述数据传输模块包括负载写模块、负载读模块以及存储模块;所述负载写模块用于将所述tcp负载写入所述存储模块,所述写入的地址范围基于接收的所述tcp数据段的负载长度、所述序列号和所述指针信息确定;所述负载读模块用于从所述存储模块读取连续接收到的所述tcp负载并进行字节对齐后传输给业务模块,所述读取的地址范围基于所述序列号、所述连接索引和所述指针信息确认。利用每个tcp数据段的负载长度、序列号、所需的连接索引以及对应的指针信息,建立与每个tcp负载的存储地址的映射关系,从而实现所有tcp负载的接收和传输的有序和完整。
13、所述连接管理模块还包括至少一组黑名单寄存器,所述黑名单寄存器用于存储四元组信息;所述连接管理模块提取所述网络数据包的四元组信息,并先与所述黑名单寄存器进行匹配;匹配成功后丢弃当前所述网络数据包;匹配失败则继续与所述连接寄存器进行匹配。通过设置黑名单过滤一些不期望解析的tcp镜像流,提高资源的有效利用率。
14、还包括与所述负载提取模块连接的负载分析模块;所述负载分析模块基于预设规则对所述tcp负载进行分析,并将得到的四元组信息存储到所述黑名单寄存器中;存储到所述黑名单寄存器中的四元组信息会在预定的老化时间后删除。支持预设tcp镜像流负载数据规则,可选择性解析具有目标特征的镜像流,也可提高资源的有效利用率。
15、所述指针信息包括连续接收到的数据指针和选择性接收的数据指针组。
16、还包括乱序重排模块,所述乱序重排模块基于sack机制实现对所述tcp负载的乱序接收和重排序。应用sack工作原理实现乱序接收重排序,能够适应较复杂的网络环境。
17、所述乱序重排模块支持序列号绕回功能;所述序列号绕回功能通过所述序列号、所述连续接收到的数据指针以及所述选择性接收的数据指针组的最高两位进行校验。在序列号和指针比较时做特殊处理以解决序列号绕回问题,可长时间运行。
18、与现有技术相比,本专利技术的有益效果主要包括如下:1)支持同时处理多条tcp连接镜像流;2)采用fpga逻辑实现校验、连接管理、负载提取及地址对齐等操作同时处理,最后进行结果的合并,具有高并行处理逻辑和低延时;3)通过设置黑名单和负载分析能力,可选择性解析具有目标特征的镜像流,过滤一些不期望解析的tcp镜像流,提升资源的有效利用率;4)可长时间运行,解决序列号绕回问题,支持连接老化避免半连接长时间资源占用;5)支持乱序重排序,适应较复杂的网络环境。
本文档来自技高网...【技术保护点】
1.一种基于FPGA的TCP镜像流处理装置,其特征在于,由网络接收模块、FPGA模块和业务模块构成,所述FPGA模块包括校验模块、连接管理模块、负载提取模块、以及数据传输模块;
2.根据权利要求1所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述校验模块通过依次判断所述网络数据包是否为IP数据包、所述IP数据包的负载是否为TCP数据段来判断所述网络数据包是否为目标数据包;
3.根据权利要求1所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述连接管理模块包括至少一组连接寄存器;
4.根据权利要求3所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述连接管理模块还包括至少一组配置寄存器;
5.根据权利要求3所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述数据传输模块包括负载写模块、负载读模块以及存储模块;
6.根据权利要求4所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述连接管理模块还包括至少一组黑名单寄存器,所述黑名单寄存器用于存储四元组信息;
7.
8.根据权利要求3所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述指针信息包括连续接收到的数据指针和选择性接收的数据指针组。
9.根据权利要求8所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,还包括乱序重排模块,所述乱序重排模块基于SACK机制实现对所述TCP负载的乱序接收和重排序。
10.根据权利要求9所述的一种基于FPGA的TCP镜像流处理装置,其特征在于,所述乱序重排模块支持序列号绕回功能;
...【技术特征摘要】
1.一种基于fpga的tcp镜像流处理装置,其特征在于,由网络接收模块、fpga模块和业务模块构成,所述fpga模块包括校验模块、连接管理模块、负载提取模块、以及数据传输模块;
2.根据权利要求1所述的一种基于fpga的tcp镜像流处理装置,其特征在于,所述校验模块通过依次判断所述网络数据包是否为ip数据包、所述ip数据包的负载是否为tcp数据段来判断所述网络数据包是否为目标数据包;
3.根据权利要求1所述的一种基于fpga的tcp镜像流处理装置,其特征在于,所述连接管理模块包括至少一组连接寄存器;
4.根据权利要求3所述的一种基于fpga的tcp镜像流处理装置,其特征在于,所述连接管理模块还包括至少一组配置寄存器;
5.根据权利要求3所述的一种基于fpga的tcp镜像流处理装置,其特征在于,所述数据传输模块包括负载写模块、负载...
【专利技术属性】
技术研发人员:孙东尚,乔晓冬,王庆伟,魏育成,
申请(专利权)人:中科亿海微电子科技成都有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。