一种网络报文过滤引擎芯片的制作方法

文档序号:7902128阅读:423来源:国知局
专利名称:一种网络报文过滤引擎芯片的制作方法
技术领域
本申请涉及一种网络报文过滤引擎芯片,尤其涉及网络报文过滤的加速领域。
背景技术
随着网络的日益普及,深度报文检测技术作为必备的安全手段越来越多地应用于 各种互联网络。运营商和相关部门可以通过深度报文检测技术,过滤掉网络上的各种不良 信息,营造安全、文明的网络环境。深度报文检测技术是一种对网络数据包的应用层数据进行解析,匹配,过滤的技 术,其关键的技术点在于快速的字符串匹配。可以通过匹配规则,关键词或者是语义等方式 对输入的报文进行分析从而截获敏感内容。但是随着计算机技术的发展,各种各样的反过 滤手段也逐渐出现。例如,一种比较常见的反过滤手段是将发布到论坛或者网页上的文字, 经过处理,成为竖排列从右往左阅读的方式,这样当文字通过http协议进行传递的时候, 两个相邻的字符将不再具有任何意义,从而无法被通过关键词,正则表达式或者是语义分 析来进行报文分类的网络过滤设备所捕获。因此,普通的报文过滤技术无法阻挡通过这种 改变排列方式手段进行修改后的报文。图1显示了 26个字母的原始排列和经过重排后的 显示方式。但是这样经过重排后的报文,并不影响人的正常阅读。高性能的深度报文检测一般通过网络处理器配合专用的硬件设备进行处理,能够 做到以大数据流量对不良信息进行过滤,但是如上述所说的经过重排后的报文,则没有一 个高效的手段来进行分析和处理,满足不了日益增长的网络流量的需求。因此,有必要设 计新的处理加速器件来满足深度报文检测需求。发明内容本发明公开了一种网络报文过滤引擎芯片,由接口模块、报文预处理模块、网络加 速模块以及报文匹配模块构成,其中报文预处理模块连接至接口模块,网络加速模块耦接 在报文预处理模块以及报文匹配模块之间。所述网络加速模块由换行符判断逻辑、控制逻辑、输出逻辑以及移位寄存器阵列 构成,其中所述移位寄存器阵列具有M行和N列,数据可以沿行方向向左或向右移动,或者 沿列方向整行向下移动。所述的换行符判断逻辑,其特征在于,检测输入的字符串中是否存在换行符’ \n’, 如果存在,则输出判断标志至控制逻辑。所述的控制逻辑,其特征在于,根据换行符判断逻辑输出的判断标志,控制寄存器 阵列的右移,整行下移,并统计每行的长度。所述的控制逻辑,其特征在于,当字符串完全输入后,控制移位寄存器的前L行向 左移位,其中L为自然数。所述的控制逻辑,其特征在于,当字符串完全输入后,判断当前阵列中前K行的长 度是否相等,前L-K行的长度是否相等且比前K行的长度小1,如果满足条件则输出移位结果,否则移位寄存器内结果丢弃。所述的报文匹配模块,其特征在于,对于网络加速模块判定为需要重排的报文,均 执行2次匹配操作,一次是从网络加速模块获得的重排报文,一次是从报文预处理模块直 接获得的原始报文。
图1是网络报文经过重排序后显示的结果。图2是本发明的网络报文过滤引擎芯片内部结构图。图3是本发明的网络加速模块的内部结构图。
具体实施方式
图2是本发明的网络报文过滤引擎芯片内部结构图。网络报文过滤引擎芯片主要 由接口模块、报文预处理模块、网络加速模块,以及报文匹配模块构成,其中报文预处理模 块连接至接口模块,网络加速模块耦接在报文预处理模块以及报文匹配模块之间。数据报 文通过接口模块输入至芯片,经过报文预处理模块剥离以太网/IP报文封装,并解析HTTP 协议等,分离出网页上的字符串内容,输入至网络加速模块。网络加速模块对输入的字符串 进行处理,提高报文匹配模块的工作效率。报文预处理模块和报文匹配模块之间还有一条 直接路径,用于当网络加速模块判定当前报文为正常顺序的报文时或者产生误判时,直接 从报文预处理模块再次获得原始报文。接口模块作为网络处理报文过滤引擎芯片的数据输入/输出端口,主要负责处理 各种网络数据报文的接收发送,并通过各种工业界的接口规范和其他的网络芯片进行连 接。通常,用于低速网络芯片的接口模块支持IEEE802. 3定义的Mil、RMII、SMII等快速以 太网接口,用于高速网络芯片的接口模块支持的GMII、RGMII以及SGMII等接口。更高速的 网络芯片接口模块支持如SPI4. 2,XAUI, RXAUI, interlaken等接口标准。报文预处理模块用于解析报文的封装,获取报文内部的实质性内容。典型的报文 预处理流程包括解析二层报文头,剥离以太网的报文封装,并获取上层承载报文协议; 解析三层报文头,剥离IP报文的封装,并获取上层承载报文协议;解析四层TCP报文头,对 TCP报文进行终结,获取更上层应用层协议和完整的应用层数据流;解析应用层的HTML或 者XML报文,获取字符串信息作为报文匹配的处理输入。由于报文预处理的复杂性,报文预 处理模块可以通过专用的硬件单元实现,也可以通过多核架构下的网络处理器引擎上运行 的软件报文解析进行实现。报文匹配模块是网络过滤引擎的计算核心,用于执行关键词分析过滤流程。匹配 模块对预处理模块或者网络加速模块输出的字符串执行关键词匹配、规则匹配或者语义匹 配操作,分析报文内容是否具有不良词汇或者语段。报文匹配可以采用关键词搜索数据库 构建,或者采用正则表达式引擎构建,也可以采用基于语义分析的引擎构建。对于采用关键 词搜索或者正则表达式引擎的报文匹配模块,可以采用基于硬件的实现,以获得高性能,也 可以采用基于处理器核的软件实现,以获得更多的灵活性;基于语义分析的引擎由于其内 在复杂性,一般均采用软件来实现。以上公开了网络报文过滤引擎芯片的部分内部处理模块的实现,下面详细描述本发明公开的网络加速模块。图3是网络加速模块的内部结构,网络加速模块主要包括换行符判断逻辑模块、 控制逻辑模块、输出逻辑模块以及移位寄存器阵列。换行符判断逻辑模块置于报文的输入 端,接收报文预处理模块的输出字符串流;控制逻辑模块耦合于换行符判断逻辑模块,输出 逻辑模块以及移位寄存器阵列,用于对上述3个模块的处理控制。移位寄存器阵列与换行 符判断逻辑和输出逻辑模块相连接,用于对报文数据的重排处理和数据缓冲;输出逻辑模 块连接于移位寄存器阵列,用于对移位寄存器阵列输出的报文进行移位输出。网页的报文数据经过报文预处理模块解析后,提取其中文本信息部分,输入到换 行符判断逻辑模块,换行符判断逻辑模块对输入报文中的换行符” \n”进行检索,如果发现 报文中存在换行符,则输出换行指示信号给控制逻辑模块。报文数据经过报文预处理模块 后,换行符被从数据流中删除,以使的跨行的关键词或者语义能够被连贯的分析检索。换行 符判断逻辑输出的报文数据按每时钟周期一个字符的速度输入移位寄存器阵列。移位寄存器阵列由M行,N列的移位寄存器构成。一个可能的实施例中,M = 128, N= 128,这样的阵列每次可以处理长度达到Iw字以上的字符串,基本可以满足网络处理的 需求。每个移位寄存器为16bit,可以存储一个ASCII码或者一个Unicode字符,如果需要 对扩展的字符集进行处理,也可以将每个移位寄存器扩展至16位或者32位。每个移位寄 存器内的数据可以有3个移动方向,向左,向右(水平方向移动)或者向下(垂直方向移 动)。在移位时钟的驱动下,每个时钟周期,每个移位寄存器均可以输出当前的存储数据, 并存入移入的字符数据。从当前字符串序列的第一个字符开始,每周期一个字符(ASCII码 或者Unicode字符)按行方向移入移位寄存器,在第一时钟周期,字符00移入移位寄存器 R00,第二周期,ROO中的内容移入R01,字符01移入R00,第三周期,ROl中的内容移入R02,ROO中的内容移入R01,字符02移入ROO......依此类推,直到换行符判断逻辑模块检测到了一个换行符,此时,控制逻辑模块记下第一行的长度A0,第一移位寄存器行的所有数据迁移到第二移位寄存器行,也就是说,R00, R01, R02......RON的所有数据全部移入对应的R10,R11,R12......RlN0从第二行的第一个字符开始,每时钟周期一个字符(ASCII码或者Unicode字符)按行方向移入移位寄存器,在第一时钟周期,字符10移入移位寄存器R00, 第二周期,ROO中的内容移入R01,字符11移入R00,第三周期,ROl中的内容移入R02,ROO中的内容移入R01,字符12移入ROO......依此类推,直到换行符判断逻辑模块检测到了一个换行符,此时,控制逻辑模块记下第2行的长度Al,第一移位寄存器行的所有数据迁移到第二移位寄存器行,也就是说,R00, ROl,R02......RON的所有数据全部移入对应的R10,Rll, R12......RlN,第2移位寄存器行的所有数据迁移到第3移位寄存器行,也就是说,R10, Rll,R12......RlN的所有数据全部移入对应的R20, R21,R22......R2N。对于当前输入报文的剩余数据,依次按上述步骤处理,直到最后一个字符输入移位寄存器阵列。此时移位寄存器中存储了 L行数据,每行的长度分别是A0,Al,A2......AL-1。其中,L代表当前输入报文的行数。注意这里有2个实现的约束每一行的最大长度不能大于移位寄存器的 行长度N,当前输入报文的行数L不能大于移位寄存器的行数M。如果这2个约束中有一个 不能满足,则当前字符串不能被加速处理,移位寄存器中的数据被丢弃,报文由报文预处理 模块直接出处至报文匹配模块。通过对大量的重排报文分析,我们发现其中一个规律是,对于输入的L行数据,如果该报文是经过重排的报文,则对于前K行,所有的行长度都是相等的,设其等于A,对于后 L-K行,长度是前K行长度减一(也就是长度为A-1)。因此,当最后一行输入移位阵列后(此时M行N列的阵列里面有了 L行,每行的长度分别是A0,Al......AL-1),控制逻辑模块从最后一行(RL-1行)开始,判断是否存在满足如下条件的行1)从RL-I行开始,前K行的长度相等,设均为A2)后续L-K行的长度相等,且长度均为前K行长度减一,设其为A-I如果当前输入报文满足上述2个条件,则当前的报文可能就是经过重排的报文, 否则的话,认为是常规报文,移位寄存器内的结果丢弃,报文由报文预处理模块直接出处至 报文匹配模块。由于网络文字的复杂性,网络加速模块也可能产生误判,这时会将正常顺序的报 文当作经过重排序的报文而再次排序导致乱序。一种优选的实现是,报文匹配模块对于网 络加速模块重排后的报文,均执行2次匹配操作,一次是从网络加速模块获得的重排报文, 一次是从报文预处理模块直接获得的原始报文。输出逻辑模块由一移位寄存器构成,其每隔L个周期接收移位寄存器阵列输出的 并行的L个数据,并每周期输出一个字符至报文匹配模块,这里L为当前报文的行数。当控制逻辑模块判断当前报文为重排报文后,采取以下的步骤输出待匹配报文A.控制前L行,每隔L个时钟周期向左移位一个字符(第一行ROO输出至输出逻辑模块,ROl至R00,R02至ROl......,第二行RlO输出值输出逻辑模块,Rll至R10,R12至Rll......依此类推);B.控制输出逻辑模块,每时钟周期向报文匹配模块输出1个字符;C.每L个时钟周期报文长度A减1 ;D.当报文长度A等于0,停止移位寄存器动作,输出加速完成信号至报文匹配模 块;E.等待下一个报文的输入。当控制逻辑模块判断当前报文为是常规报文,移位寄存器内的结果丢弃,报文由 报文预处理模块直接出处至报文匹配模块。如果控制逻辑判断正确,则经过网络加速模块的处理之后,报文匹配单元获得原 始的待匹配报文。通过上述的操作,报文匹配单元会收到重排字符串,大大加速了报文分类过滤的 速度。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技 术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因为本发明的保护范 围当以权利要求所界定的为准。
权利要求1. 一种网络报文过滤引擎芯片,包括接口模块、报文预处理模块、网络加速模块以及报 文匹配模块,其中报文预处理模块连接至接口模块,网络加速模块耦接在报文预处理模块 以及报文匹配模块之间,所述报文预处理模块和所述报文匹配模块均是基于硬件实现,其 特征在于所述网络加速模块包括换行符判断逻辑模块、控制逻辑模块、输出逻辑模块以及移位 寄存器阵列,其中所述移位寄存器阵列由M行XN列的移位寄存器构成,数据沿行方向向左 或向右移动,或者沿列方向整行向下移动。
专利摘要本实用新型公开了一种网络报文过滤引擎芯片,包括接口模块、报文预处理模块、网络加速模块以及报文匹配模块,其中报文预处理模块连接至接口模块,网络加速模块耦接在报文预处理模块以及报文匹配模块之间。网络加速模块包括换行符判断逻辑模块、控制逻辑模块、输出逻辑模块以及移位寄存器阵列,其中移位寄存器阵列由M行×N列的移位寄存器构成,数据沿行方向向左或向右移动,或者沿列方向整行向下移动。有益效果通过网络加速模块,加速报文匹配的处理速度。
文档编号H04L12/26GK201839301SQ201020212678
公开日2011年5月18日 申请日期2010年6月2日 优先权日2010年6月2日
发明者孟路, 马建锋 申请人:上海融亿信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1