CN113259247A - 网络设备中的缓存装置和和缓存装置中的数据管理方法 - Google Patents
网络设备中的缓存装置和和缓存装置中的数据管理方法 Download PDFInfo
- Publication number
- CN113259247A CN113259247A CN202010308483.7A CN202010308483A CN113259247A CN 113259247 A CN113259247 A CN 113259247A CN 202010308483 A CN202010308483 A CN 202010308483A CN 113259247 A CN113259247 A CN 113259247A
- Authority
- CN
- China
- Prior art keywords
- memory
- action
- matching
- cache
- port
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种缓存装置中的数据管理方法和网络设备中的缓存装置。该缓存装置包括:第一存储器,用于存储该网络设备接收到的报文;第二存储器,用于存储N个匹配条件;缓存处理实体,用于在该第一匹配条件被满足时,执行第一动作。上述技术方案可以实现在缓存装置中查找数据并执行对应的动作。这样,可以丰富缓存装置的功能。
Description
本申请要求于2020年2月11日提交中国专利局、申请号为202010086721.4、申请名称为“网络状态获取方法、网络设备及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及信息技术领域,更具体地,涉及网络设备中的缓存装置和和缓存装置中的数据管理方法。
背景技术
现有网络,例如数据中心网络(Data Center Network,DCN)、城域网、核心网等,都由大量网络设备构成。网络中的流量情况复杂,时长会出现异常情况。例如网络拥塞、异常丢包等等。
当网络出现异常后,运维人员可以通过查询网络运行过程中产生的数据来确定发生异常的原因。但是,现有网络设备获取运行数据的能力太弱,无法满足运维人员的需求。
发明内容
本申请提供一种网络设备中的缓存装置和和缓存装置中的数据管理方法,能够丰富缓存装置的功能。
第一方面,本申请实施例提供一种网络设备中的缓存装置,该缓存装置包括:第一存储器,用于存储该网络设备接收到的报文;第二存储器,用于存储N个匹配条件,N为大于或等于1的正整数,该N个匹配条件包括第一匹配条件;缓存处理实体,用于在该第一匹配条件被满足时,执行第一动作。上述技术方案可以实现在缓存装置中查找数据并执行对应的动作。这样,可以丰富缓存装置的功能。例如可以根据用户的需要提供相应的数据,或者,执行特定的操作。
一种具体的设计中,该缓存装置还包括第三存储器,该第三存储器用于保存M个动作,该N个匹配条件中的每个条件与该M个动作中的一个相对应,该M个动作包括该第一动作。
一种具体的设计中,该M个动作也可以保存在第二存储器中。
一种具体的设计中,该第三存储器为随机接入存储器RAM。
一种具体的设计中,该N个匹配条件为用户配置的匹配条件。
可选的,该M个动作也可以由用户配置。这样,用户可以根据需要获取灵活的获取需要的数据,以更好地管理缓存装置和设置有该缓存装置的网络设备。
一种具体的设计中,该第二存储器为内容寻址存储器CAM或三态内容寻址存储器TCAM。
一种具体的设计中,该第一动作为记录该缓存装置的第一使用状态。
一种具体的设计中,该动作为不操作。
一种具体的设计中,该第一使用状态包括以下至少一项信息:出端口的发送速率;发送队列的长度;发送队列的时延;发送队列的缓存占用率;或者缓存空间的使用状况。
第二方面,本申请实施例提供一种缓存装置中的数据管理方法,该缓存装置包括第一存储器,第二存储器和缓存处理实体,该第一存储器存储该网络设备接收到的报文,该第二存储器存储N个匹配条件,N为大于或等于1的正整数,该N个匹配条件包括第一匹配条件;该缓存处理实体在该第一匹配条件被满足时,执行第一动作。上述技术方案可以实现在缓存装置中查找数据并执行对应的动作。这样,可以丰富缓存装置的功能。例如可以根据用户的需要提供相应的数据,或者,执行特定的操作。
一种具体的设计中,该缓存装置还包括第三存储器,该第三存储器保存M个动作,该N个匹配条件中的每个条件与该M个动作中的一个相对应,该M个动作包括该第一动作。
一种具体的设计中,该M个动作也可以保存在第二存储器中。
一种具体的设计中,该第三存储器为随机接入存储器RAM。
一种具体的设计中,该N个匹配条件为用户配置的匹配条件。
可选的,该M个动作也可以由用户配置。这样,用户可以根据需要获取灵活的获取需要的数据,以更好地管理缓存装置和设置有该缓存装置的网络设备。
一种具体的设计中,该第二存储器为内容寻址存储器CAM或三态内容寻址存储器TCAM。利用CAM或TCAM能够满足高速实时通信系统的极速查找需求。此外,利用TCAM还可以实现模糊匹配。
一种具体的设计中,该第一动作为记录该缓存装置的第一使用状态。
一种具体的设计中,该第一动作为不操作。
一种具体的设计中,该第一使用状态包括以下至少一项信息:出端口的发送速率;发送队列的长度;发送队列的时延;发送队列的缓存占用率;或者,缓存空间的使用状况。
第三方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储用于实现第二方面或第二方面任一项设计的方法的指令。
第四方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能的设计所述的方法。
第五方面,本申请提供一种网络设备,该网络设备包括上述第一方面或第一方面的任一种设计中的缓存装置。
附图说明
图1是一个网络的示意图。
图2是网络设备110的示意性结构框图。
图3是缓存装置202的示意性结构框图。
图4是根据本申请实施例提供的一种缓存装置中的数据管理方法的示意性流程图。
图5是缓存处理实体、第二存储器和第三存储器的示意性结构图。
图6是根据本申请实施例提供的缓存装置的结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例中的网络设备可以是具有路由功能的网络设备(例如路由器)或者具有交换功能的网络设备(例如交换机)。本申请实施例中的网络设备可以是有线通信网络中的网络设备,也可以是无线通信网络(例如全球移动通讯(Global System of Mobilecommunication,GSM)系统、码分多址(Code Division Multiple Access,CDMA)系统、长期演进(Long Term Evolution,LTE)系统以及未来5G网络等)中的核心网设备。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例中,有时候下标如W1可能会笔误为非下标的形式如W1,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
图1是一个网络的示意图。如图1所示,网络100中包括网络设备110、上游设备121,上游设备122,上游设备123,上游设备124,上游设备125,下游设备131,下游设备132,下游设备133,下游设备134和下游设备135。上游设备可以是终端设备,例如计算机、手机、平板电脑等,或者是网络设备。类似的,下游设备可以是终端设备或者网络设备。
如图1所示,网络设备110可以通过端口111接收来自于上游设备121,上游设备122和上游设备123的报文(packet)。网络设备110可以通过端口112接收来自于上游设备124的报文。网络设备110可以通过端口113接收来自于上游设备115的报文。
网络设备110可以通过端口114将报文发送至下游设备131和下游设备132。网络设备110可以通过端口115将报文发送至下游设备133,下游设备134和下游设备135。
可以理解的是,图1仅是为了帮助本领域技术人员理解本申请方法的一个网络的示意图,而并非是对能够应用本申请技术方案的网络的限制。例如,在一些实施例中,网络设备110还可以通过端口111接收来除了上游设备121和上游设备122以外的一个或者多个上游设备发送的报文。又如,网络设备110还可以通过另外一个端口接收来自于一个或多个上游设备发送的报文。又如,网络设备110还可以通过端口114向除下游设备131和下游设备132以外的一个或多个下游设备发送报文。又如,网络设备110还可以通过另外一个端口向一个或多个下游设备发送报文。
网络设备中用于接收来自于上游设备的报文的端口(例如端口111,端口112和端口113)可以称为网络设备的入端口(简称入端口)。网络设备中用于向下游设备发送报文的端口(例如端口114和端口115)可以称为网络设备的出端口(简称出端口)。
图2是网络设备110的示意性结构框图。如图2所示的网络设备110包括端口111至115,报文处理装置201和缓存装置202。
报文处理装置201用于处理从入端口(例如端口111至端口113)接收的报文,对接收的报文进行处理(例如修改出端口、修改报文优先级、增加丢弃使能位等)并将处理后的报文发送至缓存装置202。
缓存装置202接收来自于报文处理装置处理后的报文,缓存接收到的报文,并通过出端口(例如端口114和端口115)将报文发送至下游设备。
图3是缓存装置202的示意性结构框图。图3所示,缓存装置202包括入接口211,出接口212,缓存处理实体220,第一存储器231,第二存储器232和第三存储器233。
入接口211用于获取来自于报文处理装置201的报文,并将报文保存至第一存储器231。
第一存储器231保存的报文可以通过出接口212发送至网络设备的出端口。
缓存处理实体220用于监测缓存装置中的数据。
例如,缓存处理实体220可以用于监测入接口211接收到的报文,获取报文携带的信息。例如,缓存处理实体220可以获取以下信息中的至少一种:携带的显示拥塞标记(Explicit Congestion Notification,ECN)、服务类型(Type of Service,ToS),服务等级(Class of Service,CoS)、报文的源/目的互联网协议(Internet Protocol,IP)地址等。
又如,缓存处理实体220还可以用于监测第一存储器,获取第一存储器的信息。例如,缓存处理实体220可以获取以下信息中的至少一种:第一存储器的可用容量,第一存储器的已用容量,第一存储器的缓存占用率等。
又如,缓存处理实体220还可以用于监测出接口212,获取出接口212的发送信息。例如,缓存处理实体220可以获取以下信息中的至少一种:出接口212通过网络设备110的每个出端口的发送队列长度、每个出端口的发送队列的平均时延等。
在一些实施例中,缓存处理实体220可以是缓存装置中的逻辑电路。该逻辑电路可以称为缓存管理逻辑电路。
第二存储器232用于存储N个匹配条件,N为大于或等于1的正整数。
缓存处理实体220在获取到的信息满足第一匹配条件时,执行第一动作。该第一匹配条件为该N个匹配条件中的一个。
第三存储器233是可选的存储器。第三存储器233用于保存M个动作,该N个匹配条件中的每个条件与该M个动作中的一个相对应。该第一动作是该M个动作中的一个。第一匹配条件与第一动作对应。
在另一些实施例中,缓存装置202可以不包括第三存储器233。在此情况下,第二存储器232可以负责保存该M个动作。换句话说,第二存储器232可以同时保存该N个匹配条件和该M个动作。
下面结合图4所示的方法,对缓存装置202中的各个部分的功能进行介绍。
图4是根据本申请实施例提供的一种缓存装置中的数据管理方法的示意性流程图。
401,缓存处理实体220对该缓存装置202中的数据监测。
缓存装置202中的数据可以是缓存装置202运行过程中产生的数据(例如出端口队列长度、出端口时延、缓存占用率等),也可以是缓存装置202接收的报文携带的数据。
在一些实施例中,缓存处理实体220监测的数据可以是在出厂时配置好并且无法修改的。
在另一些实施例中,缓存处理实体220监测的数据也可以是由用户设置的。
可以理解的是,第二存储器232包括的N个匹配规则中的数据需要在缓存处理实体220监测范围内。
例如,缓存处理实体220监测的数据包括但不限于以下一项或多项:出端口队列长度、出端口发送报文的平均时延、缓存占用率、报文的ECN字段、报文的CoS字段、报文的ToS字段、报文的源IP地址字段。第二存储器保存的匹配规是与上述一个或多个数据的相关匹配规则。例如,第二存储器保存的匹配规则可以是缓存占用率大于80%。又如,第二存储器保存的匹配规则可以是出端口发送报文的平均时延大于100μs。又如,第二存储器保存的匹配规则可以是源IP地址为IP地址为198.101.1.1的报文。又如,第二存储器保存的匹配规则可以是携带ECN的报文。又如,第二存储器保存的匹配规则可以是缓存占用率大于80%,出端口发出报文的平均时延大于100μs。又如,第二存储器保存的匹配规则可以是源地址为198.101.1.1且携带有ECN的报文。
在一些实施例中,缓存处理实体220可以实时监测数据。
在另一些实施例中,缓存处理实体220可以周期性地监测数据。例如,缓存处理实体220可以每隔10分钟对该缓存装置中的数据进行监测,监控时间可以是2分钟。不需要进行监控的时间段可以称为静默周期,监控的时间段可以称为监控周期。
在另一些实施例中,缓存处理实体220可以在指定的时间段监测数据。例如,缓存处理实体220可以在每天9:00至22:00对该缓存装置中的数据进行监测,而在其他时间段停止监测。
在另一些实施例中,缓存处理实体220也可以是在缓存装置202获取到来自于报文处理装置201的报文的情况下监测数据。
在一些实施例中,用户可以配置缓存处理实体220的监测方式。换句话说,用户可以配置缓存处理实体220采用实时监测、周期性监测还是指定时间段监测中的一种对缓存装置中的数据进行监测。若缓存处理实体220采用周期性监测,则该用户还可以配置静默周期和监控周期的时长。若缓存处理实体220采用指定时间段监测,则该用户还可以配置需要监测的时间段。
在另一些实施例中,缓存处理实体220使用的监测方式也可以是默认的。换句话说,缓存处理实体220只可以采用实时监测、周期性监测还是指定时间段监测中的一种对网络数据进行监测,而用户无法选择缓存处理实体220的检测方式。静默周期的时长、监控周期的时长以及制定时间段可以是由用户配置也可以是默认的。
在一些实施例中,缓存处理实体220可以在监测到数据后就确定是否有满足的匹配条件。
在另一些实施例中,缓存装置202还可以包括一个第四存储器(图3中未示出)。缓存处理实体220可以先将监测到的数据保存至第四存储器,并读取保存在第四存储器的数据,并确定读取的数据是否满足匹配条件。读取第四存储器的方式可以是周期性的也可以是非周期性的(例如可以是在缓存装置202接收到报文的情况下读取第四存储器)。缓存处理实体220根据第一动作获取的数据也可以保存在第四存储器中。
缓存处理实体220中可以包括多个子模块,不同的子模块的功能不相同。例如,子模块1可以用于获取发送队列的时延,子模块2可以用于获取缓存空间的占用率,子模块3可以用于将获取的数据写入第四存储器并读取第四存储器保存的数据,子模块4可以用于将获取的数据的格式转换为第二存储器232能够处理的格式等。
402,确定缓存处理实体220监测的数据是否满足第二存储器232保存的N个匹配条件中的一个。
403,如果缓存处理实体220监测的数据满足第二存储器保存的N个匹配条件中的一个,则缓存处理实体220可以执行与满足的匹配条件对应的动作。缓存处理实体220在执行完动作后,可以继续监测缓存装置的数据
如果缓存处理实体220监测的数据不满足第二存储器保存的N个匹配条件中的一个,则处理器继续监测缓存装置的数据。
匹配条件和动作可以是由用户配置的。用户可以配置N个查询规则,该N个查询规则中的每个查询规则可以包括一个匹配条件和一个动作。本申请实施例对用户配置查询规则的方式并不限定。例如,用户可以通过命令行的方式设置该N个查询规则。又如,用户可以通过图像用户界面(graphical user interface,GUI)的方式设置该N个查询规则。不同的查询规则可以有相同的动作。
例如,如果用户如果希望获取第一存储器231的缓存占用率大于80%时,端口114的队列长度,则用户可以设置相应的查询规则。该查询规则中的匹配条件为:第一存储器231的缓存占用率大于80%;该查询规则中的动作为:获取端口114的队列长度。
又如,如果用户希望获取出端口发出报文的平均时延100μs时,该出端口的队列长度,则该用户可以设置相应的查询规则。该查询规则中的匹配条件为:出端口发出的报文平均时延大于100μs,该查询规则中的动作为:获取该出端口(即平均时延大于100μs的出端口)的队列长度。
又如,用户希望获取当接收到来自于IP地址为198.101.1.1的设备的报文时,该第一存储器231的缓存占用率,则该用户可以设置相应的查询规则。该查询规则中的匹配条件为:来自于IP地址为198.101.1.1的报文,该查询规则中的动作为:该获取第一存储器231的缓存占用率。
又如,用户希望获取携带有显示拥塞标记(Explicit Congestion Notification,ECN)的报文时,该网络设备用于发送该报文的出端口的队列长度,则该用户可以设置相应的查询规则。该查询规则中的匹配条件为:报文携带ECN,该查询规则中的动作为:获取发送该报文的出端口的队列长度。
上述实施例中,查询规则中的匹配条件只包括一元信息,例如,缓存占用率阈值、出端口发出报文的平均时延、IP地址和特定标记中的一个。在另一些实施例中,匹配条件可以包括多元信息。
例如,查询规则中匹配条件可以是:第一存储器231的缓存占用率大于80%,出端口发出报文的平均时延大于100μs;该查询规则中的动作为获取该出端口(即平均时延大于100μs的出端口)的队列长度。
又如,查询规则中的匹配条件可以是:源IP地址为198.101.1.1且携带有ECN的报文;该查询规则的动作为:获取发送该报文的出端口的队列长度。
上述实施例中,匹配条件的值都是一个明确的值,例如80%,100等。这种匹配方式可以称为精确匹配。在另一些实施例中,匹配条件中的值可以是一个模糊的值。例如,符号*可以表示任意值均可匹配。例如,匹配条件可以是:源IP地址为198.101.1.*且携带有ECN的报文;动作为:获取发送该报文的出端口的队列长度。这样,只要报文的源IP地址的前24位为198.101.1且携带ECN,那么该报文就满足该匹配条件。这种可以匹配多个值的匹配方式可以称为模糊匹配。
在一些实施例中,缓存处理实体220支持监测的数据类型是有限的。换句话说,该缓存处理实体220只能在有限范围内来配置希望监测的数据。如果超出支持范围,那么该网络设备可以向用户报错。换句话说,该网络设备在获取到用户配置的N个查询规则后,可以先确定该缓存处理实体220是否支持该N个查询规则;若支持,则可以保存该N个查询规则;若对该N个查询规则中的一个或多个不支持,则可以提示用户不支持的查询规则。
在另一些实施例中,匹配条件和动作也可以是在缓存装置出厂的时候预设好的,并且用户无法进行修改。
在一些实施例中,查询规则中的匹配条件可以保存在第二存储器232中,查询规则中的动作可以保存在第三存储器233中。
例如,该第二存储器232中可以保存匹配信息,该匹配信息包括N个匹配条目,该N个匹配条目与N个查询规则一一对应,该N个匹配条目中的每个匹配条目用于保存对应的查询规则中的匹配条件。例如,表1是一个匹配信息的示意。
表1
如表1所示的匹配信息中包括两个匹配条目。两个匹配条目中的第一个匹配条目中包括的匹配条件是:第一存储器231的缓存占用率大于80%,端口115发出的报文的平均时延大于100μs。两个匹配条目中的第二个匹配条目是:来自于IP地址为198.101.1.1的报文。
该第三存储器233可以保存动作信息。在一些实施例中,该动作信息包括N个动作条目,该N个动作条目与该N个查询规则一一对应,该N个动作条目中的每个动作条目包括对应查询规则中的动作。例如,表2是一个动作信息的示意。
表2
动作条目 |
记录端口115的队列长度 |
记录第一存储器231的缓存占用率 |
如表2所示的动作信息中包括两个动作条目。两个动作条目中的第一个动作条目包括的动作是记录端口115的队列长度。两个动作条目中的第二个动作条目包括的动作是记录第一存储器231的缓存占用率。
该第二存储器232中保存的N个匹配条目与该第三存储器233保存的N个动作条目一一对应,每个动作条目包括的动作与对应的匹配条目包括的匹配条件属于同一个查询规则。
例如,如表1所示的两个匹配条目中的第一个匹配条目与如表2所示的两个动作条目中的第一个动作条目对应;如表1所示的两个匹配条目中的第二个匹配条目与如表2所示的两个动作条目中的第二个动作条目对应。包括第一个匹配条目和第一个动作条目的查询规则为:若缓存占用率大于80%且端口115发出的报文的平均时延大于100μs,则记录端口115的队列长度。包括第二个匹配条目和第二个动作条目的查询规则为:若接收到来自于IP地址为198.101.1.1的报文,则记录第一存储器231的缓存占用率。
在另一些实施例中,不同的查询规则中的动作可能是相同的。在此情况下,该第三存储器233保存动作信息中包括的动作条目的数目可以少于查询规则的数目。
例如,用户可以设置三个查询规则,该三个查询规则分别是:
查询规则1:若端口115发出的报文的平均时延大于100μs,则记录端口115的队列长度;查询规则2:若接收到来自于IP地址为198.101.1.1的报文,则记录第一存储器231的缓存占用率;查询规则3:若缓存占用率大于80%,则记录端口115的队列长度。
可以看出,上述三个查询规则中的查询规则1和查询规则3的动作是相同的。在此情况下,该第二存储器232中可以保存匹配信息可以如表3所示,该第三存储器233保存的动作信息可以如表4所示。
表3
匹配条目 | 索引 |
端口115发出的报文的平均时延大于100μs | 1 |
来自于IP地址为198.101.1.1的报文 | 2 |
第一存储器231的缓存占用率大于80% | 1 |
表4
索引 | 动作条目 |
1 | 记录端口115的队列长度 |
2 | 记录第一存储器231的缓存容量 |
如表3所示的匹配信息中除了包括匹配条目外,还包括索引。如果不同的查询规则包含相同的动作,那么匹配信息中包含有这些查询规则中的匹配条件的匹配条目对应的索引是相同的。如上所述,查询规则1和查询规则3的动作都是记录端口115的队列长度。因此,查询规则1对应的匹配条目(以下简称匹配条目1)的索引和查询规则3对应的匹配条目(以下简称匹配条目3)的索引均为1。查询规则2的动作不同于查询规则1和查询规则3的动作,因此,对应于查询规则2的匹配条目(以下简称匹配条目2)的索引不同于匹配条目1和匹配条目3的索引。
如表4所示,每个动作条目可以有一个索引。对应相同的查询规则的匹配条目和动作条目的索引是相同的。这样,可以利用该索引确定匹配条目和动作条目的对应关系。例如,匹配条目1和匹配条目3的索引为1,那么与匹配条目1和匹配条目3对应的动作为索引为1的动作条目;匹配条目2的索引为2,那么与匹配条目2对应的动作为索引为2的动作条目。这样,缓存处理实体220可以在监控到的数据与匹配条目匹配的情况下,可以根据索引确定需要执行的动作,以获取目标信息。
在另一些实施例中,动作信息中包括的动作条目与匹配信息中包括的匹配条目的数目可以是相同的。还以上述查询规则1,查询规则2和查询规则3为例。匹配信息包含的匹配条目可以如表5所示,动作信息包括的动作条目可以如表6所示。
表5
匹配条目 | 索引 |
端口1发出的报文的平均时延大于100μs | 1 |
来自于IP地址为198.101.1.1的报文 | 2 |
第一存储器231的缓存占用率大于80% | 3 |
表6
索引 | 动作条目 |
1 | 记录端口1的队列长度 |
2 | 记录第一存储器231的缓存容量 |
3 | 记录端口1的队列长度 |
如表5所示,虽然查询规则1和查询规则3包含的动作是相同的,但是匹配条目1(即对应于查询规则1的匹配条目)的索引与匹配条目3(即对应于查询规则3对应的匹配条目)的索引是不同的。
类似的,如表6所示,动作条目1(即对应于查询规则1的动作条目)的索引和动作条目3(即对应于查询规则3的动作条目)的索引是不同的。
如表5和表6所示,对应于同一个查询规则的匹配条目的索引和动作条目的索引是相同的。例如,匹配条目1的索引和动作条目1的索引是相同的;匹配条目2(即对应于查询规则2的匹配条目)的索引与动作条目2(即对应于查询规则2的动作条目)的索引是相同的;匹配条目3的索引和动作条目3的索引是相同的。这样,利用索引可以确定出匹配条目和动作条目的对应关系。缓存处理实体220可以在监控到的数据与匹配条目匹配的情况下,可以根据索引确定需要执行的动作。
在一些实施例中,第二存储器232除了保存的对应于用户配置的查询规则的匹配条目外,还可以包括一个或多个不对应于用户配置的查询规则的匹配条目。换句话说,该一个或多个匹配条目中包括的匹配条件不属于用户配置的查询规则。为了便于区分,以下将对应于用户配置的查询规则的匹配条目称为第一类匹配条目,将不对应于用户配置的查询规则的匹配条目称为第二类匹配条目。
类似的,第三存储器233除了保存的对应于用户配置的查询规则的动作条目外,还可以包括一个或多个不对应于用户配置的查询规则的动作条目。换句话说,该一个或多个动作条目中包括的动作不属于用户配置的查询规则。为了便于区分,以下将对应于用户配置的查询规则的动作条目称为第一类动作条目,将不对应于用户配置的查询规则的匹配条目称为第二类动作条目。
如表1、表3和表5所示的匹配信息中包括的匹配条目都是该第一类匹配条目。如表2、表4和表6所示的动作信息中包括的动作条目都是该第一类动作条目。
该第二类匹配条目与第二类动作条目对应。该第二类动作条目包括的动作为不操作。还以上述查询规则1,查询规则2和查询规则3为例,匹配信息中包括的匹配条目可以如表7所示,动作信息中包括的动作条目如表8所示。
表7
匹配条目 | 索引 |
端口115发出的报文的平均时延大于100μs | 1 |
来自于IP地址为198.101.1.1的报文 | 2 |
第一存储器231的缓存占用率大于80% | 3 |
端口115发出的报文的平均时延小于或等于100μs | 4 |
来自于IP地址为198.101.1.1以外的报文 | 5 |
第一存储器231的缓存占用率小于或等于80% | 6 |
表8
索引 | 动作条目 |
1 | 记录端口115的队列长度 |
2 | 记录第一存储器231的缓存容量 |
3 | 记录端口115的队列长度 |
4 | 不操作 |
5 | 不操作 |
6 | 不操作 |
表7中的前三个匹配条目与表5中的前三个匹配条目相同,表7中的前三个动作条目与表6中的前三个动作条目相同。网络设备使用这些匹配条目和动作条目的方法与表5和表6所示的方法相同,为了简洁,在此就不再赘述。
表7中的后三个匹配条目为第二类匹配条目,表8中的后三个动作为第二类动作。这样,该网络设备可以在监控到网络设备的数据与后三个匹配条目匹配的情况下,可以根据索引确定需要执行的动作,即确定可以不执行任何操作。
如表7和表8所示,动作相同的动作条目的索引也不一样。在另一些实施例中,如果动作相同,那么动作条目和匹配条目的索引可以是相同的。还以上述查询规则1,查询规则2和查询规则3为例,匹配信息中包括的匹配条目可以如表9所示,动作信息中包括的动作条目如表10所示。
表9
匹配条目 | 索引 |
端口115发出的报文的平均时延大于100μs | 1 |
来自于IP地址为198.101.1.1的报文 | 2 |
第一存储器231的缓存占用率大于80% | 1 |
端口115发出的报文的平均时延小于或等于100μs | 3 |
来自于IP地址为198.101.1.1以外的报文 | 3 |
第一存储器231的缓存占用率小于或等于80% | 3 |
表10
索引 | 动作条目 |
1 | 记录端口115的队列长度 |
2 | 记录第一存储器231的缓存容量 |
3 | 不操作 |
从表9和表10可以看出,如果动作相同,那么相应的动作条目和匹配条目的索引是相同的。
通常情况下,网络设备处理报文的数据量是非常大的。如果采用通用的中央处理器(central processor unit,CPU)可能并不能及时采集用户需求的信息。上述实施例中利用第二存储器232保存的匹配信息对网络设备运行过程中的数据进行监控,利用第三存储器233确定在满足匹配条件时采集的信息,这样可以及时采集用户需求的信息。
该第二存储器232可以是传统的只有两种状态的内容寻址存储器(contentaddressable memory,CAM)或者三态内容寻址存储器(ternary content addressablememory,TCAM)等内容寻址存储器。该第三存储器233可以是随机存储器(random accessmemory,RAM)。RAM可以是静态随机存取存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、或者同步动态随机存储器(synchronous dynamic random-access memory,SDRAM)等。
传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。线型查找法需要遍历表中的所有表项;二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;哈希表查找法是软件查找中计较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统的极速查找需求。
利用CAM/TCAM进行查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的6倍。因此,利用CAM/TCAM保存匹配信息以确定与查询条件匹配的数据可以更好地满足高速实时通信系统的需求。
结合图5对如何利用TCAM和RAM确定缓存处理实体220需要执行的动作进行介绍。
图5是缓存处理实体、第二存储器和第三存储器的示意性结构图。
如图5所示,第二存储器232是一个TCAM。第二存储器232中包括输入输出单元2321和存储单元2322。第三存储器233包括输入输出单元2331,地址译码单元2332和存储单元2333。
一种具体的实施方式中,存储单元2322保存的表项格式如表11所示。
表11
缓存占用率 | 端口115发出报文的平均时延 | 索引 |
0000(占用率0-10%) | 0000(0-1μs) | 0 |
0001(占用率10%-20%) | 0001(1-2μs) | 1 |
0010(占用率20%-30%) | 0010(2-5μs) | 2 |
0011(占用率30%-40%) | 0011(5-10μs) | 3 |
0100(占用率40%-50%) | 0100(10-20μs) | 4 |
0101(占用率50%-60%) | 0101(20-50μs) | 5 |
0110(占用率60%-70%) | 0110(50-100μs) | 6 |
0111(占用率70%-80%) | 0111(100-200μs) | 7 |
1001(占用率80%-90%) | 1000(200-500μs) | 8 |
1001(占用率90%-100%) | 1001(大于500) | 9 |
表11中长度四个比特信息(例如,0000,0001,0010等)为TCAM中保存的值,括号中的内容为该四个比特信息的含义。例如,缓存占用率中的“0000(占用率0-10%)”表示TCAM中保存的对应于缓存占用率的值为0000,含义是占用率大于或等于0且小于10%;端口1发出报文的平均时延中的“0000(0-1μs)”表示TCAM中保存的对应于端口1发出报文的平均时延值为0000,含义是端口115发出报文的平均时延大于或等于0μs且小于1μs。
缓存处理实体220在监测到数据后,可以将监测到的数据的格式转换为与TCAM中存储单元2322保存的表项的格式。
例如,如果缓存处理实体220监测的缓存占用率为86%且端口115发出报文的平均时延为230μs,则缓存处理实体220可以将监测到的数据转换为10001000。
如上所述,在一些实施例中,缓存处理实体220在监测到数据后可以将监测的数据保存至第四存储器,然后再从第四存储器读取数据进行匹配。在一些实施例中,缓存处理实体220可以先对监测到的数据进行格式转换,转换为TCAM能够处理的格式,然后将转换后的数据保存至第四存储器。在另一些实施例中,缓存处理实体220可以直接将监测到的数据保存至第四存储器,并在从第四存储器读取数据后,进行格式转换。
转换格式后的数据可以称为关键字(KEY)。缓存处理实体220将KEY发送至第二存储器232的输入输出单元2321。输入输出单元2321将KEY发送至存储单元2322。存储单元2322保存的多个表项(例如表11中所示的9个表项)可以同时比较获取到的KEY与表项是否匹配。如果有匹配的表项,就把该表项所在的地址作为输出,称之为索引(Index)。输入输出单元2321在获取到索引后,可以将索引发送至第三存储器233的输入输出单元2331。
输入输出单元2331在获取到索引后,可以将索引发送至地址译码单元2332。地址译码单元2332将获取到的索引转换为具体地址,读取存储单元2333中与该具体地址对应的单元中保存的信息。读取到的信息就是第三存储器保存的M个动作中的一个。输入输出单元2331可以将读取到的信息(可以称为数据(Data))发送至处理器。
例如,表12是RAM保存的内容。
表12
索引 | 数据 |
0 | 不操作 |
1 | 不操作 |
2 | 不操作 |
3 | 不操作 |
4 | 不操作 |
5 | 不操作 |
6 | 不操作 |
7 | 不操作 |
8 | 记录端口115的队列长度 |
9 | 记录端口115的队列长度 |
假设输入到第二存储器232中需要匹配的KEY为10001000。那么根据表11可以得到对应的索引为8。从表12中可以确定索引8对应的数据为记录端口115的队列长度。这样,第三存储器233可以将记录端口115的队列长度反馈给缓存处理实体220。缓存处理实体220可以执行该动作,即记录端口115的队列长度。
在另一些实施例中,缓存装置202中也可以利用一个存储器(例如第二存储器232)来保存匹配信息和动作信息。例如,该存储器可以利用表13来实现表7和表8保存的内容。
表13
匹配条目 | 动作条目 |
端口115发出的报文的平均时延大于100μs | 记录端口115的队列长度 |
来自于IP地址为198.101.1.1的报文 | 记录第一存储器231的的缓存占用率 |
缓存占用率大于80% | 记录端口115的队列长度 |
端口115发出的报文的平均时延小于或等于100μs | 不操作 |
来自于IP地址为198.101.1.1以外的报文 | 不操作 |
第一存储器231的缓存占用率小于或等于80% | 不操作 |
如表13所示,该存储器可以直接同时保存匹配条目和动作条目,并且保存匹配条目和动作条目的对应关系。
缓存处理实体220根据动作获取的信息可以称为目标信息。
在一些实施例中,缓存处理实体220获取的目标信息可以只包括动作对应的信息。例如,如果动作是记录端口115的队列长度,那么该目标信息可以只包括端口115的队列长度。
在另一些实施例中,缓存处理实体220获取的目标信息可以包括动作对应的信息,满足匹配条件的数据的信息。假设用户希望获取缓存占用率大于80%时端口115的队列长度,那么如果当前缓存占用率大于80%,那么缓存处理实体220可以获取端口115的队列长度。该目标信息除了端口115的队列信息外,还包括当前缓存占用率。例如,若当前缓存占用率为94%,端口115的队列长度为300,则该目标信息可以包括:端口115的队列长度:100;缓存占用率94%。
在另一些实施例中,缓存处理实体220获取的目标信息可以包括:动作对应的信息,满足匹配条件的数据以及时间信息。假设用户希望获取缓存占用率大于80%时端口115的队列长度,那么如果当前缓存占用率大于80%,那么缓存处理实体220可以获取端口115的队列长度。该目标信息除了端口115的队列长度外,还包括当前缓存占用率以及时间。例如,若当前缓存占用率为94%,端口115的队列长度为300,时间为2020年3月16日17:37:28,则该目标信息可以包括:端口115的队列长度:300;缓存占用率94%;2020年3月16日17:37:28。
该目标信息也可以保存在第四存储器中。或者,在另一些实施例中,缓存装置202中还可以包括一个第五存储器(图3中未示出)。该目标信息可以保存在该第五存储器中。
上述实施例中,缓存处理实体220执行的动作是记录缓存装置202的使用状态或者是不操作(no operation)。缓存处理实体220可以记录的缓存装置202的使用状态可以包括以下至少一项信息:出端口的发送速率;发送队列的长度;发送队列的时延;发送队列的缓存占用率;或者缓存空间的使用状况。上述信息可以是能够获取的所有队列或端口等信息,也可以是特定的一个或多个特定队列或端口的信息,可以是实时信息,也可以是平均信息。例如,出端口的发送速率可以是所有出端口的发送速率,和/或,所有出端口的发送速率的平均值。又如,出端口的发送速率可以是特定的出端口的发送速率,例如端口115的发送速率。
缓存处理实体220执行的动作所记录的信息可以是由缓存装置202产生的信息(例如发送队列长度、缓存占用率等),也可以是由缓存装置202以外的实体产生的信息。网络设备的中除缓存实体以外的其他实体产生的一些信息(入端口的接收速率,入端口的最大接收速率、出端口的发送速率、端口数目等信息)可以保存在第四存储器中。缓存处理实体220执行的动作还可以是获取这些数据保存在第四存储器中的信息。
在另一些实施例中,缓存处理实体220执行的动作也可以是一些操作。例如,删除新接收到的部分或全部报文,或者,清空第一存储器的部分或全部等。
图6是根据本申请实施例提供的缓存装置的结构框图。图6所示的缓存装置600包括:缓存管理逻辑电路601,存储器602,TCAM 603,RAM 604和收发器605。
缓存管理逻辑电路601是缓存装置600的控制中心,提供执行指令、执行中断动作、提供定时功能和其他功能的排序和处理设施。可选的,缓存管理逻辑电路601包括一个或多个中央处理器(CPU)。。可选的,缓存装置600可以包括多个处理器。缓存管理逻辑电路601可以是单核(单CPU)处理器,也可以是多核(多CPU)处理器。缓存管理逻辑电路601还可以专用集成芯片(application specific integrated circuit,ASIC),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)、其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片等。
缓存管理逻辑电路601执行的程序代码可以存储在存储器602中。处理器601通过控制其他程序或进程的执行,控制与周边设备的通信,从而控制缓存装置600的运行,以此实现上述方法的操作步骤。
存储器602还可以用于存储用户配置的查询规则。
收发器605用于接收来自于上游设备的报文,并将报文发送至下游设备。
存储器602可以用于存储报文和缓存管理逻辑电路601监测到的数据。
TCAM 603可以用于存储匹配信息。
RAM 604可以用于存储动作信息。
本申请实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路。该芯片可以执行上述方法实施例中的方法。该芯片可以是如图3所示的缓存装置202。
本申请实施例还提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以实现上述方法实施例中的方法。该芯片系统可以是如图3所示的缓存装置202。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的方法。
本申请实施例还提供一种网络设备,该网络设备可以包括如图3或图6所示的缓存装置。
作为本实施例的一种形式,提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的方法。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可以理解,除非特殊说明,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种网络设备中的缓存装置,其特征在于,所述缓存装置包括:
第一存储器,用于存储所述网络设备接收到的报文;
第二存储器,用于存储N个匹配条件,N为大于或等于1的正整数,所述N个匹配条件包括第一匹配条件;
缓存处理实体,用于在所述第一匹配条件被满足时,执行第一动作。
2.如权利要求1所述的缓存装置,其特征在于,所述缓存装置还包括第三存储器,所述第三存储器用于保存M个动作,所述N个匹配条件中的每个条件与所述M个动作中的一个相对应,所述M个动作包括所述第一动作。
3.如权利要求2所述的缓存装置,其特征在于,所述第三存储器为随机接入存储器RAM。
4.如权利要求1至3中任一项所述的缓存装置,其特征在于,所述N个匹配条件为用户配置的匹配条件。
5.如权利要求1至4中任一项所述的缓存装置,其特征在于,所述第二存储器为内容寻址存储器CAM或三态内容寻址存储器TCAM。
6.如权利要求1至5中任一项所述的缓存装置,其特征在于,所述第一动作为记录所述缓存装置的第一使用状态。
7.如权利要求1至5中任一项所述的缓存装置,其特征在于,所述第一动作为不操作。
8.根据权利要求6所述的缓存装置,其特征在于,所述第一使用状态包括以下至少一项信息:出端口的发送速率;
发送队列的长度;
发送队列的时延;
发送队列的缓存占用率;或者
缓存空间的使用状况。
9.一种缓存装置中的数据管理方法,其特征在于,所述缓存装置包括第一存储器,第二存储器和缓存处理实体,所述第一存储器存储所述网络设备接收到的报文,所述第二存储器存储N个匹配条件,N为大于或等于1的正整数,所述N个匹配条件包括第一匹配条件;
所述缓存处理实体在所述第一匹配条件被满足时,执行第一动作。
10.如权利要求9所述的方法,其特征在于,所述缓存装置还包括第三存储器,所述第三存储器保存M个动作,所述N个匹配条件中的每个条件与所述M个动作中的一个相对应,所述M个动作包括所述第一动作。
11.如权利要求10所述的缓存方法,其特征在于,所述第三存储器为随机接入存储器RAM。
12.如权利要求9至10中任一项所述的方法,其特征在于,所述N个匹配条件为用户配置的匹配条件。
13.如权利要求9至12中任一项所述的方法,其特征在于,所述第二存储器为内容寻址存储器CAM或三态内容寻址存储器TCAM。
14.如权利要求9至13中任一项所述的方法,其特征在于,所述第一动作为记录所述缓存装置的第一使用状态。
15.如权利要求9至13中任一项所述的方法,其特征在于,所述第一动作为不操作。
16.根据权利要求14所述的方法,其特征在于,所述第一使用状态包括以下至少一项信息:出端口的发送速率;
发送队列的长度;
发送队列的时延;
发送队列的缓存占用率;或者
缓存空间的使用状况。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于如权利要求9至16中任一项所述的方法的指令。
18.一种网络设备,其特征在于,包括权利要求1-8任一项所述的缓存装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010086721 | 2020-02-11 | ||
CN2020100867214 | 2020-02-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259247A true CN113259247A (zh) | 2021-08-13 |
CN113259247B CN113259247B (zh) | 2022-11-25 |
Family
ID=77220005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010308483.7A Active CN113259247B (zh) | 2020-02-11 | 2020-04-18 | 网络设备中的缓存装置和和缓存装置中的数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259247B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7245623B1 (en) * | 2002-01-08 | 2007-07-17 | Cisco Technology, Inc. | System and method using hierarchical parallel banks of associative memories |
CN102404219A (zh) * | 2011-11-25 | 2012-04-04 | 北京星网锐捷网络技术有限公司 | 一种分配缓存的方法、装置及网络设备 |
US20140047185A1 (en) * | 2012-08-07 | 2014-02-13 | Dell Products L.P. | System and Method for Data Redundancy Within a Cache |
CN103685061A (zh) * | 2013-11-29 | 2014-03-26 | 华为技术有限公司 | 缓存数据控制方法和装置 |
CN106789729A (zh) * | 2016-12-13 | 2017-05-31 | 华为技术有限公司 | 一种网络设备中的缓存管理方法及装置 |
CN107959637A (zh) * | 2017-10-23 | 2018-04-24 | 新华三技术有限公司 | 报文缓存方法及装置 |
CN108170373A (zh) * | 2017-12-19 | 2018-06-15 | 北京云知声信息技术有限公司 | 一种数据缓存方法、装置及数据传输系统 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
CN108874688A (zh) * | 2018-06-29 | 2018-11-23 | 深圳市风云实业有限公司 | 一种报文数据缓存方法及装置 |
CN109327403A (zh) * | 2018-12-04 | 2019-02-12 | 锐捷网络股份有限公司 | 一种流控方法、装置、网络设备及存储介质 |
CN110046286A (zh) * | 2018-01-16 | 2019-07-23 | 马维尔以色列(M.I.S.L.)有限公司 | 用于搜索引擎缓存的方法和装置 |
-
2020
- 2020-04-18 CN CN202010308483.7A patent/CN113259247B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7245623B1 (en) * | 2002-01-08 | 2007-07-17 | Cisco Technology, Inc. | System and method using hierarchical parallel banks of associative memories |
CN102404219A (zh) * | 2011-11-25 | 2012-04-04 | 北京星网锐捷网络技术有限公司 | 一种分配缓存的方法、装置及网络设备 |
US20140047185A1 (en) * | 2012-08-07 | 2014-02-13 | Dell Products L.P. | System and Method for Data Redundancy Within a Cache |
CN103685061A (zh) * | 2013-11-29 | 2014-03-26 | 华为技术有限公司 | 缓存数据控制方法和装置 |
CN106789729A (zh) * | 2016-12-13 | 2017-05-31 | 华为技术有限公司 | 一种网络设备中的缓存管理方法及装置 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
CN107959637A (zh) * | 2017-10-23 | 2018-04-24 | 新华三技术有限公司 | 报文缓存方法及装置 |
CN108170373A (zh) * | 2017-12-19 | 2018-06-15 | 北京云知声信息技术有限公司 | 一种数据缓存方法、装置及数据传输系统 |
CN110046286A (zh) * | 2018-01-16 | 2019-07-23 | 马维尔以色列(M.I.S.L.)有限公司 | 用于搜索引擎缓存的方法和装置 |
CN108874688A (zh) * | 2018-06-29 | 2018-11-23 | 深圳市风云实业有限公司 | 一种报文数据缓存方法及装置 |
CN109327403A (zh) * | 2018-12-04 | 2019-02-12 | 锐捷网络股份有限公司 | 一种流控方法、装置、网络设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
高海源: "在网络分流器中利用TCAM用户空间实现组合规则的算法", 《科技创新导报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113259247B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088951B2 (en) | Flow classification apparatus, methods, and systems | |
US10097378B2 (en) | Efficient TCAM resource sharing | |
CN1543149B (zh) | 网络环境中的流控制 | |
US11888744B2 (en) | Spin-leaf network congestion control method, node, system, and storage medium | |
CN110032449A (zh) | 一种优化gpu服务器的性能的方法及装置 | |
US8725873B1 (en) | Multi-server round robin arbiter | |
CN105975433B (zh) | 一种报文处理方法及装置 | |
US20190149470A1 (en) | Method and network device for handling packets in a network by means of forwarding tables | |
US9590922B2 (en) | Programmable and high performance switch for data center networks | |
CN109684269B (zh) | 一种pcie交换芯片内核及工作方法 | |
CN110995616B (zh) | 一种大流量服务器的管理方法、设备及可读介质 | |
Boutros et al. | Build fast, trade fast: FPGA-based high-frequency trading using high-level synthesis | |
EP3917099A1 (en) | Stream classification method and device | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN113542043B (zh) | 网络设备的数据采样方法、装置、设备及介质 | |
CN113259247B (zh) | 网络设备中的缓存装置和和缓存装置中的数据管理方法 | |
CN110830376B (zh) | 一种int报文的处理方法及装置 | |
US9590897B1 (en) | Methods and systems for network devices and associated network transmissions | |
CN113647070A (zh) | 发送器和接收器、串行器和解串器以及用于发送和接收、串行化和解串化的方法 | |
US20220360488A1 (en) | Network switch and abnormity detecting method | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN113542152A (zh) | 网络设备中处理报文的方法和相关设备 | |
CN114079634A (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
RU2755987C1 (ru) | Способ организации сетевого процессорного устройства |
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 |