CN109347747B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN109347747B
CN109347747B CN201811345206.2A CN201811345206A CN109347747B CN 109347747 B CN109347747 B CN 109347747B CN 201811345206 A CN201811345206 A CN 201811345206A CN 109347747 B CN109347747 B CN 109347747B
Authority
CN
China
Prior art keywords
keyword
keywords
data packet
processing
packet
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
CN201811345206.2A
Other languages
English (en)
Other versions
CN109347747A (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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN201811345206.2A priority Critical patent/CN109347747B/zh
Publication of CN109347747A publication Critical patent/CN109347747A/zh
Application granted granted Critical
Publication of CN109347747B publication Critical patent/CN109347747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • 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/742Route cache; Operation thereof

Landscapes

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

Abstract

本发明公开了一种数据处理方法及装置。该方法包括:网络设备接收第一数据包;所述网络设备根据所述第一数据包确定K个关键字;K为大于0的整数;所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;所述网络设备根据所述K个查表结果,对所述第一数据包进行处理。

Description

一种数据处理方法及装置
技术领域
本发明涉及网络转发领域,尤其涉及一种数据处理方法及装置。
背景技术
网络设备从接收到数据包到处理完数据包,会分为若干个处理任务。现有技术中,这若干个处理任务由同一个线程依次完成执行。每次执行时,网络设备都需要从每个处理任务对应的数据表中,查找对应的数据记录,并根据这条数据记录执行处理任务。然后从下一个处理任务对应的数据表中,查找对应的数据记录。查询时,网络设备首先从一级缓存查询,如果从一级缓存中查询失败,则会从二级缓存中查询,如果二级缓存中查询仍然失败,则从双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic RandomAccess Memory,DDR SDRAM)DDR内存中查询。由于一级缓存、二级缓存的存储空间有限,不能存储所有处理任务对应的数据表,而每次从一级缓存、二级缓存查询数据表失败时,都需要耗费一定时间。这样以来,网络设备处理数据包的整个过程的时间较长。
因此,需要一种数据处理方法,降低网络设备处理数据包的时长。
发明内容
本发明实施例提供了一种数据处理方法及装置,解决了现有技术网络设备处理数据包的整个过程的时间较长的问题。
本发明实施例提供一种数据处理方法,该方法包括:
网络设备接收第一数据包;
所述网络设备根据所述第一数据包确定K个关键字;K为大于0的整数;
所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;
所述网络设备根据所述K个查表结果,对所述第一数据包进行处理。
可选的,所述方法中,所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果,包括:
述网络设备分别通过K个线程中的每个线程,在所述线程对应的业务表中查询与所述线程对应的关键字,根据所述关键字获取对应的查表结果。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量QoS信息。
可选的,所述K个关键字中包括第二关键字,所述第二关键字为所述第一数据包的用户账号,所述第二关键字对应的所述查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型和/或所述用户账号的记账等级。
可选的,所述K个关键字中包括第三关键字,所述第三关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第三关键字对应的查表结果为出接口、下一跳信息和/或二层链路封装信息。
可选的,所述方法还包括:
所述K个查表结果存储于所述网络设备的处理器的二级缓存中。
本发明实施例提供一种数据处理装置,该装置包括:
获取模块,用于接收第一数据包;
确定模块,用于根据所述第一数据包确定K个关键字;K为大于0的整数;
查询模块,用于在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;
处理模块,用于根据所述K个查表结果,对所述第一数据包进行处理。
可选的,所述查询模块,具体用于:
分别通过K个线程中的每个线程,在所述线程对应的业务表中查询与所述线程对应的关键字,根据所述关键字获取对应的查表结果。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量QoS信息。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的用户账号,所述第一关键字对应的所述查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型和/或所述用户账号的记账等级。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第一关键字对应的查表结果为出接口、下一跳信息和/或二层链路封装信息。
可选的,所述处理模块还用于:
将所述K个查表结果存储于所述装置的处理器的二级缓存中。
本发明实施例中,网络设备根据接收到的第一数据包中的K个关键字,同时在K个业务表中查询与所述K个关键字对应的K个查表结果,相对于依次在K个业务表中获取查询结果,降低了K个查表结果的时长。
附图说明
图1为本发明实施例中一种数据处理方法的步骤流程图;
图2为本发明实施例中一种数据处理方法的具体步骤流程图;
图3为本发明实施例中一种数据处理装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
下面结合说明书附图对本发明实施例作进一步详细描述。
网络设备从接收到数据包到处理完数据包,会分为若干个处理任务。现有技术中,这若干个处理任务由同一个线程依次完成执行,举例来说,这若干个处理任务由多核转发调度(Round to Complete,RTC)模型的一个线程执行(以下简称RTC线程)。其中,RTC模型是一个预先为多核中央处理器(Central Processing Unit,CPU)定义的调度指令模型。每次执行时,网络设备都需要从该处理任务对应的数据表中,查找对应的数据记录,并根据这条数据记录执行处理任务。
网络设备使用的多核处理器一般有两级缓存,分别是一级缓存和二级缓存。
一般来说,一级缓存的存储空间为几十千字节,二级缓存的存储空间为几兆到32兆字节。网络设备首先从一级缓存查询,如果从一级缓存中查询失败,则会从二级缓存中查询,如果二级缓存中查询仍然失败,则从DDR内存中查询。这是因为一级缓存、二级缓存的存储空间有限,不能存储所有处理任务对应的数据表。
网络设备每次从一级缓存、二级缓存查询数据表失败时,都需要耗费一定时间。一般情况下,如果数据在一级缓存内,那么处理器通常需要1个CPU周期可以读取到数据;如果数据在二级缓存内,那么处理器通常10几个CPU周期可以读取到数据,如果从DDR内存中读取,则需要100个以上的CPU周期才能读取到数据值。也就是说,网络设备从二级缓存中读取数据失败,会产生100个CPU周期以上的读取延迟。其中,CPU周期又称机器周期,机器内部各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU内部操作速度较快,CPU对主存操作速度较慢,因此用从主存读取一条指令字的最短时长来定义一个基准时间,这个基准时间就是CPU周期(机器周期)。一个指令周期常由若干CPU周期构成。
这样以来,当网络设备多次从DDR内存中读取数据时,整个处理过程的时间较长。因此,本发明实施例提出了一种数据处理方法,降低了网络设备处理数据包的时长。
如图1所示,为本发明实施例提出的一种数据处理方法的步骤流程图。
步骤101:网络设备接收第一数据包。
步骤102:所述网络设备根据所述第一数据包确定K个关键字。
K为大于0的整数。
步骤103:所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果。
步骤104:所述网络设备根据所述K个查表结果,对所述第一数据包进行处理。
上述步骤应用于RTC模型时,步骤101、步骤102、步骤104由RTC线程执行,步骤103由旁路查询引擎线程执行,其中,旁路查询引擎是一个查询关键字在数据表中对应查表结果的模块,比如一个查询软件。
所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每个查表结果包括处理所述第一数据包的处理参数。处理参数为处理第一数据包时需要的参数,举例来说,其中一个处理参数为下一跳信息,网络设备在处理第一数据包时,将第一数据包转发至下一跳信息所对应的网络设备。
步骤101之前,网络设备对所有可能在该网络设备上进行的处理任务进行注册,即对每个任务的执行规则、方式进行预先定义。
步骤101中,网络设备一次性接收一批次数据包,每批次数据包中有多个数据包。其中,网络设备需要对该批次数据包执行若干个处理任务,每个数据包中包括每个处理任务对应的关键字,网络设备根据该关键字对每个处理任务进行处理。关键字为该数据包的标识信息和参数信息,如源地址、目的地址等。对于同一个处理任务的同一批次的数据包,这些数据包有相同的关键字。需要说明的是,这若干个任务为在该网络设备注册的其中一部分任务或全部任务。本发明实施例仅以其中的一个第一数据包为例介绍,对该批次的其他数据包同样处理。
步骤101之后,网络设备判断第一数据包是否为本机数据包(即目的IP地址为本机IP地址的数据包),如果为本机数据包,则直接将第一数据包送至协议栈处理,否则执行步骤102。
步骤102中,设网络设备对第一数据包需要执行的处理任务为K个,第一数据包中包括了这K个处理任务中每个任务对应的关键字,网络设备对第一数据包处理的第一步,就是将第一数据包中对应的K个关键字提取出来。一种可行的提取方式为,第一数据包包括K个关键字,K个关键字中的每个关键字都记录在第一数据包的相应字段中。网络设备接收到第一数据包后,通过中央处理器执行一个读取数据的线程,从第一数据包中各关键字对应的字段,提取出这K个关键字。
步骤103中,每个任务都需要根据该任务对应的业务表中指定的数据即查表结果进行处理。其中,业务表为网络设备预先为每一个任务设定的处理信息的数据表。网络设备需要先在每个任务的业务表中,获取到该任务对应的数据。网络设备同时在K个业务表中,查询与所述K个关键字对应的K个查表结果,K个关键字中的每一个关键字,都与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应。具体地,网络设备在每个关键字对应的业务表中,对该关键字进行查询,获取该关键字在该关键字对应业务表中的查表结果。
一种可行的实现方式为,针对所述K个查表结果中的任一查表结果,该查表结果包括处理所述第一数据包的处理参数。其中,处理参数为网络设备处理数据包所需要的参数,包括但不限于第一数据包中包括的用户账号的最大带宽、用户账号的实时带宽、用户账号的服务类型、用户账号的记账等级。
在上述可行方式下,可选的,所述网络设备通过旁路查询引擎查询,包括K个线程,每个线程查询一个关键字的对应查表结果,K个线程并行执行。一种可选的具体实施方式为,针对K个线程中的每个线程,在第一业务表中查询与第一关键字对应的查表结果;所述第一业务表为该线程在所述K个业务表中对应的业务表;所述第一关键字为该线程在所述K个关键字中对应的关键字。在多线程并行查询K个关键字的方式下,获取所有关键字的查表结果的时间取决于查询时间最长的那个关键字,即从DDR内存获取查表结果,耗费时间为100个以上的CPU周期。如果按现有技术中的查询方法,则是查询多个关键字的时长之加。因此,多线程并行查询的总时长远远小于网络设备依次对这K个关键字进行查询的总时长。
上述可行的实现方式中,对K个关键字的查询情景,以服务质量配置、带宽计费、路由转发三种处理任务对应的三种具体情景为例:
(1)所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量(Quality ofService,QoS)信息。其中,五元组包括源互联网协议(Internet Protocol,IP)地址,源端口,目的IP地址,目的端口和传输层协议。QoS信息包括流分类、所述第一数据包的处理队列,所述第一数据包的令牌桶。
举例来说,五元组为:192.168.1.1 10000TCP 121.14.88.76 80就构成了一个五元组。其意义是,一个源IP地址为192.168.1.1的终端通过端口10000,利用传输控制协议(Transmission Control Protocol,TCP)协议,和IP地址为121.14.88.76,端口为80的终端进行连接。QoS信息包括优先级1、先来先服务、有50个令牌的令牌桶X。
(2)所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的用户账号,所述第一关键字对应的所述查表结果包括但不限于所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型、所述用户账号的记账等级。
举例来说,用户账号为a123,该用户账号的最大带宽为20兆字节每秒,实时带宽为5兆字节每秒,面向连接服务、记账等级1。
(3)所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第一关键字对应的查表结果为出接口、下一跳信息、二层链路封装信息。
其中,进入接口为网络设备接收第一数据包的接口,出接口为网络设备将第一数据包转发出去的接口。
举例来说,网络设备有100个接口,进入接口为接口10,出接口为接口20,源地址为192.168.1.1,目的地址为121.14.88.76,下一跳信息包括下一跳的IP地址192.168.1.2和下一跳网络设备的接口,二层链路封装信息为数据封装的格式。
所述K个查表结果存储于所述网络设备的处理器的二级缓存中。因为读取一级缓存的数据时间虽然较短,但存储空间比较小,只有十几千字节,可能无法存储K个查表结果;而读取DDR内存中的时间较长。所以综合读取时间和存储空间的因素,将K个查表结果存储在二级缓存中最合适。
步骤104中,所述网络设备根据所述K个查表结果,对所述第一数据包进行处理。需要说明的是,网络设备会判断注册的每个任务是否需要处理,如果有些注册的任务不被执行,则顺延判断下一个任务。
对应上述可行的实现方式中,K个关键字的三种具体情景,以网络设备对第一数据包的三种具体处理方式为例:
(1)网络设备按照所述流分类对所述第一数据包进行分类,并把所述第一数据包放入所述处理队列,根据所述令牌桶确定实时流量大小。
举例来说,网络设备将第一数据包分到优先级为1的数据流,并把对数据包放入先来先服务队列,再根据令牌桶X确定出实时流量为5兆字节每秒。
(2)网络设备按照所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型、所述用户账号的记账等级,确定该用户账号的带宽费用。
举例来说,带宽费用的计算原则为最大带宽、实时带宽、服务类型、记账等级四者对应的金额之和,最大带宽20兆字节每秒对应费用为0.1元每秒,实时带宽5兆字节每秒对应费用为0.5元每秒,面向连接服务的费用为0.2元每秒,记账等级为1的费用为0.2元每秒;因此该用户账号的宽带费用即为1元每秒。
(3)网络设备按照所述二层链路封装信息对所述第一数据包进行封装,并将所述第一数据包从所述出接口转发至下一跳信息对应的网络设备。
举例来说,网络设备按照封装格式对第一数据包进行封装,并将第一数据包从接口5,经过二层链路封装信息中定义的链路,转发至IP地址为192.168.1.2的网络设备。
下面结合图1,本发明实施例以上述三种具体情景为例,描述本发明实施例提出的一种数据处理方法对应的具体步骤。如图2所示,为本发明实施例中一种数据处理方法的具体步骤流程图。
步骤201:网络设备接收第一数据包。
步骤202:网络设备判断第一数据包是否为本机数据包。
若为本机数据包,执行步骤203,否则执行步骤204。
步骤203:网络设备将第一数据包发送至本机协议栈处理。
步骤204:网络设备获取第一数据包中服务质量配置、带宽计费、路由转发3个任务对应的3个关键字。
步骤205:网络设备查询服务质量配置对应关键字的查表结果。
步骤206:网络设备查询带宽计费对应关键字的查表结果。
步骤207:网络设备查询路由转发对应关键字的查表结果。
步骤208:网络设备根据服务质量配置对应关键字的查表结果,对第一数据包进行处理。
步骤209:网络设备根据带宽计费对应关键字的查表结果,对第一数据包进行处理。
步骤210:网络设备根据路由转发对应关键字的查表结果,对第一数据包进行处理。
上述步骤中,步骤201~步骤204、步骤208~步骤210由RTC线程执行,步骤205~步骤207由旁路查询引擎线程执行。
上述步骤中,步骤205~步骤207的执行是相互独立的,举例来说,步骤205~步骤207既可以同时执行,也可以按照步骤205、步骤206、步骤207的顺序依次执行;步骤208~步骤210的执行也是相互独立的,也可以按照一定次序执行或同时执行。
步骤201中,第一数据包需要被执行的3个任务,具体为服务质量配置、带宽计费、路由转发。
步骤202中,网络设备判断第一数据包是否为本机数据包。
若为本机数据包,执行步骤203,否则执行步骤204。
步骤203中,网络设备将第一数据包发送至本机协议栈处理。
步骤204中,服务质量配置任务对应的关键字包括五元组,带宽计费对应的关键字包括用户账号,路由转发对应的关键字包括第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址。
步骤205中,五元组对应的查表结果为QoS信息。
步骤206中,用户账号的查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型、所述用户账号的记账等级。
步骤207中,路由转发对应的关键字的查表结果为出接口、下一跳信息、二层链路封装信息。
步骤208中,网络设备按照所述流分类对所述第一数据包进行分类,并把所述第一数据包放入所述处理队列,根据所述令牌桶确定实时流量大小。
步骤209中,网络设备按照所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型、所述用户账号的记账等级,确定该用户账号的带宽费用。
步骤210中,网络设备按照所述二层链路封装信息对所述第一数据包进行封装,并将所述第一数据包从所述出接口转发至下一跳信息对应的网络设备。
本发明实施例中,网络设备根据接收到的第一数据包中的K个关键字,同时在K个业务表中查询与所述K个关键字对应的K个查表结果,相对于依次在K个业务表中获取查询结果,降低了K个查表结果的时长。
如图3所示,为本发明实施例提供的数据处理装置的结构示意图,该装置包括:
本发明实施例提供一种数据处理装置,该装置包括:
获取模块301,用于接收第一数据包;
确定模块302,用于根据所述第一数据包确定K个关键字;K为大于0的整数;
查询模块303,用于在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;
处理模块304,用于根据所述K个查表结果,对所述第一数据包进行处理。
可选的,所述查询模块303,具体用于:
分别通过K个线程中的每个线程,在所述线程对应的业务表中查询与所述线程对应的关键字,根据所述关键字获取对应的查表结果。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量QoS信息。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的用户账号,所述第一关键字对应的所述查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型和/或所述用户账号的记账等级。
可选的,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第一关键字对应的查表结果为出接口、下一跳信息和/或二层链路封装信息。
可选的,所述处理模块304还用于:
将所述K个查表结果存储于所述装置的处理器的二级缓存中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种数据处理方法,其特征在于,包括:
网络设备接收第一数据包;
所述网络设备根据所述第一数据包确定K个关键字;所述第一数据包包括K个处理任务中每个任务对应的关键字,K为大于0的整数;
所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;
所述网络设备根据所述K个查表结果,对所述第一数据包进行处理。
2.如权利要求1所述的方法,其特征在于,所述网络设备在K个业务表中并行查询与所述K个关键字对应的K个查表结果,包括:
所述网络设备分别通过K个线程中的每个线程,在所述线程对应的业务表中查询与所述线程对应的关键字,根据所述关键字获取对应的查表结果。
3.如权利要求1所述的方法,其特征在于,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组信息,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量QoS信息。
4.如权利要求1所述的方法,其特征在于,所述K个关键字中包括第二关键字,所述第二关键字为所述第一数据包的用户账号,所述第二关键字对应的所述查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型和/或所述用户账号的记账等级。
5.如权利要求1所述的方法,其特征在于,所述K个关键字中包括第三关键字,所述第三关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第三关键字对应的查表结果为出接口、下一跳信息和/或二层链路封装信息。
6.如权利要求1-5任一所述的方法,其特征在于,所述K个查表结果存储于所述网络设备的处理器的二级缓存中。
7.一种数据处理装置,其特征在于,包括:
获取模块,用于接收第一数据包;
确定模块,用于根据所述第一数据包确定K个关键字;所述第一数据包包括K个处理任务中每个任务对应的关键字,K为大于0的整数;
查询模块,用于在K个业务表中并行查询与所述K个关键字对应的K个查表结果;其中,所述K个关键字中的每一个关键字与所述K个业务表中的一个业务表对应,且与所述K个查表结果中的一个查表结果对应;其中,所述K个查表结果中的每一个查表结果包括处理所述第一数据包的处理参数;
处理模块,用于根据所述K个查表结果,对所述第一数据包进行处理。
8.如权利要求7所述的装置,其特征在于,所述查询模块,具体用于:
分别通过K个线程中的每个线程,在所述线程对应的业务表中查询与所述线程对应的关键字,根据所述关键字获取对应的查表结果。
9.如权利要求7所述的装置,其特征在于,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的五元组,所述第一关键字对应的所述查表结果为所述第一数据包的服务质量QoS信息。
10.如权利要求7所述的装置,其特征在于,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的用户账号,所述第一关键字对应的所述查表结果为所述用户账号的最大带宽、所述用户账号的实时带宽、所述用户账号的服务类型和/或所述用户账号的记账等级。
11.如权利要求7所述的装置,其特征在于,所述K个关键字中包括第一关键字,所述第一关键字为所述第一数据包的进入接口、所述第一数据包的源地址和所述第一数据包的目的地址,所述第一关键字对应的查表结果为出接口、下一跳信息和/或二层链路封装信息。
12.如权利要求7-11任一所述的装置,其特征在于,所述处理模块还用于:将所述K个查表结果存储于所述装置的处理器的二级缓存中。
CN201811345206.2A 2018-11-13 2018-11-13 一种数据处理方法及装置 Active CN109347747B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811345206.2A CN109347747B (zh) 2018-11-13 2018-11-13 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811345206.2A CN109347747B (zh) 2018-11-13 2018-11-13 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN109347747A CN109347747A (zh) 2019-02-15
CN109347747B true CN109347747B (zh) 2021-12-17

