[发明专利]一种基于TCAM和FPGA的报文处理方法及装置有效
申请号: | 201410211306.1 | 申请日: | 2014-05-19 |
公开(公告)号: | CN104009924B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 丁玉奇;张洪雁 | 申请(专利权)人: | 北京东土科技股份有限公司 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L12/947;H04L12/865 |
代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 黄志华 |
地址: | 100041 北京市石*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tcam fpga 报文 处理 方法 装置 | ||
技术领域
本发明涉及工业以太网通信技术领域,尤其涉及一种基于TCAM和FPGA的报文处理方法及装置。
背景技术
目前工业以太网发展非常迅速,在各个行业都有了广泛的应用,从而使以太网通信在工业自动化领域的地位迅速升高。但工业以太网通信存在以下问题:
在进行报文处理时包括:交换机接收到报文后从报文中提取信息,提取的信息包括:(Virtual Local Area Network,VLAN)信息、MAC地址信息、端口号等,根据提取的信息查找对应的表,并根据具体的查找进行相应的处理。具体的,根据提取的VLAN信息和端口号查找VLAN表,查询通过后,再根据提取的MAC地址查询二层地址转发表,根据查询的结果转发该报文。
上述整个报文的处理过程为串行分级处理,流程间按照次序依次处理,并且每个流程单独处理,在每个流程中需要进行的查询工作也是串行进行的,因此整个报文处理流程下来灵活度不高,延时较高,影响了报文的转发性能。
工业通信中由于安全因素,越来越迫切需要对报文进行深层次的解析处理,而目前的处理方式是报文通过交换机处理后发送到下一层进行更深层次的处理,而后续的处理过程也是串行的,因此上述处理过程不能针对具体的工业通信协议进行针对性的网络转发策略配置,从而造成数据转发延时增大。
现有交换机实现安全的方式是通过ACL,在使用时,ACL是采用串行查询和匹配的方式,匹配完一个流表后再匹配下一个,流表一般采用TCAM实现。在一个FPGA内,不可能用到大量独立的TCAM,一般是将一个TCAM划分成多个逻辑表的形式来工作。这时会遇到一个问题,因为接收到的报文需要查找的流表不同,如果采用串行处理方式,将会严重阻碍对报文处理的效率,从而影响产品的数据吞吐率,造成报文转发延迟增大。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于TCAM和FPGA的报文处理方法及装置。
本发明实施例提供了一种基于TCAM和FPGA的报文处理方法,该方法包括:
交换机识别接收到的报文的报文类型,根据识别到的报文类型对应的数据包头提取规则,提取该报文的数据包头信息,其中所述数据包头信息中包括至少一个一元信息,及至少一个多元组信息;
根据保存的数据包头中的每个信息及流表的对应关系,并行查找每个信息对应的每个流表,并将查找结果整合后输出,其中,
当该信息为一元信息时,根据所述一元信息对应的一元流表,确定查找结果;
当该信息为多元组信息时,判断所述多元组信息对应的多元组流表当前是否空闲,当所述多元组流表非空闲时,将所述多元组信息发送到所述多元组流表的处理队列中,否则,根据所述多元组信息查找所述多元组流表并确定查找结果。
为了进一步实现对报文的深层次处理,所述根据所述多元组信息查找所述多元组流表并确定查找结果后,所述方法还包括:
对所述多元组信息进行二次解析;
根据解析后获得每个信息,及每个信息对应的二次流表,并行查找每个信息对应的二次流表,并将查找结果与一元信息及多元组信息的查找结果整合后输出。
为了保证处理结果的准确性,在本发明实施例中,所述将查找结果整合后输出包括:
在提取得到的数据包头的每个信息中添加包描述符,并获得包含该包描述符的每个查找结果;
根据所述报文的报文类型,判断当前得到查找结果的数量是否满足该报文类型对应的查找结果数量;
当当前得到的查找结果数量满足该报文类型对应的查找结果数量时,将每个查找结果整合后输出。
为了进一步提高报文的处理效率,当所述流表为多元组流表时,所述多元组流表为包括多个最高元组流表,确定查找结果包括:
判断所述报文的优先级;
当所述报文的优先级满足预设的优先级条件时,判断第一优先级的每个多元组流表是否空闲;当第一优先级存在空闲多元组流表时,根据所述多元组信息查找所述第一优先级空闲的多元组流表并确定查找结果,当所述第一优先级的每个多元组流表非空闲时,判断第二优先级的每个多元组流表是否空闲,当第二优先级存在空闲多元组流表时,根据所述多元组信息查找所述空闲的第二优先级的多元组流表并确定查找结果,否则,将所述多元组信息发送到所述第一优先级的多元组流表的处理队列中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东土科技股份有限公司,未经北京东土科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410211306.1/2.html,转载请声明来源钻瓜专利网。