CN104009924A - 一种基于tcam和fpga的报文处理方法及装置 - Google Patents

一种基于tcam和fpga的报文处理方法及装置 Download PDF

Info

Publication number
CN104009924A
CN104009924A CN201410211306.1A CN201410211306A CN104009924A CN 104009924 A CN104009924 A CN 104009924A CN 201410211306 A CN201410211306 A CN 201410211306A CN 104009924 A CN104009924 A CN 104009924A
Authority
CN
China
Prior art keywords
information
tuple
message
many
time
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.)
Granted
Application number
CN201410211306.1A
Other languages
English (en)
Other versions
CN104009924B (zh
Inventor
丁玉奇
张洪雁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN201410211306.1A priority Critical patent/CN104009924B/zh
Publication of CN104009924A publication Critical patent/CN104009924A/zh
Application granted granted Critical
Publication of CN104009924B publication Critical patent/CN104009924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供基于一种基于TCAM和FPGA的报文处理方法及装置,该方法中交换机根据接收到的报文的报文类型,提取报文的数据包头信息,其中该数据包头信息中包括至少一个一元信息及至少一个多元组信息,并行的查找每个数据包头中的每个信息对应的流表并整合输出结果,并在该数据包头信息为多元组信息时,判断多元组信息对应的多元组流表是否空闲,在非空闲时将该多元组流表发送到所述多元组流表的处理队列中。本发明实施例提供的方案可以有效的实现对报文的深层次解析,并且采用该并联及串联结合的方式可以有效对之前查表得到的结果进行关联,并有效的提高报文的处理效率。

Description

一种基于TCAM和FPGA的报文处理方法及装置
技术领域
本发明涉及工业以太网通信技术领域,尤其涉及一种基于TCAM和FPGA的报文处理方法及装置。
背景技术
目前工业以太网发展非常迅速,在各个行业都有了广泛的应用,从而使以太网通信在工业自动化领域的地位迅速升高。但工业以太网通信存在以下问题:
在进行报文处理时包括:交换机接收到报文后从报文中提取信息,提取的信息包括:(Virtual Local Area Network,VLAN)信息、MAC地址信息、端口号等,根据提取的信息查找对应的表,并根据具体的查找进行相应的处理。具体的,根据提取的VLAN信息和端口号查找VLAN表,查询通过后,再根据提取的MAC地址查询二层地址转发表,根据查询的结果转发该报文。
上述整个报文的处理过程为串行分级处理,流程间按照次序依次处理,并且每个流程单独处理,在每个流程中需要进行的查询工作也是串行进行的,因此整个报文处理流程下来灵活度不高,延时较高,影响了报文的转发性能。
工业通信中由于安全因素,越来越迫切需要对报文进行深层次的解析处理,而目前的处理方式是报文通过交换机处理后发送到下一层进行更深层次的处理,而后续的处理过程也是串行的,因此上述处理过程不能针对具体的工业通信协议进行针对性的网络转发策略配置,从而造成数据转发延时增大。
现有交换机实现安全的方式是通过ACL,在使用时,ACL是采用串行查询和匹配的方式,匹配完一个流表后再匹配下一个,流表一般采用TCAM实现。在一个FPGA内,不可能用到大量独立的TCAM,一般是将一个TCAM划分成多个逻辑表的形式来工作。这时会遇到一个问题,因为接收到的报文需要查找的流表不同,如果采用串行处理方式,将会严重阻碍对报文处理的效率,从而影响产品的数据吞吐率,造成报文转发延迟增大。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于TCAM和FPGA的报文处理方法及装置。
本发明实施例提供了一种基于TCAM和FPGA的报文处理方法,该方法包括:
交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息;
根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,并将查找结果整合后输出,其中,
当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;
当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果。
为了进一步实现对报文的深层次处理,所述根据所述多元组信息查找所述多元组流表并确定查找结果后,所述方法还包括:
对所述多元组信息进行二次解析;
根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表,并将查找结果与一元信息及多元组信息的查找结果整合后输出。
为了保证处理结果的准确性,在本发明实施例中,所述将查找结果整合后输出包括:
在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;
根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;
当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
为了进一步提高报文的处理效率,当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,确定查找结果包括:
判断所述报文的优先级;
当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;
当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
为了进一步提高报文的处理效率,当所述流表为多元组流表时,所述多元组流表包括最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表;
其中,确定查找结果包括:
根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;
当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
本发明实施例提供了一种基于TCAM和FPGA的报文处理装置,所述装置包括:
解析提取模块,用于识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息包括至少一个一元信息,及至少一个多元组信息;
存储查找模块,用于根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,其中,当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果;
仲裁模块,用于将查找结果整合后输出。
为了进一步实现对报文的深层次处理,所述装置还包括:
二次解析模块,用于对所述多元组信息进行二次解析;
存储查找模块,还用于根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表;
仲裁模块,还用于将查找结果与一元信息及多元组信息的查找结果整合后输出。
为了保证报文处理的准确性,所述仲裁模块,具体用于在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
为了进一步提高报文的处理效率,所述存储查找模块,具体用于当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
为了进一步提高报文的处理效率,所述存储查找模块,具体用于当所述流表为多元组流表时,所述多元组流表包括最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表;根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
本发明实施例提供了一种基于TCAM和FPGA的报文处理方法及装置,该方法中交换机根据接收到的报文的报文类型,提取报文的数据包头信息,其中该数据包头信息中包括至少一个一元信息及至少一个多元组信息,并行的查找每个数据包头中的每个信息对应的流表并整合输出结果,并在该数据包头信息为多元组信息时,判断多元组信息对应的多元组流表是否空闲,在非空闲时将该多元组流表发送到所述多元组流表的处理队列中。由于在本发明实施例提取的数据包头信息中包含一元信息及多元组信息,一元信息直接查找一元流表即可,而根据多元组信息查找多元组流表时,需要判断当前流表是否空闲,即判断当前流表是否被其他报文占用,当该流表被占用时需要排队等候,因此本发明实施例提供的方案可以有效的实现对报文的深层次解析,并且采用该并联及串联结合的方式可以有效对之前查表得到的结果进行关联,并有效的提高报文的处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种基于TCAM和FPGA的报文处理流程图;
图2为本发明实施例一提供的一种基于TCAM和FPGA的报文处理流程图;
图3为本发明实施例二提供的一种基于TCAM和FPGA的报文处理过程图;
图4为本发明实施例三提供的一种基于TCAM和FPGA的报文处理过程图;
图5为本发明实施例四提供的一种基于TCAM和FPGA的报文处理示意图;
图6为本发明实施例提供的一种基于TCAM和FPGA的报文处理装置结构示意图。
具体实施方式
为了有效的实现对报文的深层次解析,并提高报文的处理效率,提供了一种基于TCAM和FPGA的报文处理方法及装置。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面结合说明附图,对本发明实施例进行说明。
图1为本发明实施例提供的一种基于TCAM和FPGA的报文处理流程图,该过程包括以下步骤:
S101:交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息。
其中报文类型包括IP报文,TCP报文等等,根据报文中携带的信息可以识别出报文的报文类型。
在本发明实施例中在报文的数据包头中提取的数据包头信息包括:至少一个一元信息及至少一个多元组信息,其中一元信息例如可以是VLAN信息、MAC地址信息,端口号信息等,多元组信息是由多个一元信息组成的信息,例如可以是4元组信息、7元组信息、9元组信息、12元组信息、14元组信息、15元组信息等,通过该多元组信息可以确定出报文的类型,并且可以确定该报文的来源和去处,以便后续查找多元组流表使用。
例如工业通信中常见的EtherCAT工业协议报文,可以从该报文的数据包头中解析出4元组信息,该4元组信息包括:入端口号、源MAC地址、目的MAC地址、以太网协议类型,通过这4元组信息,交换机可以精准的从数据流里判断出哪个报文为EtherCAT报文,并同时得到这个报文的来源和去处,以供后续匹配多元组流表使用。
而对于ModBus TCP报文来说,可以从该报文的数据包头中解析12元组信息,该12元组信息包括:入端口号、源MAC地址、目的MAC地址、VLANID、优先级、以太网类型、源IP地址、目的IP地址、IP协议类型、TCP源端口、TCP目的端口、ToS,通过这12元组信息,交换机可以精准的从数据流里判断出哪个报文为ModBus TCP报文,并同时得到这个报文的来源和去处,以供后续匹配多元组流表使用。
在进行提取时,针对每种报文类型设置有相应的数据包头提取规则,即针对每种报文类型,为了实现对该报文的深层次分析,可以预先设定需要该类型的报文中提取的数据包头信息,根据该数据包头信息形成相应的数据包头提取规则,以便进行后续相应类型报文的数据包头信息的提取。
S102:根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表。
在本发明实施例中为了有效的提高报文的处理效率,减少报文处理的延时,当提取了报文的数据包头信息后,在依据每个数据包头信息查找流表时,该流表的查找过程可以并行的进行,即并行的调用每个流表进行查找。
具体的在进行查找时,当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;
当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果。
该多元组流表一般包括:入端口号、源MAC地址、目的MAC地址、VLANID、优先级、以太网类型、源IP地址、目的IP地址、IP协议类型、TCP源端口、TCP目的端口、ToS这些信息中的多个,一般根据提取出的多元组信息配置流表的相应内容。例如,如果是4元组信息,该4元组信息包括:入端口号、源MAC地址、目的MAC地址,则该对应的多元组流表中包括入端口号、源MAC地址、目的MAC地址信息;如果是12元信息,该12元组信息包括:入端口号、源MAC地址、目的MAC地址、VLAN ID、优先级、MAC协议类型、源IP地址、目的IP地址、IP协议类型、TCP源端口、TCP目的端口、ToS,则该对应的多元组流表中包括:入端口号、源MAC地址、目的MAC地址、VLAN ID、优先级、以太网类型、源IP地址、目的IP地址、IP协议类型、TCP源端口、TCP目的端口、ToS信息。
由于本发明实施例中交换机针对数据包头信息中的每个信息采用并行的方式查找每个对应的流表,但是由于该数据包头信息中存在一元信息和多元组信息,根据一元信息查找流表进行的比较快,而根据多元组信息查找流表相对来说进行的比较慢,因此该报文所需的流表可能正被其他报文使用,即该流表当前非空闲,则保证信息的有效查找,需要将该信息发送到该流表的处理队列中。另外,为了实现对报文的深层次解析,提取的数据包头信息中包含多元组信息,多元组信息在进行流表的查找时,多元组信息之间有互相依赖关系,需要先根据某一元或某几元信息查找获取的结果,再与其他元信息结合进行下一查找,依次根据需要查找完成,因此多元组信息在进行流表的查找时,又是以串行的方式进行的,从而实现了对报文的深层次解析。
S103:将查找结果整合后输出。
由于在本发明实施例提取的数据包头信息中包含一元信息及多元组信息,一元信息直接查找一元流表即可,而根据多元组信息查找多元组流表时,需要判断当前流表是否空闲,即判断当前流表是否被其他报文占用,当该流表被占用时需要排队等候,因此本发明实施例提供的方案可以有效的实现对报文的深层次解析,并且采用该并联及串联结合的方式可以有效对之前查表得到的结果进行关联,并有效的提高报文的处理效率。
另外,在本发明实施例中,为了进一步实现对报文的深层次解析,所述根据所述多元组信息查找所述多元组流表并确定查找结果后,所述方法还包括:
对所述多元组信息进行二次解析;
根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表,并将查找结果与一元信息及多元组信息的查找结果整合后输出。
在本发明实施例中为了实现对报文的进一步深层次解析,当根据多元组信息获取了相应的查找结果后,对该多元组信息进行二次解析,获得每个信息,针对每个信息在交换机中设置有二次流表,依据对应的每个二次流表对每个信息进行查找,获取相应的查找结果。
例如,接收到的报文为Modbus TCP报文,首先解析出该报文的12元组信息(12元组信息包括:入端口号、源MAC地址、目的MAC地址、VLAN ID、优先级、MAC协议类型、源IP地址、目的IP地址、IP协议类型、TCP源端口、TCP目的端口、ToS),根据MAC协议类型、IP协议类型、TCP目的端口和TCP源端口这四个信息可以确定该报文是一个Modbus TCP报文,该报文中包含MBAP报文头,因此需要对该报文进行二次解析,再解析出该报文的MBAP报文头以便进行分析。
如果接收到的报文为Ethernet PowerLink报文,首先解析出该报文的4元组信息(4元组信息包括:入端口、源MAC地址、目的MAC地址、MAC协议类型),根据该4元组信息中的MAC协议类型,可以确定该报文是一个Ethernet PowerLink报文,但还需要对数据包信息进行二次解析,再解析出该报文的Powerlink报文类型、目的NODE ID和源NODE ID信息以便进行分析。
图2为本发明实施例一提供的一种基于TCAM和FPGA的报文处理流程图,该过程包括以下步骤:
S201:交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息。
S202:根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表。判断当前信息是否为一元信息,当当前信息为一元信息时,进行步骤S203,否则,进行步骤S204。
S203:根据所述一元信息对应的一元流表,确定查找结果,之后进行步骤S207。
S204:判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果。并同时将查找结果发送到S207。
S205:对每个多元组信息进行二次解析。
S206:根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表。
S207:并将查找结果与一元信息及多元组信息的查找结果整合后输出。
本发明实施例在进行流表查找过程中,由于采用了并行加串行的方式进行查找,另外,还可能会用到二级流表,因此查找结果会有多个,为了保证最后输出的准确性,在本发明实施例中所述将查找结果整合后输出包括:
在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;
根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;
当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
通过在数据包头信息中添加包描述符,识别每个结果归属的报文,另外,由于每种类型的报文,有其对应的数据包提取规则,因此获得多少个查找结果也是已知的,因此当接收到包含有相同包识描述符的查找结果时,根据其对应的报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量,当当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出,从而在保证报文处理效率的同时,提高了报文处理的准确性。
图3为本发明实施例二提供的一种基于TCAM和FPGA的报文处理过程图,该过程中交换机接收到报文后,根据报文的报文类型,例如具体可以根据MAC类型对报文进行解析,根据解析后的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,具体提取的可以为一元信息VLAN信息和MAC信息,以及多元组信息-12元组信息。并在提取的每个信息中添加包描述符(包1描述符)。
交换机根据保存数据包头中每个信息及流表的对应关系,并行的查找每个信息对应的流表。具体的,根据提取的VLAN信息查找VLAN表,根据提取的MAC信息查找MAC表,根据提取的12元组信息查找12元组表。其中,在查找一元流表时,即查找图3中的VLAN表和MAC表时,根据VLAN信息和MAC信息直接查找对应的VLAN表和MAC表即可,当根据12元组查找12元组表时,判断该12元组表是否空闲,当该12元组表非空闲时,即该12元组表被其他报文使用时,将该12元组信息发送到该12元组表的处理队列,否则,根据该12元组一次串行查找该12元组表,直到确定查找结果。
查找每个流表后得到每个查找结果,在图3中标识为动作1、动作2和动作3,其中动作1~动作3中都携带相同的包描述符(包1描述符)。
对提取的12元组进行二次解析,提取每个自定义字段,根据保存的每个自定义字段和二级流表之间的对应关系,依据每个自定义字段查找每个二级流表。如图3所示,依据每个自定义字段分别查找自定义表1~自定义表3,查表后得到每个查表结果,在图3中标识为动作4、动作5和动作6,其中,动作4~动作6中也携带有相同的包描述符(包1描述符)。
根据获取的每个携带相同包描述符的查找结果,根据该报文的报文类型,判断当前得到的查找结果的数量是否满足该报文类型对应的查找结果数量,当满足时,将每个查找结果整合后输出。
在本发明实施例中,为了进一步提高报文的处理效率,可以设置多个多元组流表,具体的可以设置多个最高元组流表。根据交换机接收到的各种报文的报文类型,及提取的每种类型的报文中的数据包头信息中包含的多元组信息,可以确定数据包头信息中的最高元组是多少元组,根据该最高元组设置多个最高元组流表,便于后续查找,例如交换机提取的数据包头信息中包含有4元组信息、7元组信息、12元组信息以及15元组信息,则最高元组流表为15元组流表。
当包含多个最高元组流表时,确定查找结果包括:
判断所述报文的优先级;
当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;
当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
在本发明实施例中将多个最高元组流表划分为两个组,其中一组为第一优先级的多元组流表,另一组为第二优先级的多元组流表,并且针对报文类型,预设优先级条件,将报文也划分为不同的优先级。
当判断报文满足预设的优先级条件时,即该报文属于高优先级报文时,采用第一优先级的多元组流表进行查找,如果第一优先级的每个多元组流表都非空闲,而第二优先级存在空闲多元组流表时,也可以采用第二优先级的多元组流表进行查找,如果第一优先级及第二优先级都不存在空闲的多元组流表,则将该多元组信息发送到第一优先级的多元组流表的处理队列中。
当判断该报文不满足预设的优先级条件时,即该报文属于低优先级报文时,采用第二优先级的多元组流表进行查找,当第二优先级的每个多元组流表都非空闲时,将该多元组信息发送到第二优先级的多元组流表的处理队列中。
图4为本发明实施例三提供的一种基于TCAM和FPGA的报文处理过程图,该过程包括以下步骤:
S401:交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息。
S402:根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表。判断当前信息是否为一元信息,当当前信息为一元信息时,进行步骤S403,否则,进行步骤S404。
S403:根据所述一元信息对应的一元流表,确定查找结果,之后进行步骤S407。
S404:判断所述报文的优先级是否满足预设的优先级条件,当判断结果为是时进行步骤S405,否则,进行步骤S406。
S405:判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中。并在确定查找结果后,将查找结果发送到步骤S409。
S406:判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。并在确定查找结果后,将查找结果发送到步骤S409。
S407:对每个多元组信息进行二次解析。
S408:根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表。
S409:并将查找结果与一元信息及多元组信息的查找结果整合后输出。
或者,在本发明实施例中,为了进一步提高报文的处理效率,可以设置一一个或几个最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表。
其中,确定查找结果包括:
根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;
当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
在本发明的上述实施例中,根据交换机在设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用多元组流表,例如交换机在半年或一年的时间内,接收到的报文中存在大量的4元组信息、5元组信息、3元组信息等,则常用元组流表可以为5元组流表。并且常用元组流表可以设置多个,便于后续查找。
另外,根据交换机接收到的各种报文的报文类型,及提取的每种类型的报文中的数据包头信息中包含的多元组信息,可以确定数据包头信息中的最高元组是多少元组,根据该最高元组设置多个最高元组流表,便于后续查找,例如交换机提取的数据包头信息中包含有4元组信息、7元组信息、12元组信息以及15元组信息,则最高元组流表为15元组流表。
当接收到每个报文后,根据识别出的报文类型,判断该报文类型是否满足常用元组流表对应的报文类型,这是因为每种报文类型其对应的数据包提取规则确定,并且每种报文类型提取的多元组信息也是可知的,因此根据报文的报文类型即可判断该报文的数据包头信息中的多元组信息是否采用常用元组流表进行查找。
当确定该报文类型满足常用元组流表对应的报文类型时,采用常用元组流表进行查找,否则,采用最高元组流表进行查找。另外,为了保证报文的处理效率,还可以进一步将多个常用元组流表进行分类,划分到不同的优先级组,并且同时针对报文类型对报文进行优先级的划分,高优先级的报文可以采用高优先级的常用元组流表及空闲的低优先级常用元组流表查找,低优先级的报文只能采用低优先级的常用元组流表进行查找。
图5为本发明实施例四提供的一种基于TCAM和FPGA的报文处理示意图,便于进一步说明本发明实施例的技术效果。图5中当交换机接收到报文1时,该报文1的输入时间,即接收该报文1的时间为00。根据该报文的报文类型,采用相应的数据包提取规则,提取报文的数据包头信息,也可以表述为完成该数据包解析的时间为01,并行的查找每个数据包头信息对应的流表。
其中查找流表1的匹配完成时间为02,即确定查找结果的时间为02(图5中的action1到达时间02),查找流表2的匹配完成时间为03,即确定查找结果的时间为03(图5中的action2到达时间03),此时,流表2为多元组流表,数据包头信息中的多元组信息需要按照串行的方式依次查找该多元组流表,所以耗时相对来说较长。
对数据包头信息中的多元组信息进行二次解析,完成的时间为04,解析得到4个信息,每个信息对应相应的二次流表分别为流表3~流表6,并行的查找每个流表,查找匹配完成的时间都为05,即确定查找结果的时间为05(图5中的action3~action6到达时间05)。
根据该报文的报文类型及每个查找结果中携带的包1描述符信息,确定该查找结果的数量与该报文类型对应的数据包数量相同时,将结果整合输出,final action的输出时间为06。根据上述描述可知,在对报文1进行处理时,最终final action的输出时间为06,共占用了7个时间片。
当交换机接收到报文2时,报该报文2的输入时间,即接收该报文2的时间为01。根据该报文的报文类型,采用相应的数据包提取规则,提取报文的数据包头信息,也可以表述为完成该数据包解析的时间为02,并行的查找每个数据包头信息对应的流表。
提取的报文2的数据包头信息中只包含一个信息,因此只需查找流表1即可,流表1查找匹配完成时间为03,即确定查找结果的时间为03(图5中的action1到达时间04)。根据该报文的报文类型及每个查找结果中携带的包2描述符信息,确定该查找结果的数量与该报文类型对应的数据包数量相同时,将结果整合输出,final action的输出时间为05。因为报文2只要匹配流表1,因此在时间05即可输出查找结果,无需在交换机处理完报文1后再对其进行处理,因此提高了报文的处理效率。
当交换机接收到报文3时,报该报文3的输入时间,即接收该报文3的时间为02。根据该报文的报文类型,采用相应的数据包提取规则,提取报文的数据包头信息,也可以表述为完成该数据包解析的时间为03,并行的查找每个数据包头信息对应的流表。
提取的报文2的数据包头信息中只包含一个信息,因此只需查找流表2即可,此时流表2已空闲,流表2查找匹配完成时间为05,即确定查找结果的时间为05(图5中的action1到达时间05)。根据该报文的报文类型及每个查找结果中携带的包3描述符信息,确定该查找结果的数量与该报文类型对应的数据包数量相同时,将结果整合输出,final action的输出时间为06。因为报文3只要匹配流表2,因此在时间06即可输出查找结果,无需在交换机处理完报文1后再对其进行处理,因此提高了报文的处理效率。
根据上图可知,如果采用串行查找每个流表的方式,处理完上述三个报文需要14个时间片,而采用本发明实施例提供的串行与并行结合的流表查找方式,只需7个时间片即可。因此本发明实施例的报文处理方式有效的提高了报文处理的效率,并实现了对报文的深层次处理。
图6为本发明实施例提供的一种基于TCAM和FPGA的报文处理装置结构示意图,所述装置包括:
解析提取模块61,用于识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息包括至少一个一元信息,及至少一个多元组信息;
存储查找模块62,用于根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,其中,当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果;
仲裁模块63,用于将查找结果整合后输出。
所述装置还包括:
二次解析模块64,用于对所述多元组信息进行二次解析;
所述存储查找模块62,还用于根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表;
所述仲裁模块63,还用于将查找结果与一元信息及多元组信息的查找结果整合后输出。
所述仲裁模块63,具体用于在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
所述存储查找模块62,具体用于当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
所述存储查找模块62,具体用于当所述流表为多元组流表时,所述多元组流表包括最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表;根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
具体的该装置可以位于交换机中。
本发明实施例提供了一种基于TCAM和FPGA的报文处理方法及装置,该方法中交换机根据接收到的报文的报文类型,提取报文的数据包头信息,其中该数据包头信息中包括至少一个一元信息及至少一个多元组信息,并行的查找每个数据包头中的每个信息对应的流表并整合输出结果,并在该数据包头信息为多元组信息时,判断多元组信息对应的多元组流表是否空闲,在非空闲时将该多元组流表发送到所述多元组流表的处理队列中。由于在本发明实施例提取的数据包头信息中包含一元信息及多元组信息,一元信息直接查找一元流表即可,而根据多元组信息查找多元组流表时,需要判断当前流表是否空闲,即判断当前流表是否被其他报文占用,当该流表被占用时需要排队等候,因此本发明实施例提供的方案可以有效的实现对报文的深层次解析,并且采用该并联及串联结合的方式可以有效对之前查表得到的结果进行关联,并有效的提高报文的处理效率。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的通过报文处理装置及交换机中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于TCAM和FPGA的报文处理方法,其特征在于,该方法包括:
交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息;
根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,并将查找结果整合后输出,其中,
当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;
当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果。
2.如权利要求1所述的报文处理方法,其特征在于,所述根据所述多元组信息查找所述多元组流表并确定查找结果后,所述方法还包括:
对所述多元组信息进行二次解析;
根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表,并将查找结果与一元信息及多元组信息的查找结果整合后输出。
3.如权利要求1或2所述的报文处理方法,其特征在于,所述将查找结果整合后输出包括:
在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;
根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;
当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
4.如权利要求1~3任一项所述的报文处理方法,其特征在于,当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,确定查找结果包括:
判断所述报文的优先级;
当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;
当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
5.如权利要求1~3任一项所述的报文处理方法,其特征在于,当所述流表为多元组流表时,所述多元组流表包括最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表;
其中,确定查找结果包括:
根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;
当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
6.一种基于TCAM和FPGA的报文处理装置,其特征在于,所述装置包括:
解析提取模块,用于识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息包括至少一个一元信息,及至少一个多元组信息;
存储查找模块,用于根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,其中,当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果;
仲裁模块,用于将查找结果整合后输出。
7.如权利要求6所述的报文处理装置,其特征在于,所述装置还包括:
二次解析模块,用于对所述多元组信息进行二次解析;
存储查找模块,还用于根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表;
仲裁模块,还用于将查找结果与一元信息及多元组信息的查找结果整合后输出。
8.如权利要求6或7所述的报文处理装置,其特征在于,所述仲裁模块,具体用于在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
9.如权利要求6~8任一项所述的报文处理装置,其特征在于,所述存储查找模块,具体用于当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;当所述报文的优先级不满足预设的优先级条件时,判断第二优先级的每个多元组流表是否空闲;当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲多元组流表并确定查找结果,当所述第二优先级的每个多元组流表非空闲时,将所述多元组信息发送到所述第二优先级的多元组流表的处理队列中。
10.如权利要求6~8任一项所述的报文处理装置,其特征在于,所述存储查找模块,具体用于当所述流表为多元组流表时,所述多元组流表包括最高元组流表和多个常用元组流表,其中根据设定时间长度内接收到的报文类型中每个数据包头中包含的多元组信息,设置常用元组流表;根据接收到的报文的报文类型,当所述报文类型满足常用元组流表对应的报文类型时,判断是否存在空闲的常用元组流表,当存在空闲的常用元组流表时,根据所述多元组信息查找所述空闲的常用元组流表并确定查找结果,否则,将所述多元组信息发送到所述常用元组流表的处理队列中;当所述报文类型不满足常用元组流表对应的报文类型时,判断最高元组流表是否空闲,当最高元组流表空闲时,根据所述多元组信息查找所述最高元组流表并确定查找结果,否则,将所述多元组信息发送到所述最高元组流表的处理队列中。
CN201410211306.1A 2014-05-19 2014-05-19 一种基于tcam和fpga的报文处理方法及装置 Active CN104009924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410211306.1A CN104009924B (zh) 2014-05-19 2014-05-19 一种基于tcam和fpga的报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410211306.1A CN104009924B (zh) 2014-05-19 2014-05-19 一种基于tcam和fpga的报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN104009924A true CN104009924A (zh) 2014-08-27
CN104009924B CN104009924B (zh) 2017-04-12

Family

ID=51370419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410211306.1A Active CN104009924B (zh) 2014-05-19 2014-05-19 一种基于tcam和fpga的报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN104009924B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330722A (zh) * 2016-10-26 2017-01-11 杭州迪普科技有限公司 一种创建路由缓存项的方法、转发报文的方法及装置
CN110113265A (zh) * 2019-05-16 2019-08-09 济南浪潮高新科技投资发展有限公司 基于fpga的多i2c接口互联方法及模块
CN112468413A (zh) * 2020-11-26 2021-03-09 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质
CN112565090A (zh) * 2020-11-09 2021-03-26 烽火通信科技股份有限公司 一种高速转发方法及装置
CN114221849A (zh) * 2020-09-18 2022-03-22 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030214948A1 (en) * 2002-05-18 2003-11-20 Jin Seung-Eui Router providing differentiated quality of service (QoS) and fast internet protocol packet classifying method for the router
CN1466340A (zh) * 2002-06-24 2004-01-07 �人��������������ι�˾ 以策略流方式转发数据的方法和数据转发设备
CN1937574A (zh) * 2005-09-19 2007-03-28 北京大学 对网络流进行分类、状态跟踪和报文处理的装置和方法
CN101247337A (zh) * 2008-02-18 2008-08-20 华为技术有限公司 一种报文转发的方法和设备
CN103023800A (zh) * 2012-11-29 2013-04-03 北京航空航天大学 采用流表映射调度策略对多核网络处理器下的流量进行调度的方法
CN103095583A (zh) * 2012-11-09 2013-05-08 盛科网络(苏州)有限公司 通过芯片环回实现Openflow两级流表的方法及***
CN103401777A (zh) * 2013-08-21 2013-11-20 中国人民解放军国防科学技术大学 Openflow的并行查找方法和***
CN103685041A (zh) * 2012-09-04 2014-03-26 清华大学 一种基于比特粒度可编程的路由器及路由方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030214948A1 (en) * 2002-05-18 2003-11-20 Jin Seung-Eui Router providing differentiated quality of service (QoS) and fast internet protocol packet classifying method for the router
CN1466340A (zh) * 2002-06-24 2004-01-07 �人��������������ι�˾ 以策略流方式转发数据的方法和数据转发设备
CN1937574A (zh) * 2005-09-19 2007-03-28 北京大学 对网络流进行分类、状态跟踪和报文处理的装置和方法
CN101247337A (zh) * 2008-02-18 2008-08-20 华为技术有限公司 一种报文转发的方法和设备
CN103685041A (zh) * 2012-09-04 2014-03-26 清华大学 一种基于比特粒度可编程的路由器及路由方法
CN103095583A (zh) * 2012-11-09 2013-05-08 盛科网络(苏州)有限公司 通过芯片环回实现Openflow两级流表的方法及***
CN103023800A (zh) * 2012-11-29 2013-04-03 北京航空航天大学 采用流表映射调度策略对多核网络处理器下的流量进行调度的方法
CN103401777A (zh) * 2013-08-21 2013-11-20 中国人民解放军国防科学技术大学 Openflow的并行查找方法和***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330722A (zh) * 2016-10-26 2017-01-11 杭州迪普科技有限公司 一种创建路由缓存项的方法、转发报文的方法及装置
CN106330722B (zh) * 2016-10-26 2019-11-12 杭州迪普科技股份有限公司 一种创建路由缓存项的方法、转发报文的方法及装置
CN110113265A (zh) * 2019-05-16 2019-08-09 济南浪潮高新科技投资发展有限公司 基于fpga的多i2c接口互联方法及模块
CN114221849A (zh) * 2020-09-18 2022-03-22 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法
CN114221849B (zh) * 2020-09-18 2024-03-19 芯启源(南京)半导体科技有限公司 一种fpga结合tcam实现智能网卡的方法
CN112565090A (zh) * 2020-11-09 2021-03-26 烽火通信科技股份有限公司 一种高速转发方法及装置
CN112468413A (zh) * 2020-11-26 2021-03-09 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN104009924B (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
US20220321404A1 (en) Programmable Protocol Parser For NIC Classification And Queue Assignments
US10212133B2 (en) Accelerated pattern matching using pattern functions
CN104009924A (zh) 一种基于tcam和fpga的报文处理方法及装置
US20150358433A1 (en) Efficient packet classification for dynamic containers
US20230216940A1 (en) Efficient packet classification for dynamic containers
US10608991B2 (en) Systems and methods for accelerated pattern matching
US11609556B2 (en) Control method and device based on industrial ethernet
CN1311607A (zh) 数据通信交换机的可选择的优先化
CN105376159A (zh) 报文处理转发装置及方法
US11281648B2 (en) Technologies for flexible tree-based lookups for network devices
CN104468365A (zh) 一种获取设备间拓扑连接关系的方法、***及装置
CN111246406A (zh) 一种短信发送方法、***、存储介质及终端设备
CN102915344B (zh) 一种sql语句处理方法及装置
CN111107068B (zh) 一种fpga高效规则匹配方法及终端
EP3253030B1 (en) Method and device for reporting openflow switch capability
CN104363177A (zh) 一种用于报文处理的规则表项的优化方法及装置
WO2015176212A1 (zh) 一种基于tcam和fpga的报文处理方法及装置
US9294399B2 (en) Method for learning media access control address, network device, and system
WO2015187200A1 (en) Efficient packet classification for dynamic containers
CN105634999A (zh) 一种介质访问控制地址的老化方法及装置
CN107707492B (zh) 一种上报和下发报文的方法及装置
CN105323164A (zh) 减少灵活的解析器中的延迟的方法及其装置
US10462017B2 (en) Network property verification in hybrid networks
CN112019459A (zh) 基于堆叠***中设备动态上下线的报文处理方法及***
CN100568851C (zh) 一种防火墙分组过滤的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant