报文处理方法及装置制造方法及图纸

技术编号:14873600 阅读:58 留言:0更新日期:2017-03-23 21:23
本申请公开了一种报文处理方法及装置,其中,该方法包括:在接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行Hash计算;以计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;将识别出的操作类型与该至少一个Hash索引表项进行匹配;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理。本申请在Hash索引表中引入了操作类型,可以使得不同操作类型复用同一内存空间,节省了表项空间资源,同时,间接的扩大了表项规格。

【技术实现步骤摘要】

本申请涉及网络通信
,特别涉及一种报文处理方法及装置
技术介绍
在处理报文的过程中,网络设备需要根据接口的配置信息和/或报文类型等对报文执行各种类型的操作,以达到转发或业务处理等目的,例如,二层转发、三层转发、单播转发、组播转发、ACL(访问控制列表)匹配业务处理等。而且,一般情况下,针对同一报文时,不同类型的操作是互斥的,例如,当对一报文执行二层转发时,大多数情况下就不会再对该报文执行三层转发,当对一报文执行单播转发时,大多数情况下就不会再执行组播转发。网络设备对报文执行不同类型的操作,可以通过查找Hash表的方式来实现。Hash表是一种以Hash技术组织的查找表。在现有技术中,每一种操作类型对应一张Hash表,不同操作类型对应的Hash表不同,这样,网络设备根据Hash表对报文执行操作的过程如下:接收到报文之后,识别该报文需要执行的操作类型;然后,根据识别出的操作类型从该报文中提取出对应的多个Key(关键)值,对提取出的多个关键值进行Hash计算;将计算结果作为HashEntry(Hash入口),从与识别出的操作类型对应的Hash表中查找到对应表项;最后,根据查找到的表项中包括的处理结果信息,对该报文执行相应操作。不同的操作类型分别对应一张Hash表,需要为每一张Hash表分配一定的内存空间,从而占用了较多的表项空间资源。
技术实现思路
有鉴于此,本申请提供了一种报文处理方法及装置。本申请的技术方案如下:一方面,提供了一种报文处理方法,包括:在接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行Hash计算;以计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;将识别出的操作类型与该至少一个Hash索引表项进行匹配;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理。另一方面,还提供了一种报文处理装置,包括:接收模块,用于接收报文;识别计算模块,用于在接收模块接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希Hash计算;表项查找模块,用于以识别计算模块的计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;匹配模块,用于将识别计算模块识别出的操作类型与表项查找模块查找到的至少一个Hash索引表项进行匹配;报文处理模块,用于若匹配模块命中一个Hash索引表项,则根据命中的Hash索引表项对接收模块接收到的报文进行处理。现有技术中,不同操作类型分别对应一张Hash表,为了能够处理不同数据流,每一张Hash表中均需要为本设备能够处理的所有数据流分配对应的内存空间用于存储对应的Hash表项,这样,网络设备需要为每一张Hash表均分配足够用于存储所有数据流对应的Hash表项的内存空间Sum,从而占用了较多的表项空间资源。本申请的上述技术方案中,在Hash索引表中引入了操作类型Type,可以将现有技术的不同操作类型对应的多个Hash索引表整合成区分操作类型的一张Hash索引表,该Hash索引表只占用一个Sum的内存空间,从而使得不同操作类型复用同一内存空间Sum,节省了表项空间资源;另外,在Hash索引表中引入了操作类型,这样,每一个Hash索引表项中只需记录与操作类型对应的关键值Key即可,进一步节省了表项空间资源。附图说明图1是本申请实施例的报文处理方法的流程图;图2是本申请实施例的报文处理装置的一种结构示意图;图3是本申请实施例的报文处理装置的另一种结构示意图;图4是本申请实施例的报文处理装置的又一种结构示意图;图5是本申请实施例的报文处理装置的硬件架构示意图。具体实施方式为了解决现有技术中存在的占用较多表项空间的问题,本申请以下实施例中提供了一种报文处理方法,以及一种可以应用该方法的报文处理装置。本申请以下实施例可以应用于需要通过查找Hash表对报文进行处理的网络设备中。网络设备上创建有如表1或表2所示的Hash表。表1Valid处理信息表2ValidType处理信息在表1和表2中,Valid为有效标识,用于指示对应表项是否有效。Type为操作类型,可以是二层转发、三层IPv4转发、三层IPv6转发、组播转发、ACL匹配业务等。处理信息可以是处理方式或结果表指针,当处理方式的内容较少时,处理信息可直接置为处理方式,即,直接将需要对报文执行的处理方式放在Hash表中,此时,Hash表的结构如表2所示;当处理方式的内容较多时,处理信息置为结果表指针,通过该结果表指针可以索引到对应的结果表中,并从该结果表中查找到包含有处理方式的结果表项,即,将需要对报文执行的处理方式放在结果表中,此时,Hash表的结构如表1或表2所示。为了描述方便,本文中引入了Hash索引表:当Hash表中的处理信息为处理方式时,Hash索引表为Hash表,Hash索引表项为包括处理方式的Hash表项;当Hash表中的处理信息为结果表指针时,Hash索引表由Hash表和结果表组成,Hash索引表项为包括结果表指针的Hash表项。当Hash索引表为Hash表时,Hash索引表中包括Type,此时的Hash索引表的结构如表2所示;当Hash索引表由Hash表和结果表组成时,此时,一种情况是Hash表如表1所示不包括Type,结果表如表3所示包括Type,另一种情况是Hash表如表2所示包括Type,结果表如表3所示包括Type。表3ValidType处理方式在表3中,Valid和Type的含义与Hash表一致。另外,本申请实施例中的Hash表和/或结果表中还可以包括现有技术中的Key。Key为关键值,不同Type对应的Key不同,例如,当Type是二层转发时,Key包括:目的MAC(媒体访问控制)地址、源MAC地址、VPN(VirtualPrivateNetwork,虚拟专用网络)ID(Identity,标识);当Type是三层IPv4转发时,Key包括:目的IP(InternetProtocol,因特网协议)地址、源IP地址、VPNID;当Type是三层IPv6转发时,Key包括:目的IP地址、源IP地址、VPNID、三层协议号;当Type是组播转发时,Key包括:目的IP地址、源IP地址、VPNID、目的端口号;当Type是ACL(AccessControlList,访问控制列表)匹配业务时,Key包括:ACL匹配所需的所有关键值。显然,上述只是对不同Type需要提取的Key的举例,本申请对此不做限定。Type和Key可以用于解决Hash冲突。假设,对从一报文中提取出的关键值进行Hash计算得到的计算结果为a,对从另一报文中提取出的关键值进行Hash计算得到的计算结果也为a,此时即发生了Hash冲突,根据这两个报文生成的Hash索引表项都会保存到Hash入口为a的内存空间中。如图1所示,本申请实施例的报文处理方法包括以下步骤:步骤S102,在接收到报文之后,识别该报文需要执行的操作类型;具体的,获取报文的入接口上的相关配置信息,通常可以从接口表中获取到;根据获取到的配置信息以及解析出的报文相关内容,识别出该报文需要执行的操作类型,例如本文档来自技高网...
报文处理方法及装置

