首页> 中国专利> 一种基于混合计算硬件的网络报文分类系统和方法

一种基于混合计算硬件的网络报文分类系统和方法

摘要

本发明提出了基于混合计算硬件的多级网络报文分类系统和方法。通过中央处理器对多种不同计算硬件资源进行集中调度,构建多级分类处理流水线,将匹配规则按照不同计算硬件的特性进行合理分割并配置到流水线各级中,对于简单规则可以通过专用硬件芯片完成分类处理,对应复杂自定义分类规则可以由专用硬件芯片、通用并行处理器和通用中央处理器协同实现,增强了处理报文的能力。

著录项

  • 公开/公告号CN104008130A

    专利类型发明专利

  • 公开/公告日2014-08-27

    原文格式PDF

  • 申请/专利权人 开网科技(北京)有限公司;

    申请/专利号CN201410173987.7

  • 发明设计人 李丹;唐勇;

    申请日2014-04-28

  • 分类号G06F17/30;H04L12/24;H04L12/70;

  • 代理机构北京庆峰财智知识产权代理事务所(普通合伙);

  • 代理人刘元霞

  • 地址 100193 北京市海淀区东北旺西路8号中关村软件园孵化器2258室

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-04

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2014101739877 申请日:20140428 授权公告日:20170714

    专利权的终止

  • 2017-07-14

    授权

    授权

  • 2014-09-24

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140428

    实质审查的生效

  • 2014-09-17

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20140428

    著录事项变更

  • 2014-08-27

    公开

    公开

说明书

技术领域

本发明涉及一种基于混合计算硬件的多级网络报文分类系统 和方法,属于报文分类技术领域。

背景技术

计算机网络设备从网络接口接收到来自外部的网络报文,需要根 据其自身任务对报文进行相关处理,譬如,路由器和交换机接收到报 文后需要往其他网络接口进行转发,NAT网关设备接收到数据报文后 需要对报文进行修改,负载均衡器需要对报文进行重定向。这些设备 在对报文进行操作(转发或修改)前,均必不可少地需要先对数据报 文进行分类,针对不同类别的网络报文执行不同的操作。现有技术通 常采用专用硬件芯片来对报文固定位置的内容进行提取并且与各条 分类规则进行逐一对比,若报文与某条规则匹配,则将数据报文归类 到该规则所指定的分类中。传统利用专用硬件芯片进行报文分类的方 法存在灵活性不足,用户只能根据网络报文目的IP地址、物理地址 等少数给定的规则中进行选取,难以根据用户自定义的报文字段进行 分类。新型网络报文分类方法有尝试采用通用处理器或者图形处理器 实现报文分类,以实现灵活定义的报文分类机制,然而现有方法均局 限于采用单一类型的计算硬件(CPU或GPU),其报文分类处理能力非 常有限,难以满足现有计算机网络海量网络报文分类处理要求。

发明内容

为了解决现有技术中的技术问题,本发明提出了基于混合计 算硬件的多级网络报文分类系统和方法。通过中央处理器对多种 不同计算硬件资源进行集中调度,构建多级分类处理流水线,将 匹配规则按照不同计算硬件的特性进行合理分割并配置到流水线 各级中,对于简单规则可以通过专用硬件芯片完成分类处理,对 应复杂自定义分类规则可以由专用硬件芯片、通用并行处理器和通 用中央处理器协同实现。

具体地,本发明采用如下技术方案:

本发明提供一种基于混合计算硬件的多级网络报文分类系统,其 特征在于:该系统包括网络接口、专用硬件芯片、通用并行处理器、 通用中央处理器和中央处理器;该网络接口用于接收网络报文,中央 处理器控制专用硬件芯片、通用并行处理器和通用中央处理器三个部 分,所述三个部分作为分类处理中的三个分级;中央处理器将各种计 算硬件资源配置成多级分类流水线,并且对分类规则数据库中全部规 则进行逐条分析和拆分;专用硬件芯片用于实现流水线第一级;通用 并行处理器用于实现流水线第二级;通用中央处理器用于实现流水线 第三级。

优选的是,中央处理器识别网络接口,标识不同网络接口的类型 和数目。

优选的是,中央处理器识别计算硬件,标识不同计算硬件的类型、 数目及其相关资源。

优选的是,中央处理器逐条规则的拆分具体为:拆分为若干部分, 第一部分是能被流水线第一级处理的部分,第二部分是能被流水线第 二级处理的部分,如此类推,每一部分均有可能为空。

优选的是,中央处理器为流水线每一级构建并维护一个描述表, 该描述表记录对应流水线级的级数、所支持的字段类型、当前存储的 全部表项的内容、组织方式和存储位置。

