CN117640513A - 一种数据处理方法、装置和系统 - Google Patents

一种数据处理方法、装置和系统 Download PDF

Info

Publication number
CN117640513A
CN117640513A CN202210974967.4A CN202210974967A CN117640513A CN 117640513 A CN117640513 A CN 117640513A CN 202210974967 A CN202210974967 A CN 202210974967A CN 117640513 A CN117640513 A CN 117640513A
Authority
CN
China
Prior art keywords
target
message
flow table
information
fields
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
Application number
CN202210974967.4A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210974967.4A priority Critical patent/CN117640513A/zh
Priority to PCT/CN2023/106243 priority patent/WO2024037243A1/zh
Publication of CN117640513A publication Critical patent/CN117640513A/zh
Pending legal-status Critical Current

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

Landscapes

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

Abstract

提供一种数据处理方法、装置和系统,用于降低流表所占用的存储资源的容量和成本。该数据处理方法包括:接收目标报文,根据策略信息在哈希表中查找目标流表项,根据目标流表项处理目标报文。其中,策略信息用于指示目标报文在多组操作中对应的目标操作,目标操作用于屏蔽目标报文的多个字段中的目标字段,目标流表项与目标报文的第一特征信息匹配,由于第一特征信息包括经目标操作后的多个字段,因此第一特征信息中多个字段的目标字段被屏蔽,目标字段不同的多个网络流的目标报文可能具有相同的第一特征信息,哈希表中的目标流表项可以用于匹配多个网络流的报文,有利于减少哈希表中流表项的数目,节约存储资源。

Description