【技术保护点】
一种报文处理方法,其特征在于,包括:在接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希Hash计算;以计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;将识别出的操作类型与所述至少一个Hash索引表项进行匹配;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理。

【技术特征摘要】
1.一种报文处理方法,其特征在于,包括:在接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希Hash计算;以计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;将识别出的操作类型与所述至少一个Hash索引表项进行匹配;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理。2.根据权利要求1所述的方法,其特征在于,Hash索引表为Hash表,则,将识别出的操作类型与所述至少一个Hash索引表项进行匹配,包括:将识别出的操作类型与至少一个Hash表项进行匹配;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理,包括:若命中一个Hash表项,则根据命中的Hash表项中包括的处理方式,对该报文进行处理。3.根据权利要求1所述的方法,其特征在于,Hash索引表包括:Hash表和结果表,则,将识别出的操作类型与所述至少一个Hash索引表项进行匹配,包括:针对每一个Hash表项,根据该Hash表项中包括的结果表指针进行索引,查找到对应的结果表;根据识别出的操作类型在查找到的结果表中匹配结果表项;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理,包括:若命中一个结果表项,则根据命中的结果表项中包括的处理方式,对该报文进行处理。4.根据权利要求1所述的方法,其特征在于,Hash索引表包括:Hash表和结果表,则,将识别出的操作类型与所述至少一个Hash索引表项进行匹配,包括:将识别出的操作类型与至少一个Hash表项进行匹配;若命中一个Hash表项,则根据命中的Hash表项中包括的结果表指针进行索引,查找到对应的结果表;根据识别出的操作类型在查找到的结果表中匹配结果表项;若命中一个Hash索引表项,则根据命中的Hash索引表项对该报文进行处理,包括:若命中一个结果表项,则根据命中的结果表项中包括的处理方式,对该报文进行处理。5.根据权利要求1至4中任一项所述的方法,其特征在于,在将识别出的操作类型与所述至少一个Hash索引表项进行匹配之后,还包括:若没有命中任一Hash索引表项,则在确定需要根据该报文建立Hash索引表项时,以所述计算结果作为Hash入口,在Hash索引表中添加一包括所述识别出的操作类型的Hash索引表项;在确定需要丢弃该报文时,将该报文丢弃。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接口上配置有至少一个访问控制列表ACL规则时,根据预设分类规则将所述至少一个ACL规则划分成至少一个ACL匹配业务子类;将该接口与所述至少一个ACL匹配业务子类之间的对应关系配置到接口表中;在接收到报文之后,识别该报文需要执行的操作类型,包括:在接收到报文之后,从所述接口表中查找到与接收到的报文的入接口对应的至少一个ACL匹配业务子类;从查找到的至少一个ACL匹配业务子类中,确定与所述接收到的报文相匹配的ACL匹配业务子类作为该报文需要执行的操作类型。7.根据权利要求6所述的方法,其特征在于,所述至少一个ACL匹配业务子类包括:二层ACL匹配业务子类、三层因特网协议第四版IPv4ACL匹配业务子类和三层因特网协议第六版IPv6ACL匹配业务子类;则,确定与所述接收到的报文相匹配的ACL匹配业务子类的方法包括:若该报文是二层报文,则确定该报文相匹配的ACL匹配业务子类为二层ACL匹配业务子类;若该报文是三层报文,且该报文是IPv4报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv4ACL匹配业务子类;若该报文是三层报文,且该报文是IPv6报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv6ACL匹配业务子类。8.一种报文处理装置,其特征在于,包括:接收模块,用于接收报文;识别计算模块,用于在所述接收模块接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希Hash计算;表项查找模块,用于以所述识别计算模块的计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少...

【专利技术属性】
技术研发人员:赵云峰李佳
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1