硬件加速的多核处理器ip隧道分片报文流保序方法

文档序号:7571462阅读:484来源:国知局
专利名称:硬件加速的多核处理器ip隧道分片报文流保序方法
技术领域
本发明涉及数据通信领域,特别涉及网络安全设备,具体涉及一种硬件加速的多 核处理器IP隧道分片报文流保序方法。
背景技术
网络的不断发展及普及带来日益严峻的安全问题。传统的网络安全设备,从功能 和性能上都已经很难满足需求。使用ASIC技术的网络安全设备性能高,但灵活性不够,不 能适应日益变化的网络安全问题。使用通用处理器的网络安全设备由于处理器具有可编程 性,灵活性很高,但性能不佳。随着硬件及芯片技术的不断发展,多核处理器技术越来越成熟和普及。网络安全 设备的设计也逐渐采用硬件加速器和多核处理器相结合的架构,这样既有可编程的灵活 性,又能提高性能。采用硬件加速器和多核处理器相结合的架构的设备内,由于有多个甚至几十个处 理器并行处理,处理器间的同步与互斥开销使得系统的性能很难随着处理器核的增加而线 性增长。而且处理器间的同步与互斥也使得软件更加复杂、容易出错和难以维护。为了减少同步与互斥操作,降低软件复杂性,根据(源地址,源端口,目的地址,目 的端口,协议)五元组哈希值,同一个TCP/UDP流被送至同一个处理器处理。在IP隧道模 式下,数据报文采用(外部IP头,内部IP头,TCP/UDP头,数据)封装模式,其中(内部IP头, TCP/UDP 头)描述一个 TCP/UDP 流。但是,在IP隧道模式下,如果IP报文被分片,内部IP头和TCP/UDP头有可能会被 封装在不同的IP分片报文中。这样会导致提取不到源端口、目的端口信息,只能根据内部 IP头(源地址,目的地址)二元组哈希值来负载均衡分片报文。这就导致IP隧道模式下同 一个TCP/UDP流的普通报文和分片报文负载均衡到不同的处理器上。为了报文流保序等原 因,分片报文被重组后需要提交到同一流内普通报文被处理的处理器上。这时两个处理器 上的软件之间不可避免的产生直接交互,需要用到同步与互斥等原语操作,增加处理器的 软件开销和浪费处理器Cache互联总线的带宽,影响系统性能。

发明内容
针对上述问题,申请人进行了改进研究,提供一种硬件加速的多核处理器IP隧道 分片报文流保序方法,在多核处理器架构网络安全设备内由硬件加速器参与完成IP隧道 分片报文流保序的功能,减少处理器的开销,提升系统性能。本发明的技术方案如下
在IP隧道模式下,在多核处理器的IP隧道分片报文在被处理器重组后,由输出处理 引擎回路至输入处理引擎,并被重新提交到处理同一 TCP/UDP流内普通报文的另一处理器 上。其进一步的技术方案为具体步骤如下1)以太网MAC从物理链路上收到一 TCP/UDP流,将该TCP/UDP流报文送至输入处理引
擎;
2 )在IP隧道模式下,如果是非分片的普通报文,输入处理弓I擎从报文内部IP头和TCP/ UDP头中提取源地址,源端口,目的地址,目的端口,协议号五元组信息并计算哈希值,由哈 希值确定第一接收处理器;
3)在IP隧道模式下,如果是分片报文,输入处理引擎从报文内部IP头提取源地址,目 的地址二元组信息并计算哈希值,由哈希值确定第二接收处理器;
4)第二接收处理器对IP隧道分片报文进行重组,并将重组好的报文发送给输出处理 引擎;
5)输出处理引擎将重组好的IP隧道报文回路至输入处理器引擎;
6)输入处理引擎从重组好的IP隧道报文的内部IP头和TCP/UDP头提取源地址,源端 口,目的地址,目的端口,协议号五元组信息并计算哈希值,将重组好的IP隧道报文提交至 第一接收处理器。所述第一接收处理器与第二接收处理器为不同的处理器,或属于不同的处理器核 心。以及,其进一步的技术方案为
在IP隧道分片报文被重组后由输出处理引擎回路至输入处理引擎的过程中,报文的 有效载荷一直存放于存储器中,在分片重组的处理器至输出处理引擎至输入处理引擎至处 理同一 TCP/UDP流内普通报文的处理器的路径上传输的是报文描述信息。所述输入处理引擎、输出处理引擎与多核处理器处于同一芯片内,或处于不同芯 片内。所述输入处理引擎、输出处理引擎与以太网MAC处于同一芯片内,或处于不同芯 片内。本发明的有益技术效果是
本发明为了实现IP隧道分片报文进行流保序,采用分片重组、回路、重新哈希后,最终 使得IP隧道内同一 TCP/UDP流在IP分片报文重组后由同一个处理器处理;处理器之间没 有互斥与同步的原语操作,从而减少由此产生的处理器执行资源开销、降低处理器Cache 互联总线带宽资源的额外消耗、提升系统性能。