一种数据处理方法、装置和系统
技术领域
本申请涉及通信领域,尤其涉及一种数据处理方法、装置和系统。
背景技术
智能网卡是一种具有加速能力并可卸载主机的处理器功能的网络适配器。为了提升主机(例如网关)对网络流的处理性能,可以将主机的一部分功能卸载到智能网卡中。例如,主机可以将流表下发到智能网卡,智能网卡存储流表,这样有利于在接收到报文后,无需将报文转发至主机,而是在存储的流表中匹配流表项,以实现对报文的高速处理。
流表项的匹配信息指示网络流中报文满足的条件,用于匹配报文。根据流表项的匹配信息可以将流表项分为模糊流表项和精确流表项。模糊流表项用于匹配多个网络流,其匹配信息一般包括通配符,由通配符表示任一字段。三态内容可寻址存储器(ternarycontentaddressable memory,TCAM)支持带通配符的数据查询,因此,网卡可以将模糊流表项存储在TCAM中。但是,由于TCAM的成本高、能耗大,难以用于保存大规模流表。精确流表项用于匹配单个网络流,因此,精确流表项的匹配信息不包括通配符,网卡可以采用哈希表的形式存储精确流表项,以实现快速查找。但是,随着网络流数量的增多,哈希表所需存储的精确流表项的数量相应增多,占用大量存储资源。
发明内容
提供一种数据处理方法、装置和系统,用于降低流表所占用的存储资源的容量和成本。
第一方面,本申请提供一种数据处理方法,包括:第一设备接收目标报文,根据策略信息在哈希表中为目标报文获取目标流表项,之后根据目标流表项处理目标报文。可选的,目标报文指第一设备接收到的所有报文中的任意一个报文,或者指所有报文中一部分报文中的任意一个报文。不限定“一部分报文”中报文的数目。其中,所述策略信息用于指示所述目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流。所述哈希表存储有一个或多个流表项,并且,该一个或多个流表项中的目标流表项与所述目标报文的第一特征信息匹配(或称匹配成功),所述第一特征信息包括经所述目标操作后的所述多个字段。
第一特征信息中多个字段的目标字段被屏蔽,因此,目标字段不同的多个网络流的目标报文可能具有相同的第一特征信息,相应的,哈希表中的目标流表项可以用于匹配多个网络流的报文,有利于减少哈希表中流表项的数目,节约存储资源。此外,第一特征信息与目标操作有关,通过配置策略信息,有利于改变目标报文在多组操作中对应的目标操作,进而改变第一设备在哈希表中为目标报文获取的目标流表项,从而控制处理目标报文所采用的动作。
可选的,目标流表项至少包括匹配信息(或称匹配域)和指令信息(或称指令域或动作域)。目标流表项与所述目标报文的第一特征信息匹配具体指,目标流表项的匹配信息与第一特征信息匹配成功。根据目标流表项处理目标报文具体指,根据目标流表项的指令信息所指示的动作处理目标报文。
可选的,所述策略信息包括一个或多个条目,所述一个或多个条目中的目标条目包括目标匹配信息和目标匹配结果,所述目标匹配信息用于匹配所述目标报文,所述目标匹配结果用于指示所述目标操作。通过目标条目来指示目标报文对应的目标操作,有利于减少计算的复杂度。
可选的,所述目标匹配信息与所述目标报文的第二特征信息匹配,其中,所述第二特征信息为根据所述多个字段和/或接收所述目标报文的时间信息确定的。也就是说,用于确定目标操作的第二特征信息不局限于目标报文的多个字段,还可以与目标报文的时间信息等相关。这样,第一网络设备可能为不同时间点或不同时间区间接收到的同一网络流的多个目标报文,获取不同目标流表项,进行按照不同动作进行处理,有利于提高报文处理策略的多样性和灵活性。
可选的,所述第一特征信息还包括所述目标操作的标识。也就是说,目标流表项的匹配信息不仅需要与经目标操作后的多个字段匹配,还与目标操作的标识匹配,有利于提高匹配结果的准确性。
可选的,目标流表项的匹配信息至少指示目标操作的标识和经目标操作后的多个字段。
可选的,目标匹配结果包括目标操作的标识,或者,目标匹配结果指示目标索引,目标索引指向的存储位置至少存储有目标操作的标识。
可选的,所述哈希表包括多个子哈希表,每个所述子哈希表用于存储指示相同操作的流表项。
可选的,第一网络设备根据策略信息确定目标操作后,根据目标操作确定目标报文的第一特征信息,之后确定第一特征信息的散列值在哈希表中指示的存储空间,若该存储空间存储有流表项,且该流表项与第一特征信息匹配,则该流表项为目标流表项,第一设备获取目标流表项,可见,有利于第一设备为目标报文高效获取目标流表项。
可选的,在所述第一设备根据策略信息在哈希表中获取目标流表项之前,所述方法还包括:当所述哈希表不包括所述目标流表项时,所述第一设备向第二设备发送第一消息,所述第一消息用于请求所述第二设备下发所述目标流表项。之后,所述第一设备接收所述第二设备发送的第二消息,所述第二消息携带所述目标流表项。第一设备将目标流表项存储在哈希表中,例如计算目标流表项的匹配信息的散列值,将目标流表项存储该散列值在哈希表中指示的存储空间。之后,第一设备可以根据策略信息在哈希表中获取目标流表项。
可选的,用户可以根据需要从多组操作中选择任意的至少一组操作作为对应于目标报文的操作,并通过配置策略信息,使其指示目标报文对应于选择的至少一组操作。将至少一组操作中的每组操作称作目标操作,第一设备可以根据每组目标操作获取目标流表项,之后根据获取到的全部或一部分目标流表项处理目标报文。
可选的,目标操作用于将第一特征信息的所述多个字段中的目标字段设置为目标值。换言之,经所述目标操作后的所述多个字段中所述目标字段的值被设置为目标值。目标值可以为固定值,例如“0”或“1”。当目标字段包括多个位时,将所述目标字段的值被设置为目标值可以指,将目标字段的每个位设置为该固定值。
可选的,目标操作用于从第一特征信息的所述多个字段中删除目标字段。换言之,经所述目标操作后的所述多个字段不包括所述目标字段,有利于减少第一特征信息的长度,进而减少查表过程中所需比较的字符长度,提高查表效率。
第二方面,提供一种数据处理方法,包括:第二设备向第一设备发送策略信息,所述策略信息指示所述第一设备在接收到目标报文后在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经目标操作后的多个字段,所述多个字段用于识别所述目标报文所属的网络流,所述目标操作为所述策略信息所指示的所述目标报文在多组操作中对应的操作,并且,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段。
通过调整第二设备发送的策略信息,有利于改变目标报文在多组操作中对应的目标操作,进而改变第一设备在哈希表中为目标报文获取的目标流表项,从而控制第一设备处理目标报文所采用的动作。
可选的,目标流表项至少包括匹配信息(或称匹配域)和指令信息(或称指令域或动作域)。目标流表项与所述目标报文的第一特征信息匹配具体指,目标流表项的匹配信息与第一特征信息匹配成功。根据目标流表项处理目标报文具体指,根据目标流表项的指令信息所指示的动作处理目标报文。
可选的,所述策略信息包括一个或多个条目,所述一个或多个条目中的目标条目包括目标匹配信息和目标匹配结果,所述目标匹配信息用于匹配所述目标报文,所述目标匹配结果用于指示所述目标操作。通过目标条目来指示目标报文对应的目标操作,有利于减少计算的复杂度。
可选的,所述目标匹配信息与所述目标报文的第二特征信息匹配,其中,所述第二特征信息为根据所述多个字段和/或接收所述目标报文的时间信息确定的。也就是说,用于确定目标操作的第二特征信息不局限于目标报文的多个字段,还可以与目标报文的时间信息等相关。这样,第一网络设备可能为不同时间点或不同时间区间接收到的同一网络流的多个目标报文,获取不同目标流表项,进行按照不同动作进行处理,有利于提高报文处理策略的多样性和灵活性。
可选的,用户可以根据需要从多组操作中选择任意的至少一组操作作为对应于目标报文的操作,并通过配置策略信息,使其指示目标报文对应于选择的至少一组操作。
可选的,目标操作用于将第一特征信息的所述多个字段中的目标字段设置为目标值。换言之,经所述目标操作后的所述多个字段中所述目标字段的值被设置为目标值。目标值可以为固定值,例如“0”或“1”。当目标字段包括多个位时,将所述目标字段的值被设置为目标值可以指,将目标字段的每个位设置为该固定值。
可选的,目标操作用于从第一特征信息的所述多个字段中删除目标字段。换言之,经所述目标操作后的所述多个字段不包括所述目标字段,有利于减少第一特征信息的长度,进而减少查表过程中所需比较的字符长度,提高查表效率。
可选的,第二设备接收第一设备发送的第一消息,所述第一消息用于请求下发目标流表项,所述目标流表项与目标报文的第一特征信息匹配,所述第一特征信息包括经目标操作后的多个字段,所述多个字段用于识别所述目标报文所属的网络流,所述目标操作用于屏蔽所述多个字段中的目标字段,所述目标操作为策略信息所指示的所述目标报文在多组操作中对应的操作。所述第二设备向所述第一设备发送第二消息,所述第二消息携带所述目标流表项。
第三方面,提供一种数据处理方法,包括:第二设备向第一设备发送策略信息,所述策略信息用于指示目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流。所述第一设备在接收到所述目标报文后,根据所述策略信息在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经所述目标操作后的所述多个字段。所述第一设备根据所述目标流表项处理所述目标报文。
可选的,第三方面提供的数据处理方法为执行第一方面方法的第一设备和执行第二方面方法的第二设备共同实现的方法,第三方面的其他可选方式可以参考第一方面或第二方面所提供的可选方式进行理解,此处不再赘述。
第四方面,提供一种报文处理装置,包括接收模块、获取模块和处理模块。其中,接收模块,用于接收目标报文。获取模块,用于根据策略信息在哈希表中获取目标流表项,所述策略信息用于指示所述目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经所述目标操作后的所述多个字段。处理模块,用于根据所述目标流表项处理所述目标报文。
第一特征信息中多个字段的目标字段被屏蔽,因此,目标字段不同的多个网络流的目标报文可能具有相同的第一特征信息,相应的,哈希表中的目标流表项可以用于匹配多个网络流的报文,有利于减少哈希表中流表项的数目,节约存储资源。此外,第一特征信息与目标操作有关,通过配置策略信息,有利于改变目标报文在多组操作中对应的目标操作,进而改变第一设备在哈希表中为目标报文获取的目标流表项,从而控制处理目标报文所采用的动作。
可选的,目标流表项至少包括匹配信息(或称匹配域)和指令信息(或称指令域或动作域)。目标流表项与所述目标报文的第一特征信息匹配具体指,目标流表项的匹配信息与第一特征信息匹配成功。根据目标流表项处理目标报文具体指,根据目标流表项的指令信息所指示的动作处理目标报文。
可选的,所述策略信息包括一个或多个条目,所述一个或多个条目中的目标条目包括目标匹配信息和目标匹配结果,所述目标匹配信息用于匹配所述目标报文,所述目标匹配结果用于指示所述目标操作。通过目标条目来指示目标报文对应的目标操作,有利于减少计算的复杂度。
可选的,所述目标匹配信息与所述目标报文的第二特征信息匹配,其中,所述第二特征信息为根据所述多个字段和/或接收所述目标报文的时间信息确定的。也就是说,用于确定目标操作的第二特征信息不局限于目标报文的多个字段,还可以与目标报文的时间信息等相关。这样,第一网络设备可能为不同时间点或不同时间区间接收到的同一网络流的多个目标报文,获取不同目标流表项,进行按照不同动作进行处理,有利于提高报文处理策略的多样性和灵活性。
可选的,所述第一特征信息还包括所述目标操作的标识。也就是说,目标流表项的匹配信息不仅需要与经目标操作后的多个字段匹配,还与目标操作的标识匹配,有利于提高匹配结果的准确性。
可选的,目标流表项的匹配信息至少指示目标操作的标识和经目标操作后的多个字段。
可选的,目标匹配结果包括目标操作的标识,或者,目标匹配结果指示目标索引,目标索引指向的存储位置至少存储有目标操作的标识。
可选的,所述哈希表包括多个子哈希表,每个所述子哈希表用于存储指示相同操作的流表项。
可选的,所述获取模块根据策略信息确定目标操作后,根据目标操作确定目标报文的第一特征信息,之后确定第一特征信息的散列值在哈希表中指示的存储空间,若该存储空间存储有流表项,且该流表项与第一特征信息匹配,则该流表项为目标流表项,第一设备获取目标流表项,可见,有利于第一设备为目标报文高效获取目标流表项。
可选的,所述报文处理装置还包括发送模块,所述发送模块用于当所述哈希表不包括所述目标流表项时,向第二设备发送第一消息,所述第一消息用于请求所述第二设备下发所述目标流表项。所述接收模块还用于接收所述第二设备发送的第二消息,所述第二消息携带所述目标流表项,所述接收模块还用于将目标流表项存储在哈希表中,例如计算目标流表项的匹配信息的散列值,将目标流表项存储该散列值在哈希表中指示的存储空间。之后,所述获取模块可以根据策略信息在哈希表中获取目标流表项。
可选的,用户可以根据需要从多组操作中选择任意的至少一组操作作为对应于目标报文的操作,并通过配置策略信息,使其指示目标报文对应于选择的至少一组操作。将至少一组操作中的每组操作称作目标操作,获取模块可以根据每组目标操作获取目标流表项,之后处理模块根据获取到的全部或一部分目标流表项处理目标报文。
可选的,目标操作用于将第一特征信息的所述多个字段中的目标字段设置为目标值。换言之,经所述目标操作后的所述多个字段中所述目标字段的值被设置为目标值。目标值可以为固定值,例如“0”或“1”。当目标字段包括多个位时,将所述目标字段的值被设置为目标值可以指,将目标字段的每个位设置为该固定值。
可选的,目标操作用于从第一特征信息的所述多个字段中删除目标字段。换言之,经所述目标操作后的所述多个字段不包括所述目标字段,有利于减少第一特征信息的长度,进而减少查表过程中所需比较的字符长度,提高查表效率。
第五方面,提供一种数据处理装置,包括:发送模块,用于向第一设备发送策略信息,所述策略信息指示所述第一设备在接收到目标报文后在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经目标操作后的多个字段,所述多个字段用于识别所述目标报文所属的网络流,所述目标操作为所述策略信息所指示的所述目标报文在多组操作中对应的操作,并且,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段。
通过调整发送模块发送的策略信息,有利于改变目标报文在多组操作中对应的目标操作,进而改变第一设备在哈希表中为目标报文获取的目标流表项,从而控制第一设备处理目标报文所采用的动作。
可选的,目标流表项至少包括匹配信息(或称匹配域)和指令信息(或称指令域或动作域)。目标流表项与所述目标报文的第一特征信息匹配具体指,目标流表项的匹配信息与第一特征信息匹配成功。根据目标流表项处理目标报文具体指,根据目标流表项的指令信息所指示的动作处理目标报文。
可选的,所述策略信息包括一个或多个条目,所述一个或多个条目中的目标条目包括目标匹配信息和目标匹配结果,所述目标匹配信息用于匹配所述目标报文,所述目标匹配结果用于指示所述目标操作。通过目标条目来指示目标报文对应的目标操作,有利于减少计算的复杂度。
可选的,所述目标匹配信息与所述目标报文的第二特征信息匹配,其中,所述第二特征信息为根据所述多个字段和/或接收所述目标报文的时间信息确定的。也就是说,用于确定目标操作的第二特征信息不局限于目标报文的多个字段,还可以与目标报文的时间信息等相关。这样,第一网络设备可能为不同时间点或不同时间区间接收到的同一网络流的多个目标报文,获取不同目标流表项,进行按照不同动作进行处理,有利于提高报文处理策略的多样性和灵活性。
可选的,用户可以根据需要从多组操作中选择任意的至少一组操作作为对应于目标报文的操作,并通过配置策略信息,使其指示目标报文对应于选择的至少一组操作。
可选的,目标操作用于将第一特征信息的所述多个字段中的目标字段设置为目标值。换言之,经所述目标操作后的所述多个字段中所述目标字段的值被设置为目标值。目标值可以为固定值,例如“0”或“1”。当目标字段包括多个位时,将所述目标字段的值被设置为目标值可以指,将目标字段的每个位设置为该固定值。
可选的,目标操作用于从第一特征信息的所述多个字段中删除目标字段。换言之,经所述目标操作后的所述多个字段不包括所述目标字段,有利于减少第一特征信息的长度,进而减少查表过程中所需比较的字符长度,提高查表效率。
可选的,所述数据处理装置还包括接收模块,用于接收第一设备发送的第一消息,所述第一消息用于请求下发目标流表项。所述第二设备向所述第一设备发送第二消息,所述第二消息携带所述目标流表项。
第六方面,提供一种系统,包括通信链路、如第四方面或第四方面中任一种可能的实现方式所述的报文处理装置和如第五方面或第五方面中任一种可能的实现方式所述的数据处理装置。所述通信链路用于在所述报文处理装置和所述数据处理装置之间传输信息。可以根据报文处理装置和数据处理装置的类型,相应设置通信链路。例如,当报文处理装置和数据处理装置设置在同一计算机设备中时,该通信链路可以为总线。当报文处理装置和数据处理装置设置在不同计算机设备中时,该通信链路可以包括一个或多个网络设备。
第七方面,提供一种计算机设备,包括处理器、存储器;所述处理器用于执行所述存储器中存储的指令,以使所述计算设备执行如第一方面或第一方面中任一种可能的实现方式所述的方法或如第二方面或第二方面中任一种可能的实现方式所述的方法。
第八方面,提供一种计算机可读存储介质,包括指令,当其在计算机设备上运行时,使得所述计算机设备执行如第一方面或第一方面中任一种可能的实现方式所述的方法或如第二方面或第二方面中任一种可能的实现方式所述的方法。
第九方面,提供一种芯片,包括一个或多个处理器。处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述如第一方面或第一方面中任一种可能的实现方式所述的方法或如第二方面或第二方面中任一种可能的实现方式所述的方法。
第十方面,提供一种计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算设备执行如第一方面或第一方面中任一种可能的实现方式所述的方法或如第二方面或第二方面中任一种可能的实现方式所述的方法。
附图说明
图1示意性示出一种可能的系统架构;
图2示意性示出另一种可能的系统架构;
图3-1和图3-2分别示意性示出报文与流表项的匹配过程;
图4示意性示出本申请方法一种可能的流程;
图5-1和图5-2示意性示出报文与流表项的匹配过程;
图6示意性示出报文处理装置一种可能的结构;
图7示意性示出数据处理装置一种可能的结构;
图8示意性示出计算机设备一种可能的结构。
具体实施方式
提供一种数据处理方法,以下首先介绍该方法适用的一种系统架构。
图1示意性示出该系统架构一种可能的结构。参考图1,该系统架构可以包括源设备、目标设备、第一设备和第二设备。第一设备可以分别与第二设备、源设备和目标设备之间通过通信链路建立有网络连接。
源设备可以产生数据,并将数据封装为报文,通过与第一设备之间的网络连接,将报文发送至第一设备。本申请不限定源设备的具体类型。可选的,源设备为数据采集设备(例如传感器),或存储设备(例如存储服务器),或计算设备(例如主机或服务器或个人计算机等)。本申请不限定源设备的运行环境,例如,源设备可以而不限于运行在云环境、边缘环境或终端环境。源设备可以为物理设备,也可以是虚拟设备。
第二设备可以生成或从其他设备接收策略信息,并向第一设备下发该策略信息。可选的,第二设备还可以生成或从其他设备接收流表,并向第一设备下发该流表。本申请不限定第二设备的具体类型。可选的,第二设备可以为计算设备(例如主机或服务器或终端等),或网络设备(例如路由器或交换机或网卡等)。本申请不限定第二设备的运行环境,例如,第二设备可以而不限于运行在云环境、边缘环境或终端环境。第二设备可以为物理设备,也可以是虚拟设备。
第一设备可以接收并存储策略信息。第一设备可以根据策略信息在哈希表中为接收到的目标报文获取目标流表项,并根据目标流表项处理目标报文。其中,哈希表存储有一个或多个流表项。可选的,该一个或多个流表项可以为第二设备下发的。本申请不限定源设备的具体类型。可选的,第一设备可以为计算设备(例如主机或服务器或终端等),或网络设备(例如路由器或交换机或网卡等)。本申请不限定第一设备的运行环境,例如,第一设备可以而不限于运行在云环境、边缘环境或终端环境。第一设备可以为物理设备,也可以是虚拟设备。
后文将介绍策略信息和流表的内容和作用,此处暂不展开介绍。
目标设备可以接收由第一设备转发的报文,获取报文携带的数据。本申请不限定目标设备的具体类型。可选的,目标设备为计算设备(例如主机或服务器或终端等),或存储设备(例如存储服务器)。本申请不限定目标设备的运行环境,例如,目标设备可以而不限于运行在云环境、边缘环境或终端环境。目标设备可以为物理设备,也可以是虚拟设备。
不限定源设备只能发送报文,目标设备只能接收报文。在一些示例中,源设备也可以接收报文,目标设备也可以发送报文。
在一些示例中,图1对应的系统架构可以不包括图1所示的第二设备,由第一设备生成并存储策略信息和/或一个或多个流表项。
在一些示例中,图1对应的系统架构还可以包括图1所示设备以外的其他设备。例如,在源设备和第一设备之间包括一个或多个转发设备。例如,在目标设备和第一设备之间包括一个或多个转发设备。例如,该系统架构包括更多的与第一设备建立有网络连接的源设备和/或目标设备。
图1所示系统架构中的不同设备可以设置在不同的物理设备中,或者,图1所示系统架构中至少两个设备可以设置在同一物理设备中。
图2示意性示出本申请方法使用的另一种系统架构。参考图2,该系统包括建立有通信连接的第一节点和第二节点。可选的,第一节点和第二节点之间通过图2所示的物理交换机通信。参考图2,第一节点包括但不限于处理器、内存和网卡,处理器上运行开放虚拟交换机(open virtual switch,OVS)和虚拟实例。该虚拟实例可以包括虚拟机(virtualmachine,VM)、容器和裸金属服务器中的至少一种。图2以第一节点中运行VM 1和VM 2为例。可选的,VM 1和VM 2通过OVS和网卡与第二节点通信。或者,OVS可以将一部分或全部转发功能卸载到网卡中,VM 1和VM 2分别通过网卡与第二节点通信,不用再经过OVS转发。
不限定第二节点的结构,可选的,与第一节点类似的,第二节点包括处理器、内存和网卡,处理器上运行开放虚拟交换机(open virtual switch,OVS)和虚拟实例。
可选的,图2对应的系统架构还包括更多或更少设备,例如,图2对应的系统架构还包括控制器,控制器用于生成策略信息和/或一个或多个流表项,控制器可以与OVS和/或网卡通信,向OVS和/或网卡下发策略信息和/或一个或多个流表项。可选的,控制器为物理设备,或者,控制器为虚拟设备,该虚拟设备可以部署于第一节点或第二节点或第一节点和第二节点以外的其他节点。
在一些示例中,图2对应的系统架构为图1所示系统架构的一种具体形式。例如,图2所示的网卡可以对应于图1所示的第一设备,图2所示的OVS或前文提到的控制器可以对应于图1所示的第二设备。或者,例如,图2所示的OVS可以对应于图1所示的第一设备,前文提到的控制器可以对应于图1所示的第二设备。图2所示的节点2可以对应于图1所示的源设备或目标设备,图2所示的VM 1或VM 2可以对应于图1所示的目标设备或源设备。
下面介绍流表项。流表项包括但不限于匹配信息和指令信息。匹配信息用于与报文的第一特征信息进行匹配,例如,匹配信息指示匹配的报文的第一特征信息中每个字段的值。可选的,报文的第一特征信息与匹配信息匹配成功可以指,第一特征信息中每个字段的值与匹配信息中相应字段的值相同。在一些示例中,匹配信息又称匹配域(matchfield)。指令信息指示对匹配的报文执行的0个或1个或多个动作(actions)。在一些示例中,指令信息又称指令域或指令集或动作域。
下面介绍第一特征信息。报文的第一特征信息至少包括用于识别报文所属网络流的多个字段。可选的,该多个字段中至少一个字段来自报文的头部或净荷(payload)。用户可以根据需要定义该多个字段。可选的,用于定义报文所属网络流的多个字段包括用于描述如下至少一个信息类型的字段:源IP地址,目的IP地址,源端口号,网络层协议类别,IP服务类型、路由器/交换机的接口编号和接收到报文的时间等。以下,假设报文的多个字段包括3个字段,并且这3个字段分别用于描述源IP地址、源端口、传输层协议(简称为三元组)。
根据流表项中匹配信息的类型,目前的流表项一般包括精确流表项和模糊流表项。精确流表项的匹配信息用于与报文的多个字段进行匹配,匹配信息所指示的每个字段的值为确定值。图3-1示出了报文和精确流表项的匹配过程。参考图3-1,报文1和报文2的第一特征信息分别如“()”中的内容所示。由于报文1的第一特征信息与精确流表项1的匹配信息匹配成功,报文2的特性信息与精确流表项2的匹配信息匹配成功,因此,报文1和报文2分别与精确流表项1和精确流表项2匹配成功。可见,单个精确流表项只能用于匹配一个网络流中的报文。
模糊流表项的匹配信息所指示的部分字段的值为通配符,其中,通配符代表任一值。图3-2示出了报文和模糊流表项的匹配过程。参考图3-2,报文1和报文2的第一特征信息分别如“()”中的内容所示,以“*”代表模糊流表项中的通配符。由于报文1的第一特征信息与模糊流表项1的匹配信息匹配成功,报文2的特性信息与模糊流表项1的匹配信息匹配成功,因此,报文1和报文2分别与模糊流表项1匹配。可见,单个模糊流表项可以用于匹配多个网络流中的报文。
在一些示例中,第一设备将流表项的匹配信息作为关键字,将流表项存储在哈希表中,这样有利于在大容量存储介质中高效查找到报文匹配的流表项。但是,这就要求流表项的匹配信息中每个字段的值为确定值,第一设备只能在哈希表中存储精确流表项。随着第一设备所需转发的网络流的数目的增多以及报文的第一特征信息中字段个数的增多,哈希表中所需存储的精确流表项的数目不断增多,占用大量存储资源。
在一些示例中,第一设备将流表存储在三态内容寻址存储器(ternary contentaddressable memory,TCAM)中。由于TCAM支持带通配符的查找,因此,在根据模糊规则生成的流表项中,可以将模糊字段的值设置为通配符,减少流表中流表项的数目。但是TCAM价格昂贵且功耗较大。
为了降低流表项所占存储资源的大小和成本,本申请提供一种数据处理方法,可以在高效的根据流表项处理报文的前提下,降低流表项所占用的存储资源的大小和成本。
图4示意性示出该数据处理方法一种可能的流程。参考图4,该数据处理方法包括步骤S401至S405。
S401、第二设备向第一设备发送策略信息;
可选的,图4对应的方法所涉及的第一设备和第二设备分别为图1所示的第一设备和第二设备。根据前文对第一设备和第二设备的介绍,在一些示例中,第一设备为图2所示的网卡,第二设备为图2所示的OVS或控制器(图2未示出)。或者,在一些示例中,第一设备为图2所示的OVS,第二设备为控制器(图2未示出)。
第二设备产生或接收到策略信息后,可以向第一设备发送策略信息。第一设备在接收到策略信息后,可以将策略信息保存在第一存储器中。不限定第一存储器的类型,可选的,第一存储器可以为缓存或TCAM。不限定第二设备向第一设备发送策略信息的具体时机。可选的,第二设备在接收到第一设备发送的请求下发策略信息的消息后,下发策略信息。或者,可选的,第二设备主动的向第一设备发送策略信息。
策略信息指示目标报文在多组操作(或称操作集合)中对应的目标操作,进而指示第一设备在接收到目标报文后根据目标操作在哈希表中获取目标流表项。
其中,可选的,目标报文指第一设备接收到的所有报文中的任意一个报文,或者指所有报文中一部分报文中的任意一个报文。不限定“一部分报文”中报文的数目。目标操作用于屏蔽目标报文的多个字段中的目标字段,多个字段用于识别目标报文所属的网络流。目标字段可以包括一个或多个字段。哈希表中存储有一个或多个流表项。目标流表项为哈希表中与目标报文的第一特征信息匹配成功的流表项。
前文提到的用于与精确流表项或模糊流表项进行匹配的第一特征信息包括报文的多个字段,与前文提到的第一特征信息不同的,图4对应的方法实施例中,第一特征信息包括经目标操作后的多个字段。由于第一特征信息中多个字段的目标字段被屏蔽,因此,目标字段不同的多个网络流的目标报文可能具有相同的第一特征信息(例如参考图5-1和图5-2),相应的,哈希表中的目标流表项可以用于匹配多个网络流的报文,有利于减少哈希表中流表项的数目,节约存储资源。
可选的,一个或多个流表项中的每个流表项为通配流表项,上述一个或多个流表项为哈希表中的一部分或全部流表项。通配流表项的匹配信息用于与经一组操作后的第一特征信息进行匹配,该组操作是指前文介绍的多组操作中的任意一组操作。可选的,通配流表项的匹配信息指示经该组操作后的第一特征信息。可选的,通配流表项的匹配信息指示该组操作的标识,相应的,第一特征信息还包括多组操作中一组操作的标识。
这里所说的“操作”可以为指示操作的信息(或称作操作信息),经操作后的第一特征信息可以指,对第一特征信息执行该操作信息所指示的操作后所得到的信息。
可选的,多组操作中的每组操作用于屏蔽多个字段中的至少一个字段。可选的,不同操作所屏蔽的字段可以不同。例如,多组操作中的第一操作用于屏蔽三元组中的源IP地址,多组操作中的第二操作用于屏蔽三元组的目的IP地址。
可选的,多组操作中的单组操作可以包括一个或多个操作,不限定每个操作的类型。
以目标操作为例,可选的,目标操作用于将第一特征信息中多个字段中的目标字段的值设置为固定的目标值。不限定目标值的具体取值,例如该目标值可以为“0”或“1”,可选的,该目标值为目标流表项的匹配信息所指示的目标字段的值。在一些示例中,目标操作对应一个掩码(称作目标掩码)。可选的,目标掩码的字节数与多个字段的字节数相同,并且,目标掩码中对应于目标字段的每个字节的值为0,其他字节的值为1,对多个字段执行目标操作可以包括,将多个字段和目标掩码进行按位与运算。
假设多个字段分别指示报文的源IP地址、目的IP地址和协议,目标操作用于屏蔽目的IP地址对应的字段,目标掩码的标识为标识1,图5-1示意性示出目标报文与目标流表项匹配的过程。假设第一设备分别接收到报文1和报文2,并且第一设备根据策略信息确定报文1和报文2分别对应于目标操作,报文1的多个字段和第一特征信息、报文2的多个字段和第一特征信息、以及目标流表项分别如图5-1所示。参考图5-1,报文1和报文2的多个字段虽然不同,但是二者的多个字段分别经过目标操作(即与目标掩码进行按位与运算)后相同,因此,二者的第一特征信息相同,均与目标流表项中的匹配信息匹配成功。
或者,可选的,目标操作用于从报文的多个字段中删除目标字段,有利于减少匹配的字节数,提高匹配效率。假设多个字段分别指示报文的源IP地址、目的IP地址和协议,目标字段为目的IP地址对应的字段,目标操作的标识为标识1,图5-2示意性示出目标报文与目标流表项匹配的过程。报文1的多个字段和第一特征信息、报文2的多个字段和第一特征信息、以及目标流表项分别如图5-2所示。参考图5-2,虽然报文1和报文2的多个字段不同,但是二者的多个字段分别经过目标操作(即删除二者的目的IP地址)后相同,因此,二者的第一特征信息相同,均与目标流表项中的匹配信息匹配成功。
在一些示例中,哈希表中的一个或多个流表项为第二设备下发的。可选的,该一个或多个流表项为第二设备产生或接收到的一部分或全部流表项。不限定第二设备向数据处理装置发送流表的具体时机。可选的,第二设备在接收到第一设备发送的请求下发流表的消息后,下发相应流表。或者,可选的,第二设备主动的向数据处理装置发送流表。
步骤S401为可选步骤,在一些示例中,第一设备不从第二设备接收一个或多个流表项,第一设备存储的一个或多个流表项为第一设备产生的。
参考图4,第一设备可以在第二存储器中组织该哈希表。不限定第二存储器的类型,可选的,第二储器可以为静态随机存取存储器(Static Random-Access Memory,SRAM),或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等其他类型的存储器。
可选的,第二存储器为第一存储器,第一设备将策略信息和哈希表存储在第一存储器中。可选的,第二存储器和第一存储器为不同存储器。
可选的,第一设备可以根据每个流表项中的部分字段(称作关键字)确定相应流表项在哈希表中的存储位置。可选的,每个流表项的关键字包括相应流表项中的匹配信息。
以第一设备在哈希表中存储目标流表项为例,在一些示例中,第一设备获取目标流表项的关键字(例如匹配信息),使用哈希函数计算该关键字的散列值,将目标流表项存储在哈希表中该散列值对应的存储位置。由于不同关键字对应的散列值一般不同,因此,有利于将不同流表项存储在不同存储位置。
该哈希表可以为一个哈希表,或者,在一些示例中,该哈希表包括多个哈希表(称作子哈希表)。可选的,每个子哈希表用于存储对应于相同操作的流表项。假设操作集合包括n组操作,分别称作操作1、……、操作i、……、操作n,其中,n为正整数,i为小于或等于n的任意一个正整数。可选的,该哈希表包括子哈希表1、……、子哈希表i、……、子哈希表n,并且,子哈希表i中的任意一个流表项对应于操作i。
或者,可选的,该哈希表包括子哈希表1、……、子哈希表j、……、子哈希表m,其中,m为小于或等于n的正整数,j为小于或等于m的任意一个正整数,并且,子哈希表j中任意两个流表项中匹配信息的长度相同。若操作集合包括删除操作,不同流表项的匹配信息的长度可能不同,通过将匹配信息的长度相同的流表项存储在同一子哈希表中,有利于根据匹配信息的长度设计哈希表中每个存储位置的大小,减少哈希表中存储空间的冗余浪费。此外,通过减少子哈希表的数目,有利于降低查表的复杂度,并且,提高哈希表中存储位置的利用率。
S402、第一设备接收目标报文;
第一设备可以接收目标报文。可选的,目标报文指第一设备接收到的所有报文中的任意一个报文,或者指所有报文中一部分报文中的任意一个报文。不限定“一部分报文”中报文的数目。
参考图4,第一设备从源设备接收目标报文。可选的,该源设备可以为图1所示的源设备。根据前文对源设备的介绍,在一些示例中,源设备为图2所示的第二节点或第一节点中的虚拟实例(例如VM 1或VM 2)。
S403、第一设备根据策略信息在哈希表中查找目标流表项;
第一设备接收到目标报文之后,可以根据策略信息在哈希表中为目标报文获取目标流表项。其中,目标流表项为与目标报文匹配的流表项中对应于目标操作的流表项。后文将具体介绍目标操作的选取方式,此处暂不展开介绍。
与第一设备在哈希表中存储流表项相对应的,为了在哈希表中查找目标流表项,第一设备首先需要确定目标流表项的关键字(称作目标关键字)。根据S402可知,目标流表项的目标关键字可以为目标流表项的匹配信息,并且,根据步骤S401可知,目标流表项的匹配信息可以指示目标报文的第一特征信息,因此,可选的,第一设备可以根据目标报文的第一特征信息在哈希表中获取目标流表项。例如,第一设备可以获取目标报文的多个字段,对其执行目标操作,进而确定目标报文的第一特征信息(即目标关键字),计算目标关键字的散列值,获取该散列值在哈希表中对应的目标存储位置中的数据。
S404、第一设备根据目标流表项处理目标报文;
第一设备在哈希表中找到目标流表项后,第一设备可以根据目标流表项处理目标报文。第一设备根据目标流表项处理目标报文可以指,第一设备根据目标流表项中的指令信息处理目标报文。
参考图4,第一设备可以根据目标流表项将目标报文转发给目标设备。图4所示的转发动作仅作为举例而非限定。例如,如果目标流表项的指令信息指示0个动作,可以默认为丢弃目标报文。当目标流表项的指令信息指示多个动作,可选的,多个动作的执行可以依照优先级顺序依次进行。
图4对应的方法示例中,第一特征信息中多个字段的目标字段被屏蔽,因此,目标字段不同的多个网络流的目标报文可能具有相同的第一特征信息,相应的,哈希表中的目标流表项可以用于匹配多个网络流的报文,有利于减少哈希表中流表项的数目,节约存储资源。此外,第一特征信息与目标操作有关,通过配置策略信息,有利于改变目标报文在多组操作中对应的目标操作,进而改变第一设备在哈希表中为目标报文获取的目标流表项,从而控制处理目标报文所采用的动作。
步骤S403中介绍了,第一设备接收到目标报文后,根据策略信息在哈希表中查找目标流表项。继续参考图4,可选的,步骤S403可以包括S4031和S4032。换言之,第一设备通过执行步骤S4031和S4032来实现步骤S403。
S4031、第一设备根据策略信息确定目标报文对应的目标操作;
第一设备接收到目标报文后,可以根据策略信息确定目标报文在多组操作中对应的目标操作。在一些示例中,策略信息包括一个或多个条目,每个条目包括匹配信息和操作信息,每个条目的匹配信息用于识别与相应条目匹配的报文,每个条目的操作信息指示操作集合中的至少一组操作。假设一个或多个条目包括目标条目,目标条目的匹配信息与目标报文匹配成功,第一设备可以确定目标条目的操作信息所指示的操作为目标操作。
以目标条目为例,目标条目的匹配信息与目标报文的第二特征信息匹配成功。可选的,第一设备可以根据目标报文的多个字段和/或接收目标报文的时间信息等确定目标报文的第二特征信息。条目的匹配信息不局限在与报文的第一特征信息进行匹配,有利于根据报文的其他信息确定对报文的处理策略,有利于提高报文处理策略的灵活性。
以目标条目为例,目标条目中的操作信息指示操作集合中至少一组操作的地址或者操作集合中目标操作的标识。
可选的,当第一设备在策略信息中查找到匹配目标报文的一个条目时,第一设备不再继续查找匹配目标报文的其他条目,或者,第一设备在策略信息中继续查找匹配目标报文的其他条目。当第一设备查找到多组目标操作时,第一设备可以根据多组目标操作中的全部或一部分执行步骤S4042。
S4042、第一设备根据目标操作在哈希表中查找目标流表项。
第一设备从操作集合中确定目标操作后,可以根据目标操作在哈希表中查找目标流表项。步骤S4042可以参考步骤S403中的相关内容进行理解。
继续参考图4,可选的,在步骤S403之前,图4对应的数据处理方法还可以包括步骤S405至S407。
S405、第一设备向第二设备发送第一消息;
第一设备可以向第二设备发送第一消息。其中,第一消息用于请求第二设备下发目标流表项。第二设备接收到第一消息后,可以查找目标流表项。
在一些示例中,第一设备根据策略信息确定目标报文对应的目标操作后,若无法根据目标操作在哈希表中查找到目标流表项,那么第一设备可以向第二设备发送第一消息。可选的,第一消息可以携带目标操作的标识和目标报文的信息。可选的,目标报文的信息包括目标报文或目标报文的多个字段或经目标操作后的多个字段。或者,可选的,第一消息可以携带目标报文的第一特征信息,第一特征信息包括经目标操作后的目标报文的多个字段。
S406、第二设备向第一设备发送第二消息;
第二设备查找到目标流表项后,可以向第一设备发送第二消息。其中,第二消息携带目标流表项。
若第一消息不携带目标操作的标识,第二消息可以携带与目标报文匹配的所有流表项。若第一消息携带目标操作的标识,第二消息可以携带目标操作的目标流表项,不携带其他流表项,有利于减小第二消息占用的传输资源。
S407、第一设备将目标流表项存储在哈希表中;
第一设备接收到第二消息后,可以获取第二消息携带的目标流表项,将目标流表项存储在哈希表中。第一设备在哈希表中存储目标流表项的过程可以参考S401中的相关内容,此处不再赘述。
为了更好的实施本申请上述方案,下面还提供用于实施上述方案的相关设备。
参见图6,图6是本申请实施例提供的一种报文处理装置的结构示意图。该报文处理装置可以是图1或图4所示的第一设备,或者可以是图2所示的网卡或OVS。该报文处理装置可以执行图4所示方法实施例中第一设备执行的方法和步骤。如图6所示,报文处理装置6可以包括接收模块601、获取模块602和处理模块603。其中,接收模块601用于接收目标报文,具体实现方式请参考图4中步骤S402的相关描述,此处不再赘述。获取模块602用于根据策略信息在哈希表中获取目标流表项,具体实现方式请参考图4中步骤S403,或,S4031和S4032的相关描述,此处不再赘述。处理模块603用于根据目标流表项处理目标报文,具体实现方式请参考图4中步骤S404的相关描述,此处不再赘述。
可选的,接收模块601还用于接收策略信息和/或一个或多个流表项。可选的,接收模块601还用于从第二设备接收目标流表项,将目标流表项存储在哈希表中,具体实现方式请参考图4中步骤S406和S407的相关描述,此处不再赘述。可选的,报文处理装置还可以包括发送模块604,发送模块604用于向第二设备发送第一消息,具体实现方式请参考图4中步骤S405的相关描述,此处不再赘述。
参见图7,图7是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是上述图1所示的第二设备,或者可以是图2所示的OVS或图2所示系统架构中的控制器(图2未示出)。该数据处理装置可以执行图4所示方法实施例中第二设备执行的方法和步骤。如图7所示,数据处理装置7可以包括发送模块701。其中,发送模块701用于向第一设备发送策略信息和/或一个或多个流表项,具体实现方式请参考图4中步骤S401的相关描述,此处不再赘述。可选的,数据处理装置还可以包括接收模块702,接收模块702用于接收第一设备发送的第一消息,具体实现方式请参考图4中步骤S405的相关描述,此处不再赘述。可选的,发送模块701还用于向第一设备发送第二消息,具体实现方式请参考图4中步骤S406的相关描述,此处不再赘述。
图8为本申请实施例提供的一种计算机设备的结构示意图。该计算机设备可以为图1所示的第一设备或第二设备,或者可以为图4所示的第一设备或第二设备,或者可以为图2所示的节点1,或者可以为图2所示的网卡。如图8所示,该计算机设备8包括:处理器801和存储器802,处理器801和存储器802相互连接,可选的,处理器801和存储器802可以通过内部总线803相互连接。
处理器801可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器802可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器802也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器802还可以包括上述种类的组合。
总线803可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。
可选的,计算机设备8可以包括通信接口804,处理器801和通信接口802相连,例如图8所示,处理器801和通信接口802通过总线相连。
存储器802中存储了计算机指令,处理器801通过执行这些计算机指令,可以执行图4所示方法中第一设备或第二设备执行的方法流程。具体实施方式可以参考前文相应内容,此处不再赘述。
本申请还提供一种通信系统,该通信系统可以包括例如图6所示的报文处理装置和图7所示的数据处理装置。或者,该通信系统至少包括图1或图4所示的第一设备和第二设备,可选的,该通信系统还可以包括第一设备和第二设备之间的通信链路,可选的,该通信系统还可以包括图1或图4所示的源设备和/或目标设备。或者,可选的,该通信系统至少包括图2所示的第一节点,可选的,还可以包括第二节点和/或物理交换机。可选的,通信系统可以为图1或图2对应的系统架构。
本申请提供的数据处理方法具体可以由计算机设备中的芯片来执行,该芯片包括:处理单元和通信单元,处理单元例如可以是处理器,通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使计算设备内的芯片执行上述方法示例。可选的,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是无线接入设备端内的位于芯片外部的存储单元,如只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
本申请还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。计算机可读存储介质可以是通用或专用计算机能够存取的任何可用介质。本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行任意一种方法实施例的部分或全部步骤。本领域普通技术人员可以理解,前述的计算机可读存储介质包括:U盘、移动硬盘、磁碟、光盘、RAM、SSD或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。本申请实施例涉及的“A和/或B”可以理解为包括“A和B”以及“A或B”这两种方案。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。

