CN112187665A - 一种报文处理的方法及装置 - Google Patents

一种报文处理的方法及装置 Download PDF

Info

Publication number
CN112187665A
CN112187665A CN202011043822.XA CN202011043822A CN112187665A CN 112187665 A CN112187665 A CN 112187665A CN 202011043822 A CN202011043822 A CN 202011043822A CN 112187665 A CN112187665 A CN 112187665A
Authority
CN
China
Prior art keywords
message
cache
partition
processing flow
message processing
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.)
Granted
Application number
CN202011043822.XA
Other languages
English (en)
Other versions
CN112187665B (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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202011043822.XA priority Critical patent/CN112187665B/zh
Publication of CN112187665A publication Critical patent/CN112187665A/zh
Application granted granted Critical
Publication of CN112187665B publication Critical patent/CN112187665B/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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

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

Abstract

本说明书提供一种报文处理方法,预先将报文缓存区划分为多个报文缓存分区,每个报文缓存分区用于缓存一种报文处理流程的报文;当接收到报文后,先判断该报文的报文处理流程,根据该报文的报文处理流程,确定缓存该报文的报文缓存分区,缓存后进行后续报文处理。

Description

一种报文处理的方法及装置
技术领域
本说明书涉及网络设备技术领域,尤其涉及一种报文处理的方法及装置。
背景技术
套接字缓存(Socket Buffer,SKB)是linux TCP/IP协议栈中的关键数据结构,用于对网络设备接收的报文进行缓存,以便网络设备对报文进行处理。
在实际应用中,通常会预先在网络设备的CPU内存中创建报文缓存区,报文缓存区包含一定数量的缓存单元buffer,每个缓存单元包含一个SKB。当网络设备接收到报文时,CPU会在报文缓存区中取出一个缓存单元用于缓存该报文,在CPU结束对该报文处理时,CPU再将该缓存单元归还至报文缓存区。
然而,有时网卡驱动程序或者CPU的业务处理模块可能运行异常,无法正常完成对报文的处理,导致越来越多的报文长时间处于无法完成处理的状态,这意味着越来越多的缓存单元无法被归还到报文缓存区进行复用,直至报文缓存区中的缓存单元耗尽,此时,网络设备无法再正常接收报文进行处理。
发明内容
为克服上述网络设备无法正常接收报文进行处理的问题,本说明书提供了方法及装置。
本说明书提供了一种报文处理的方法,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述方法包括:
获取待处理的报文,并确定所述报文对应的报文处理流程;
从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
本说明书还提供了一种报文处理的装置,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
缓存单元获取模块,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
本说明书实施例的技术方案,预先将报文缓存区划分为多个报文缓存分区,每个报文缓存分区用于缓存一种报文处理流程的报文;当接收到报文后,先判断该报文的报文处理流程,根据该报文的报文处理流程,确定缓存该报文的报文缓存分区,缓存后进行后续报文处理。
通过本说明书实施例的技术方案,可将报文缓存区划分为多个报文缓存分区,且各报文缓存分区互不影响,当某一报文处理流程将对应的报文缓存分区的缓存单元耗尽时,其他报文缓存分区并不会被影响,设备可继续正常接收及处理其他报文处理流程对应的报文。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书示出的一种报文处理方法的流程图。
图2是本说明书示出的一具体实施例流程图。
图3是本说明书示出的一种报文处理装置的示意图。
图4是本说明书示出的一种缓存单元获取模块的示意图。
图5是本说明书示出的另一种缓存单元获取模块的示意图。
图6是本说明书示出的一种报文处理装置的示意图。
图7是本说明书示出的一种报文处理装置的示意图。
图8是本说明书示出的一种报文处理装置的示意图。
图9是本说明书示出的一种网络设备硬件结构示意图。
具体实施方式
在实际应用中,网络设备的CPU通常支持若干不同的报文处理流程,不同的报文处理流程用于处理不同类型的报文。其中,有些报文处理流程会涉及对报文的转发,在这些报文处理流程中,CPU会调用网卡驱动程序对报文进行转发处理。
对报文的处理通常包括业务处理、丢弃处理以及转发处理,从广义上讲,网络设备支持的报文处理流程可以大致包括以下三类:
(1)CPU不对报文进行业务处理,直接调用网卡驱动程序对报文进行转发处理。
(2)CPU对报文进行业务处理,并在业务处理后对报文进行丢弃处理。
(3)CPU对报文进行业务处理,并在业务处理后调用网卡驱动程序对报文进行转发处理。
对于第(1)类报文处理流程,CPU通常是在网络设备接收到报文时从报文缓存区取出一个缓存单元缓存该报文,接着并不会对该报文进行业务处理,在调用网卡驱动程序将报文转发出去之前,将该报文占用的缓存单元归还给报文缓存区。
对于第(2)类报文处理流程,CPU通常是在网络设备接收到报文时从报文缓存区取出一个缓存单元缓存该报文,接着对该报文进行业务处理,处理完成后,直接丢弃该报文,并将该报文占用的缓存单元归还给报文缓存区。
对于第(3)类报文处理流程,CPU通常是在网络设备接收到报文时从报文缓存区取出一个缓存单元缓存该报文,接着对该报文进行业务处理,处理完成后,在调用网卡驱动程序将处理完成的报文转发出去之前,将该报文占用的缓存单元归还给报文缓存区。
需要说明的是,在实际应用中,CPU通常包含多个业务处理模块,不同业务处理模块负责对报文执行不同的业务处理逻辑(不同类型的报文往往对应于不同的业务处理逻辑)。因此,对于第(2)或(3)类报文处理流程来说,基于具体的业务处理逻辑不同,又可以进一步分为更多报文处理流程。可见,从狭义上讲,报文处理流程的划分是多种多样的,本领域技术人员可以根据实际工程需要,为网络设备配置多种报文处理流程。
然而,倘若CPU某个业务处理模块运行异常(或者网卡驱动程序运行异常),那么就会导致该业务处理模块对应的报文处理流程(或者涉及报文转发处理的报文处理流程)无法推进至完成状态,这意味着基于该异常的报文处理流程进行处理的报文所占用的缓存单元一直会处于被占用状态,无法被归还给报文缓存区进行复用。而在实践中,网络设备往往会源源不断地接收该异常的报文处理流程对应的大量报文,这就会导致越来越多的缓存单元无法被归还到报文缓存区进行复用(这种情形通常被称为buffer泄露),直至报文缓存区中的缓存单元耗尽。另一方面,正常的其他报文处理流程对应的报文往往会分配不到缓存单元,因而难以被网络设备正常接收与处理。
基于以上,在本说明书的一个或多个实施例中,为了尽可能降低由异常的报文处理流程导致的buffer泄露问题的负面影响,将报文缓存区划分成包含多个缓存分区的缓存分区集合,缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程。网络设备在接收到报文时,根据该报文对应的报文处理流程,选择从相应的第一类缓存分区中取出缓存单元分配给该报文。如此一来,不同报文处理流程对应的报文所占用的缓存单元来源于不同的缓存分区,即便某个报文处理流程异常,也仅仅会耗尽该报文处理流程对应的缓存分区中的缓存单元,并不会影响网络设备正常接收与处理其他未异常的报文处理流程对应的报文。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种报文处理的方法的流程示意图,包括以下步骤:
在步骤102、获取待处理的报文,并确定所述报文对应的报文处理流程。
图1所示方法流程的执行主体可以是网络设备,具体可以是网络设备的CPU。网络设备可以是linux网络中的设备,其例如可以是交换机、路由器等。
在有些实施例中,可以预先根据实际需要对网络设备所支持的报文处理流程进行配置。
报文缓存区通常是在网络设备的CPU内存中开辟的一个内存区域。可以将报文缓存区划分成包含多个缓存分区的缓存分区集合。缓存分区集合至少包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元。
需要说明的是,可以根据实际应用中网络设备接收不同报文处理流程对应的报文数量,来确定不同第一类缓存分区中缓存单元的数量。一般而言,某个报文处理流程对应的报文数量越多,相应的第一类缓存分区中缓存单元的数量就越多。
在有些实施例中,可以预先为不同的报文处理流程分配流程标识,网络设备存储包含不同流程标识与不同缓存分区标识之间的对应关系。
在实际应用中,可以从广义的报文处理流程角度划分各第一类缓存分区,各第一类缓存分区分别对应的报文处理流程包括:不对报文进行业务处理,并转发报文;以及,对报文进行业务处理,并转发报文;以及,对报文进行业务处理,并丢弃报文。
此外,也可以从狭义的报文处理流程角度划分各第一类缓存分区,举例来说,各第一类缓存分区分别对应的报文处理流程可以包括:
(1)不对报文进行业务处理,并转发报文。网络设备的主要功能是对报文的转发,网络设备接收的主要是此类报文,处理速率以及报文数量都很大,因此可为该缓存分区分配总缓存单元数量的三分之一。
(2)安全业务报文对应的报文处理流程,如安全域业务报文、黑白名单业务报文、流量清洗业务报文、流量审计业务报文、防攻击业务报文等。此类报文主要是对网络中的流量的安全管理,处理速率与报文数量同样很大,因此可为该缓存分区分配总缓存单元数量的三分之一。
(3)地址转换ARP协议报文对应的报文处理流程。网络设备接收ARP协议报文后,可能需要进行大量ARP学习,因此可为该缓存分区分配总缓存单元数量的二十分之一。
(4)动态协议报文对应的报文处理流程,如边界网关协议(Border GatewayProtocol,BGP)报文、开放式最短路径优先((Open Shortest Path First,OSPF)路由协议报文、多业务传送平台(Multi-Service Transport Platform,MSTP)报文、链路汇聚控制协议(Link Aggregation Control Protocol,LACP)报文等。此类报文处理速率慢,且接收时间固定,一般处理完成后即可丢弃,因此可为该缓存分区分配总缓存单元数量的百分之一。
在有些实施例中,可以根据待处理的报文中包含的相关信息确定对应的报文处理流程。例如,对于协议报文,可以根据协议报文中包含的协议号,确定对应的报文处理流程。对于业务报文,可以根据报文中包含的业务标识,确定对应的报文处理流程。
在步骤104、从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元。
在步骤106、基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
通过图1所述的方法,不同报文处理流程对应的报文所占用的缓存单元来源于不同的缓存分区,即便某个报文处理流程异常,也仅仅会耗尽该报文处理流程对应的缓存分区中的缓存单元,并不会影响网络设备正常接收与处理其他未异常的报文处理流程对应的报文。
此外,在有些实施例中,缓存分区集合还可以包括至少一个第二类缓存分区。如果通过步骤104,发现不存在确定的报文处理流程所对应的第一类缓存分区,则从所述至少一个第二类缓存分区取出一个缓存单元。也就是说,第二类缓存分区的作用是针对未分配缓存分区的报文处理流程(这种报文处理流程对应的报文数量往往不大)对应的报文,提供缓存单元。
在有些实施例中,缓存分区集合还可以包括至少一个第三类缓存分区。若确定的报文处理流程所对应的第一类缓存分区中的缓存单元耗尽,则从所述至少一个第三类缓存分区中取出一个缓存单元。也就是说,第三类缓存分区的作用是针对缓存单元耗尽的某个第一类缓存分区,替代该第一类缓存分区提供缓存单元。
在有些实施例中,缓存分区集合还可以包括至少一个第四类缓存分区,针对新增的报文处理流程,将一个第四类缓存分区作为该新增的报文处理流程对应的第一类缓存分区。也就是说,如果新增了对应的报文数量较大的报文处理流程,那么需要为该报文处理流程分配一个第一类缓存分区,为了应对这种情况,可以在之前划分报文缓存区的时候,预留至少一个第四类缓存分区,当需要为新增的报文处理流程分配第一类缓存分区时,将一个第四类缓存分区作为该新增的报文处理流程对应的第一类缓存分区。
另外,在有些实施例中,可以针对每个缓存分区,监测该缓存分区中缓存单元的数量;若监测到的数量少于该缓存分区对应数量阈值,则发出警告消息(例如,向用户发送“当前5号缓存分区的buffer不足”的警告消息)。
在具体实现上,可以为每个缓存分区分配一个计数器,将该计数器的初始化值设定为该缓存分区中缓存单元的总量。每当从该缓存分区取出一个缓存单元时,计数器减1,每当向该缓存分区放回一个缓存单元时,计数器加1。CPU监测到计数器的数量小于该缓存分区对应数量阈值时,发出警告消息。
在有些实施例中,也可以针对每个被占用的缓存单元,检测该缓存单元的被占用时长;若监测到的被占用时长大于该缓存单元所属的缓存分区对应的时长阈值,则发出警告消息(例如,向用户发送“当前5号缓存分区中1号buffer泄露”的警告消息)。
在具体实现上,可以为每个缓存单元分配一个计时器。每当该缓存单元被取出时,计时器开始计时,每当该缓存单元被放回时,计时器复位。CPU监测到该缓存单元的计时器的计时时长大于该缓存单元所属的缓存分区对应的时长阈值,发出警告消息。
在一具体实施例中,如图2所示,网络设备接收报文后,缓存分区选择器在诸多缓存分区中选出相应的缓存分区,该缓存分区接收到任务后,先对本缓存分区的缓存单元数量进行检测,判断缓存单元数量是否足够,当确定缓存单元数量足够后,分配缓存单元用以缓存报文,同时开始监测该缓存单元的被占用的时长。
首先判断该报文是否需要进行业务处理,若不需要进行业务处理,则直接利用驱动程序转发报文即可,并将该报文占用的缓存单元归还;如需要进行业务处理,进行业务处理后,判断处理后的报文是否需要转发处理,若不需要进行转发处理,则直接丢弃报文,并归还该报文占用的缓存单元,若需要进行转发处理,则利用驱动程序转发该报文,并归还该报文占用的缓存单元。
本说明书还提供了一种报文处理装置,如图3所示。将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块301,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
缓存单元获取模块302,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块303,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
如图4,所述缓存单元获取模块包括:
缓存单元获取子模块一3021,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
缓存单元获取子模块二3022,用于若不存在确定的报文处理流程所对应的第一类缓存分区,则从所述至少一个第二类缓存分区取出一个缓存单元。
如图5,所述缓存单元获取模块包括:
缓存单元获取子模块一3021,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
缓存单元获取子模块三3023,用于若确定的报文处理流程所对应的第一类缓存分区中的缓存单元耗尽,则从所述至少一个第三类缓存分区中取出一个缓存单元。
提供了一种报文处理装置,如图6所示,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区和至少一个第四类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块601,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
第一类缓存分区增加模块602,用于针对新增的报文处理流程,将一个第四类缓存分区作为该新增的报文处理流程对应的第一类缓存分区;
缓存单元获取模块603,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块604,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
提供了一种报文处理装置,如图7所示,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块701,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
缓存单元获取模块702,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块703,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理;
缓存单元数量监测模块704,用于针对每个缓存分区,监测该缓存分区中缓存单元的数量;
警告模块705,用于若监测到的数量少于该缓存分区对应数量阈值,则发出警告消息。
提供了一种报文处理装置,如图8所示,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块801,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
缓存单元获取模块802,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块803,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理;
缓存单元占用时长监测模块804,用于针对每个被占用的缓存单元,检测该缓存单元的被占用时长;
警告模块805,用于若监测到的数量少于该缓存分区对应数量阈值,则发出警告消息。
本说明书报文处理装置的实施例可以应用在网络设备上,例如路由器、交换机等。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图9所示,为本说明书实施例文件处理装置所在计算机设备的一种硬件结构图,除了图9所示的处理器1010、存储器1020、输入/输出接口1030、以及通信接口1040之外,实施例中报文处理装置所在的设备,通常根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本说明书还提供一种网络设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器被配置为执行上述任一方法。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种报文处理的方法,其特征在于,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述方法包括:
获取待处理的报文,并确定所述报文对应的报文处理流程;
从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
2.如权利要求1所述方法,其特征在于,各第一类缓存分区分别对应的报文处理流程包括:
不对报文进行业务处理,并转发报文;
以及
对报文进行业务处理,并转发报文;
以及
对报文进行业务处理,并丢弃报文。
3.如权利要求1所述方法,其特征在于,各第一类缓存分区分别对应的报文处理流程包括:
不对报文进行业务处理,并转发报文;
以及
安全业务报文对应的报文处理流程;
以及
地址转换ARP协议报文对应的报文处理流程;
以及
动态协议报文对应的报文处理流程。
4.如权利要求1所述方法,其特征在于,所述缓存分区集合还包括至少一个第二类缓存分区;
所述方法还包括:
若不存在确定的报文处理流程所对应的第一类缓存分区,则从所述至少一个第二类缓存分区取出一个缓存单元。
5.如权利要求1所述方法,其特征在于,所述缓存分区集合还包括至少一个第三类缓存分区;
所述方法还包括:
若确定的报文处理流程所对应的第一类缓存分区中的缓存单元耗尽,则从所述至少一个第三类缓存分区中取出一个缓存单元。
6.如权利要求1所述的方法,其特征在于,所述缓存分区集合还包括至少一个第四类缓存分区;
所述方法还包括:
针对新增的报文处理流程,将一个第四类缓存分区作为该新增的报文处理流程对应的第一类缓存分区。
7.如权利要求1所述方法,其特征在于,所述方法还包括:
针对每个缓存分区,监测该缓存分区中缓存单元的数量;
若监测到的数量少于该缓存分区对应数量阈值,则发出警告消息。
8.如权利要求1所述方法,其特征在于,所述方法还包括:
针对每个被占用的缓存单元,监测该缓存单元的被占用时长;
若监测到的被占用时长大于该缓存单元所属的缓存分区对应的时长阈值,则发出警告消息。
9.一种报文处理的装置,其特征在于,将报文缓存区划分成包含多个缓存分区的缓存分区集合;其中,所述缓存分区集合包括多个第一类缓存分区,不同的第一类缓存分区对应于不同的报文处理流程,每个第一类缓存分区包含若干缓存单元;所述装置包括:
报文获取模块,用于获取待处理的报文,并确定所述报文对应的报文处理流程;
缓存单元获取模块,用于从确定的报文处理流程所对应的第一类缓存分区中取出一个缓存单元;
报文处理模块,用于基于取出的缓存单元缓存所述报文,并对所述报文进行处理。
10.一种网络设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器被配置为执行如权利要求1-8任一所述方法。
CN202011043822.XA 2020-09-28 2020-09-28 一种报文处理的方法及装置 Active CN112187665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011043822.XA CN112187665B (zh) 2020-09-28 2020-09-28 一种报文处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011043822.XA CN112187665B (zh) 2020-09-28 2020-09-28 一种报文处理的方法及装置

Publications (2)

Publication Number Publication Date
CN112187665A true CN112187665A (zh) 2021-01-05
CN112187665B CN112187665B (zh) 2023-04-07

Family

ID=73947269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011043822.XA Active CN112187665B (zh) 2020-09-28 2020-09-28 一种报文处理的方法及装置

Country Status (1)

Country Link
CN (1) CN112187665B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938325A (zh) * 2021-12-16 2022-01-14 紫光恒越技术有限公司 一种处理攻击性流量的方法、装置、电子设备及存储设备
CN115442173A (zh) * 2022-06-07 2022-12-06 北京车和家信息技术有限公司 车辆报文转发、处理方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222443A (zh) * 2008-01-30 2008-07-16 杭州华三通信技术有限公司 一种处理报文的方法和网络设备
CN102916903A (zh) * 2012-10-25 2013-02-06 华为技术有限公司 缓存调整方法及装置
CN103384252A (zh) * 2013-07-18 2013-11-06 北京星网锐捷网络技术有限公司 网络设备防攻击的方法和装置、网络设备
CN105337896A (zh) * 2014-07-25 2016-02-17 华为技术有限公司 报文处理方法和装置
WO2016078341A1 (zh) * 2014-11-19 2016-05-26 中兴通讯股份有限公司 一种缓存分配方法、装置及网络处理器
CN107426113A (zh) * 2017-09-13 2017-12-01 迈普通信技术股份有限公司 报文接收方法及网络设备
CN108965148A (zh) * 2018-06-27 2018-12-07 新华三信息安全技术有限公司 一种处理器及报文处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222443A (zh) * 2008-01-30 2008-07-16 杭州华三通信技术有限公司 一种处理报文的方法和网络设备
CN102916903A (zh) * 2012-10-25 2013-02-06 华为技术有限公司 缓存调整方法及装置
CN103384252A (zh) * 2013-07-18 2013-11-06 北京星网锐捷网络技术有限公司 网络设备防攻击的方法和装置、网络设备
CN105337896A (zh) * 2014-07-25 2016-02-17 华为技术有限公司 报文处理方法和装置
WO2016078341A1 (zh) * 2014-11-19 2016-05-26 中兴通讯股份有限公司 一种缓存分配方法、装置及网络处理器
CN107426113A (zh) * 2017-09-13 2017-12-01 迈普通信技术股份有限公司 报文接收方法及网络设备
CN108965148A (zh) * 2018-06-27 2018-12-07 新华三信息安全技术有限公司 一种处理器及报文处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938325A (zh) * 2021-12-16 2022-01-14 紫光恒越技术有限公司 一种处理攻击性流量的方法、装置、电子设备及存储设备
CN113938325B (zh) * 2021-12-16 2022-03-18 紫光恒越技术有限公司 一种处理攻击性流量的方法、装置、电子设备及存储设备
CN115442173A (zh) * 2022-06-07 2022-12-06 北京车和家信息技术有限公司 车辆报文转发、处理方法、装置、电子设备及存储介质
CN115442173B (zh) * 2022-06-07 2024-02-06 北京车和家信息技术有限公司 车辆报文转发、处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112187665B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
EP3920480A1 (en) Message forwarding path determination method, network node, and system
EP3624408B1 (en) Method for generating forwarding table entry, controller, and network device
CN112311673B (zh) 在采用分段路由的网络中使用和处理每切片分段标识符
CN112087386B (zh) 一种报文处理的方法、设备和系统
US20130132763A1 (en) Network disruption prevention when virtual chassis system undergoes splits and merges
CN112187665B (zh) 一种报文处理的方法及装置
CN106656857B (zh) 一种报文限速的方法和装置
CN108737217B (zh) 一种抓包方法及装置
EP1482693B1 (en) Enhanced virtual router redundancy protocol
US20240106751A1 (en) Method and apparatus for processing detnet data packet
CN104754070A (zh) 地址解析协议表项学习方法、装置及网络设备
CN111314236A (zh) 报文转发方法及装置
US6973503B2 (en) Preventing at least in part control processors from being overloaded
CN111669422B (zh) 报文的传输方法和设备
EP3355520B1 (en) System and method for traffic steering and analysis
CN102045234B (zh) 路由地址映射信息的缓存及超时处理方法和隧道路由器
CN114978600B (zh) 异常流量处理方法、系统、设备及存储介质
CN109547352B (zh) 报文缓存队列的动态分配方法和装置
CN109474525B (zh) 报文的处理方法、装置、设备及可读存储介质
EP4383667A1 (en) Information verification method and device, storage medium, and electronic device
US10887282B1 (en) Determining synchronization of filter rules (e.g., on iptable filter tables on Linux kernal) across firewall filter application restarts
CN113542114A (zh) 路由配置方法和路由配置装置
CN110855566A (zh) 上行流量的牵引方法和装置
CN110166359B (zh) 一种报文转发方法及装置
CN110365667B (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
GR01 Patent grant
GR01 Patent grant