CN106533947B - 报文处理方法及装置 - Google Patents

报文处理方法及装置 Download PDF

Info

Publication number
CN106533947B
CN106533947B CN201510575456.5A CN201510575456A CN106533947B CN 106533947 B CN106533947 B CN 106533947B CN 201510575456 A CN201510575456 A CN 201510575456A CN 106533947 B CN106533947 B CN 106533947B
Authority
CN
China
Prior art keywords
hash
message
list item
acl
module
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.)
Active
Application number
CN201510575456.5A
Other languages
English (en)
Other versions
CN106533947A (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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201510575456.5A priority Critical patent/CN106533947B/zh
Priority to JP2018512600A priority patent/JP6498356B2/ja
Priority to US15/756,523 priority patent/US10659361B2/en
Priority to EP16843675.6A priority patent/EP3349403B1/en
Priority to PCT/CN2016/098523 priority patent/WO2017041737A1/zh
Publication of CN106533947A publication Critical patent/CN106533947A/zh
Application granted granted Critical
Publication of CN106533947B publication Critical patent/CN106533947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

报文处理方法及装置
技术领域
本申请涉及网络通信技术领域,特别涉及一种报文处理方法及装置。
背景技术
在处理报文的过程中,网络设备需要根据接口的配置信息和/或报文类型等对报文执行各种类型的操作,以达到转发或业务处理等目的,例如,二层转发、三层转发、单播转发、组播转发、ACL(访问控制列表)匹配业务处理等。而且,一般情况下,针对同一报文时,不同类型的操作是互斥的,例如,当对一报文执行二层转发时,大多数情况下就不会再对该报文执行三层转发,当对一报文执行单播转发时,大多数情况下就不会再执行组播转发。
网络设备对报文执行不同类型的操作,可以通过查找Hash表的方式来实现。Hash表是一种以Hash技术组织的查找表。
在现有技术中,每一种操作类型对应一张Hash表,不同操作类型对应的Hash表不同,这样,网络设备根据Hash表对报文执行操作的过程如下:接收到报文之后,识别该报文需要执行的操作类型;然后,根据识别出的操作类型从该报文中提取出对应的多个Key(关键)值,对提取出的多个关键值进行Hash计算;将计算结果作为Hash Entry(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表。
表1
Valid 处理信息
表2
Valid Type 处理信息
在表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。
表3
Valid Type 处理方式
在表3中,Valid和Type的含义与Hash表一致。
另外,本申请实施例中的Hash表和/或结果表中还可以包括现有技术中的Key。Key为关键值,不同Type对应的Key不同,例如,当Type是二层转发时,Key包括:目的MAC(媒体访问控制)地址、源MAC地址、VPN(Virtual Private Network,虚拟专用网络)ID(Identity,标识);当Type是三层IPv4转发时,Key包括:目的IP(Internet Protocol,因特网协议)地址、源IP地址、VPN ID;当Type是三层IPv6转发时,Key包括:目的IP地址、源IP地址、VPN ID、三层协议号;当Type是组播转发时,Key包括:目的IP地址、源IP地址、VPN ID、目的端口号;当Type是ACL(Access Control List,访问控制列表)匹配业务时,Key包括:ACL匹配所需的所有关键值。显然,上述只是对不同Type需要提取的Key的举例,本申请对此不做限定。
Type和Key可以用于解决Hash冲突。假设,对从一报文中提取出的关键值进行Hash计算得到的计算结果为a,对从另一报文中提取出的关键值进行Hash计算得到的计算结果也为a,此时即发生了Hash冲突,根据这两个报文生成的Hash索引表项都会保存到Hash入口为a的内存空间中。
如图1所示,本申请实施例的报文处理方法包括以下步骤:
步骤S102,在接收到报文之后,识别该报文需要执行的操作类型;
具体的,获取报文的入接口上的相关配置信息,通常可以从接口表中获取到;根据获取到的配置信息以及解析出的报文相关内容,识别出该报文需要执行的操作类型,例如,操作类型(Type)可以是二层转发、三层IPv4转发、三层IPv6转发、组播转发和ACL匹配业务等。
以ACL匹配业务为例进行说明,当某一接口上配置有至少一个ACL规则时,根据预设分类规则将所述至少一个ACL规则划分成至少一个ACL匹配业务子类,例如,这至少一个ACL匹配业务子类可以是二层ACL匹配业务子类、三层IPv4ACL匹配业务子类和三层IPv6ACL匹配业务子类,然后,将该接口与这至少一个ACL匹配业务子类之间的对应关系配置到接口表中。这样,在步骤S102中,在接收到报文之后,从接口表中查找到与该报文的入接口对应的至少一个ACL匹配业务子类,从查找到的至少一个ACL匹配业务子类中,确定与该报文相匹配的ACL匹配业务子类作为该报文需要执行的操作类型,例如,若该报文是二层报文,则确定该报文相匹配的ACL匹配业务子类为二层ACL匹配业务子类;若该报文是三层报文,且该报文是IPv4报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv4ACL匹配业务子类;若该报文是三层报文,且该报文是IPv6报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv6ACL匹配业务子类。
步骤S104,根据识别出的操作类型,从该报文中提取出多个关键值(Key);
例如,当操作类型是二层转发时,提取报文的目的MAC地址、源MAC地址、VPN ID;
当操作类型是三层IPv4转发时,提取报文的目的IP地址、源IP地址、VPN ID;
当操作类型是三层IPv6转发时,提取报文的目的IP地址、源IP地址、VPN ID、三层协议号;
当操作类型是组播转发时,提取报文的目的IP地址、源IP地址、VPN ID、目的端口号;
当操作类型是ACL匹配业务时,提取ACL匹配所需的关键值。
显然,上述只是对不同操作类型需要提取的关键值的举例,本申请对此不做限定。
步骤S106,对提取出的关键值进行Hash计算;
具体的,按照特定算法,对提取出的关键值进行Hash计算,特定算法例如可以是异或算法、CRC(Cyclic Redundancy Check,循环冗余校验)算法等。
步骤S108,以步骤S106中的计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;
由于可能存在Hash冲突,因此同一Hash入口中的Hash索引表项可能有一个或多个。
具体的,步骤S108中查找到的是至少一个Hash表项,并且,当Hash索引表为Hash表时,查找到的Hash表项中包括处理方式;当Hash索引表包括Hash表和结果表时,此时,Hash表和/或结果表中包括Type,查找到的Hash表项中包括结果表指针。
步骤S110,将识别出的操作类型与该至少一个Hash索引表项进行匹配;
步骤S112,判断是否命中一个Hash索引表项,若是,则执行步骤S114,否则,执行步骤S116;
步骤S114,根据命中的Hash索引表项对该报文进行处理;
具体的,当Hash索引表为Hash表时,此时,Hash表如表2所示包括Type,在步骤S110中,会将识别出的操作类型与查找到的至少一个Hash表项进行匹配;在步骤S114中,若命中一个Hash表项,则根据命中的Hash表项中包括的处理方式,对该报文进行处理。
或者,当Hash索引表包括Hash表和结果表,并且,Hash表如表1所示不包括Type,结果表如表3所示包括Type时,在步骤S110中,会针对查找到的每一个Hash表项,根据该Hash表项中包括的结果表指针进行索引,查找到对应的结果表,然后,根据识别出的操作类型在查找到的结果表中匹配结果表项;在步骤S114中,若命中一个结果表项,则根据命中的结果表项中包括的处理方式,对该报文进行处理。
或者,当Hash索引表包括Hash表和结果表,并且,Hash表如表2所示包括Type,结果表如表3所示包括Type时,在步骤S110中,会将识别出的操作类型与查找到的至少一个Hash表项进行匹配,若命中一个Hash表项,则根据命中的Hash表项中包括的结果表指针进行索引,查找到对应的结果表,然后,根据识别出的操作类型在查找到的结果表中匹配结果表项;在步骤S114中,若命中一个结果表项,则根据命中的结果表项中包括的处理方式,对该报文进行处理。
步骤S116,根据识别出的操作类型,对该报文进行对应操作,例如,丢弃该报文,或将该报文上送控制平面以便根据该报文建立Hash索引表项。
在进行报文处理时,会为每种操作类型设置默认处理方式;当未能匹配到对应的Hash索引表项时,则根据识别出的操作类型确定默认处理方式,并根据默认处理方式进行处理。该默认处理方式可以包括将报文上送控制平面以建立新的Hash索引表项,以及丢弃该报文等。
具体的,在步骤S116中根据该报文建立Hash索引表项的过程如下:以对从该报文中提取出的关键值进行Hash计算得到的计算结果作为Hash入口,在Hash表中添加一Hash表项,其中,当Hash索引表为如表2所示的Hash表时,添加的Hash表项中包括:Valid、Type和处理信息,其中,处理信息置为处理方式;当Hash索引表包括:如表1所示的Hash表和如表3所示的结果表时,添加的Hash表项中包括:Valid和处理信息,其中,处理信息置为结果表指针;当Hash索引表包括:如表2所示的Hash表和如表3所示的结果表时,添加的Hash表项中包括:Valid、Type和处理信息,其中,处理信息置为结果表指针。
现有技术中,不同操作类型分别对应一张Hash表,为了能够处理不同数据流,每一张Hash表中均需要为本设备能够处理的所有数据流分配对应的内存空间用于存储对应的Hash表项,这样,网络设备需要为每一张Hash表均分配足够用于存储所有数据流对应的Hash表项的内存空间Sum,从而占用了较多的表项空间资源。本申请上述实施例的方法中,在Hash索引表中引入了操作类型Type,可以将现有技术的不同操作类型对应的多个Hash索引表整合成区分操作类型的一张Hash索引表,该Hash索引表只占用一个Sum的内存空间,从而使得不同操作类型复用同一内存空间Sum,节省了表项空间资源;另外,在Hash索引表中引入了操作类型,这样,每一个Hash索引表项中只需记录与操作类型对应的关键值Key即可,进一步节省了表项空间资源。
针对上述实施例的方法,本申请实施例中还提供了一种可以应用上述方法的报文处理装置,该装置可以应用于需要通过查找Hash表对报文进行处理的网络设备中。
如图2所示,该报文处理装置中包括以下模块:接收模块201、识别计算模块202、表项查找模块203、匹配模块204和报文处理模块205,其中:
接收模块201,用于接收报文;
识别计算模块202,用于在接收模块201接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行Hash计算;
表项查找模块203,用于以识别计算模块202的计算结果作为Hash入口,从本设备上的Hash索引表中查找到至少一个Hash索引表项;
匹配模块204,用于将识别计算模块202识别出的操作类型与表项查找模块203查找到的至少一个Hash索引表项进行匹配;
报文处理模块205,用于若匹配模块204命中一个Hash索引表项,则根据命中的Hash索引表项对接收模块201接收到的报文进行处理。
其中,当Hash索引表为Hash表时,匹配模块204具体用于:将识别计算模块202识别出的操作类型与表项查找模块203查找到的至少一个Hash表项进行匹配;报文处理模块205具体用于:若匹配模块204命中一个Hash表项,则根据命中的Hash表项中包括的处理方式,对接收模块201接收到的报文进行处理。
当Hash索引表包括:Hash表和结果表,并且,Hash表中不包括Type,结果表中包括Type时,匹配模块204中包括:查找单元和结果表项匹配单元,其中:
查找单元,用于针对表项查找模块203查找到的每一个Hash表项,根据该Hash表项中包括的结果表指针进行索引,查找到对应的结果表;
结果表项匹配单元,用于根据识别计算模块202识别出的操作类型在查找单元查找到的结果表中匹配结果表项;
报文处理模块205具体用于:若结果表项匹配单元命中一个结果表项,则根据命中的结果表项中包括的处理方式,对接收模块201接收到的报文进行处理。
当Hash索引表包括:Hash表和结果表,并且,Hash表和结果表中均包括Type时,匹配模块204中包括:Hash表项匹配单元、查找单元和结果表项匹配单元,其中:
Hash表项匹配单元,用于将识别计算模块202识别出的操作类型与表项查找模块203查找到的至少一个Hash表项进行匹配;
查找单元,用于若Hash表项匹配单元命中一个Hash表项,则根据命中的Hash表项中包括的结果表指针进行索引,查找到对应的结果表;
结果表项匹配单元,用于根据识别计算模块202识别出的操作类型在查找单元查找到的结果表中匹配结果表项;
报文处理模块205具体用于:若结果表项匹配单元命中一个结果表项,则根据命中的结果表项中包括的处理方式,对接收模块201接收到的报文进行处理。
另外,如图3所示,该报文处理装置中还包括:添加模块206和报文丢弃模块207,其中:
添加模块206,用于若匹配模块204没有命中任一Hash索引表项,则在确定需要根据接收模块201接收到的报文建立Hash索引表项时,以识别计算模块202的计算结果作为Hash入口,在Hash索引表中添加一包括识别计算模块202识别出的操作类型的Hash索引表项;
报文丢弃模块207,用于若匹配模块204没有命中任一Hash索引表项,则在确定需要丢弃接收模块201接收到的报文时,将该报文丢弃。
另外,如图4所示,该报文处理装置中还包括:划分模块208和接口表配置模块209,其中,识别计算模块202中包括子类查找单元和操作类型确定单元;其中:
划分模块208,用于当接口上配置有至少一个ACL规则时,根据预设分类规则将这至少一个ACL规则划分成至少一个ACL匹配业务子类;
接口表配置模块209,用于将该接口与划分模块208划分得到的至少一个ACL匹配业务子类之间的对应关系配置到接口表中;
子类查找单元,用于在接收模块201接收到报文之后,从接口表中查找到与该报文的入接口对应的至少一个ACL匹配业务子类;
操作类型确定单元,用于从子类查找单元查找到的至少一个ACL匹配业务子类中,确定与接收模块201接收到的报文相匹配的ACL匹配业务子类作为该报文需要执行的操作类型。
其中,上述至少一个ACL匹配业务子类包括:二层ACL匹配业务子类、三层IPv4ACL匹配业务子类和三层IPv6ACL匹配业务子类;则,操作类型确定单元具体用于:
若接收模块201接收到的报文是二层报文,则确定该报文相匹配的ACL匹配业务子类为二层ACL匹配业务子类;
若接收模块201接收到的报文是三层报文,且该报文是IPv4报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv4ACL匹配业务子类;
若接收模块201接收到的报文是三层报文,且该报文是IPv6报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv6ACL匹配业务子类。
本申请实施例的报文转发装置可以是软硬件结合的可编程设备,图5给出了该报文处理装置的硬件架构组成。如图5所示,该报文处理装置中包括:非易失性存储器,CPU(中央处理器),转发芯片和内存;其中:
内存,用于存储指令代码,当所述指令代码被执行时完成的操作主要为接收模块、识别计算模块、表项查找模块、匹配模块、报文处理模块、添加模块、报文丢弃模块、划分模块和接口表配置模块完成的功能,这里不再详述。
CPU,用于与转发芯片通信,进行报文的收发;用于与内存通信,读取和执行内存中存储的所述指令代码,完成上述报文处理装置中的接收模块、识别计算模块、表项查找模块、匹配模块、报文处理模块、添加模块、报文丢弃模块、划分模块和接口表配置模块完成的功能,以及对从转发芯片上送的报文的处理;用于与非易失性存储器通信,读/写非易失性存储器中的数据,包括Hash表、结果表和接口表。
转发芯片,用于通过该芯片上的端口连接到其它网络设备,负责报文的收发处理,具体的,将接收到的报文上送给CPU进行查表处理。
非易失性存储器,用于存储各种数据,包括:Hash表、结果表和接口表。
综上,本申请以上实施例可以达到以下技术效果:
现有技术中,不同操作类型分别对应一张Hash表,为了能够处理不同数据流,每一张Hash表中均需要为本设备能够处理的所有数据流分配对应的内存空间用于存储对应的Hash表项,这样,网络设备需要为每一张Hash表均分配足够用于存储所有数据流对应的Hash表项的内存空间Sum,从而占用了较多的表项空间资源。本申请上述实施例的方法中,在Hash索引表中引入了操作类型Type,可以将现有技术的不同操作类型对应的多个Hash索引表整合成区分操作类型的一张Hash索引表,该Hash索引表只占用一个Sum的内存空间,从而使得不同操作类型复用同一内存空间Sum,节省了表项空间资源;另外,在Hash索引表中引入了操作类型,这样,每一个Hash索引表项中只需记录与操作类型对应的关键值Key即可,进一步节省了表项空间资源。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (14)

1.一种报文处理方法,其特征在于,当不同操作类型分别对应一张第一Hash表时,在第二Hash索引表中引入操作类型,将不同操作类型对应的第一Hash表整合成区分操作类型的一张第二Hash索引表,所述方法包括:
在接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希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匹配业务子类、三层因特网协议第四版IPv4 ACL匹配业务子类和三层因特网协议第六版IPv6 ACL匹配业务子类;则,
确定与所述接收到的报文相匹配的ACL匹配业务子类的方法包括:
若该报文是二层报文,则确定该报文相匹配的ACL匹配业务子类为二层ACL匹配业务子类;
若该报文是三层报文,且该报文是IPv4报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv4 ACL匹配业务子类;
若该报文是三层报文,且该报文是IPv6报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv6 ACL匹配业务子类。
8.一种报文处理装置,其特征在于,当不同操作类型分别对应一张第一Hash表时,在第二Hash索引表中引入操作类型,将不同操作类型对应的第一Hash表整合成区分操作类型的一张第二Hash索引表,所述装置包括:
接收模块,用于接收报文;
识别计算模块,用于在所述接收模块接收到报文之后,识别该报文需要执行的操作类型,从该报文中提取关键值并进行哈希Hash计算;
表项查找模块,用于以所述识别计算模块的计算结果作为Hash入口,从本设备上的第二Hash索引表中查找到至少一个第二Hash索引表项;
匹配模块,用于将所述识别计算模块识别出的操作类型与所述表项查找模块查找到的至少一个第二Hash索引表项进行匹配;
报文处理模块,用于若所述匹配模块命中一个第二Hash索引表项,则根据命中的第二Hash索引表项对所述接收模块接收到的报文进行处理。
9.根据权利要求8所述的装置,其特征在于,第二Hash索引表为第二Hash表,则,
所述匹配模块具体用于:将所述识别计算模块识别出的操作类型与所述表项查找模块查找到的至少一个第二Hash表项进行匹配;
所述报文处理模块具体用于:若所述匹配模块命中一个第二Hash表项,则根据命中的第二Hash表项中包括的处理方式,对所述接收模块接收到的报文进行处理。
10.根据权利要求8所述的装置,其特征在于,第二Hash索引表包括:第二Hash表和结果表,则,
所述匹配模块包括:查找单元,用于针对所述表项查找模块查找到的每一个第二Hash表项,根据该第二Hash表项中包括的结果表指针进行索引,查找到对应的结果表;结果表项匹配单元,用于根据所述识别计算模块识别出的操作类型在所述查找单元查找到的结果表中匹配结果表项;
所述报文处理模块具体用于:若所述结果表项匹配单元命中一个结果表项,则根据命中的结果表项中包括的处理方式,对所述接收模块接收到的报文进行处理。
11.根据权利要求8所述的装置,其特征在于,第二Hash索引表包括:第二Hash表和结果表,则,
所述匹配模块包括:第二Hash表项匹配单元,用于将所述识别计算模块识别出的操作类型与所述表项查找模块查找到的至少一个第二Hash表项进行匹配;查找单元,用于若所述第二Hash表项匹配单元命中一个第二Hash表项,则根据命中的第二Hash表项中包括的结果表指针进行索引,查找到对应的结果表;结果表项匹配单元,用于根据所述识别计算模块识别出的操作类型在所述查找单元查找到的结果表中匹配结果表项;
所述报文处理模块具体用于:若所述结果表项匹配单元命中一个结果表项,则根据命中的结果表项中包括的处理方式,对所述接收模块接收到的报文进行处理。
12.根据权利要求8至11中任一项所述的装置,其特征在于,还包括:
添加模块,用于若所述匹配模块没有命中任一第二Hash索引表项,则在确定需要根据所述接收模块接收到的报文建立第二Hash索引表项时,以所述识别计算模块的计算结果作为Hash入口,第二在Hash索引表中添加一包括所述识别计算模块识别出的操作类型的第二Hash索引表项;
报文丢弃模块,用于若所述匹配模块没有命中任一第二Hash索引表项,则在确定需要丢弃所述接收模块接收到的报文时,将该报文丢弃。
13.根据权利要求8所述的装置,其特征在于,还包括:划分模块和接口表配置模块,其中,所述识别计算模块包括子类查找单元和操作类型确定单元;
所述划分模块,用于当接口上配置有至少一个访问控制列表ACL规则时,根据预设分类规则将所述至少一个ACL规则划分成至少一个ACL匹配业务子类;
所述接口表配置模块,用于将该接口与所述划分模块划分得到的至少一个ACL匹配业务子类之间的对应关系配置到接口表中;
所述子类查找单元,用于在所述接收模块接收到报文之后,从所述接口表中查找到与该报文的入接口对应的至少一个ACL匹配业务子类;
所述操作类型确定单元,用于从所述子类查找单元查找到的至少一个ACL匹配业务子类中,确定与所述接收模块接收到的报文相匹配的ACL匹配业务子类作为该报文需要执行的操作类型。
14.根据权利要求13所述的装置,其特征在于,所述至少一个ACL匹配业务子类包括:二层ACL匹配业务子类、三层因特网协议第四版IPv4 ACL匹配业务子类和三层因特网协议第六版IPv6 ACL匹配业务子类;则,所述操作类型确定单元具体用于:
若所述接收模块接收到的报文是二层报文,则确定该报文相匹配的ACL匹配业务子类为二层ACL匹配业务子类;
若所述接收模块接收到的报文是三层报文,且该报文是IPv4报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv4 ACL匹配业务子类;
若所述接收模块接收到的报文是三层报文,且该报文是IPv6报文,则确定该报文相匹配的ACL匹配业务子类为三层IPv6 ACL匹配业务子类。
CN201510575456.5A 2015-09-11 2015-09-11 报文处理方法及装置 Active CN106533947B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510575456.5A CN106533947B (zh) 2015-09-11 2015-09-11 报文处理方法及装置
JP2018512600A JP6498356B2 (ja) 2015-09-11 2016-09-09 パケット処理
US15/756,523 US10659361B2 (en) 2015-09-11 2016-09-09 Packet processing
EP16843675.6A EP3349403B1 (en) 2015-09-11 2016-09-09 Packet processing
PCT/CN2016/098523 WO2017041737A1 (zh) 2015-09-11 2016-09-09 报文处理

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510575456.5A CN106533947B (zh) 2015-09-11 2015-09-11 报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN106533947A CN106533947A (zh) 2017-03-22
CN106533947B true CN106533947B (zh) 2019-10-08

Family

ID=58239133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510575456.5A Active CN106533947B (zh) 2015-09-11 2015-09-11 报文处理方法及装置

Country Status (5)

Country Link
US (1) US10659361B2 (zh)
EP (1) EP3349403B1 (zh)
JP (1) JP6498356B2 (zh)
CN (1) CN106533947B (zh)
WO (1) WO2017041737A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454965B1 (en) * 2017-04-17 2019-10-22 Symantec Corporation Detecting network packet injection
CN107911315B (zh) * 2017-11-17 2020-09-11 成都西加云杉科技有限公司 报文分类方法及网络设备
CN109062801B (zh) * 2018-08-01 2021-09-14 四川长虹电器股份有限公司 软件接口自动转换系统
CN111935021B (zh) * 2020-09-27 2020-12-25 翱捷智能科技(上海)有限公司 一种快速匹配网络数据包的方法及系统
CN113114574B (zh) * 2021-03-30 2023-04-25 杭州迪普科技股份有限公司 一种报文转发方法及装置
US11962494B2 (en) 2021-07-20 2024-04-16 Pensando Systems Inc. Methods and systems for data consistent search and storage using trees
WO2024111088A1 (ja) * 2022-11-24 2024-05-30 日本電信電話株式会社 分析装置、分析方法及び分析プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247337A (zh) * 2008-02-18 2008-08-20 华为技术有限公司 一种报文转发的方法和设备
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
CN102025643A (zh) * 2010-12-30 2011-04-20 华为技术有限公司 一种流表查找方法和装置
CN102882810A (zh) * 2012-10-26 2013-01-16 杭州迪普科技有限公司 一种报文快速转发方法及装置
CN103595637A (zh) * 2013-10-27 2014-02-19 西安电子科技大学 基于树与哈希表的内容中心网络结点处理数据方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324514B1 (en) * 2000-01-14 2008-01-29 Cisco Technology, Inc. Implementing access control lists using a balanced hash table of access control list binary comparison trees
CN100596062C (zh) * 2007-08-16 2010-03-24 杭州华三通信技术有限公司 分布式报文传输安全保护装置和方法
JP5012674B2 (ja) * 2008-06-03 2012-08-29 日本電気株式会社 Ipパケット制御装置におけるソフトウェア検索方法
US8515965B2 (en) * 2010-05-18 2013-08-20 Lsi Corporation Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
US9237128B2 (en) * 2013-03-15 2016-01-12 International Business Machines Corporation Firewall packet filtering
EP2693717B1 (en) * 2012-07-29 2015-05-06 Verint Systems Limited System and method of high volume rule engine related applications
CN103905311B (zh) * 2012-12-28 2017-02-22 华为技术有限公司 流表匹配方法和装置以及交换机
US9659046B2 (en) * 2013-07-31 2017-05-23 Oracle Inernational Corporation Probing a hash table using vectorized instructions
CN106326234A (zh) * 2015-06-18 2017-01-11 深圳市中兴微电子技术有限公司 流分类方法及装置
JP6582723B2 (ja) * 2015-08-19 2019-10-02 富士通株式会社 ネットワークシステム、スイッチ装置、及びネットワークシステム制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
CN101247337A (zh) * 2008-02-18 2008-08-20 华为技术有限公司 一种报文转发的方法和设备
CN102025643A (zh) * 2010-12-30 2011-04-20 华为技术有限公司 一种流表查找方法和装置
CN102882810A (zh) * 2012-10-26 2013-01-16 杭州迪普科技有限公司 一种报文快速转发方法及装置
CN103595637A (zh) * 2013-10-27 2014-02-19 西安电子科技大学 基于树与哈希表的内容中心网络结点处理数据方法

Also Published As

Publication number Publication date
JP6498356B2 (ja) 2019-04-10
EP3349403A1 (en) 2018-07-18
WO2017041737A1 (zh) 2017-03-16
EP3349403B1 (en) 2020-10-21
CN106533947A (zh) 2017-03-22
US10659361B2 (en) 2020-05-19
EP3349403A4 (en) 2018-11-07
JP2018528699A (ja) 2018-09-27
US20180270152A1 (en) 2018-09-20

Similar Documents

Publication Publication Date Title
CN106533947B (zh) 报文处理方法及装置
CN109962832B (zh) 报文处理的方法和装置
CN111095901B (zh) 服务操作链接方法、设备、系统、以及可读存储介质
US10333845B2 (en) Forwarding data packets
US9088437B2 (en) Method and device for processing source role information
US8559429B2 (en) Sequential frame forwarding
US10313154B2 (en) Packet forwarding
CN108011824A (zh) 一种报文处理方法以及网络设备
US20220045875A1 (en) Multicast message processing method and apparatus, storage medium and processor
CN106878194A (zh) 一种报文处理方法和装置
US20180091446A1 (en) Packet forwarding
US8365045B2 (en) Flow based data packet processing
WO2017157335A1 (zh) 报文识别的方法及装置
CN107483341B (zh) 一种跨防火墙报文快速转发方法及装置
US10313274B2 (en) Packet forwarding
CN109672594B (zh) IPoE报文处理方法、装置及宽带远程接入服务器
CN103607350A (zh) 一种路由生成方法及装置
US11695639B2 (en) Method and apparatus for searching for maintenance end point (MEP), and storage medium
US10284426B2 (en) Method and apparatus for processing service node ability, service classifier and service controller
US8914467B2 (en) Information processing apparatus, system, and storage medium
KR101448549B1 (ko) 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진
CN108076068B (zh) 一种防攻击方法以及装置
CN114301960A (zh) 集群非对称流量的处理方法及装置、电子设备及存储介质
CN103795718B (zh) 一种数据传输方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant