分组代理中的异常检测和预测的制作方法

文档序号:16995215发布日期:2019-03-02 01:18阅读:175来源:国知局
分组代理中的异常检测和预测的制作方法

本申请要求于2016年5月17日提交的标题为“networklearninginavisibilityfabric”的印度临时申请no.201641016960的优先权。本申请还要求于2017年3月22日提交的标题为“anomalydetectionandpredictioninapacketbroker”的美国非临时申请no.15/466,732的优先权。这些申请的全部内容为了所有目的通过引用整体并入本文。



背景技术:

在计算机联网领域,可见性网络(也被称为“可见性结构”)是有助于监测和分析流经另一个“核心”网络(例如,生产网络)的流量的一种类型的网络。部署可见性网络的原因各不相同,可能包括网络管理和优化、商业情报/报告、合规性验证、服务保证、安全监测,等等。

图1描绘了根据实施例的示例可见性网络100。如图所示,可见性网络100包括部署在核心网络104内的多个接头102。接头102被配置为复制数据并控制在核心网络104中的网络元件之间交换的流量并将复制的流量转发到分组代理106(注意的是,除了接头102之外或代替接头102,核心网络104中的一个或多个路由器或交换机可以被委托任务以使用它们各自的span或镜像功能将数据/控制流量复制和转发到分组代理106)。分组代理106可以对复制的流量执行各种分组处理功能,诸如移除协议报头、基于配置的规则对分组进行过滤/分类,等等。然后,分组代理106可以将处理后的流量转发到一个或多个分析探测器/工具108,其可以根据可见性网络100的业务目标/目的对流量进行各种计算和分析(例如,计算关键性能指标(kpi)、检测流量异常、生成报告等)。

在其中分析探测器/工具108被配置为执行流量异常检测的情况下,这些探测器/工具的现有实现通常遵循涉及以下的方法:(1)记录/存储从核心网络104复制的所有流量数据(即,异常和非异常流量数据),以及(2)随后对存储的数据执行事后分析以识别异常。虽然这种方法是有效的,但它也存在许多低效率和缺点。例如,考虑其中核心网络104是非常高容量的网络(诸如,例如,移动服务提供商网络)的场景。在这种情况下,分析探测器/工具108为了存储和分析从核心网络104复制的所有流量所需的计算和存储资源量也将非常高(即使实际上只有一小部分流量可能是异常的),从而导致随着核心网络104规模的增长,可见性网络100的显著基础设施成本以及不良扩展。

另外,上述事后分析通常在核心网络104中检测到的异常发生之后很久才执行。这使得分析探测器/工具108难以或不可能实现在异常正在进行中时解决异常的根本原因的措施,或积极预测未来异常的发生。



技术实现要素:

提供了用于在可见性网络的分组代理中执行异常检测和预测的技术。根据一个实施例,分组代理可以将一个或多个机器学习模型应用于从核心网络复制的网络流量。分组代理还可以基于一个或多个机器学习模型的应用来检测或预测核心网络中网络流量异常的发生。然后,分组代理可以响应于异常的检测/预测而采取一个或多个预定义动作。

以下具体实施方式和附图提供了对特定实施例的性质和优点的更好理解。

附图说明

图1描绘了示例可见性网络。

图2描绘了其中可以根据实施例实现本公开的异常检测/预测技术的可见性网络。

图3描绘了根据实施例的用于训练用于异常检测/预测的机器学习模型的工作流程。

图4描绘了根据实施例的示例lstm神经网络。

图5描绘了根据实施例的用于执行异常检测的工作流程。

图6描绘了根据实施例的用于执行异常预测的工作流程。

图7描绘了根据实施例的用于核心网络可视化工具的示例用户界面。

图8描绘了根据实施例的示例网络设备。

图9描绘了根据实施例的示例计算机系统。

具体实施方式

在以下描述中,出于解释的目的,阐述了许多示例和细节以便提供对各种实施例的理解。但是,对于本领域技术人员显而易见的是,可以在没有这些细节中的一些细节的情况下实践某些实施例,或者可以通过其修改或等同物来实践某些实施例。

1.概述

本公开的实施例提供了可以由可见性网络中的分组代理实现的、用于检测和预测核心网络的网络流量中的异常的技术。在一组实施例中,这些技术可以包括由分组代理基于从核心网络复制的流量数据来训练一个或多个机器学习模型,该一个或多个机器学习模型被设计为对核心网络的典型流量模式进行建模。例如,一种这样的机器学习模型可以被设计为对特定核心网络参数的值随时间的变化进行建模(例如,订户依附率(subscriberattachrate)、寻呼速率、数据吞吐量等)。

一旦机器学习模型已被训练,分组代理就可以将这些模型(和/或其它预先训练的模型)应用于从核心网络复制的后续流量,以便实时地检测和/或预测核心网络中发生的流量异常。例如,在其中分组代理已经训练对订户依附率进行建模的机器学习模型m的情况下,分组代理可以将核心网络中的当前订户依附率与由m针对当前时间点建模的订户依附率值进行比较。如果这两个值之间的差异超过阈值,则分组代理可以确定已经发生关于订户依附率的异常(或者正在发生的过程中)。替代地或附加地,分组代理可以将由m建模的核心网络中的外推的未来订户依附率与预定义阈值进行比较。如果外推的未来值超过阈值,则分组代理可以预测将来很可能发生关于订户依附率的异常。

然后,在确定核心网络中已发生或将很快发生流量异常时,分组代理可以采取一个或多个预定义(例如,用户定义的)动作。这些预定义动作可以包括应用过滤器,该过滤器将与异常事件相关的复制流量(例如,源自特定位置或与特定主机/订户相关联的流量)引导到一个或多个特殊分析探测器/工具以进行进一步分析和存储。预定义动作还可以包括,例如,为网络管理员生成警报、实现复制流量的计量或采样(在异常流量突发的情况下)以及其它。

利用上述一般方法,与在可见性网络的分析探测器/工具上以事后方式实现异常检测的现有技术相比,可以实现许多益处。首先,通过将异常检测任务从分析探测器/工具移动到分组代理,分组代理可以有利地仅将异常(或可能是异常的)流量引导到探测器/工具,这种异常流量通常构成从核心网络复制的整个流量的一小部分。这意味着可以显著减少分析探测器/工具上所需的计算和存储资源,这又可以允许这些组件以高效的方式扩展和处理核心网络中非常大的流量。

其次,由于分组代理以实时方式监测异常,因此在某些实施例中,分组代理可以主动预测未来异常的发生并采取步骤来解决它们。例如,在异常实际发生之前,分组代理可以将与预测的未来异常相关联的流量流转发到分析探测器/工具以进行预先分析和审查。

第三,通过使用各种不同的机器学习模型执行异常检测和预测,分组代理可以灵活且准确地检测/预测大量不同的异常。例如,如上所述,分组代理可以应用一组机器学习模型(本文被称为“时间序列模型”)来检测/预测时间序列流量数据中的异常,诸如从核心网络导出的订户依附率、寻呼速率、数据吞吐量等。分组代理也可以应用另一组机器学习模型(本文被称为“协议语言模型”)来检测/预测从核心网络复制的协议消息交换/流中的异常。在任何时间点使用的特定机器学习模型以及应用于每个模型的具体检测/预测规则可以由网络管理员配置。

以下进一步详细描述本公开的这些任何其它方面。

2.可见性网络

图2描绘了根据实施例的可以用于实现本公开的异常检测/预测技术的可见性网络200。如图所示,可见性网络200包括多个接头202,这些接头被部署在核心网络204中并且被配置为将在网络204中交换的流量复制到分组代理206。在图2中,核心网络204是移动lte网络,核心网络204包括特定于移动lte网络这种类型网络的网络元件,诸如enodeb210、移动性管理实体(mme)212、服务网关(sgw)214,以及连接到诸如互联网的外部分组数据网络的分组数据网络网关(pgw)216。另外,在该特定示例中,接头202被配置为复制和转发在核心网络204的某些接口上交换的gtp-c和gtp-u流量。但是,应该认识到的是,核心网络204可以是任何其它类型的本领域已知的计算机网络,诸如移动3g网络、陆线局域网(lan)或广域网(wan)等。

在经由接头202接收复制的流量时,分组代理206可以对流量执行各种类型的分组处理功能(如由可见性网络200的运营商所配置/指派的),并且可以将处理后的流量转发到一个或多个分析探测器/工具208用于分析。在一个实施例中,分组代理206可以仅用硬件来实现,诸如以网络交换机或路由器的形式,其依赖于基于asic或基于fpga的分组处理器来基于编程到驻留在分组处理器和/或设备的线卡上的硬件存储器表(例如,cam表)中的规则来执行其指派的分组处理功能。在另一个实施例中,分组代理206可以仅用例如在一个或多个通用物理或虚拟计算机系统上运行的软件来实现。在又一个实施例中,分组代理206可以使用硬件和软件的组合来实现,诸如使用如在共同拥有的标题为“software-basedpacketbroker”的美国专利申请no.15/205,889中所描述的基于硬件的基本分组代理和基于软件的“会话导向器”集群的组合来实现,该申请的全部内容为了所有目的通过引用被整体并入本文。

如背景技术部分所述,在其中分析探测器/工具208的任务是检测核心网络204中的流量异常的情况下,这些探测器/工具的常规实现记录并存储从核心网络204复制的所有流量并执行对存储数据的事后分析。但是,这种方法存在许多低效率和局限性,诸如在其中核心网络204产生大量流量的情景下探测器/工具208的大量投资成本、无法实时解决和预测异常,等等。

为了解决这些和其它类似问题,图2的分组代理206被增强以包括新颖的异常检测/预测模块218。取决于分组代理206的配置,异常检测/预测模块218可以用软件、硬件或其组合来实现。在高级别,异常检测/预测模块218可以(1)训练被设计为对核心网络204的流量模式进行建模的一个或多个机器学习模型(从而学习核心网络204的典型行为);(2)将训练后的(以及其它预训练的)机器学习模型应用于从核心网络204复制的后续流量,以便实时检测和/或预测核心网络204中流量异常的发生;以及(3)在检测到或预测异常后,执行一个或多个预定义动作,诸如将被认为与异常相关联的复制流量引导到特定分析探测器/工具208以进行存储和进一步分析。以这种方式,异常检测/预测模块218可以消除或最小化与分析探测器/工具208上的常规事后异常检测相关联的许多问题。用于实现上述训练、检测和预测步骤的细节在以下各节中描述。

应该认识到的是,图2是说明性的,并且不旨在限制本公开的实施例。例如,图2中所示的各种实体可以根据不同的配置来布置和/或包括未具体描述的子组件或功能。本领域普通技术人员将认识到其它变体、修改和替代方案。

3.模型训练工作流程

图3描绘了根据实施例的可以由分组代理206的异常检测/预测模块218执行的、用于训练将用于检测/预测核心网络204中的流量异常的机器学习模型的工作流程300。一般而言,训练工作流程300将应用于对可能在一个网络与另一个网络之间不同的流量模式/行为进行建模(并且因此受益于学习具体核心网络的具体模式/行为)的机器学习模型。这种机器学习模型的示例包括随时间跟踪某些核心网络数据或信令参数(例如,订户依附率、寻呼速率、每秒分组数等)的值的变化的时间序列模型。训练工作流程300不需要应用于对在不同部署之间将基本类似的流量模式/行为进行建模的机器学习模型,诸如协议语言模型。

在方框302开始,模块218可以首先选择要训练用于异常检测/预测的机器学习模型。在一组实施例中,分组代理206的制造商/供应商可以在分组代理206上为此目的预安装许多不同的机器学习模型,并且模块218可以选择预安装模型之一。在这些情况下,制造商/供应商可以使用通用训练数据对预安装的模型进行预先训练,使得它们具有开始工作的初始“基础状态”(这可以缩短完成训练工作流程300所需的时间)。在其它实施例中,操作分组代理206的用户/客户可以定义和供应他们自己的预训练或非预训练的机器学习模型作为方框302的一部分。

