CN106572034A - 一种应用于交换机芯片的网络报文可编程处理方法 - Google Patents
一种应用于交换机芯片的网络报文可编程处理方法 Download PDFInfo
- Publication number
- CN106572034A CN106572034A CN201610982578.0A CN201610982578A CN106572034A CN 106572034 A CN106572034 A CN 106572034A CN 201610982578 A CN201610982578 A CN 201610982578A CN 106572034 A CN106572034 A CN 106572034A
- Authority
- CN
- China
- Prior art keywords
- matching
- network message
- attribute
- strategy
- goal condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,公开了一种网络报文处理方法以及一种网络报文处理装置,所述方法包括:属性选择步骤,用于从网络报文的属性中选择关键属性;属性匹配步骤,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;策略处理步骤,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;其中所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现。本发明可以实现设备的高吞吐率和高能效,同时由于所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现,使得对于网络报文处理的灵活性高。
Description
技术领域
本发明涉及通信技术领域,具体地,涉及一种网络报文处理方法以及一种网络报文处理装置。
背景技术
在现有网络中,一般需要交换机芯片来处理多种任务,例如报文属性变更、协议分析、路由查找、防火墙和QoS等。任务处理过程一般可分为报文分类识别、应用处理策略两个步骤,例如防火墙应用中屏蔽特定范围的IP地址,交换机芯片首先要识别输入报文的IP地址是否属于目标范围,然后对属于目标范围的报文采取丢弃策略,不再进一步转发到目标端口。当前主流高性能交换机芯片一般使用一组相联存储器(CAM,Content AddressableMemory)来存储多种任务,然后以报文属性来查找该相联存储器,获取目标条件,之后再根据此目标条件获取该类报文的处理策略并进行处理。
虽然现有技术的上述网络报文处理方法与多核处理器以软件方式处理相比,具有较高的吞吐率和能源效率比。但是由于该方法采用硬联逻辑,其能够分析的网络报文属性有限且固定,导致其所能处理的任务类型有限,而且针对每类任务的处理策略也基本固定,远不如以软件处理方法灵活。即现有技术中的网络报文处理方法存在灵活性较低、硬件资源占用率高等缺陷。
发明内容
针对现有技术中存在的网络报文处理方法灵活性较低、硬件资源占用率高的技术问题,本发明提供了一种网络报文处理方法,该方法包括:属性选择步骤,用于从网络报文的属性中选择关键属性;属性匹配步骤,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;策略处理步骤,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;其中所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现。
优选地,所述关键属性包括从所述网络报文中选取的感兴趣的字段。
优选地,该方法还包括:相联存储器匹配步骤,用于将所述关键属性与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,....,k,k为正整数。
优选地,所述属性匹配步骤包括:根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。
优选地,所述属性匹配步骤还包括:在所述相联存储器的所述第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
优选地,所述属性匹配步骤还包括:在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的项所对应的目标条件并输出该索引值。
优选地,所述策略处理步骤包括:根据所述索引值在操作策略表中查找所述索引值所对应的策略;以及对所述网络报文执行所述策略。
优选地,该方法还包括:缓冲步骤,用于缓冲并传递所述网络报文。
相应地,本发明还提供了一种网络报文处理装置,该装置包括:属性选择模块,用于从网络报文的属性中选择关键属性;属性匹配模块,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;策略处理模块,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;其中所述属性选择模块、属性匹配模块、以及所述策略处理模块通过可编程逻辑实现。
优选地,所述关键属性包括从所述网络报文中选取的感兴趣的字段。
优选地,该装置还包括:相联存储器,用于将所述关键属性与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,....,k,k为正整数。
优选地,所述属性匹配模块用于:根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。
优选地,所述属性匹配模块还用于:在所述相联存储器的第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
优选地,所述属性匹配模块还用于:在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的的项所对应的目标条件并输出该索引值。
优选地,该装置还包括:操作策略表,所述操作策略表存储索引值所对应的策略;以及所述策略处理模块用于根据所述索引值在所述操作策略表中查找所述索引值所对应的策略并对所述网络报文执行所述策略。
优选地,该装置还包括:缓冲模块,用于缓冲并传递所述网络报文。
优选地,所述装置为交换机芯片。
采用本发明提供的网络报文处理方法以及网络报文处理装置,通过执行用于从网络报文的属性中选择关键属性的属性选择步骤、用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件的属性匹配步骤、以及用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略的策略处理步骤,可以实现网络设备(例如交换机芯片)的高吞吐率和高能效,同时由于所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现,使得对于网络报文处理的灵活性高。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是根据本发明的一种实施例的网络报文处理装置的结构示意图;
图2是根据本发明的一种实施例的网络报文处理装置的结构示意图;
图3是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图;
图4是根据本发明的一种实施例的查找表的示意图;
图5是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图;
图6是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图;以及
图7是根据本发明的一种实施例的网络报文处理方法的示例流程图。
附图标记说明
10 属性选择模块 20 属性匹配模块 30 策略处理模块
40 相联存储器 50 操作策略表 60 缓冲模块
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
为了改善现有的网络报文处理方法的灵活性,本发明考虑了多种实施例,下面将以示例网络报文处理装置为例对各个实施例进行详细地说明:
实施例1
图1是根据本发明的一种实施例的网络报文处理装置的结构示意图,如图1所示,该装置可以包括:属性选择模块10,用于从网络报文的属性中选择关键属性;属性匹配模块20,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;以及策略处理模块30,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;其中所述属性选择模块、属性匹配模块、以及所述策略处理模块通过可编程逻辑实现。
具体地,属性选择模块10可以从网络报文的属性中选择关键属性,即从原始网络报文中选取的感兴趣的字段。例如报文头可以包括网络协议中Layer(层)2、Layer 3、Layer4三层中各层报文的全部头部信息,而关键属性则可以包括用户可以根据实际情况自定义地(例如通过编程)从上述头部信息中选择的感兴趣的属性字段,例如源/目的媒体访问控制MAC地址、源/目的网际协议IP地址、和/或虚拟网络标识ID等等。然后形成用来访问相联存储器的内容。由于使用可编程逻辑实现,其可以针对具体的应用需求,选择不同的属性组合,以便适应多种应用场景。属性选择模块10选出的关键属性或者关键属性的集合(即一个或多个关键属性)与相联存储器(至少一个)一一对应,因此选出的关键属性可能有多组。相联存储器数目越多,能够支持越复杂的匹配条件,但同时关键属性数目也越多,占用的可编程逻辑资源就更多。
接着,将所述关键属性与相联存储器的多个项中的每一项存储的内容进行目标条件匹配并输出匹配结果。相联存储器的各个项中保存着各个目标条件(即任务)对应的内容,当关键属性与其中的某项匹配时,相联存储器置该项的匹配结果为真(以1表示),否则为伪(以0表示)。由于一个目标条件可以包括多个内容,因此一个目标条件可能需要使用多个相联存储器的项来保存,并且这些目标条件在多个相联存储器中保存时必须使用相同索引值,例如对于目标条件(防火墙任务)要求“屏蔽来自IP地址为192.168.1.xx或192.168.2.33的报文”,单个相联存储器只能处理一个IP地址范围,因此上述条件需要两个相联存储器项,这两个存储器项的索引值必须相同,即均存储在两个存储器的第i项,方便后续操作。
之后,属性匹配模块20可以基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;以及策略处理模块30,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略。
采用这样的实施例1,由于属性选择模块10、属性匹配模块20、以及所述策略处理模块30均通过可编程逻辑(例如利用FPGA技术)实现,因此可以根据实际情况来改变逻辑关系,可以实现网络设备(例如交换机芯片)的高吞吐率和高能效,同时由于所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现,使得对于网络报文处理的灵活性高。
实施例2
图2是根据本发明的一种实施例的网络报文处理装置的结构示意图,如图2所示,该网络报文处理装置与实施例1不同之处在于,该网络报文处理装置除了包括上述属性选择模块10、属性匹配模块20、和策略处理模块30外,还进一步包括相联存储器40、操作策略表50、以及缓冲模块60。
其中,相联存储器40的各个项可以保存各个目标条件(即任务)对应的内容,其可以将上述关键属性(实施例1所述)与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,....,k,k为正整数。
操作策略表50可以保存每个目标条件对应的报文处理策略,例如其可以丢弃报文处理策略,也就是将原始报文中的丢弃标志位置上。每种目标条件的处理策略可能不同,有的是丢弃,有的是重定向到处理器,有的是改变报文颜色等等,在实际应用中是多种多样的,用户可以自定义,其格式能够与可编程的策略处理逻辑的要求一致即可。操作策略表深度与相联存储器的深度一致,操作策略表的个数则可以与相联存储器个数不同,但也允许有多个,以便实现对某个任务执行多种操作。
策略处理模块30可以为可编程逻辑,其功能为根据查出的策略内容修改原始报文的属性,例如改变生命周期(TTL)、改变报文颜色、改变输出映射端口等等。在将来的应用中,还可能出现其他自定义的修改方法,因此这里以可编程逻辑实现,能够适应各种新情况和新需求。
缓冲模块60可以为了配合前述过程的流水处理而增加的原始报文缓冲,其深度不低于流水线级数。策略处理模块30在接收到来自操作策略表50的处理要求后,会从缓冲模块60读出网络报文1(原始),然后执行改变其属性的操作,随后产生网络报文2(新的)并发出。所述缓冲模块60可以是缓冲队列或者是按地址寻址的RAM等,每个报文的保存地址在流水线中传递,当策略处理模块需要改变报文头信息时,根据该报文的保存地址从RAM中读出报文内容并修改。
具体地,图3是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图,如图3所示,网络报文处理装置可以执行如下操作:
步骤2001,属性选择模块10可以从网络报文的属性中选择关键属性,即从原始网络报文中选取的感兴趣的字段,例如所述关键属性可以包括:源/目的媒体访问控制MAC地址、源/目的网际协议IP地址、和/或虚拟网络标识ID等等的用户选择或自定义的字段,然后形成用来访问相联存储器的内容。
步骤2002,相联存储器40可以将上述关键属性(实施例1所述)与相联存储器的所有项的存储内容进行匹配并输出匹配结果,即将关键属性与相联存储器的多个项中的第0项、第1项、第2项……第k项存储的内容分别进行目标条件匹配并输出匹配结果。其中,如果第i项匹配,则第i项的结果为真(一般以逻辑值1表示),否则为伪(一般以逻辑值0表示),i=0,....,k,k为正整数。
步骤2003-2004,所述属性匹配模块20可以根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。具体地,假设相联存储器有(N+1)个,每个深度为(k+1),那么需要有(k+1)个查找表,每个查找表可以是一个用来计算相联存储器的第i(i=0,....,k)项匹配结果Match[0..N,i]组合方法的逻辑真值表,因此该查找表可以包含的存储位数=2N+1,其中N,k均为正整数。在步骤2003,属性匹配模块20可以根据所述匹配结果判断相联存储器的第i项的所述逻辑真值表的输出结果是否为真。步骤2004,在所述相联存储器的第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
步骤2005,策略处理模块30可以根据所述索引值i在操作策略表50中查找所述索引值所对应的策略并对所述网络报文执行所述策略,其中操作策略表50中存储索引值所对应的策略。
步骤2006,在所述相联存储器的第i项的所述逻辑真值表的输出结果为伪的情况下,判断所述网络报文不匹配所述目标条件并传递网络报文1。
下面列举一示例来进一步说明该实施例2:
对于“屏蔽来自IP地址为192.168.1.x或192.168.2.33的网络报文”这一目标条件,属性选择模块10可以选出的用来查找相联存储器CAM的关键属性就是源IP地址(IPv4地址,32位)。假定两个深度256、宽度32bit的CAM(CAM0和CAM1,匹配值支持三种状态:0、1、X(即任意值)),在CAM 0和1的第0项,分别将其内容填为0xC0A801XX(192.168.1.x)和0xC0A80221(192.168.2.33),那么当报文的源IP地址为192.168.1.50时,CAM 0输出的匹配结果为真,CAM 1的结果则为伪。
由于存在两个CAM,因此N的取值范围就是0、1两个值。CAM深度为256项,因此i的取值范围就是[0,255]。每次用关键属性作为内容在CAM0/1中查找时,每一项(项编号为i,i=0..255)都会产生Match[0][i]和Match[1][i]两个信号,实现属性匹配模块20的查找表位数=2(N+1)=2(1+1)=4位。图4是根据本发明的一种实施例的查找表的示意图,如图4所示,根据示例目标条件,由于IP地址为192.168.1.x和192.168.2.33之间是“或”的关系,因此设置逻辑真值表的逻辑为“或逻辑”,即当两个存储器中一个项的匹配结果为真(以1表示),则属性匹配模块20确定该网络报文与目标条件匹配,输出结果为真(以1表示)。
在属性匹配模块20的所述输出结果为真的情况下,属性匹配模块20可以输出该项对应的索引值0。然后用根据该索引值0在操作策略表50中进行查找,从其第0项查出的操作策略50应该是含义为“抛弃该报文”的操作编码,最后策略处理模块30可以根据此操作编码将该报文抛弃(或打上抛弃标记然后由后续部件抛弃),不再进一步转发和处理。
相反,假设报文的源IP地址是202.197.1.2,那么和CAM 0、1的匹配结果都是伪,经属性匹配模块20计算后的输出结果也还是伪,则判断所述网络报文不匹配所述目标条件,不需要用索引值去查操作策略表50,策略处理模块30也不会进行任何操作,该网络报文将被向传递顺利进入下一级部件(未示出)。
采用这样的实施例2,以可编程逻辑实现匹配结果的组合能够更有效地使用相联存储器的存储项。例如两个目标条件分别为“屏蔽来自IP地址为192.168.1.xx或192.168.2.33的报文”和“屏蔽IP地址为192.168.23.xx且不等于192.168.23.10的报文”,它们都需要至少2个相联存储器的项来保存匹配条件,但是目标条件1要求两个存储项匹配结果是逻辑或的关系,而目标条件2则要求两个存储项匹配结果是逻辑与的关系。如果属性匹配模块20逻辑固定以逻辑与关系处理匹配结果,那么目标条件1需要占用2个索引值才能实现,而以实施例2的可编程逻辑实现时,将目标条件1的索引项的查找表定义为或逻辑,目标条件2的索引项的查找表定义为与逻辑,那么目标条件1和2都是只需要占用1个索引项即可,提高了相联存储器、操作策略表的利用效率,在实现相同功能的情况下,使用的相联存储器和操作策略表的深度更小(如实施例所述)、面积降低。
实施例3
图5是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图以及图6是根据本发明的一种实施例的网络报文处理装置所执行的方法的流程图,如图5和图6所示,实施例3与实施例2的不同之处在于,在该实施例3中进一步考虑了网络报文与相联存储器40中多项匹配的情况下应该如何处理该网络报文的情况。
具体地,如图5所示,网络报文处理装置可以执行如下操作:
步骤3001,属性选择模块10可以从网络报文的属性中选择关键属性,即从原始网络报文中选取的感兴趣的字段,例如所述关键属性可以包括:源/目的媒体访问控制MAC地址、源/目的网际协议IP地址、和/或虚拟网络标识ID等等的用户选择或自定义的字段,然后形成用来访问相联存储器的内容。
步骤3002,相联存储器40可以将上述关键属性(实施例1所述)与相联存储器的所有项的存储内容进行目标条件匹配并输出匹配结果,即将关键属性与相联存储器的多个项中的第0项、第1项、第2项……第k项存储的内容分别进行目标条件匹配并输出匹配结果。其中,如果第i项匹配,则第i项的结果为真(一般以逻辑值1表示),否则为伪(一般以逻辑值0表示),i=0,....,k,k为正整数。
步骤3003-3006,所述属性匹配模块20可以根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。具体地,假设相联存储器有(N+1)个,每个深度为(k+1),那么需要有(k+1)个查找表,每个查找表可以是一个用来计算相联存储器的第i(i=0..k)项匹配结果Match[0..N,i]组合方法的逻辑真值表,因此该查找表可以包含的存储位数=2N+1,其中N,k均为正整数。
在步骤3003,属性匹配模块20可以根据所述匹配结果判断相联存储器的第i项的所述逻辑真值表的输出结果是否为真。步骤3004,属性匹配模块20可以判断是否存在多项的逻辑真值表的输出结果为真。
在步骤3005,属性匹配模块20可以在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的项所对应的目标条件并输出该索引值。如图6所示,对于不同匹配结果Match[0..N,i],各查找表输出的输出结果为MResultBitX(x=0..k),N,k均为正整数,例如MResultBit0=1,MResultBit1=1,则属性匹配模块20可以计算索引值最小的项,由于MResultBit0的索引值最小(该项索引值为0),则属性匹配模块20可以确定网络报文匹配第0项中所对应的目标条件并输出第0项所对应的索引值(MatchIndex)=0。
反之,如果仅存在一个匹配的项,则属性匹配模块20可以在所述相联存储器的第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i,即步骤3006。
之后,在步骤3007,策略处理模块30可以根据所述索引值在操作策略表50中查找所述索引值所对应的策略并对所述网络报文执行所述策略,其中操作策略表50中存储索引值所对应的策略。
步骤3008,在所述相联存储器的第i项的所述逻辑真值表的输出结果为伪的情况下,判断所述网络报文不匹配所述目标条件并传递网络报文1。
采用这样的实施例3,可以解决报文的属性可能同时符合多个目标条件(任务)的情况,例如路由器定义了两个策略:(1)屏蔽来自192.168.1.x的报文;(2)将来自192.168.x.x的报文复制一份到中央处理器(CPU)。那么对于源IP地址为192.168.1.5的报文,它会同时符合上述两个策略规定的特征。如果策略(1)的特征是写在相联存储器的第0项,策略(2)是写在第1项,那么采用实施例3的操作,索引值结果将是0而不是1。后续策略处理模块30将只对该报文执行屏蔽操作,而不会再复制一份到CPU。
应当理解的是,本领域技术人员可以根据实施例1-3中任一者或者一种或多种的组合来配置网络报文处理装置,本发明对此不进行限定,所述网络报文处理装置可以是需要进行网络报文处理的任何适当的设备,例如交换机芯片。
图7是根据本发明实施例的一种实施例的网络报文处理方法的示例流程图,如图7所示,该方法可以包括以下步骤:
属性选择步骤1001,用于从网络报文的属性中选择关键属性;
属性匹配步骤1002,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;
策略处理步骤1003,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;其中所述属性选择步骤1001、属性匹配步骤1002、以及所述策略处理步骤1003通过可编程逻辑实现。
优选地,所述关键属性包括从所述网络报文中选取的感兴趣的字段。
优选地,该方法还包括:相联存储器匹配步骤,用于将所述关键属性与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,....,k,k为正整数。
优选地,所述属性匹配步骤1002包括:根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。
优选地,所述属性匹配步骤1002还包括:在所述相联存储器的所述第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
优选地,所述属性匹配步骤1002还包括:在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的项所对应的目标条件并输出该索引值。
优选地,所述策略处理步骤1003包括:根据所述索引值在操作策略表中查找所述索引值所对应的策略;以及对所述网络报文执行所述策略。
优选地,该方法还包括:缓冲步骤,用于缓冲并传递所述网络报文。
应当理解的是,上述网络报文处理方法的各个具体实施例,均已在示例网络报文处理装置的实施例中做了详细地说明(如上所述),在此不再赘述。并且,本领域技术人员可以根据本发明实施例的公开选择上述各种实施例中的任一者,或者选择上述各种实施例的组合来配置网络报文处理装置,并且其他的替换实施例也落入本发明实施例的保护范围。
采用本发明提供的网络报文处理方法以及网络报文处理装置,可以实现网络设备(例如交换机芯片)的高吞吐率和高能效,同时由于所述属性选择步骤、属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现,使得对于网络报文处理的灵活性高。即本发明大幅提高了网络设备或网络报文处理装置(例如交换机芯片)在报文处理方法方面的能力和适用范围,同时又不会提高硬件资源的占用率。虽然可编程逻辑占用的硬件资源可能大于定制逻辑,但是它提高了相联存储器、操作策略表的利用效率,在实现相同功能的情况下,使用的相联存储器和操作策略表的深度更小(如实施例所述)、面积降低。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (17)
1.一种网络报文处理方法,其特征在于,该方法包括:
属性选择步骤,用于从网络报文的属性中选择关键属性;
属性匹配步骤,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;
策略处理步骤,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;
其中所述属性选择步骤、所述属性匹配步骤、以及所述策略处理步骤通过可编程逻辑实现。
2.根据权利要求1所述的方法,其特征在于,所述关键属性包括从所述网络报文中选取的感兴趣的字段。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
相联存储器匹配步骤,用于将所述关键属性与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,….,k,k为正整数。
4.根据权利要求3所述的方法,其特征在于,所述属性匹配步骤还包括:根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。
5.根据权利要求4所述的方法,其特征在于,所述属性匹配步骤还包括:在所述相联存储器的所述第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
6.根据权利要求4所述的方法,其特征在于,所述属性匹配步骤还包括:在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的项所对应的目标条件并输出该索引值。
7.根据权利要求5或6所述的方法,其特征在于,所述策略处理步骤还包括:
根据所述索引值在操作策略表中查找所述索引值所对应的策略;以及
对所述网络报文执行所述策略。
8.根据权利要求7所述的方法,其特征在于,该方法还包括:
缓冲步骤,用于缓冲并传递所述网络报文。
9.一种网络报文处理装置,其特征在于,该装置包括:
属性选择模块,用于从网络报文的属性中选择关键属性;
属性匹配模块,用于基于所述关键属性在相联存储器中进行目标条件匹配的匹配结果来判断所述网络报文是否匹配目标条件;
策略处理模块,用于在所述网络报文与目标条件匹配的情况下执行所述目标条件对应的策略;
其中所述属性选择模块、所述属性匹配模块、以及所述策略处理模块通过可编程逻辑实现。
10.根据权利要求9所述的装置,其特征在于,所述关键属性包括从所述网络报文中选取的感兴趣的字段。
11.根据权利要求9所述的装置,其特征在于,该装置还包括:相联存储器,用于将所述关键属性与相联存储器的多个项中的第i项存储的内容进行目标条件匹配并输出匹配结果,其中i=0,….,k,k为正整数。
12.根据权利要求11所述的装置,其特征在于,所述属性匹配模块还用于:根据所述匹配结果以及所述相联存储器的第i项所对应的查找表来计算索引值,其中所述每个查找表存储所述相联存储器的所述第i项的匹配结果组合的逻辑真值表。
13.根据权利要求12所述的装置,其特征在于,所述属性匹配模块还用于:在所述相联存储器的第i项的所述逻辑真值表的输出结果为真的情况下,判断所述网络报文匹配所述目标条件并输出索引值i。
14.根据权利要求12所述的装置,其特征在于,所述属性匹配模块还用于:在所述相联存储器的多项的逻辑真值表的输出结果为真的情况下,选取所述网络报文匹配所述多项中索引值最小的项所对应的目标条件并输出该索引值。
15.根据权利要求13或14所述的装置,其特征在于,该装置还包括:操作策略表,所述操作策略表存储索引值所对应的策略;以及
所述策略处理模块还用于根据所述索引值在所述操作策略表中查找所述索引值所对应的策略并对所述网络报文执行所述策略。
16.根据权利要求15所述的装置,其特征在于,该装置还包括:缓冲模块,用于缓冲并传递所述网络报文。
17.根据权利要求16所述的装置,其特征在于,所述装置为交换机芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610982578.0A CN106572034A (zh) | 2016-11-07 | 2016-11-07 | 一种应用于交换机芯片的网络报文可编程处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610982578.0A CN106572034A (zh) | 2016-11-07 | 2016-11-07 | 一种应用于交换机芯片的网络报文可编程处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106572034A true CN106572034A (zh) | 2017-04-19 |
Family
ID=58540463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610982578.0A Pending CN106572034A (zh) | 2016-11-07 | 2016-11-07 | 一种应用于交换机芯片的网络报文可编程处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106572034A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802872A (zh) * | 2019-03-19 | 2019-05-24 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN111277612A (zh) * | 2020-05-08 | 2020-06-12 | 常州楠菲微电子有限公司 | 一种网络报文处理策略生成方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248573A (zh) * | 2013-04-08 | 2013-08-14 | 北京天地互连信息技术有限公司 | 面向OpenFlow的集中管理交换机及其数据处理方法 |
CN103560951A (zh) * | 2013-11-13 | 2014-02-05 | 华为技术有限公司 | 报文处理方法及物理转发设备 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
-
2016
- 2016-11-07 CN CN201610982578.0A patent/CN106572034A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248573A (zh) * | 2013-04-08 | 2013-08-14 | 北京天地互连信息技术有限公司 | 面向OpenFlow的集中管理交换机及其数据处理方法 |
CN103560951A (zh) * | 2013-11-13 | 2014-02-05 | 华为技术有限公司 | 报文处理方法及物理转发设备 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802872A (zh) * | 2019-03-19 | 2019-05-24 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN109802872B (zh) * | 2019-03-19 | 2021-07-30 | 北京信而泰科技股份有限公司 | 一种报文捕获方法、装置及设备 |
CN111277612A (zh) * | 2020-05-08 | 2020-06-12 | 常州楠菲微电子有限公司 | 一种网络报文处理策略生成方法、系统及介质 |
CN111277612B (zh) * | 2020-05-08 | 2020-08-07 | 常州楠菲微电子有限公司 | 一种网络报文处理策略生成方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10476794B2 (en) | Efficient caching of TCAM rules in RAM | |
Taylor | Survey and taxonomy of packet classification techniques | |
Jiang et al. | Scalable packet classification on FPGA | |
CN105453493B (zh) | 业务报文转发方法及装置 | |
CN101242362B (zh) | 查找键值生成装置及方法 | |
Van Lunteren et al. | Fast and scalable packet classification | |
CN104579940B (zh) | 查找访问控制列表的方法及装置 | |
CN101309216B (zh) | 一种ip包分类方法和设备 | |
CN104348716B (zh) | 一种报文处理方法及设备 | |
CN110383777A (zh) | 端口扩展器设备的灵活处理器 | |
CN104426768B (zh) | 一种数据报文转发方法及装置 | |
CN104580027B (zh) | 一种OpenFlow报文转发方法及设备 | |
US7872993B2 (en) | Method and system for classifying data packets | |
US20110116507A1 (en) | Iterative parsing and classification | |
CN112425131B (zh) | 一种acl的规则分类方法、查找方法和装置 | |
CN102255788A (zh) | 报文分类决策构建系统及方法、报文分类系统及方法 | |
CN107222496B (zh) | 基于现场层设备的报文的安全策略匹配方法和现场层设备 | |
Pao et al. | A multi-pipeline architecture for high-speed packet classification | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
CN101714948B (zh) | 一种多域的网包的分类方法和装置 | |
CN104009918B (zh) | 一种业务报文处理方法、装置及系统 | |
CN106572034A (zh) | 一种应用于交换机芯片的网络报文可编程处理方法 | |
CN102014065A (zh) | 报文包头的解析方法、包头解析预处理装置和网络处理器 | |
CN109376789B (zh) | 一种网络包分类算法与系统 | |
CN104009924B (zh) | 一种基于tcam和fpga的报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170419 |