Claims (14)

1.一种数据处理方法,其特征在于,包括:
第一设备接收目标报文;
所述第一设备根据策略信息在哈希表中获取目标流表项,所述策略信息用于指示所述目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经所述目标操作后的所述多个字段;
所述第一设备根据所述目标流表项处理所述目标报文。
2.根据权利要求1所述的方法,其特征在于,所述策略信息包括一个或多个条目,所述一个或多个条目中的目标条目包括目标匹配信息和目标匹配结果,所述目标匹配信息用于匹配所述目标报文,所述目标匹配结果用于指示所述目标操作。
3.根据权利要求2所述的方法,其特征在于,所述目标匹配信息与所述目标报文的第二特征信息匹配,所述第二特征信息为根据所述多个字段和/或接收所述目标报文的时间信息确定的。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一特征信息还包括所述目标操作的标识。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述第一设备根据策略信息在哈希表中获取目标流表项之前,所述方法还包括:
所述第一设备向第二设备发送第一消息,所述第一消息用于请求所述第二设备下发所述目标流表项;
所述第一设备接收所述第二设备发送的第二消息,所述第二消息携带所述目标流表项;
所述第一设备将所述目标流表项存储在所述哈希表中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,经所述目标操作后的所述多个字段中所述目标字段的值被设置为目标值。
7.根据权利要求1至6中任一项所述的方法,其特征在于,经所述目标操作后的所述多个字段不包括所述目标字段。
8.一种数据处理方法,其特征在于,包括:
第二设备向第一设备发送策略信息,所述策略信息指示所述第一设备在接收到目标报文后在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经目标操作后的多个字段,所述多个字段用于识别所述目标报文所属的网络流,所述目标操作为所述策略信息所指示的所述目标报文在多组操作中对应的操作,并且,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段。
9.一种数据处理方法,其特征在于,包括:
第二设备向第一设备发送策略信息,所述策略信息用于指示目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流;
所述第一设备在接收到所述目标报文后,根据所述策略信息在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经所述目标操作后的所述多个字段;
所述第一设备根据所述目标流表项处理所述目标报文。
10.一种报文处理装置,其特征在于,包括:
接收模块,用于接收目标报文;
获取模块,用于根据策略信息在哈希表中获取目标流表项,所述策略信息用于指示所述目标报文在多组操作中对应的目标操作,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段,所述多个字段用于识别所述目标报文所属的网络流,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经所述目标操作后的所述多个字段;
处理模块,用于根据所述目标流表项处理所述目标报文。
11.一种数据处理装置,其特征在于,包括:
发送模块,用于向第一设备发送策略信息,所述策略信息指示所述第一设备在接收到目标报文后在哈希表中查找目标流表项,所述哈希表存储有一个或多个流表项,所述目标流表项与所述目标报文的第一特征信息匹配,所述第一特征信息包括经目标操作后的多个字段,所述多个字段用于识别所述目标报文所属的网络流,所述目标操作为所述策略信息所指示的所述目标报文在多组操作中对应的操作,并且,所述目标操作用于屏蔽所述目标报文的多个字段中的目标字段。
12.一种计算机设备,其特征在于,包括处理器、存储器;
所述处理器用于执行所述存储器中存储的指令,以使所述计算设备执行如权利要求1至8中任一项所述的方法。
13.一种通信系统,其特征在于,包括通信链路、如权利要求10所述的报文处理装置和如权利要求11所述的数据处理装置,所述通信链路用于在所述报文处理装置和所述数据处理装置之间传输信息。
14.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机设备上运行时,使得所述计算机设备执行如权利要求1至8中任一项所述的方法。
CN202210974967.4A 2022-08-15 2022-08-15 一种数据处理方法、装置和系统 Pending CN117640513A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210974967.4A CN117640513A (zh) 2022-08-15 2022-08-15 一种数据处理方法、装置和系统
PCT/CN2023/106243 WO2024037243A1 (zh) 2022-08-15 2023-07-07 一种数据处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210974967.4A CN117640513A (zh) 2022-08-15 2022-08-15 一种数据处理方法、装置和系统