本发明还提供一种混合计算硬件的多级网络报文分类方法,其特 征在于:该方法分为单级流水线内容处理和多级流水线分类处理。 所述单级流水线内容处理方法具体为:第一级和第二级流水线根据流 水线设置从报文提取字段,合成待匹配值,将所述待匹配值与当前表 项进行对比,并输出对应对比结果。第三级流水线根据当前表项自定 义字段从报文提取字段,合成待匹配值,将所述待匹配值与当前表项 进行对比,并输出对应对比结果。

所述多级流水线分类处理方法具体为:从网络接口取出数据报文, 加入缓冲队列,并送入流水线处理;在流水线第一级进行查找,如果 命中则根据命中表项跳转至第二级流水线进行查找;如果命中则根据 命中表项跳转至第三级流水线进行查找,在同样命中的情况下输出分 类类别,并进行存储;如果上述任何一级出现不命中的情况,则直接 输出无命中对应的分类类别并进行存储。

在单级流水线内容处理或者多级流水线分类处理之前还包括分 类流水线增加新分类规则的方法,具体为:系统初始化,并增加一条 新分类规则;把新增规则拆分成三部分;在流水线第一级进行查找, 如果命中则根据命中表项跳转至第二级流水线进行查找;如果命中则 根据命中表项跳转至第三级流水线进行查找,在同样命中的情况下判 断为新增加的规则已经存在,不需要增加;如果上述第一级或者第二 级出现不命中的情况,则在不命中的一级新增表项且在下一级新增搜 索域,并跳转至新的搜索域;如果上述第三级出现不命中的情况,则 直接在第三级新增表项。

附图说明

图1是混合计算硬件的多级网络报文分类系统示意图。

图2是分类流水线增加新分类规则流程图。

图3是第一第二级流水线分类处理流程图。

图4是第三级流水线分类处理流程图。

图5是多级流水线分类处理流程图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进行详细描 述。

如图1所示,本发明的系统包括网络接口、专用硬件芯片、通用 并行处理器、通用中央处理器和中央处理器(未示出),该网络接口 用于接收网络报文,中央处理器控制专用硬件芯片、通用并行处理器 和通用中央处理器三个部分,这三个部分作为分类处理中的三个分级。

其中,中央处理器可以识别网络接口,标识不同网络接口的类型 和数目。例如系统有十个千兆以太网接口和四个万兆以太网接口,分 别标识为eth0,eth1,...,eth9和xge0,xge1,xge2,xge3。中央 处理器还可以识别计算硬件,标识不同计算硬件的类型、数目及其相 关资源。例如系统中有两个八核CPU,两块独立显卡和一块专用硬件 分类芯片(例如FPGA、商用交换芯片等),分别标识为CPU0,CPU1,..., CPU14,CPU15,GPU0,GPU1和HW0,其中所有CPU共享16GB主机内 存,每个GPU可使用3GB专用显存,专用硬件分类芯片能够存储4K 条128比特长度的分类规则。

中央处理器将各种计算硬件资源配置成多级分类流水线。流水线 第一级P1由专用硬件芯片实现,在表项长度允许情况下覆盖最常用 的分类规则检查字段,譬如,目地IP地址、源IP地址、目的MAC地 址、源MAC地址等等;流水线第二级P2由通用并行计算硬件(例如 GPU和DSP等)实现,覆盖全部次常用分类检查字段,譬如TTL字段、 ACK/SYN标识位、IP报文长度字段等等;流水线第三级P3由通用处 理器即CPU实现,覆盖用户配置分类规则指定的报文任意位置和任意 长度,以提供充分的分类灵活性。

用户输入配置的分类规则统一存储在规则数据库中,用户增加、 删除、修改分类规则均通过操作数据库内容实现。

中央处理器对分类规则数据库中全部规则进行逐条分析,将每条 规则拆分为若干部分,第一部分是能被流水线第一级P1处理的部分, 第二部分是能被流水线第二级P2处理的部分,如此类推,每一部分均 有可能为空。譬如,一条分类规则需要检查目的IP地址(P1),TCP 目的端口号(P1),IP数据报文总长度(P2)和TCP荷载第的10个字节 (用户自定义,P3)三部分,则该规则分为如下三部分,第一部分是“目 的IP地址,TCP目的端口号”,第二部分是“IP数据报文总长度”, 第三部分是“TCP荷载第的10个字节”。

中央处理器为流水线每一级构建并维护一个描述表,该描述表记 录对应流水线级的级数、所支持的字段类型、当前存储的全部表项的 内容、组织方式和存储位置。该描述表与流水线具体表项的存储方式 和组织结构相互独立,中央处理器依据该描述表来对流水线各级进行 具体表项配置管理,包括表项查询、增加、删除、修改等。

流水线的第一级(P1)的所有表项处于同一个搜索域中,流水线 的第二级(P2)和第三级(P3)可由多个搜索域组成。当一个搜索域中的 一条表项被命中时,中央处理器根据该表项的输出值跳转到下一级流 水线的指定搜索域,继续查找,直至通过全部流水线。

如图2所示,中央处理器将分类规则逐一添加到多级流水线中的 方法具体为:

a)系统初始化阶段,流水线各级存储表项清空,流水线第一级初 始化为一个搜索域,流水线第二级和第三级初始化无搜索域;

b)中央处理器管理流水线从规则数据库中提取一条新增的分类 规则,并按照上述方法拆分成三部分,设置当前流水线级为第 一级;

c)中央处理器管理流水线在流水线当前级对应的描述表的搜索 域中进行查找将新分类规则的相应部分;

d)若流水线当前级描述表没有表项命中,执行e),否则执行h);

e)中央处理器管理流水线将新规则的对应部分的内容加入到流 水线当前级(Pi)描述表尾部,若当前级不是最后一级,在流水 线下一级(Pi+1)的描述表中增加一个空的搜索域,同时将新加 入到Pi描述表的表项的输出值指向Pi+1描述表新增的搜索域;

f)中央处理器管理流水线将e)中Pi描述表和Pi+1描述表的变 化更新到流水线的实际表项中,即流水线当前级(Pi)增加新表 项,若当前级不是最后一级,流水线下一级(Pi+1)增加新搜索 域,Pi新增表项输出指向Pi+1新增搜索域;

g)若当前级不是最后一级,中央处理器管理流水线跳转至流水线 下一级Pi+1描述表的新增搜索域,执行c),否则停止操作;

h)当前级Pi描述表中某表项被命中,若当前级不是最后一级, 则根据该表项的输出值跳转到流水线下一级(Pi+1)的描述表 的指定搜索域,执行c),否则停止操作;

混合计算硬件的多级网络报文分类方法分为以下两种:

第一种方法,如图3所示数据报文在流水线单级内部处理流程: a)第一级和第二级流水线执行b),第三级流水线执行d);

b)流水线根据当前流水线级所覆盖的字段,从报文的相应位置提 取内容,并且合并成待匹配值;

c)流水线将待匹配值与当前搜索域的全部表项逐一对比,若其中 有表项命中,则该级流水线输出命中表项序号,若无表项命中, 则该级流水线输出无命中。该级流水线处理结束;

d)如图4所示第三级流水线按如下方式将报文与所有表项逐一 进行对比:

i.根据表项指定的检查字段,从报文中提取出相应的内容, 并且合并成待匹配值;

ii.将待匹配值与当前表项进行对比,若该表项命中,则该级 流水线输出命中表项序号,该级流水线处理结束;若表项 不命中且当前表项不是当前搜索域最后一条表项,则转至 下一条表项并执行i),若表项不命中且当前表项是当前搜 索域最后一条表项,则输出无命中,该级流水线处理结束;

第二种方法,如图5所示多级流水线分类处理流程:

a)中央处理器收包流水线轮询所有网络接口取出数据报文,并存 放在环形缓冲队列尾部;

b)中央处理器分类处理流水线从环形缓冲队列首部取出数据报 文,并将报文送进流水线进行分类处理:

i.分类处理流水线将报文在流水线第一级(专用硬件芯片) 进行查找,若第一级查找结果显示某表项被命中,则根 据命中表项的输出值跳转至流水线下一级的指定搜索 域,继续执行ii);否则若流水线第一级无表项被命中, 则根据流水线第一级预先配置的无命中情况输出值指 定的分类标号作为该数据报文最终分类类别,并且终止 对该数据报文的流水线处理;

ii.分类处理流水线将报文在流水线第二级(通用并行处理 器)的指定搜索域中进行查找,若第二级查找结果显示 该搜索域中某表项被命中,则根据命中表项的输出值跳 转至流水线下一级的指定搜索域,继续执行iv);

iii.否则若流水线第二级该搜索域中无表项被命中,则根据 流水线第二级该搜索域中预先配置的无命中情况输出 值指定的分类标号作为该数据报文最终分类类别,并且 终止对该数据报文的流水线处理;

iv.分类处理流水线将报文在流水线第三级(通用中央处理 器)的指定搜索域中进行查找,若第三级查找结果显示 该搜索域中某表项被命中,则根据命中表项的输出值指 定的分类标号作为该数据报文最终分类类别,并且终止 对该数据报文的流水线处理;

v.否则若流水线第三级该搜索域中无表项被命中,则根据 流水线第三级该搜索域中预先配置的无命中情况输出 值指定的分类标号作为该数据报文最终分类类别,并且 终止对该数据报文的流水线处理;

c)中央处理器分类处理流水线记录并存储流水线分类处理结果 作为数据报文最终分类类别。

通过本发明的多级分类处理方法,可以对用户自定义的报文字段 进行分类,提高了报文处理灵活性,采用多类型硬件协同处理,提高 了报文分类处理能力,实现了计算机网络海量报文分类处理的要求。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号