Family

ID=65314996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811345206.2A Active CN109347747B (zh) 2018-11-13 2018-11-13 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN109347747B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972240A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 快速包过滤处理方法及其装置
CN102957617A (zh) * 2011-08-18 2013-03-06 盛科网络(苏州)有限公司 实现多业务叠加的方法及装置
CN105591914A (zh) * 2014-10-21 2016-05-18 中兴通讯股份有限公司 一种openflow流表的查表方法和装置
CN106790170A (zh) * 2016-12-29 2017-05-31 杭州迪普科技股份有限公司 一种数据包过滤方法及装置
EP3276501A1 (en) * 2015-06-18 2018-01-31 Sanechips Technology Co., Ltd. Traffic classification method and device, and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060482B (zh) * 2007-03-31 2011-02-02 华为技术有限公司 一种路由查找方法和转发系统
CN104301228A (zh) * 2014-09-12 2015-01-21 中国电子科技集团公司第三十二研究所 网络处理器中查找模块的实现方法及系统
CN108737455B (zh) * 2017-04-13 2020-12-25 国家电网有限公司 网络业务识别装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972240A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 快速包过滤处理方法及其装置
CN102957617A (zh) * 2011-08-18 2013-03-06 盛科网络(苏州)有限公司 实现多业务叠加的方法及装置
CN105591914A (zh) * 2014-10-21 2016-05-18 中兴通讯股份有限公司 一种openflow流表的查表方法和装置
EP3276501A1 (en) * 2015-06-18 2018-01-31 Sanechips Technology Co., Ltd. Traffic classification method and device, and storage medium
CN106790170A (zh) * 2016-12-29 2017-05-31 杭州迪普科技股份有限公司 一种数据包过滤方法及装置