Publications (1)

Publication Number Publication Date
CN117640513A true CN117640513A (zh) 2024-03-01

Family

ID=89940689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210974967.4A Pending CN117640513A (zh) 2022-08-15 2022-08-15 一种数据处理方法、装置和系统

Country Status (2)

Country Link
CN (1) CN117640513A (zh)
WO (1) WO2024037243A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905311B (zh) * 2012-12-28 2017-02-22 华为技术有限公司 流表匹配方法和装置以及交换机
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
US9363178B2 (en) * 2013-12-18 2016-06-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus, and system for supporting flexible lookup keys in software-defined networks
CN111131050A (zh) * 2019-12-31 2020-05-08 盛科网络(苏州)有限公司 流表的匹配方法及装置
CN111966284B (zh) * 2020-07-16 2022-06-03 长沙理工大学 一种OpenFlow大规模流表弹性节能与高效查找系统及方法

Also Published As

Publication number Publication date
WO2024037243A1 (zh) 2024-02-22

Similar Documents

Publication Publication Date Title
US10389633B2 (en) Hash-based address matching
CN110301120B (zh) 流分类装置、方法和系统
US7436830B2 (en) Method and apparatus for wire-speed application layer classification of upstream and downstream data packets
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
EP3777055B1 (en) Longest prefix matching
JP5518135B2 (ja) データセンター向けの拡張可能なマルチキャスト転送方法および装置
CN112425131B (zh) 一种acl的规则分类方法、查找方法和装置
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
CN112667526B (zh) 一种访问控制列表电路实现方法及其电路
Yang et al. Fast OpenFlow table lookup with fast update
US7984235B2 (en) Reducing content addressable memory (CAM) power consumption counters
CN107749826B (zh) 一种数据包转发方法及系统
CN104253754A (zh) 一种acl快速匹配的方法和设备
CN111143427B (zh) 基于在网计算的分布式信息检索方法、系统与装置
Chang et al. Hash-based OpenFlow packet classification on heterogeneous system architecture
JP2023511257A (ja) パケット送信方法および装置、ならびに記憶媒体
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN117640513A (zh) 一种数据处理方法、装置和系统
CN114338529B (zh) 五元组规则匹配方法及装置
CN113328947B (zh) 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置
CN110636005B (zh) 知识中心网络的知识路由方法及装置
CN111222018A (zh) 一种基于tcam实现浮动字符串高速匹配方法
US11924102B2 (en) Minimizing deviation from average latency of table lookups
CN115996203B (zh) 网络流量分域方法、装置、设备和存储介质
CN116886605B (zh) 一种流表卸载系统、方法、设备以及存储介质

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