图1是本发明涉及的系统或芯片的组成结构示意图。图2是本发明中各处理单元的交互步骤及顺序示意图。
具体实施例方式下面结合附图对本发明的具体实施方式
做进一步说明。如图1所示,本发明涉及的系统或单一芯片与现有技术相同,其由如下主要单元 组成以太网MAC (Media Access Control,即媒体访问控制)、输入处理引擎、输出处理引 擎、多核处理器及互联总线。参考图1,在本发明中,上述各单元所起的作用如下输入处理引擎及输出处理引擎完成硬件加速功能;输入处理引擎将TCP/UDP流(包括普通报文及分片报文)负载均衡到 各个处理器;输出处理引擎将来自处理器的报文通过以太网MAC发送到物理链路上或将重 组后的IP隧道报文回路至输入处理引擎。IP隧道分片报文被处理器重组后由输出处理引 擎通过重组报文回路发送至输入处理引擎,并被重新提交到处理与该IP隧道分片报文属 于同一 TCP/UDP流内的普通报文的处理器。在IP隧道模式下,输入处理弓I擎根据内部IP头和TCP/UDP头中的以源地址,源端 口,目的地址,目的端口,协议组成的五元组哈希值将普通报文负载均衡到各个处理器;并 根据内部IP头中的以源地址,目的地址组成的二元组哈希值将分片报文负载均衡到各个 处理器;IP隧道分片报文被处理器重组后,提交给输出处理引擎回路至输入处理引擎,输 入处理引擎重新根据以源地址,源端口,目的地址,目的端口,协议组成的五元组哈希值将 所述重组报文提交到处理同一 TCP/UDP流内普通报文的处理器上。上述IP隧道分片报文流保序的过程中,报文的有效载荷一直存放于存储器中,分 片重组的处理器至输出处理引擎至输入处理引擎至处理同一 TCP/UDP流内普通报文的处 理器的路径上没有报文的有效载荷的拷贝,传输的只是报文描述信息。输入处理引擎、输出 处理引擎与多核处理器以及以太网MAC可在同一芯片内,也可在不同的芯片内。本发明可以按照如下所述来具体实施
采用ASIC或FPGA实现多个以太网MAC、输入处理引擎和输出处理引擎。多核处理器采 用6核或12核X86 CPU。ASIC或FPGA与X86多核处理器采用xl6 gen2 pci_e总线连接。上述多核处理器也可以是任何指令集的可编程处理器,此处不为限定。如图2所示,本发明的具体处理步骤如下
步骤1 以太网MAC将从物理链路上收到的报文通过FIFO送给输入处理引擎。步骤加在IP隧道模式下,如果是非分片的普通报文,输入处理引擎从报文内部 IP头和TCP/UDP头中提取(源地址,源端口,目的地址,目的端口,协议号)五元组信息并计 算哈希值,根据哈希值最后8位查找映射表,确定接收处理器A,把报文提交给该处理器A。步骤2b 在IP隧道模式下,如果是分片报文,输入处理引擎从报文内部IP头提取 (源地址,目的地址)二元组信息并计算哈希值,根据哈希值最后8位查找映射表,确定接收 处理器B,把报文提交给该处理器B。步骤3 处理器B对IP隧道分片报文进行重组,重组好的报文发送给输出处理引擎。步骤4 输出处理引擎将重组好的IP隧道报文通过FIFO回路至输入处理器引擎。步骤5 输入处理引擎从重组好的IP隧道报文的内部IP头和TCP/UDP头提取五 元组信息并计算哈希值查映射表,将重组好的IP隧道报文提交至处理器A。经过上述步骤,实现了 IP隧道内同一 TCP/UDP流的报文经重组后都在同一个处理 器内处理。以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本 领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变 化,均应认为包含在本发明的保护范围之内。
权利要求
1.一种硬件加速的多核处理器IP隧道分片报文流保序方法,其特征在于在IP隧道 模式下,在多核处理器的IP隧道分片报文在被处理器重组后,由输出处理引擎回路至输入 处理引擎,并被重新提交到处理同一 TCP/UDP流内普通报文的另一处理器上。
2.根据权利1所述硬件加速的多核处理器IP隧道分片报文流保序方法,其特征在于具 体步骤如下1)以太网MAC从物理链路上收到一 TCP/UDP流,将该TCP/UDP流报文送至输入处理引擎;2 )在IP隧道模式下,如果是非分片的普通报文,输入处理弓I擎从报文内部IP头和TCP/ UDP头中提取源地址,源端口,目的地址,目的端口,协议号五元组信息并计算哈希值,由哈 希值确定第一接收处理器;3)在IP隧道模式下,如果是分片报文,输入处理引擎从报文内部IP头提取源地址,目 的地址二元组信息并计算哈希值,由哈希值确定第二接收处理器;4)第二接收处理器对IP隧道分片报文进行重组,并将重组好的报文发送给输出处理 引擎;5)输出处理引擎将重组好的IP隧道报文回路至输入处理器引擎;6)输入处理引擎从重组好的IP隧道报文的内部IP头和TCP/UDP头提取源地址,源端 口,目的地址,目的端口,协议号五元组信息并计算哈希值,将重组好的IP隧道报文提交至 第一接收处理器。
3.根据权利2所述硬件加速的多核处理器IP隧道分片报文流保序方法,其特征在于 所述第一接收处理器与第二接收处理器为不同的处理器,或属于不同的处理器核心。
4.根据权利广3中任一项所述硬件加速的多核处理器IP隧道分片报文流保序方法,其 特征在于在IP隧道分片报文被重组后由输出处理引擎回路至输入处理引擎的过程中,报 文的有效载荷一直存放于存储器中,在分片重组的处理器至输出处理引擎至输入处理引擎 至处理同一 TCP/UDP流内普通报文的处理器的路径上传输的是报文描述信息。
5.根据权利广3中任一项所述硬件加速的多核处理器IP隧道分片报文流保序方法,其 特征在于所述输入处理引擎、输出处理引擎与多核处理器处于同一芯片内,或处于不同芯 片内。
6.根据权利广3中任一项所述硬件加速的多核处理器IP隧道分片报文流保序方法,其 特征在于所述输入处理引擎、输出处理引擎与以太网MAC处于同一芯片内,或处于不同芯 片内。
全文摘要
本发明涉及硬件加速的多核处理器IP隧道分片报文流保序方法。多核处理器架构的网络安全设备中,在IP隧道模式下,同一个TCP/UDP流内的普通IP报文和分片IP报文会被负载均衡到不同的处理器。为了对流内的报文保序,不同的处理器之间要做额外的同步与互斥,消耗处理器的执行资源及处理器Cache互联总线的带宽资源。为了解决这一问题,本发明在分片报文被处理器重组后,交由硬件加速器重新提交到处理普通报文的处理器,使得IP隧道内同一个TCP/UDP流的后续处理在同一个处理器上进行,由此降低多核处理器架构网络安全设备内软硬件对IP隧道分片报文流保序的处理复杂度和开销。
文档编号H04L12/56GK102104544SQ20111002648
公开日2011年6月22日 申请日期2011年1月25日 优先权日2011年1月25日
发明者丁贤根, 缪庆军 申请人:无锡网芯科技有限公司, 江苏华丽网络工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1