Also Published As

Publication number Publication date
CN109347747A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN112491901B (zh) 一种网络流量精细化筛选装置及方法
US8867395B2 (en) Accelerating data packet parsing
US6854117B1 (en) Parallel network processor array
US9516138B2 (en) Method and apparatus to process interest messages and data messages based on priorities in content-centric network (CCN)
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US8638793B1 (en) Enhanced parsing and classification in a packet processor
US8555374B2 (en) High performance packet processing using a general purpose processor
US10616101B1 (en) Forwarding element with flow learning circuit in its data plane
CN106878194B (zh) 一种报文处理方法和装置
US20210367896A1 (en) Service Packet Processing Method, Apparatus, and System
US8064359B2 (en) System and method for spatially consistent sampling of flow records at constrained, content-dependent rates
US20150256459A1 (en) Packet processing method and apparatus
US20050262294A1 (en) Method for policy matching using a hybrid TCAM and memory-based scheme
CN113411380A (zh) 基于fpga可编程会话表的处理方法、逻辑电路和设备
CN109347747B (zh) 一种数据处理方法及装置
US10033665B2 (en) System and a method of analysing a plurality of data packets
CN114124848B (zh) 一种基于vlid监控的交换机多监控端口方法
KR20170040325A (ko) 서비스 노드 능력 처리 방법, 장치, 서비스 분류기 및 서비스 제어기
US7725886B2 (en) Merger of tables storing protocol data unit related data
US9641437B2 (en) Packet relay device and packet relay method
CN112398735B (zh) 一种对报文进行批量处理的方法和装置
CN113765805B (zh) 基于调用的通信方法、装置、存储介质及设备
EP3893122A1 (en) Network processor and message processing method
KR101787899B1 (ko) 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법 및 상기 비트맵을 이용한 이름 프리픽스 검색 방법
KR100657107B1 (ko) 패킷 분류 방법과 장치

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
GR01 Patent grant
GR01 Patent grant