一种基于FPGA的网络报文关键信息提取转发的方法与流程

文档序号:31599044发布日期:2022-09-21 08:04阅读:256来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
一种基于FPGA的网络报文关键信息提取转发的方法与流程
一种基于fpga的网络报文关键信息提取转发的方法
技术领域
1.本发明属于网络报文处理领域,具体涉及一种基于fpga的网络报文关键信息提取转发的方法。


背景技术:

2.传统技术分为两种,一是使用cpu来处理报文,一种采用是fpga处理。
3.第一种cpu处理报文:cpu完成报文的接收、查表、分片、封装等报文处理和报文转发。
4.第二种fpga处理报文:fpga完成数据包的接收、处理和转发。在每一级处理流程中将报文进行缓存同时进行数据报解析,解析完成后再将缓存数据取出对数据报完成相应的处理。
5.第一种cpu处理报文:cpu的负载主要来源于以下几个方面,协议的定时驱动、用户配置驱动、外部事件驱动。其中,外部事件驱动最为随机、无法预料。典型的外部事件包括端口的链接和断开,各种千差万别的协议等,cpu中断源受控有很大难度,而且cpu占用率高,不能并发执行效率低。
6.第二种采用fpga进行处理,fpga处理的缺点在于层层解析报文。传统的fpga处理报文流程繁琐,经常会出现不同步或者速率非常低,导致报文解析错误,而且大量的缓存造成很多冗余存储,不能快速完成对报文信息的准确获取。由于数据信息的处理依赖于控制信息,故控制信息的获取非常重要,获取失败将会导致报文无法正确处理,导致网络瘫痪,获取速度太慢使性能下降。


技术实现要素:

7.(一)要解决的技术问题本发明要解决的技术问题是如何提供一种基于fpga的网络报文关键信息提取转发的方法,以解决cpu占用率高问题,同时克服fpga采用流水技术使得报文解析更加困难的问题。
8.(二)技术方案为了解决上述技术问题,本发明提出一种基于fpga的网络报文关键信息提取转发的方法,该方法包括8个步骤,分别由接收模块、查表模块、分片模块、分离模块、封装模块、算法模块、组合模块和发送模块执行;第一步:接口模块完成报文接收和校验,对校验通过的报文完成控制信息的获取,控制信息包括:整个报文长度信息、二层头长度信息、三层头长度信息、四层头长度信息获取以及五元组信息,控制信息传入控制总线dbus,原始报文传入数据总线cbus,对校验不通过的报文直接丢弃;第二步:查表模块使用接口模块获取的五元组信息完成查表,完成策略匹配,策略匹配的报文进行匹配策略结果的获取,策略不匹配的根据需求上送审计或者丢弃;
第三步:分片模块对超过最大包长值的报文进行分片,使用接口模块获取的长度信息,对报文进行分片,并完成报文长度的更新;第四步:分离模块在报文加密前将头部信息和数据信息分离开,使用分片模块更新的头部长度信息将报文头部和数据部分分离;数据总线cubs分成两个总线,一部分总线cbus承载payload,一部分总线hbus承载报文头部;第五步:密文头封装模块完成密文头部信息封装并缓存,封装密文头部引起报文长度变化,完成长度信息更新,完成三层校验和check_sum计算并缓存更新至控制总线dbus;第六步:算法模块将整个报文以16b为单位做累加和,封装在报文尾部,累加和称为报文认证码;算法模块对报文进行加密和解密,完成四层校验和check_sum计算并缓存;第七步:组合模块解析控制总线,使用报文长度信息将报文头部和密文进行组合,解析四层校验和check_sum信息,完成报文头部四层校验和更新,完成报文填充;第八步:发送模块将报文通过网口发送出去。
9.进一步地,每个模块完成相应的处理后,通过数据总线和控制总线将报文和控制信息转发给下一级模块。
10.进一步地,所述第二步中,数据总线cbus:根据查表结果,如果查表匹配策略,数据总线不变;如果查表不匹配,该数据报文准备上送审计或丢弃;控制总线dbus:如果查表匹配策略,更新控制信息帧格式中的查表匹配策略;如果查表不匹配,若需要审计即更新审计原因字段和报文长度字段,若需要丢弃,则将控制总线上该包信息丢弃。
11.进一步地,所述第三步中,数据总线cbus:根据长度信息完成分片,根据头部长度信息,截取数据报文头部复制到两个报文分片头部完成封装;控制总线dbus:完成分片报文长度和分片标识更新。
12.进一步地,所述第四步中,数据总线cbus:数据总线分成两个总线,一部分总线cbus承载payload,一部分总线hbus承载报文头部;cbus直接用于后级模块进行数据加解密进行处理,hbus用于后续封装使用;控制总线dbus:此模块dbus控制总线不做更新。
13.进一步地,所述第五步中,数据总线cbus:此模块cbus不做更新;hbus:按照封装需求四层头尾部完成密报头的封装;控制总线dbus: 更新三层校验和check_sum部分,完成报文长度更新。
14.进一步地,所述第六步中,数据总线cbus:完成认证码的计算和封装,经过算法模块由明文变成密文;hbus:添加认证码后报文长度改变,完成报文长度更新;控制总线dbus:完成四层校验和check_sum更新,完成认证码更新以及完成报文长度更新。
15.进一步地,所述第七步中,解析控制总线,使用报文长度信息将hbus承载头部报文和cbus承载的密文进行组合,解析控制总线上四层校验和check_sum信息,完成报文头部四层校验和更新,完成报文填充;数据总线cbus:将hbus封装到cbus密文前,封装成一个完成报文,准备发送,根据报文长度,完成填充;控制总线dbus:控制总线不做更新。
16.进一步地,所述第八步中,数据总线cbus:报文直接发送出去,控制总线dbus:控制总线对应该包的控制信息即可清空。
17.进一步地,该方法的控制信息帧格式包括整个报文长度信息、报文头部长度信息、五元组信息、匹配策略、校验和和指示信息,其中,
整个报文长度信息:用于指示数据总线数据处理长度,用于区分包边界,计算填充长度;报文头部长度信息:获取二层头长,三层头长,四层头长信息,在后续封装过程中直接取出进行使用;五元组信息:获取报文源ip、目的ip、源端口、目的端口号、协议号五元组信息用以进行查表,匹配策略;匹配策略:获取由五元组信息查表策略结果;校验和:将三层校验和check_sum、四层校验和check_sum在流水操作中重新计算并缓存,在后续报文处理中进行更新;指示信息:报文处理过程中的标志信息,包括报文类型和审计原因。
18.(三)有益效果本发明提出一种基于fpga的网络报文关键信息提取转发的方法,本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,快速对报文进行解析和处理,实现了报文查表,加密或解密的高效实现。
19.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用流水方式,完成报文高效处理。
20.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用流水方式,利于时序优化。
21.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用fifo进行缓存并转发到下一级,节约资源。
22.传统的基于cpu的报文处理,性能非常慢,基于fpga进行报文处理,使用该技术处理性能可以达到线速,并发处理和加入流水大大提升了处理性能。不再像传统的处理方法,每一级都需要进行报文的解析,提升了速率的同时也节省资源,减小开发和调试难度,可复用性增强。
23.fpga内其他业务处理逻辑均实现流水方式完成设计,按总线位宽32bit,主频100mhz计算,fpga片内带宽>3gbps。
附图说明
24.图1为本发明基于fpga的网络报文关键信息提取转发整体架构图;图2为本发明基于fpga的网络报文关键信息提取帧格式示意图;图3为本发明基于fpga的网络报文关键信息提取转发流程图。
具体实施方式
25.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
26.现实网络环境中是非常复杂的,fpga对于网络报文处理模式也不尽相同,故准确解析报文是至关重要的。本发明旨在解决cpu 占用率高问题,减轻cpu压力,释放资源。同时解决在报文处理过程中经常需要解析报文的问题,尤其是fpga若要提高性能就需要采用流水技术,流水的应用,使得报文解析更加困难,每一级都需要进行解析是很困难的问题。为
更快、更准确的处理报文,采取数据总线和控制总线分离方法,将关键信息提取出来单独放到控制总线,采用多级缓存,通过控制总线控制数据总线,每一级处理过程将相应的控制信息进行更新。使用该技术访问内存的次数更少,性能更高,获取信息更准确,解决传统方法带来的资源多,时序不稳定、性能低等问题。
27.本发明的基于fpga的网络报文关键信息提取转发的方法的架构如图3所示,其中由多个模块实现了网络报文的解析处理,每一个模块都需要相应的报文信息,为提高fpga处理性能,fpga采用流水设计,单纯将报文信息解析使用,通常会带来很大的开销,而且跨时钟域处理非常困难,极易出现问题,增大开发和调试难度。如图1所示,本发明将数据总线(cbus)和控制总线(dbus)分开,每个模块都会对相应的控制信息进行获取和更新,通过多级缓存完成对数据总线的控制,比如解析长度信息来解析出报文位置进行相应报文处理,完成报文处理后进行报文头部和数据段组合。
28.处理网络报文时,为提高性能,将关键信息进行提取,随着数据处理进行更新并转发至下一级。如图2所示,本发明基于fpga的网络报文关键信息提取转发方法中的控制信息帧格式包括整个报文长度信息、报文头部长度信息、五元组信息、匹配策略、校验和和指示信息。其中,整个报文长度信息:用于指示数据总线数据处理长度,用于区分包边界,计算填充长度。
29.报文头部长度信息:获取二层头长,三层头长,四层头长等报文头部长度信息,在后续封装过程中可以直接取出进行使用,例如在进行加解密之前完成报文头部和报文载荷分离等。从而提高性能,在处理流水时会更加快速,在多级流水中相同的信息不需要重复解析多次。
30.五元组信息:获取报文源ip、目的ip、源端口、目的端口号、协议号五元组信息用以进行查表,匹配策略。
31.匹配策略:获取由五元组信息查表策略结果。
32.校验和:数据报文为提高性能通常采用流水操作,将三层校验和check_sum、四层校验和check_sum重新计算并缓存,在后续报文处理中在进行更新,以提高性能。
33.指示信息:在报文处理过程中还有很多标志信息比如报文类型、审计原因等,传统方法是每次用到即进行解析和更新,这样非常浪费带宽,故需要将其缓存到控制总线,以提高性能。
34.如附图3所示,本发明基于fpga的网络报文关键信息提取转发的方法包括8个步骤,分别由接收模块、查表模块、分片模块、分离模块、封装模块、算法模块、组合模块和发送模块执行。在每一级模块完成相应的数据总线和控制总线的处理,并通过数据总线和控制总线报文和控制信息转发给下一级模块。相应控制信息帧格式如下图2所示。
35.第一步:接口模块模块功能:完成报文接收和校验,对校验通过的报文完成整个报文长度信息、二层头长度信息、三层头长度信息、四层头长度信息获取以及五元组信息的获取,控制信息传入
控制总线,原始报文传入数据总线,对校验不通过的报文直接丢弃。
36.数据总线cbus:承载数据报文信息,形成数据总线。
37.控制总线dbus:承载控制信息,形成控制总线。
38.第二步:查表模块模块功能:使用接口模块获取的五元组信息完成查表,完成策略匹配,策略匹配的报文进行匹配策略结果的获取,策略不匹配的根据需求上送审计或者丢弃。
39.数据总线cbus:根据查表结果,如果查表匹配策略,数据总线不变;如果查表不匹配,该数据报文准备上送审计或丢弃。
40.控制总线dbus:如果查表匹配策略,更新控制信息帧格式中的查表匹配策略;如果查表不匹配,若需要审计即更新审计原因字段和报文长度字段,若需要丢弃,则将控制总线上该包信息丢弃。
41.第三步:分片模块模块功能:fpga对超过最大包长(mtu)值的报文进行分片,使用接口模块获取的长度信息,对报文进行分片,由于分片引来了报文长度变化,需完成报文长度的更新。
42.数据总线cbus:根据长度信息完成分片,根据头部长度信息,截取数据报文头部复制到两个报文分片头部完成封装。
43.控制总线dbus:完成分片报文长度和分片标识更新。
44.第四步:分离模块模块功能:由于报文头部不需要加密,故报文在加密前应该将头部信息和数据信息分离开,方便后续处理,使用分片模块更新的头部长度信息将报文头部和数据部分分离。
45.数据总线cbus:数据总线分成两个总线,一部分总线cbus承载payload,一部分总线hbus承载报文头部。cbus直接用于后级模块进行数据加解密进行处理,hbus用于后续封装使用。
46.控制总线dbus:此模块控制总线不做更新。
47.第五步:密文头封装模块模块功能:完成密文头部信息封装并缓存,封装密文头部引起报文长度变化,完成长度信息更新,完成三层校验和check_sum计算并缓存更新至控制总线。
48.数据总线cbus:此模块不做更新。
49.hbus:按照封装需求四层头尾部完成密报头的封装。
50.控制总线dbus: 更新三层校验和check_sum部分,完成报文长度更新。
51.第六步:算法模块模块功能:1)为保证报文完整性,将整个报文以16b为单位做累加和,封装在报文尾部,这个累加和称为报文认证码; 2)为保证报文准确性,将报文送到算法模块完成相应加密和解密 ;3)完成四层校验和check_sum计算并缓存。
52.数据总线cbus:完成认证码的计算和封装,经过算法模块由明文变成密文。
53.hbus:添加认证码后报文长度改变,完成报文长度更新。
54.控制总线dbus:完成四层校验和check_sum更新,完成认证码更新以及完成报文长度更新。
55.第七步:组合模块
模块功能: 解析控制总线,使用报文长度信息将hbus承载头部报文和cbus承载的密文进行组合,解析控制总线上四层校验和check_sum信息,完成报文头部四层校验和更新,完成报文填充。
56.数据总线cbus:将hbus封装到cbus密文前,封装成一个完成报文,准备发送,根据报文长度,完成填充。
57.控制总线dbus:控制总线不做更新。
58.第八步:报文发送模块功能:将报文通过网口发送出去。
59.数据总线(cbus):报文直接发送出去即可。
60.控制总线(dbus):控制总线对应该包的控制信息即可清空 。
61.由此以上八步实现报文从接收到发送经过的流水处理,和关键信息的提取和转发过程。
62.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,快速对报文进行解析和处理,实现了报文查表,加密或解密的高效实现。
63.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用流水方式,完成报文高效处理。
64.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用流水方式,利于时序优化。
65.本发明基于fpga的网络报文关键信息提取转发技术实现对数据和控制信息快速提取和转发,采用fifo进行缓存并转发到下一级,节约资源。
66.传统的基于cpu的报文处理,性能非常慢,基于fpga进行报文处理,使用该技术处理性能可以达到线速,并发处理和加入流水大大提升了处理性能。不再像传统的处理方法,每一级都需要进行报文的解析,提升了速率的同时也节省资源,减小开发和调试难度,可复用性增强。
67.fpga内其他业务处理逻辑均实现流水方式完成设计,按总线位宽32bit,主频100mhz计算,fpga片内带宽>3gbps。
68.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 通话中隐私保护方法、介质、装...
  • 一种界面切换方法、装置及电子...
  • 一种多虚拟终端的测试方法及系...
  • 一种基于微服务的政务数据处理...
  • 一种定向天线移动自组网测试装...
  • 一种地图坐标调度系统及调度方...
  • IOS终端的IM消息发送方法...
  • 一种基于无人车远程驾驶的视频...
  • 推送处理方法、装置、设备及介...
  • 基于深度学习的网络安全评估方...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

深圳SEO优化公司文山建网站推荐钦州网站优化鄂州企业网站建设价格和田百搜标王哪家好金昌SEO按天收费哪家好网站设计模板报价坂田seo网站优化推荐天水网站优化软件价格怒江网络营销报价沧州阿里店铺托管吉林网站搜索优化价格曲靖营销网站哈密网站优化按天扣费推荐信阳SEO按天计费公司达州网页制作报价阳江百度竞价报价唐山网站建设设计哪家好济宁网站优化多少钱芜湖百度关键词包年推广价格平顶山建网站公司赣州营销网站公司永新网络广告推广报价宁德企业网站制作公司玉林seo公司桂林网站制作多少钱陇南网站优化推荐贵阳网站建设多少钱合肥网站设计模板公司白银企业网站设计哪家好黔东南营销型网站建设报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化