一种可扩展的网络协议解析系统及方法与流程

文档序号:12693635阅读:416来源:国知局
一种可扩展的网络协议解析系统及方法与流程

本发明涉及网络协议解析技术领域,特别涉及一种可扩展的网络协议解析系统及方法。



背景技术:

随着互联网的发展,骨干网的流量采集和处理也越来越多的应用在政府网络管理、大数据分析等领域,骨干网的流量采集对网络数据的实时处理能力有很高的要求,而且骨干网流量的协议种类繁多,网络设备需要同时满足处理性能和可扩展性的要求。

通用的网络协议处理流程,一般按照协议栈的层次结构依次进行解析,但骨干网的网络环境复杂,常常出现设计中未考虑的网络协议和协议组合(如隧道报文等),许多基于ASIC芯片的网络设备能够在设计时实现处理某种已知格式协议组合的功能,但设备上线运行后出现的新协议却难以得到及时支持。

通用CPU和软件能够解决新协议解析的灵活性问题,出现新协议时只需要改写代码并重新编译,开发周期短,但其在万兆及以上的网络报文处理方面存在严重的性能问题。

因此考虑一种基于FPGA的可扩展网络协议解析单元,以解决骨干网报文解析的性能和灵活性问题。



技术实现要素:

针对现有技术的不足,本发明提出一种可扩展的网络协议解析系统及方法。

本发明提出一种可扩展的网络协议解析方法,包括:

步骤1,获取待解析的网络协议报文,根据协议查找表对所述待解析的网络报文中的指令进行译码,将译码结果进行储存;

步骤2,控制逻辑将所述译码结果进行解析,将所述解析结果进行储存,解析结束后通过协议类型编码表获取下一层网络协议报文的指令。

设置输入报文RAM,通过所述输入报文RAM储存所述待解析的网络协议报文。

设置报文解析状态机,所述报文解析状态机控制可扩展的网络协议解析方法的解析流程。

设置报文解析寄存器组,所述报文解析寄存器组储存所述译码结果以及网络协议报文解析所需的变量。

设置输出信息RAM,所述输出信息RAM储存所述解析结果。

本发明还提出一种可扩展的网络协议解析系统,包括:

译码模块,用于获取待解析的网络协议报文,根据协议查找表对所述待解析的网络报文中的指令进行译码,将译码结果进行储存;

解析模块,用于控制逻辑将所述译码结果进行解析,将所述解析结果进行储存,解析结束后通过协议类型编码表获取下一层网络协议报文的指令。

输入报文RAM,通过所述输入报文RAM储存所述待解析的网络协议报文。

报文解析状态机,所述报文解析状态机控制可扩展的网络协议解析方法的解析流程。

报文解析寄存器组,所述报文解析寄存器组储存所述译码结果以及网络协议报文解析所需的变量。

输出信息RAM,所述输出信息RAM储存所述解析结果。

由以上方案可知,本发明的优点在于:

本发明利用FPGA,在保证骨干网数据处理能力的前提下,提供了一种易于添加新的网络协议解析功能的方法,避免了传统高速网络处理设备在遇到新网络协议时更新周期长的问题。

附图说明

图1为本发明具体应用环境图;

图2为本发明系统的整体架构图;

图3为本发明的协议解析流程图;

图4为本发明的协议解析指令图;

图5为本发明的可扩展的网络协议解析指令图;

图6为本发明的另一种指令扩展方案图。

具体实施方式

本发明具体应用环境,如图1所示:

1前端需要有网络接口控制器,能够提供最外层为链路层或以上层次的报文。

2需要有主机或用户接口传输控制信息和状态信息。

3网络协议识别结果可送给后续模块做进一步处理,如规则过滤、报文转发等。

本发明系统的整体架构,如图2所示:

输入报文RAM:用于存放待解析的报文。

报文解析状态机:用于控制整个报文的解析流程。

协议类型编码表:每种协议报文对应一条编码指令,可通过协议类型编码表获取下一层协议的编码指令。

协议查找表:解析协议编码指令,得到的结果用于解析报文。

报文解析寄存器组:存放协议编码指令的译码结果以及其他报文解析所需的变量。

控制逻辑:解析报文并提取信息。

输出信息RAM:存放报文解析的结果。如IP地址、协议类型、应用层数据位置等。

本发明的协议解析流程(即控制逻辑),如图3所示:

取得协议解析指令后,利用协议查找表对指令进行译码,再将译码后的操作信息加载到报文解析寄存器组中,之后控制逻辑利用报文解析寄存器组中的信息对报文进行解析,解析结果存放在输出信息RAM中,解析结束后通过协议类型编码表得到下一层协议报文的解析指令。

本发明的协议解析指令,如图4所示:

协议解析指令包括直接操作(终止识别标记、未识别协议标记)和查表操作(协议组号、协议分类号、协议号)

对具有相同协议字段和协议头长度的协议进行分组,可以减少协议类型编码表和协议信息查找表的项数。

本发明的可扩展的网络协议解析指令,如图5所示:

使用可写的CAM和RAM组成协议类型编码表和协议信息查找表,则可通过用户配置接口对这些表进行修改和添加,以添加新的协议报文识别功能。

同时此实施例还包括一个软件工具将每种协议格式编码为表中的内容,并通过用户配置接口下发到FPGA中。

本发明的另一种指令扩展方案,如图6所示:

包含一个协议解析数据库,存放处理已知协议的代码。

代码描述了协议类型编码表和协议信息查找表的内容。

代码需要按照给定的编程模版编写,以便工具能够自动将新协议的代码插入到原有的网络协议解析单元代码中。

此实施例中,可将前一实施例中的部分CAM和RAM替换成寄存器或常量代码,以减少FPGA中的资源消耗,代价是代码需要重新编译并需要使用FPGA的在线升级功能。

还包括实现数据库搜索和代码自动插入功能的软件工具。

本发明还提出一种可扩展的网络协议解析系统,包括:

译码模块,用于获取待解析的网络协议报文,根据协议查找表对所述待解析的网络报文中的指令进行译码,将译码结果进行储存;

解析模块,用于控制逻辑将所述译码结果进行解析,将所述解析结果进行储存,解析结束后通过协议类型编码表获取下一层网络协议报文的指令。

输入报文RAM,通过所述输入报文RAM储存所述待解析的网络协议报文。

报文解析状态机,所述报文解析状态机控制可扩展的网络协议解析方法的解析流程。

报文解析寄存器组,所述报文解析寄存器组储存所述译码结果以及网络协议报文解析所需的变量。

输出信息RAM,所述输出信息RAM储存所述解析结果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1