如前所述,被选择用于训练的机器学习模型通常将是从学习核心网络204的特定流量模式和行为中受益的机器学习模型,诸如从核心网络学习时间序列数据的时间序列模型。有许多不同的机器学习算法和构造可以用于实现时间序列模型,诸如长期短期记忆(lstm)神经网络。在lstm神经网络的特定情况下,网络可以随时间学习给定参数x的“正常”行为,并且一旦经过训练,就可以输出在范围从t(即,当前时间点)到t+n的n个不同时间点处该参数(x')的预期(即,建模)值。图4中示出了示例lstm神经网络400的框图。其它类型的机器学习算法/构造也可以用于基于时间序列的建模,并且对于本领域普通技术人员来说将是显而易见的。

返回图3,一旦选择了机器学习模型,模块218就可以执行涉及以下的第一训练阶段(1)从包括从核心网络204记录的历史流量的知识库接收关于由所选择的机器学习模型建模的核心网络参数的流量数据(方框304),以及(2)基于历史流量数据训练/更新机器学习模型(方框306)。例如,如果机器学习模型被设计为对订户依附率建模,则模块218可以从知识库接收指示订户依附率如何在核心网络204中在某个先前时间段内改变的流量数据并且可以相应地训练模型。以这种方式,模块218可以使用分组代理206将可能从核心网络204的实际活动版本接收的流量数据来“预先准备(prime)”机器学习模型,而不必还将分组代理206插入到生产环境中。在该第一训练阶段期间学习的历史训练数据的量可以取决于机器学习模型和/或核心网络204的性质而不同,并且可以从几天的数据到数周、数月或更多的数据不等。

在完成第一训练阶段后,可以将分组代理206部署在核心网络204的实际活动(即,生产)现场处(方框308)。然后,在方框310和312处,模块218可以执行类似于第一训练阶段的第二训练阶段,但是使用从核心网络204复制的实时流量数据(而不是从知识库接收到的历史流量数据)来训练机器学习模型。以这种方式,模块218可以使用在生产现场处生成的实时流量数据来细化机器学习模型,从而确保模型尽可能准确和最新。与第一训练阶段一样,在该第二训练阶段期间学习的数据量可以取决于机器学习模型和/或核心网络204的性质而变化。

最后,在方框314处,模块218可以存储训练后的机器学习模型并将其标记为准备用于检测/预测核心网络204中的异常。在一些实施例中,模块218也可以返回到方框310并在连续或周期性的基础上重复第二训练阶段,以便使机器学习模型相对于在核心网络204中发生的持续流量模式保持最新。

应该认识到的是,图3的工作流程300是说明性的,并且各种修改和增强是可能的。例如,其中执行第一阶段和训练阶段的具体方式和/或顺序可以根据具体情况而不同。在一些情况下,可以省略第一训练阶段(基于历史流量数据),并且模块218可以仅使用来自核心网络204的实时流量数据来训练机器学习模型。在其它情况下,可以省略第二训练阶段并且模块218可以仅使用来自知识库的历史流量数据来训练机器学习模型。在还有的其它情况下,可以执行第一阶段和训练阶段,但是它们可以被同时、以不同顺序或以重叠方式执行。

另外,虽然未明确示出,但是模块218可以重复工作流程300(或同时运行工作流程300的多个实例),以便训练若干不同类型的机器学习模型和/或单一类型的模型的时间变体。例如,给定核心网络参数的模式/行为可能在每天的基础上显著变化。在这种场景中,模块218可以训练七个不同的机器学习模型,这些机器学习模型都与相同的核心网络参数相关,但是适用于一周中的不同天(例如,星期一模型变体、星期二模型变体等)。利用这种方法,模块218随后可以基于当前是一周中的星期几来使用适当的每天模型进行异常检测/预测。本领域普通技术人员将认识到其它变体、修改和替代方案。

4.异常检测工作流程

一旦异常检测/预测模块218已访问至少一个训练后的机器学习模型(或者经由图3的训练工作流程300或者经由不同的预训练处理),模块218就可以使用训练后的模型执行用于执行核心网络204中的异常的实时检测的工作流程。图5描绘了根据实施例的该检测处理的工作流程500。如前所述,训练后的机器学习模型可以是时间序列模型(其对核心网络参数随时间的值进行建模)、协议语言模型(其对有效的协议消息交换和流程进行建模),或可用于识别核心网络204的正常流量模式/行为中的偏差的任何其它类型的机器学习模型。

从工作流程500的方框502和504开始,模块218可以在当前时间间隔t内从核心网络204接收复制的流量,并且可以从复制的流量中提取使得模块218能够确定由机器学习模型建模的核心网络参数或标准的当前实际值的信息。例如,如果机器学习模型是被配置为对核心网络参数x的值进行建模的时间序列模型m1,则模块218可以从复制的流量中提取使得模块218能够确定当前时间间隔t内核心网络204中的x的实际值(即,xt)的信息。替代地,如果机器学习模型是被配置为对给定网络协议p的有效消息交换进行建模的协议语言模型m2,则模块218可以从复制的流量中提取使得模块218能够确定在当前时间间隔t中使用协议p进行的具体消息交换的信息。

在方框506处,模块218可以使用机器学习模型来针对当前时间间隔t确定在方框504处确定的相同网络参数或标准的预期(即,建模)值。例如,在上面的时间序列模型m1的情况下,模块218可以使用m1输出在时间t的参数x的预期值(即,x't)。替代地,在上面的协议语言模型m2的情况下,模块218可以使用m2输出在时间t的使用协议p的预期消息交换或流。

一旦模块218已确定网络参数或标准的实际值和预期值,模块218就可以比较这两个值并确定这两个值之间是否存在超过预定阈值或反映严重不一致的差异(方框508)。例如,模块218可以确定x't-xt是否超过数值阈值t,或者实际和预期消息交换是否显著不同/混乱/等(指示实际的消息交换可能无效)。

如果两个值之间的差异不超过阈值或者没有反映严重不一致,则模块218可以推断出核心网络204正处于正常行为(方框510)。因此,模块218可以等待下一个时间间隔t+1的开始(方框512),并且然后返回方框502,以便在时间t+1重复检测处理。

但是,如果两个值之间的差异确实超过阈值或者确实反映了严重的不一致,则模块218可以推断出核心网络204中已经发生(或者正在发生的过程中)关于参数/标准的异常(方框514)。在这种情况下,模块218可以执行与模型相关联的一个或多个预定义动作(方框516)。例如,在一个实施例中,模块218可以应用过滤器,该过滤器将来自核心网络204的被认为与异常相关的所有复制流量(例如,来自特定位置或特定主机/订户的所有流量)引导到一个或多个特殊分析探测器/工具208用于存储和进一步分析。以这种方式,模块218可以选择性地仅将为了异常分析目的而可能感兴趣的流量转发到那些特殊探测器/工具。作为该引导步骤的一部分,在某些实施例中,模块218也可以生成与被引导流量相关的元数据信息(以例如ipfix分组的形式)并将其发送到特殊分析探测器/工具。该元数据信息可以包括:例如,流量源自哪里、订户/会话信息,以及探测器/工具可以用于促进它们分析异常流量并帮助识别异常的根本原因的其它上下文线索。

在其它实施例中,除了(或代替)上述流量引导之外,模块218还可以执行其它动作,诸如为网络管理员生成警报、对从核心网络204复制的其它流量进行计量,等等。这些动作的具体性质可以由分组代理206的用户/管理员配置。

最后,一旦已经执行(一个或多个)预定义动作,模块218就可以如前所述等待下一个时间间隔t+1(方框512),并且随后返回到方框502,以便在时间t+1重复检测处理。

5.异常预测工作流程

除了实时异常检测之外,分组代理206的模块218还可以经由其训练的(一个或多个)机器学习模型对核心网络204中的未来异常进行实时预测。图6描绘了图示根据实施例的该预测处理的工作流程600。工作流程600假设用于异常预测的机器学习模型具体是跟踪核心网络参数x随时间的值的时间序列模型。

从方框602和604开始,模块218可以在当前时间间隔t内接收来自核心网络204的复制流量、从复制流量中提取使得模块218能够确定核心网络参数x的当前值(即,xt)的信息,并将xt存储在本地数据存储库中。另外,在方框606处,模块218可以从数据存储库中检索参数x的最后m个值(即,xt-1,xt-2,...,xt-m)。

在方框608处,模块218可以将在方框606处检索到的m个值拟合到线性回归模型,以便外推在某个未来时间点t+n核心网络参数x的值(即,xt+n)。然后,模块218可以将外推值与预定义阈值t进行比较(方框612)。该预定义阈值可以与关于异常检测工作流程500讨论的阈值不同。

如果外推的未来值未超过预定阈值t,则模块218可以推断出在时间t+n将没有关于核心网络参数x的未来异常(方框614)。因此,模块218可以等待下一个时间间隔t+1的开始(方框616),并且随后返回到方框602,以便在时间t+1重复预测处理。

但是,如果外推的未来值确实超过阈值t,则模块218可以推断出关于参数x的异常将在核心网络204中在时间t+n发生(方框618)。在这种情况下,模块218可以执行与模型相关联的一个或多个预定义动作(方框620),诸如将来自核心网络204的被认为与异常相关的所有复制流量引导到一个或多个特殊分析探测器/工具208用于存储和进一步分析。以这种方式,特殊探测器/工具可以分析并潜在地实现在异常实际发生之前避免它的步骤。模块218还在方框620处执行其它动作,诸如生成管理员警报、丢弃复制的流量/对复制的流量进行计量,等等。

最后,一旦已经执行(一个或多个)预定义动作,模块218就可以如前所述等待下一个时间间隔t+1(方框616),并且随后返回到方框602以在时间t+1重复预测处理。

应该认识到的是,异常检测和预测工作流程500和600是说明性的,并且修改和增强是可能的。例如,模块218可以同时重复或执行这些工作流程中的多个实例,以便经由不同的机器学习模型检测和/或预测核心网络204中的不同类型的异常。另外,模块218可以与工作流程600同时执行工作流程500,以便并行地执行异常检测和预测。本领域普通技术人员将认识到其它变体、修改和替代方案。

6.自动核心网络发现

除了前述节中描述的异常检测和预测技术之外,在某些实施例中,图2的分组代理206还可以实现核心网络204中的拓扑和实体的自动发现。利用该自动发现特征,分组代理206的配置可以被简化,因为不需要管理员将关于核心网络204的信息(例如,ip地址、接口等)手动输入到分组代理206中。相反,可以基于发现的核心网络实体和拓扑自动确定该配置。另外,该自动发现特征可以使分组代理206能够实现新类型的流量过滤器,诸如将新检测到的核心网络实体的流量引导到特定分析探测器/工具的过滤器,或者丢弃来自核心网络204的已知携带重复分组的部分的流量的过滤器。

根据一组实施例,该特征可能需要自动发现在核心网络204中部署了哪些网络实体、这些网络实体的属性是什么(例如,ip地址等),以及网络实体是如何互联的。分组代理206可以通过例如监测和分析从核心网络204抽取的控制和/或数据流量来执行该发现。发现处理的具体性质将取决于核心网络的类型(例如,3g网络、lte网络等)而不同。分组代理206可以在初始化后以及在其整个运行时间内连续地执行发现(以便检测新添加或移除的实体)。

然后,分组代理206可以使用该核心网络信息来促进其配置以及执行其它功能。例如,在一个实施例中,分组代理206可以基于所发现的网络实体自动设置访问控制列表/过滤器。这可以包括,例如,用于将从某些网络实体抽取的流量转发到某些探测器/工具的默认过滤器,以及用于移除重复流量的过滤器、用于从新添加的节点转发流量的过滤器,等等。

在另一个实施例中,分组代理206可以对发现的网络实体或区域进行分组,以便于配置管理。这可以有助于将到对应区域的流量引导到适当的分析探测器/工具,使得可以避免某些问题(诸如重复分组)。

在又一个实施例中,分组代理206可以在核心网络204中存在修改(例如,添加、移除实体等)时设置通知/警报。然后,分组代理206可以应用策略以基于核心网络修改来更新其配置。如果核心网络204被虚拟化,这可能特别有用,因为在这种情景下核心网络的配置可能会频繁地变化。

在又一个实施例中,分组代理206可以将所发现的网络信息提供给工具(例如,在sdn控制器上运行的sdn应用),使得用户可以可视化核心网络204的拓扑。图7描绘了图示根据实施例的使用这种工具的核心网络的可视化的示例ui700。在该工具中,用户可以查看实体及其连接/接口,并且可以基于实体的类型(例如,enodeb、sgw、mme、pgw、hss、aaa等)和其它标准来过滤视图。用户还可以查看与由分组代理206根据前述节中描述的技术检测或预测的异常有关的警报/通知。

7.示例网络设备

图8描绘了其中可以实现本公开的某些实施例的示例网络设备(例如,交换机和/或路由器)800。例如,在一组实施例中,网络设备800可以用于(或者全部或者部分地)实现图2的分组代理206。

如图所示,网络设备800包括管理模块802、交换结构模块804和多个i/o模块806(1)-806(n)。管理模块802包括用于管理/控制设备的操作的一个或多个管理cpu808。每个管理cpu808可以是在存储在相关联存储器(未示出)中的软件的控制下操作的通用处理器,诸如powerpc、intel、amd或基于arm的处理器。

交换结构模块804和i/o模块806(1)-806(n)共同表示网络设备800的数据或转发平面。交换结构模块804被配置为互连网络设备800的各种其它模块。每个i/o模块806(1)-806(n)可以包括由网络设备800用来发送和接收数据分组的一个或多个输入/输出端口810(1)-810(n)。每个i/o模块806(1)-806(n)也可以包括分组处理器812(1)-812(n)。分组处理器812(1)-812(n)是可以关于如何处理传入或传出数据分组做出线速决定的硬件处理组件(例如,fpga或asic)。

应该认识到的是,网络设备800是说明性的,并且具有比网络设备800更多或更少组件的许多其它配置是可能的。

8.示例计算机系统

图9描绘了其中可以实现本公开的某些实施例的示例计算机系统900。例如,在一组实施例中,计算机系统900可以用于(或者全部或者部分地)实现图2的分组代理206。

如图9所示,计算机系统900包括一个或多个处理器902,它们经由总线子系统904与多个外围设备通信。这些外围设备包括存储子系统906(包括存储器子系统908和文件存储子系统910)、用户界面输入设备912、用户界面输出设备914和网络接口子系统916。

总线子系统904可以提供用于使计算机系统900的各种组件和子系统按预期彼此通信的机制。虽然总线子系统904被示意性地示为单条总线,但是总线子系统的替代实施例可以使用多条总线。

网络接口子系统916可以用作用于在计算机系统900与其它计算设备或网络之间传送数据的接口。网络接口子系统916的实施例可以包括有线(例如,同轴、双绞线或光纤以太网)和/或无线(例如,wi-fi、蜂窝、蓝牙等)接口。

用户界面输入设备912可以包括键盘、指示设备(例如,鼠标、轨迹球、触摸板等)、扫描仪、条形码扫描仪、并入到显示器中的触摸屏、音频输入设备(例如,语音识别系统、麦克风等)和其它类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算机系统900中的所有可能类型的设备和机制。

用户界面输出设备914可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备,或投影设备。通常,术语“输出设备”的使用旨在包括用于从计算机系统900输出信息的所有可能类型的设备和机制。

存储子系统906包括存储器子系统908和文件/盘存储子系统910。子系统908和910表示可以存储提供本文所描述的各种实施例的功能的程序代码和/或数据的非瞬态计算机可读存储介质。

存储器子系统908包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)918和其中存储固定指令的只读存储器(rom)920。文件存储子系统910可以为程序和数据文件提供持久(即,非易失性)存储,并且可以包括磁性或固态硬盘驱动器、光学驱动器以及相关联的可移除介质(例如,cd-rom、dvd、蓝光盘等)、基于可移除闪存的驱动器或卡,和/或本领域中已知的其它类型的存储介质。

应该认识到的是,计算机系统900是说明性的,并且具有比计算机系统900更多或更少组件的许多其它配置是可能的。

以上描述图示了本发明的各种实施例以及可以如何实现本发明的各方面的示例。以上示例和实施例不应被视为仅有的实施例,并且被给出以图示如由以下权利要求所限定的本发明的灵活性和优点。例如,虽然已经关于特定的处理流程和步骤描述了某些实施例,但是对于本领域技术人员来说显而易见的是,本发明的范围不严格限于所描述的流程和步骤。被描述为顺序的步骤可以被并行执行,步骤的顺序可以改变,并且步骤可以被修改、组合、添加或省略。作为另一个示例,虽然已经使用硬件和软件的特定组合描述了某些实施例,但应该认识到的是,硬件和软件的其它组合是可能的,并且描述为用软件实现的具体操作也可以用硬件实现,反之亦然。

因此,说明书和附图应被视为说明性而非限制性的。其它布置、实施例、实现和等同物对于本领域技术人员来说将是显而易见的,并且可以在不脱离所附权利要求中阐述的本发明的精神和范围的情况下被采用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1