首页> 中国专利> 用于电信中的可扩缩分布式网络业务分析的方法

用于电信中的可扩缩分布式网络业务分析的方法

摘要

用于执行分布式数据聚合的示例性方法包括接收只来自网络的第一部分的互联网协议(IP)业务。所述方法还包括利用大数据工具生成来自网络的第一部分的IP业务的概要,其中来自网络的第二部分的IP业务的概要由第二网络装置利用它的本地大数据工具生成。所述方法包括将网络的第一部分的IP业务的概要发送给第三网络装置,以使得第三网络装置利用它的本地大数据工具基于从第一和第二网络装置接收的概要生成网络的第一和第二部分的IP业务的概要,从而允许以分布式方式表征网络中的IP业务。

著录项

  • 公开/公告号CN105917632A

    专利类型发明专利

  • 公开/公告日2016-08-31

    原文格式PDF

  • 申请/专利权人 瑞典爱立信有限公司;

    申请/专利号CN201580005584.4

  • 发明设计人 D.李;张颖;

    申请日2015-01-16

  • 分类号H04L29/06;H04L12/26;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人徐予红

  • 地址 瑞典斯德哥尔摩

  • 入库时间 2023-06-19 00:24:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-28

    授权

    授权

  • 2016-09-28

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150116

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

相关申请的交叉引用

本申请主张2014年1月22日申请的美国临时申请号61/930295的权益,该美国临时申请由此以引用的方式并入本文。

技术领域

本发明的实施例涉及分组网络的领域;更具体来说,涉及在分布式网络体系结构中利用大数据工具进行网络业务聚合。

背景技术

在电信领域中,连续不断地以非常高的速度从大量节点(例如,消费型装置、路由器、服务器、基站等)生成网络业务。如本文中所使用,电信领域是指互联网服务提供商(ISP)的联网领域。网络业务分析对于理解网络的行为以及优化网络和应用的性能都是基本和关键的。网络业务分析在标识对网络的攻击和允许网络管理员采取合适的安全措施中也起着重要的作用。为了应对高容量的高速业务数据,可在电信领域中应用大数据技术来帮助发展网络业务分析。如本文中所使用,大数据技术/分许是指处理/表征大数据(即,高容量、高速且多品种的数据)的技术。但是,当前的大数据技术主要起源于互联网领域。如本文中所使用,互联网领域是指诸如Google、Yahoo、Facebook、Twitter等的内容提供商的联网领域。这些内容提供商在集中式数据中心中聚合和处理人为生成的内容。由于电信和互联网领域中的数据属性之间存在根本差别,所以那些技术对于电信领域来说是次优的。

维持网络的正常操作是电信领域中最关心的问题。运行数据分析不应使网络操作降级、扰乱网络操作、或危害网络操作。将所有业务数据上载到少数几个集中式数据中心本身需要显著的网络资源。这种规模的数据聚合会危害网络的利用。

在电信领域中,是机器而不是个人用户以非常高的速度自动且连续地生成数据。为了增加实际价值,如果不能更快的话,那么数据收集和分析必须至少能够跟上数据生成。这种规模的集中式数据处理会造成长时间滞后,由此会使得分析结果无关痛痒,例如在检测蠕虫和DDoS攻击时。

发明内容

利用大数据工具以分布式方式聚合互联网协议(IP)业务的示例性方法包括在网络中通信地耦合到第二网络装置的第一网络装置,其中第一和第二网络装置通信地耦合到第三网络装置。根据一个实施例,由第一网络装置执行的示例性方法包括接收只来自网络的第一部分的IP业务,其中来自网络的第二部分的IP业务由第二网络装置接收。在一个实施例中,所述方法包括利用大数据工具生成来自网络的第一部分的IP业务的概要,其中来自网络的第二部分的IP业务的概要由第二网络装置利用它的本地大数据工具生成。在至少一个实施例中,所述方法包括将网络的第一部分的IP业务的概要发送到第三网络装置,以使得第三网络装置利用它的本地大数据工具基于来自第一网络装置的概要和来自第二网络装置的概要生成网络的第一和第二部分的IP业务的概要,从而允许在第一、第二和第三网络装置之间以分布式方式表征网络中的IP业务。

在一个实施例中,生成来自网络的第一部分的IP业务的概要包括:对于IP业务的每个IP数据,从接收的IP数据存取字段集合。生成概要还包括:基于来自字段集合的一个或多个字段确定密钥字段;以及基于来自字段集合的一个或多个字段确定值字段。

在本发明的一个方面中,生成来自网络的第一部分的IP业务的概要还包括:基于密钥字段将IP数据的集合分区成多个群组,以使得每个群组包括唯一密钥(unique key)和来自具有相同密钥字段的一个或多个IP数据的一个或多个值。

在至少一个实施例中,生成来自网络的第一部分的IP业务的概要还包括:对于每个群组,聚合多个值以便生成聚合值,其中聚合值指示由对应密钥字段的值字段指示的多个唯一值。

利用大数据工具以分布式方式聚合互联网协议(IP)业务的示例性方法包括在网络中通信地耦合到第二网络装置和第三网络装置的第一网络装置。根据一个实施例,由第一网络装置执行的示例性方法包括从第二网络装置接收网络的第一部分的互联网协议(IP)业务的概要,其中网络的第一部分的IP业务的概要由第二网络装置利用它的本地大数据工具生成。

在一个实施例中,所述方法包括从第三网络装置接收网络的第二部分的IP业务的概要,其中网络的第二部分的IP业务的概要由第三网络装置利用它的本地大数据工具生成。在本发明的一个方面中,所述方法还包括:利用大数据工具基于来自第二网络装置的概要和来自第三网络装置的概要生成网络的第一和第二部分的IP业务的概要,从而允许在第一、第二和第三网络装置之间以分布式方式表征网络中的IP业务。在一个实施例中,所述方法包括将网络的第一和第二部分的IP业务的概要提供给用户,以使得用户可以确定所述网络中是否存在异常。

附图说明

附图的各图中举例而非限制性地示出本发明的实施例,图中类似参考数字指示类似元素。

图1是示出在集中式数据中心聚合数据的常规网络的框图。

图2是示出根据一个实施例在分布式体系结构中聚合数据的网络的框图。

图3是示出根据一个实施例用于聚合数据的数据处理单元模块的框图。

图4是示出根据一个实施例用于聚合数据的方法的流程图。

图5是示出根据一个实施例用于聚合数据的方法的流程图。

图6A是示出根据一个实施例用于聚合数据的伪代码的图。

图6B是示出根据一个实施例用于聚合数据的伪代码的图。

图7A是示出根据一个实施例用于聚合数据的伪代码的图。

图7B是示出根据一个实施例用于聚合数据的伪代码的图。

图8A是示出根据一个实施例用于聚合数据的伪代码的图。

图8B是示出根据一个实施例用于聚合数据的伪代码的图。

图9A是示出根据一个实施例用于聚合数据的伪代码的图。

图9B是示出根据一个实施例用于聚合数据的伪代码的图。

图10A是示出根据一个实施例用于聚合数据的伪代码的图。

图10B是示出根据一个实施例用于聚合数据的伪代码的图。

图11是示出用于将分析从集中式网络映射到DPU的分布式网络的一般设计模式的框图。

图12是示出可与本发明的一个实施例一起使用的数据处理系统的示例的框图。

具体实施方式

在以下描述中,阐述了众多具体细节,例如逻辑实现、操作码、用于指定操作数的部件、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/集成选择,以便更充分地理解本发明。但是,本领域技术人员将明白,没有这些具体细节也可实践本发明。在其它情况下,没有详细示出控制结构、门级电路和全软件指令序列,以免使本发明模糊。借助于包含的描述,本领域技术人员将能够在无需过多试验的情况下实现合适的功能性。

本说明书中提到“一个实施例”、“实施例”、“示例实施例”等时表示,所描述的实施例可包括特定特征、结构或特性,但不是每个实施例都一定包含该特定特征、结构或特性。而且,这些短语不一定指相同实施例。此外,当结合一个实施例描述特定特征、结构或特性时,认为本领域技术人员知道结合其它实施例实现该特征、结构或特性,而不管是否有明确描述。

在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。应理解,这些术语不是要彼此同义的。“耦合”用于指示两个或两个以上元件彼此共同协作或交互,这两个或两个以上元件可以或者可以不彼此直接物理或电接触。“连接”用于指示在彼此耦合的两个或两个以上元件之间建立通信。

本发明的不同实施例可利用软件、固件和/或硬件的不同组合来实现。因此,图中示出的技术可利用在一个或多个电子装置(例如,端站、网络装置)上存储和执行的代码和数据来实现。这些电子装置利用计算机可读介质存储并(在内部和/或通过网络与其它电子装置)传达代码和数据,计算机可读介质可以是例如非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和暂时性计算机可读传输介质(例如,电、光、声或其它形式的传播信号,如载波、红外信号、数字信号)。另外,这些电子装置通常包括耦合到一个或多个其它组件的一个或多个处理器的集合,所述一个或多个其它组件可以是例如一个或多个存储装置(非暂时性机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏、和/或显示器)、以及网络连接。处理器集合与其它组件的耦合通常通过一个或多个总线和桥接器(又称为总线控制器)。因此,给定电子装置的存储装置通常存储代码和/或数据以便在该电子装置的一个或多个处理器的集合上执行。

如本文中所使用,网络装置或计算装置(例如,路由器、交换机、桥接器)是一台包括硬件和软件的联网设备,它通信地互连网络上的其它设备(例如,其它网络装置、端站)。一些网络装置是对多个联网功能(例如,路由、桥接、交换、第2层聚合、会话边界控制、服务质量、和/或订户管理)提供支持和/或对多个应用服务(例如,数据、语音和视频)提供支持的“多服务网络装置”。订户端站(例如,服务器、工作站、膝上型计算机、上网本、掌上电脑、移动电话、智能电话、多媒体电话、互联网协议语音(VOIP)电话、用户设备、终端、便携式媒体播放器、GPS单元、游戏系统、机顶盒)访问在互联网上提供的内容/服务、和/或在敷设在(例如,穿隧通过)互联网上的虚拟专用网络(VPN)上提供的内容/服务。这些内容和/或服务通常由属于服务或内容提供商的一个或多个端站(例如,服务器端站)或参与对等(P2P)服务的端站提供,并且可包括例如公共网页(例如,免费内容、店面、搜索服务)、私人网页(例如,提供email服务的用户名/密码访问的网页)、和/或VPN上的公司网络。通常,订户端站(例如,通过(有线或无线地)耦合到接入网络的客户驻地设备)耦合到边缘网络装置,边缘网络装置(例如,通过一个或多个核心网络装置)耦合到其它边缘网络装置,这些其它边缘网络装置耦合到其它端站(例如,服务器端站)。

当前的大数据技术起源于互联网公司,尤其是Google、Yahoo、Facebook、LinkedIn和Twitter,并且主要在这些互联网公司中得到发展。他们的主要业务是聚合用户生成的内容,并通过例如将广告与用户数据相关联来为内容增加与他们的用户基础成比例的价值。他们的商业模式符合他们只在少数几个数据中心中集中地聚合和处理数据。过去十年间那些互联网公司的快速成长见证了大数据技术在他们领域中的适用性。

一般来说,当前的大数据技术假设,可在少数几个数据中心中低成本地及时聚合和处理数据。尽管这对于用户生成的内容是合理的,但是对于网络业务分析则是次优的。在互联网上,一个字节的用户生成的内容可引发数百个字节的网络流量来传送该内容。当将所有那些业务字节上载到数据中心时,又可生成数千个新字节,如此循环往复。关于将所有网络业务聚合到一个或少数几个数据中心以便处理所有数据的带宽利用和时间简直成本太高了。

最近出现利用分布式触发机制进行网络业务分析的方法。例如,“In-Network PCA and Anomaly Detection”(Ling Huang, XuanLong Nguyen, Minos Garofalakis, Anthony Joseph, Michael Jordan and Nina Taft. In Advances in Neural Information Processing Systems (NIPS) 19. Vancouver, B.C, December 2006)(下文称为“参考文献1”)、“Toward Sophisticated Detection With Distributed Triggers”(Ling Huang, Minos Garofalakis, Joseph Hellerstein, Anthony D. Joseph and Nina Taft. In SIGCOMM 2006 Workshop on Mining Network Data (MineNet-06))(下文称为“参考文献2”)和“Communication-Efficient Tracking of Distributed Cumulative Triggers”(Ling Huang, Minos Garofalakis, Anthony D. Joseph and Nina Taft. In>. Toronto, Canada, June 2007)(下文称为“参考文献3”)。参考文献1提出在分布式服务器的集合上运行的基于主成分分析(PCA)的异常检测器。它描述了将信息周期性地发送到协调器以便进行准确全局检测的自适应方法。参考文献2设计了一种在PCA框架下检测不寻常业务模式的分布式协议。参考文献3研究了分布式触发器方法中的通信开销和检测精度之间的权衡。

这些参考文献并没有利用大数据技术。而是,它们精心地制作在互联网上的选定节点处执行的分布式算法或协议。因此,所述方法对于分析的数量不可扩缩,因为每个方法必须个别地制作和开发。大数据技术可适于以更具原则性的方式系统地解决网络业务分析问题,但是当前的大数据技术的逐字应用可能不那么有效。将描述,可利用(扩展的)大数据技术在不同分析上应用类似的编程模式。这些模式可推广到新一代分布式大数据平台,以便使大范围网络业务分析的开发和部署自动化。

图1是示出用于聚合用户生成的数据的常规体系结构的框图。如本文中所使用,聚合是指基于某个预定准则(密钥)收集数据和/或将数据分组,以便可以在一个数据中心中表征数据。图1示出包括网络装置110-113的网络100(例如,蜂窝网络),每个网络装置通信地耦合到一个或多个本地用户端点(UE),例如膝上型计算机、移动装置等(未示出)。在图1中,网络装置110-111通信地耦合到网络装置114,网络装置112-113通信地耦合到网络装置115,而网络装置114和115通信地彼此耦合。常规地,将用户生成的数据全都发送到集中式数据中心(例如,数据中心101),在集中式数据中心中将它们全部聚合。因此,当在网络业务分析中直接应用这种设置时,例如,通过网络装置110将通信地耦合到网络装置110的UE处生成的用户数据发送到数据中心101,并且通过网络装置111将通信地耦合到网络装置111的UE处生成的用户数据发送到数据中心101,依此类推。一旦完成所有数据的聚合,数据中心101便将结果提供给用户。

如上所述,利用大数据工具在集中式数据中心聚合用户生成的数据是合理的。但是,在集中式数据中心聚合巨量的机器生成的数据在成本和带宽利用方面就不太有效了。本发明通过提供以分布式方式利用大数据技术来在网络中的多个节点处聚合网络业务、以使得业务聚合可分布在网络中的节点之间的机制而克服这些限制。

图2是示出根据一个实施例以分布式方式聚合网络业务的网络200的框图。网络200与网络100类似。例如,网络装置210-211通信地耦合到网络装置214,网络装置212-213通信地耦合到网络装置215,而网络装置214和215通信地彼此耦合。但是,差别在于,在网络200中,不在集中式数据中心聚合业务数据。根据一个实施例,网络200分区成多个逻辑网络部分。例如,网络装置210可代表网络200的第一部分,网络装置211可代表网络200的第二部分,等等。如本文中所使用,“代表”网络的一部分是指传送和接收属于网络的这部分的网络装置的业务。每个网络部分通信地耦合到包含用于聚合来自相应网络部分的数据的大数据工具的网络装置。这些聚合网络装置的中间结果还可通过更高级聚合网络装置进一步处理/聚合。因此,取代在集中式数据中心执行数据聚合,本发明提供利用数据聚合网络装置的层级在数据来源处或附近执行数据聚合的机制。

图2示出数据聚合网络装置230-234的层级。每个聚合网络装置包括相应的数据处理单元(DPU)模块。例如,网络装置230包括DPU 250,网络装置231包括DPU 251,网络装置232包括DPU 252,网络装置233包括DPU 253,并且网络装置234包括DPU 254。

数据聚合网络装置230-234可通信地耦合到接收和聚合IP业务的网络的任何网络装置。因此,在所示示例中,网络装置210-215可以是任何类型的联网装置,包括但不限于无线电基站、WiFi接入点、路由器、集线器、网关等。应了解,网络装置210-215、230-234可以是相同或不同类型的网络装置。

聚合网络装置的层级(即,网络装置230-234的位置)是举例而非限制性地示出的。本领域技术人员将意识到,取决于负载平衡、通信成本等,网络装置230-234可以按照其它配置部署。如本文中所使用,负载平衡是指确保在网络装置之间交换的业务平衡以防止大部分业务转向特定网络装置或特定群组的网络装置的概念。如本文中所使用,通信成本是指业务从第一网络装置行进到第二网络装置所花费的时间。通信成本也可指在网络装置之间通信的业务量。

图2举例而非限制性地示出聚合来自代表网络的第一部分的网络装置210的网络业务的网络装置230、聚合来自代表网络的第二部分的网络装置211的网络业务的网络装置231、聚合来自代表网络的第三部分的网络装置212的网络业务的网络装置232、以及聚合来自代表网络的第四部分的网络装置213的网络业务的网络装置233。因此,网络装置230-233可理解为是聚合网络装置的层级的第一级。图2还示出,通过网络装置234聚合网络装置230-233的中间聚合结果。因此,网络装置234可理解为是层级的第二级。应了解,在不偏离本发明的更广范围和精神的情况下,可增加层级的更多级。

根据一个实施例,DPU 250-254负责聚合和处理由网络的较小部分(part/portion)(例如,部署在建筑物中的无线局域网(WLAN)或城市市中心中的蜂窝网络)生成的网络业务数据。待由DPU聚合的网络的部分可由地理区域或管理域确定。

在本发明的一个方面中,每个DPU执行一个或多个大数据工具(例如,Hadoop和Spark)和一个或多个分析算法以便处理它的输入数据集并生成某个输出数据。输入数据集可来自网络的一个部分(下游)的输出,并且可经由诸如超文本传输协议(HTTP)、HTTP Secure(HTTPS)、可扩缩标记语言(XML)、JavaScript对象表示法(JSON)等的某个协议将输出数据发送到网络的另一个部分(上游)以作为输入。

应明白,DPU是能够处理大数据(即,高容量、高速且多品种的数据)的计算机构的抽象。DPU可以是例如具有多个并行核或处理器的一个计算机、或通过快速网络互连的这些计算机的一个集群/数据中心。每个计算机/处理器具有它自己的处理单元(用于执行代码以便处理数据)和存储/存储器单元(用于存储数据和结果)。在大数据技术中,通常是其中一个处理器/计算机充当接触点,它接受输入数据,在处理器/计算机的整个集合中分配数据和工作负载,收集来自那些节点的结果,并将结果提供给其它DPU或应用。

根据一个实施例,DPU可以按层级体系结构进行组织:网络边缘附近(或生成数据)的DPU将原始输入数据变换为中间结果,中间结果上载到上游DPU并变换为更高级结果。最后,将最终结果报告给用户或反馈回来以便控制网络。中间结果只是显著减少的量的较低级输入数据的概要。

在一个实施例中,DPU可形成独立的数据处理网络。备选地或另外地,DPU可作为IP网络(例如,蜂窝网络)的一部分集成到其中。例如,在图2中,网络装置230-234可形成独立的数据处理网络,或者它们可以是IP或蜂窝网络的一部分。当独立时,DPU和它所服务的网络的这部分之间的数据传输/通信的成本比将数据上载到另一个DPU低得多。当集成时,DPU嵌入或附连到路由器、网关、基站等,以便处理它所生成的数据。例如,网络装置230-233可分别作为网络装置210-213的一部分集成。DPU部署的配置/密度取决于性能和成本之间的权衡。

在一个实施例中,每个DPU的源与汇可根据诸如负载平衡和数据可用性的因素动态地改变。配置可作为分析应用的一部分经由例如提供的库的应用编程接口(API)进行管理,或通过管理所有DPU并将分析代码动态地指派给DPU的平台(如OS)调度代码进行。

如上所述,利用大数据技术分布式地实现若干个网络业务分析是新颖的。将详细描述,一般模式是将代码分配给所涉及的DPU的网络,以使得最低级的DPU聚合和处理原始感知数据,较高级的DPU聚合和处理来自较低级DPU的中间结果,依此类推,直到最顶级的DPU产生最终结果为止。

图3是示出根据一个实施例的DPU 300的框图。例如,DPU 300可作为DPU 250-254的一部分实现,DPU 250-254可作为软件、固件、硬件或其任意组合来实现。根据一个实施例,DPU 300包括用于交换网络业务的网络接口313。例如,网络接口313可用于接收原始网络业务和/或来自较低级DPU的中间聚合结果。网络接口313还可用于将中间聚合结果传送到较高级DPU,和/或将最终聚合结果传送到用户/管理员。

根据一个实施例,DPU 300包括用于开发大数据分析的大数据工具310(例如,Hadoop、Spark等)。Hadoop是当前用于开发大数据分析的行业标准平台。Hadoop堆栈由一套开源工具组成,这套开源工具包括Hadoop分布式文件系统(HDFS)、另一种资源协调者(YARN)、MapReduce、Hive、HBase和Mahout。Hadoop将故障看作是正常而不是例外,并在商用计算机的大集群上构建大规模并行/分布式计算应用。大型输入数据集分成64兆字节(MB)或128MB块,每个块均在集群中的那些计算机的若干个计算机上复制。它的编程抽象允许用户指定“映射(map)”和“缩减(reduce)”任务。取决于数据局部性和数据相依性,调度器在运行时将输入数据集分区并在计算机上引发那些任务以便处理数据。如果一些计算机发生故障或者数据丢失,那么在其它计算机上重新开始对应任务以便实现容错。

Hadoop堆栈最初是Google开发的类似堆栈(它不是开源的)的开源重实现。最近有若干个开源项目可改善Hadoop堆栈的性能。最著名的是Berkeley Data Analytic Stack(BDAS,伯克利数据分析堆栈),它包括诸如Tachyon、Mesos、Spark、Shark、GraphX、Stream和 MLBase的工具。BDAS集中在存储器中优化上:在主要存储器中缓存输入数据集的一部分,并比Hadoop中的面向磁盘的数据处理快得多地进行处理。

如上所述,Spark是BDAS平台的一部分。它的主要编程抽象是弹性分布式数据集(RDD),它在集群的选定节点上分配主要存储器的区块,并将输入或输出数据集(例如,大型磁盘文件)分发到那些区块中。在RDD/Spark中会自动处理容错。在本描述中,由于它简洁明了,所以利用Spark的Scala API来介绍分析算法和伪代码。应明白,本发明不限于此。本领域技术人员将意识到,可利用其它大数据工具来实现本描述中所述的算法。

在一个实施例中,DPU 300包括用于利用大数据工具310实现大数据分析的API 311。在至少一个实施例中,DPU 300包括网络业务分析模块312,模块312包括用于利用大数据工具310经由API 311聚合/表征网络业务的一个或多个算法。在所示实施例中,网络业务分析模块312包括算法320-324,下文将进一步详细地对它们进行描述。

图4是示出根据一个实施例用于执行分布式数据聚合的方法400的流程图。例如,方法400可由诸如网络装置230(例如,网络装置230的DPU 250)的第一网络装置执行,它可作为软件、固件、硬件或其任意组合来实现。

现在参考图4,在框405,第一网络装置接收只来自网络的第一部分的IP业务,其中来自网络的第二部分的IP业务由第二网络装置(例如,网络装置231)接收,其中第一和第二网络装置通信地耦合到第三网络装置(例如,网络装置234)。例如,网络装置230接收来自代表网络的第一部分的网络装置210的IP业务,而网络装置231接收来自代表网络的第二部分的网络装置211的IP业务。

在框410,第一网络装置利用大数据工具(例如,hadoop、spark等)生成来自网络的第一部分的IP业务的概要,其中来自网络的第二部分的IP业务的概要由第二网络装置利用它的本地大数据工具生成。例如,网络装置230利用大数据工具分析和聚合从网络装置210接收的IP业务。聚合的性质和生成的概要的类型取决于将要执行的分析(例如,分析算法320-324)。下文将进一步详细描述分析。

在框415,第一网络装置将网络的第一部分的IP业务的概要发送到第三网络装置,以使得第三网络装置利用它的本地大数据工具基于来自第一网络装置的概要和来自第二网络装置的概要生成网络的第一和第二部分的IP业务的概要,从而允许在第一、第二和第三网络装置之间以分布式方式聚合/表征网络中的IP业务。

图5是示出根据一个实施例用于执行分布式数据聚合的方法500的框图。例如,方法500可由诸如网络装置234(例如,网络装置234的DPU 254)的第一网络装置执行,它可作为软件、固件、硬件或其任意组合实现。

现在参考图5,在框505,第一网络装置从第二网络装置(例如,网络装置230)接收网络的第一部分的IP业务的概要,其中网络的第一部分的IP业务的概要由第二网络装置利用它的本地大数据工具生成。

在框510,第一网络装置从第三网络装置(例如,网络装置231)接收网络的第二部分的IP业务的概要,其中网络的第二部分的IP业务的概要由第三网络装置利用它的本地大数据工具生成。

在框515,第一网络装置利用大数据工具基于来自第二网络装置的概要和来自第三网络装置的概要生成网络的第一和第二部分的IP业务的概要,从而允许在第一、第二和第三网络装置之间以分布式方式聚合/表征网络中的IP业务。在框520,第一网络装置将网络的第一和第二部分的IP业务的概要提供给用户,以使得用户可以确定网络中是否存在异常。

分析模块

现在将论述网络业务分析模块320-324的各种实施例。本文中所论述的模块是为了说明的目的,而不是要限制本发明。本领域技术人员将意识到,在不偏离本发明的更广范围和精神的情况下,可包含其它分析模块以作为DPU 300的一部分。

计数业务和分布式拒绝服务(DDoS)攻击检测模块

图6A和6B分别是示出用于在集中式和分布式体系结构中执行计数业务/分布式拒绝服务(DDoS)攻击检测的伪代码的图。图6A是示出根据一个实施例用于集中式体系结构的伪代码600的图。例如,伪代码600可作为计数业务/ DDoS攻击检测模块320的一部分实现,模块320可作为软件、固件、硬件或其任意组合来实现。

在DDoS攻击中,攻击者通过利用多个主机渗透受害者的资源,以便针对单个受害者启动协同攻击。它消耗远程主机和/或网络的资源以试图拒绝使用那些资源来使用户合法化。通过利用现有软件缺陷,它可使得远程主机死机或性能显著降级。

在一个实施例中,通过对在固定时间窗口向一个目的地或目的地的集合发送业务的装置的源IP地址的相异(即,唯一)数量计数来检测DDoS攻击。其目的是标识从多于某个数量的相异源接收业务的目的地的集合。这透露可能的受害者集合。

如图6A所示,伪代码600假设,在分布式数据结构(即,在Spark的术语中的弹性分布式数据集(RDD))ipTuples中加载讨论中的输入原始数据集。例如,输入原始数据集可包含在从DPU所代表的网络的这部分接收的IP业务中。每个元组为具有若干个属性的IPPacket类型。通过执行操作605,该模块首先从描述IP分组的每个输入元组提取目的地(dst)和源(src)地址的密钥-值对。然后,通过执行操作610,该模块按照密钥(即,dst)将所有这些对分组,以使得在所得分布式数据结构中,每个元组具有密钥(dst)和用于将分组发送给该dst的源的序列。再次,通过执行操作615,对于每个dst,它对序列中有多少个唯一源进行计数。最后,通过执行操作620,该模块按照唯一计数将结果排序,并输出具有最大k个数量的源的前k个目的地。

图6B是示出根据一个实施例用于在分布式体系结构中执行计数业务/DDoS攻击检测的伪代码601的图。例如,伪代码601可作为计数业务/ DDoS攻击检测模块320的一部分实现。伪代码601执行与伪代码600所执行的操作类似的操作,不同之处在于,将伪代码601分区,以使得它可由多个网络装置的多个DPU以分布式方式执行。例如,伪代码601的片段602的操作可由低级DPU执行,而伪代码601的片段603的操作可由高级DPU执行。

在分布式体系结构中,每个低级DPU i采取输入原始数据集ipTuples_i,并与集中式体系结构类似地处理数据。将数据集的所得概要dstCounts_i上载到高级DPU。有N个这样的低级DPU。然后,通过执行操作625,高级DPU聚合所接收的所有N个dstCounts_i以作为它的输入。所得分布式数据结构包括(dst, count)的所有对,它们在每个源DPU的输出中是唯一的,但是当从多个源DPU聚合时关于dst则不再相异。作为操作630的一部分,如果存在多个计数值(即,源),那么通过对于每个唯一密钥(即,dst)应用与“reduceByKey(_+_)”类似的操作符,模块计算所有这些计数值(即,源)的总和。因此,每个结果对是每个dst的唯一源的数量。最后,将前k个目的地提供给用户,以使得用户可以确定是否存在可能的DDoS攻击。

现在将举例说明用于执行计数业务/DDoS攻击检测的分布式体系结构。在以下示例中假设,片段602分别由网络装置230和231的DPU 250和251执行。该示例还假设,片段603由网络装置234的DPU 254执行。

假设,DPU 250接收了原始IP数据,并且通过执行操作605将ipTuples变换为以下值:

{DST-10, SRC-20},{DST-11, SRC-21},和{DST-10, SRC-20}。

在通过DPU 250执行片段602之后,发送给DPU 254的dstCounts_i为:

{DST-10, 2}和{DST-11, 1},

它们指示,对于密钥DST-10有两个唯一源,并且对于密钥DST-11有一个唯一源。

假设,DPU 251接收了原始IP数据,并且通过执行操作605将ipTuples变换为以下值:

{DST-10, SRC-30},{DST-11, SRC-31},和{DST-12, SRC-32}。

在通过DPU 251执行片段602之后,发送给DPU 254的dstCounts_i为:

{DST-10, 1},{DST-11, 1},和{DST-12, 8},

它们指示,对于密钥DST-10有一个唯一源,对于密钥DST-11有一个唯一源,并且对于密钥DST-12有八个唯一源。

假设,DPU 254接收了来自DPU 250和251的dstCount_i。在执行操作625之后,输入包含以下值:

{DST-10, 2},{DST-11, 1},{DST-10, 1},{DST-11, 1},和{DST-12, 8}。

注意,密钥dst不是唯一的。但是,在执行操作630之后,DPU 254将输入缩减为以下dstCount对:

{DST-10, 3},{DST-11, 2},和{DST-12, 8}。

根据一个实施例,DPU 254执行操作635以便按计数的降序将dstCount排序,并将排序后的如下dstCount对提供给用户:

{DST-12, 8},{DST-10, 3},和{DST-11, 2},

它们指示,对于密钥DST-12有8个唯一源,对于密钥DST-10有3个唯一源,并且对于密钥DST-11有2个唯一源。

流大小分布判定

图7A和7B分别是示出用于在集中式和分布式体系结构中执行流大小分布判定的伪代码的图。图7A是示出根据一个实施例用于集中式体系结构的伪代码700的图。例如,伪代码700可作为流大小分布判定模块321的一部分实现,模块321可作为软件、固件、硬件或其任意组合来实现。

知道网络中的流大小的分布对于网络运营商理解他们的网络资源使用、表征业务需求、检测业务异常和执行更好的业务工程机制是有用的。例如,互联网服务提供商(ISP)可利用流分布来推断他们的网络的使用。它可用于计费、定价、基础设施工程、资源规划。它还可用于推断应用的类型,例如有多少业务正在使用通常是长流的流播视频,有多少业务正在使用IP语音。此外,网络中的故障或性能问题可能会造成网络中的流大小分布突然变化。因此,可利用流大小分布信息来作为故障检测的另一个来源。

例如,给定流大小s或流大小范围[s1:s2],可计算在固定时间间隔T内大小与s匹配或大小大于s1并且小于s2的流的数量。这些认知有助于了解网络中的不同大小的流(例如,大象流、老鼠流等)的分布。

如图7A所示,集中式体系结构假设,在分布式数据结构ipTuples中加载输入数据集。每个元组为具有若干个属性的IPPacket类型。对于每个元组,构造一对流(例如,具有属性src、dst、srcport、dstport和协议的流类型)和分组有效负载的大小。然后,应用操作符reduceByKey,它对于每个唯一流计算所有有效负载大小(单位为字节)的总和。结果是分布式数据结构flowBytes,其中每个元组是具有字节大小的流。最后,可按照更粗的粒度(例如,>1GB、100KB-1GB、10KB-100KB、1KB-10KB、<1KB)将流字节分类。此外,可输出按照某个顺序或期望的范围分类的流。

图7B是示出根据一个实施例用于在分布式体系结构中执行流大小分布判定的伪代码701的图。例如,伪代码701可作为流大小分布判定模块321的一部分实现。伪代码701执行与伪代码700所执行的操作类似的操作,不同之处在于,将伪代码701分区,以使得它可由多个网络装置的多个DPU以分布式方式执行。例如,伪代码701的片段702的操作可由低级DPU执行,而伪代码701的片段703的操作可由高级DPU执行。

如图7B所示,分布式体系结构假设,存在N个低级DPU和一个高级DPU。每个低级DPU_i与集中式版本类似地处理它的输入数据集ipTuples_i。将输出概要flowBytes_i上载到高级DPU。高级DPU在一个分布式数据结构中聚合这N个下游概要flowBytes_i(i=1, 2, …, N)以作为输入。然后,它对输入应用reduceByKey操作符以便计算每个相异流的流字节的总和。最后,将所得flowBytes分类并输出。

现在将举例说明用于执行流大小分布判定的分布式体系结构。在以下示例中假设,片段702分别由网络装置230和231的DPU 250和251执行。该示例还假设,片段703由网络装置234的DPU 254执行。

假设,DPU 250接收了原始IP数据,并在执行映射操作之后将ipTuples变换为以下值:

{FLOW-10, 100},{FLOW-20, 200},和{FLOW-10, 500}。

在DPU 250执行随后的reduceByKey操作之后,发送给DPU 254的flowBytes_i为:

{FLOW-10, 600}和{FLOW-20, 200},

它们指示,在由网络装置230和DPU 250监测的网络的这部分中,存在两个相异流,一个流由密钥FLOW-10标识,另一个流由密钥FLOW-20标识,它们分别占了600字节和200字节业务。

假设,DPU 251接收了原始IP数据,并且在执行映射操作之后将ipTuples变换为以下值:

{FLOW-10, 300},{FLOW-30, 100},和{FLOW-30, 150}。

在DPU 252执行随后的reduceByKey操作之后,发送给DPU 254的flowBytes_i为:

{FLOW-10, 300}和{FLOW-30, 250},

它们指示,在由网络装置231和DPU 251监测的网络的这部分中,存在两个相异流,一个流由密钥FLOW-10标识,另一个流由密钥FLOW-30标识,它们分别占了300字节和250字节。

假设,DPU 254接收了来自DPU 250和251的flwoBytes_i。在执行代码片段703中的合并操作之后,输入包含以下值:

{FLOW-10, 600},{FLOW-20, 200},{FLOW-10, 300},和{FLOW-30, 250}。

注意,这些流密钥不是唯一的。但是,在执行片段703中的随后的reduceByKey操作之后,DPU 254将输入缩减为以下flowBytes对:

{FLOW-10, 900},{FLOW-20, 200},和{FLOW-30, 250}。

然后,DPU 254将根据某个选择准则输出那些对。例如,如果用户想要看到大小大于512字节的流,那么将只示出FLOW-10。

层级大流量对象检测

图8A和8B分别是示出用于在集中式和分布式体系结构中执行层级大流量对象(HHH,hierarchical heavy hitter)检测的伪代码的图。图8A是示出根据一个实施例用于集中式体系结构的伪代码800的图。例如,伪代码800可作为HHH检测模块322的一部分实现,模块322可作为软件、固件、硬件或其任意组合实现。

几乎实时地检测高容量业务集群在诸如流量监测、记账和网络异常检测的各种网络管理任务中都是重要的。大流量对象通常具层级性,这意味着可在IP地址的不同聚合级处对它进行定义。它也可以是多维的,因为可从诸如IP地址、端口号和协议的不同IP报头字段的组合定义大流量对象检测。利用单个服务器检查聚合体的所有可能组合以便检测所有大流量对象是具有挑战性的,因为计算和存储资源存在限制。

如本文中所使用,大流量对象是占链路集合中的总测量业务的至少k比例的流集合,它们可以用分组、字节、连接等度量。大流量对象可以是个别流或连接、或多个流/连接的聚合。聚合体中的每个流本身不一定是大流量对象。可在诸如IP流的源IP地址、目的地IP地址、源端口、目的地端口和协议字段的一个或多个维度上定义聚合。

层级大流量对象(HHH)定义为是在排除任何HHH子代之后贡献大量业务(例如,链路容量的至少k分数或所有网络业务的k分数)的最长IP前缀。

HHH问题的简单的解决方案是在单个机器中在树中的所有叶节点的业务计数上运行离线算法。但是,这种方法缓慢并且对于大业务大小不可扩缩。

如图8A所示,集中式体系结构假设,在分布式数据结构ipTuples中加载输入数据集。为简单起见,只考虑每个分组的src和dst地址。假设,函数dissect(src, dst)产生src和dst IP地址的前缀的层级组合的集合。例如,对于一对IPv4地址,有16种组合。然后,对于每个所得对,生成有效负载字节的数量(len)并将对和数量存储在分布式数据结构hhh中。flatMap操作符简单地在一个数据结构hhh中组合所有所得对。接着,应用操作符reduceByKey来计算每个地址前缀对的有效负载字节的数量的总和,由此表示一个潜在的大流量对象。最后,通过例如按大小将这些对排序、以便排除不重要的子代来输出具有某种进一步变换的hhh。

图8B是示出根据一个实施例用于在分布式体系结构中执行HHH检测的伪代码801的图。例如,伪代码801可作为HHH检测模块322的一部分实现。伪代码801执行与伪代码800所执行的操作类似的操作,不同之处在于,将伪代码801分区,以使得它可由多个网络装置的多个DPU以分布式方式执行。例如,伪代码801的片段802的操作可由低级DPU执行,而伪代码801的片段803的操作可由高级DPU执行。

如图8B所示,分布式体系结构假设,存在N个低级DPU和一个高级DPU。每个低级DPU_i与集中式版本中类似地处理它的输入数据集ipTuples_i。在高级DPU处聚合所得hhh_i,由此简单地应用操作符reduceByKey来计算每个相异地址对的有效负载大小的总和。最后,如同集中式版本中一样,在某种进一步变换之后,输出所得hhh。

现在将举例说明用于执行HHH检测的分布式体系结构。在以下示例中假设,片段802分别由网络装置230和231的DPU 250和251执行。该示例还假设,片段803由网络装置234的DPU 254执行。

假设,DPU 250接收了原始IP数据,并且ipTuples包含以下值(为简洁起见,每个元组中只有字段src、dst和len,而省略了其它字段):

{(1.2.3.4.5.6.7.8, 100)}。

调用函数dissect(1.2.3.4.5.6.7.8)得到IP地址前缀对的以下16种组合:

{(1.2.3.4, 5.6.7.8), (1.2.3.4, 5.6.7), (1.2.3.4, 5.6), (1.2.3.4, 5), (1.2.3, 5.6.7.8), (1.2.3, 5.6.7), (1.2.3, 5.6), (1.2.3, 5), (1.2, 5.6.7.8), (1.2, 5.6.7), (1.2, 5.6), (1.2, 5), (1, 5.6.7.8), (1, 5.6.7), (1, 5.6), (1, 5)}。

相应地,随后的映射操作得到以下16个元组,它们将有效负载大小100关联到每一对src和dst前缀:

{((1.2.3.4, 5.6.7.8), 100), ((1.2.3.4, 5.6.7), 100), ((1.2.3.4, 5.6), 100), ((1.2.3.4, 5), 100), ((1.2.3, 5.6.7.8), 100), ((1.2.3, 5.6.7), 100), ((1.2.3, 5.6), 100), ((1.2.3, 5), 100), ((1.2, 5.6.7.8), 100), ((1.2, 5.6.7), 100), ((1.2, 5.6), 100), ((1.2, 5), 100), ((1, 5.6.7.8), 100), ((1, 5.6.7), 100), ((1, 5.6), 100), ((1, 5), 100)}。

对以上集合应用操作flatMap将产生相同集合,因为在该简单示例中只有一个输入集合。如果有两个或两个以上集合,那么flatMap结果将是所有那些集合的并集。注意,这里,密钥是(src, dst)前缀对。由于每个密钥都是唯一的,所以在应用操作reduceByKey之后,所得集合hhh_i也与以上集合相同。然后,将该集合发送到DPU 254。

假设DPU 251接收了原始IP数据,并且ipTuples包含以下值(为简洁起见,每个元组中只有字段src、dst和len,而省略了其它字段):

{(1.2.3.4.5.6.7.8, 300)}。

与上文类似,在应用flatMap和reduceByKey操作之后,所得hhh_i集合包含以下16个密钥-值对:

{((1.2.3.5, 5.6.7.8), 300), ((1.2.3.5, 5.6.7), 300), ((1.2.3.5, 5.6), 300), ((1.2.3.5, 5), 300), ((1.2.3, 5.6.7.8), 300), ((1.2.3, 5.6.7), 300), ((1.2.3, 5.6), 300), ((1.2.3, 5), 300), ((1.2, 5.6.7.8), 300), ((1.2, 5.6.7), 300), ((1.2, 5.6), 300), ((1.2, 5), 300), ((1, 5.6.7.8), 300), ((1, 5.6.7), 300), ((1, 5.6), 300), ((1, 5), 300)}。

在将以上两个hhh_i集合发送到DPU 254之后,应用代码片段803中的合并操作将得到这两个集合的并集。

然后,通过应用片段803中的操作reduceByKey,将生成如下所得集合hhh,它计算具有相同密钥的对中的大小的总和:

{((1.2.3.4, 5.6.7.8), 100), ((1.2.3.4, 5.6.7), 100), ((1.2.3.4, 5.6), 100), ((1.2.3.4, 5), 100), ((1.2.3.5, 5.6.7.8), 300), ((1.2.3.5, 5.6.7), 300), ((1.2.3.5, 5.6), 300), ((1.2.3.5, 5), 300), ((1.2.3, 5.6.7.8), 400), ((1.2.3, 5.6.7), 400), ((1.2.3, 5.6), 400), ((1.2.3, 5), 400), ((1.2, 5.6.7.8), 400), ((1.2, 5.6.7), 400), ((1.2, 5.6), 400), ((1.2, 5), 400), ((1, 5.6.7.8), 400), ((1, 5.6.7), 400), ((1, 5.6), 400), ((1, 5), 400)}。

在最终输出中,在清除地址前缀组合中的不重要的子代之后,将以更简明且有意义的方式将以上集合呈现给用户。一个可能的输出是{((1.2.3.4, 5.6.7.8), 400)},它指示域1.2.3中的源地址一共将400个字节的数据发送到目的地地址5.6.7.8。因此,IP域1.2.3是潜在的大流量对象。

超级传播者检测/蠕虫检测

图9A和9B分别是示出用于在集中式和分布式体系结构中执行超级传播者/蠕虫检测的伪代码的图。图9A是示出根据一个实施例用于集中式体系结构的伪代码900的图。例如,伪代码900可作为超级传播者检测模块323的一部分实现。图9B是示出根据一个实施例用于分布式体系结构的伪代码901的图。例如,伪代码901可作为超级传播者检测模块323的一部分实现。伪代码901执行与伪代码900所执行的操作类似的操作,不同之处在于,将伪代码901分区,以使得它可由多个网络装置的多个DPU以分布式方式执行。例如,伪代码901的片段902的操作可由低级DPU执行,而伪代码901的片段903的操作可由高级DPU执行。

诸如DDoS攻击和蠕虫攻击的互联网攻击的严重程度日益增加。网络安全监测可在防御和抑制这种大规模互联网攻击中起着重要的作用。它可用于标识被攻击的行为不当的主机或受害者,并且可用于开发合适的过滤器以便自动阻断攻击业务。例如,执行快速扫描以便传播蠕虫的被入侵主机通常在短时间内形成到不同目的地的不寻常的大量连接。标识的潜在攻击者可用于触发网络日志系统以便记录攻击者业务以进行攻击的详细的实时和事后分析,并且还可用于帮助开发实时阻断随后的攻击业务的过滤器。

在进行快速扫描以便实现蠕虫传播的期间,被入侵的主机可能会试图连接到大量不同主机以便传播蠕虫。如果主机h在固定时间间隔T期间将业务发送到多于k个唯一目的地,那么将主机h定义为是超级传播者。kh对于算法是可配置参数。如果在时间窗口内源形成到相同目的地的多个连接或将多个分组发送到相同目的地,那么该源-目的地连接只计一次。这是因为,存在合法通信模式,其中在诸如网页下载的时间窗口内,源形成到相同目的地的数次连接。

通过实时标识在短时间内形成不寻常的大量不同连接的任何源IP地址,网络监测节点可标识可能是超级传播者的主机,并且可采取合适的措施。检测超级传播者对于停止蠕虫传播很重要。因此,早期检测它们至关重要。在一个实施例中,给定分组序列,我们想要设计实时标识在时间窗口内哪些源IP地址接触了大量不同主机的有效监测机制。这在高速监测节点上是很大的难题,因为每分钟可能有数百万的合法流通过,并且攻击业务可能只是极小的一部分。

分别如图9A和9B所示用于执行超级传播者和蠕虫检测的集中式和分布式体系结构与计数业务/DDoS检测模块320的相应体系结构类似。差别在于,在模块323中,利用源IP地址(src)而不是目的地IP地址(dst)作为密钥。

业务流变化检测

图10A和10B分别是示出用于在集中式和分布式体系结构中执行业务流变化检测的伪代码的图。图10A是示出根据一个实施例用于集中式体系结构的伪代码1000的图。例如,伪代码1000可作为业务流变化检测模块324的一部分实现。图10B是示出根据一个实施例用于分布式体系结构的伪代码1001的图。例如,伪代码1001可作为业务流变化检测模块324的一部分实现。伪代码1001执行与伪代码1000所执行的操作类似的操作,不同之处在于,将伪代码1001分区,以使得它可由多个网络装置的多个DPU以分布式方式执行。例如,伪代码1001的片段1002的操作可由低级DPU执行,而伪代码1001的片段1003的操作可由高级DPU执行。

各种攻击的检测通常将业务看作是流的合集,并在业务模式和量方面寻找重大变化。给定现今的业务量和链路速度,检测方法必须能够处理潜在数百万或更多的同步网络流。

根据业务变化检测模块324的一个实施例,该模块将数据项的序列分解成两个时间上相邻的窗口。我们感兴趣的是在第一窗口相对于第二窗口采取的信号大小显著不同的密钥。该模块通过基于过去的业务历史导出正常行为的模型并查找不符合该模型的大约数分钟到数小时的短期行为的显著变化来检测业务异常。

如图10A所示,该模块按照相同时间间隔长度(例如,10分钟)的时间窗口将输入数据集分区。在RDD中加载每个时间窗口的数据。对于任意两个连续时间窗口ipTuples(k)和ipTuples(k+1),调用(与上述用于判定流大小分布的算法类似的)算法来计算流字节,分别得到flowBytes(k)和flowBytes(k+1)。然后,通过flowChanges(k, k+1) = flowBytes(k+1)-flowBytes(k)计算delta。计算与集合差类似:对于出现在flowBytes(k+1)中但没有出现在flowBytes(k)中的每个新流,字节为正;对于出现在flowBytes(k)中但没有出现在flowBytes(k+1)中的每个流,字节为负;对于出现在两者中的每个流,字节差可为正、负或零。最后,该模块按照某个准则、例如按照绝对变化量的降序输出感兴趣的那些变化。

如图10B所示,由于flowBytes和flowChanges的计算是交换式的,所以它可与上文所述的其它四类分析(模块320-323)类似地实现。低级DPU将计算的flowChanges上载到高级DPU,而高级DPU接着聚合所有N个flowChanges,并应用reduceByKey操作符。

现在将举例说明用于执行业务流变化检测的分布式体系结构。在以下示例中假设,片段1002分别由网络装置230和231的DPU 250和251执行。该示例还假设,片段1003由网络装置234的DPU 254执行。

假设,DPU 250在时间窗口k中接收了原始IP数据,并将ipTuples_250(k)变换为具有以下值的flowBytes(k):

{(FLOW-10, 600),(FLOW-20, 200)}。

假设,DPU 250在下一个时间窗口k+1中接收了原始IP数据,并将ipTuples_250(k+1)变换为具有以下值的flowBytes(k+1):

{(FLOW-10, 300),(FLOW-30, 250)}。

在时间窗口k+1结束时,DPU 250计算具有以下值的差flowChanges_250(k+1, k) = flowBytes(k+1) - flowBytes(k):

{(FLOW-10, -300),(FLOW-20, -200),(FLOW-30, 250)},

其中,与上一个时间窗口相比,FLOW-10的大小减小300字节,FLOW-20的大小减小200字节,而FLOW-30的大小增加250字节。

假设,DPU 251在时间窗口k中接收了原始IP数据,并将ipTuples_251(k)变换为具有以下值的flowBytes(k):

{(FLOW-10, 200), (FLOW-20, 100)}。

假设,DPU 251在下一个时间窗口k+1中接收了原始IP数据,并将ipTuples_251(k+1)变换为具有以下值的flowBytes(k+1):

{(FLOW-20, 600), (FLOW-40, 200)}。

在时间窗口k+1结束时,DPU 251计算具有以下值的差flowChanges_251(k+1) = flowBytes(k+1) – flowBytes(k):

{(FLOW-10, -200), (FLOW-20, 500), (FLOW-40, 200)},

其中,与上一个时间窗口相比,FLOW-10的大小减小200字节,FLOW-20的大小增加500字节,并且FLOW-40的大小增加200字节。

将以上两个流变化flowChanges_250和flowChanges_251分别从DPU 250和DPU 251发送到DPU 254。DPU 254聚合这两个输入数据集,并且并集输入包括以下值:

{(FLOW-10, -300), (FLOW-20, -200), (FLOW-30, 250), (FLOW-10, -200), (FLOW-20, 500), (FLOW-40, 200)}。

然后,DPU 254对输入应用操作reduceByKey,由此得到如下聚合的flowChanges(k, k+1):

{(FLOW-10, -500), (FLOW-20, 300), (FLOW-30, 250), (FLOW-40, 200)}。

最后,DPU 254根据某个用户定义的准则输出这些流变化。例如,按照绝对值的前4个流变化将是降序的FLOW-10、FLOW-20、FLOW-30和FLOW-40。

图11是示出在将上述每个分析映射到DPU的分布式网络时的一般设计模式的框图。当利用某种大数据技术(例如,Spark/BDAS)时,每个分析的实现在商用计算机的集群上变得非常简便。集中式体系结构在不同分析之间非常类似:加载输入数据集;应用用户定义的映射和缩减函数,它们分别从输入数据集提取密钥-值对并对每个密钥聚合这些值;然后将结果输出到用户或存储系统。对于每种类型的分析,差别主要在于用户定义的映射、缩减和输出函数中。在每种情况的分布式体系结构中,低级DPU的代码与它的集中式版本几乎相同,不同之处在于,通过将结果上载到更高级DPU来取代结果输出。此外,在每种情况的分布式体系结构中,高级DPU的代码也几乎相同:它聚合来自所有较低级DPU的中间结果,并应用操作符reduceByKey来计算每个不同密钥的对应计数(例如,流id)的总和。此外,在每种情况的分布式体系结构中,较高级DPU可容易地用多于两级(它作为示例给出)的更多级扩展。下一级DPU只是通过聚合来自它的较低级DPU的中间结果、应用操作符reduceByKey、然后将结果上载到另一个更高级的DPU来以相同方式工作。在最高级,除了聚合和缩减较低级结果之外,最终结果的输出正好与集中式体系结构中相同,例如按照密钥将结果排序,或者按照值范围或阈值选择结果。

以上模式对可扩缩网络业务分析的全局范围的平台的设计具有以下含义。利用用户定义的映射、缩减和输出函数,如同其它领域中的当前大数据分析那样在一个集中式数据中心或少数几个数据中心中快速地实现一定范围的网络业务分析是可能的。此外,在网络装置的网络上快速地重新实现这些网络业务分析并将它们部署到这样的数据处理网络上也是可能的。在数据源附近处理原始数据,并且只将数据的概要上载到上级DPU。该实现具有高得多的带宽效率和快得多的响应。此外,将遵循以上模式的网络业务分析从集中式(或体系结构不可知的)体系结构自动转化为分布式体系结构也是可能的。以此方式,取决于诸如数据大小、资源的可用性、网络链路质量、成本和对等待时间的要求的因素,可在一定范围的体系结构选项上自动执行分析。那些选项包括:增加任意级DPU,调整DPU的数量和位置,改变DPU之间的连接。

图12是示出可与本发明的一个实施例一起使用的数据处理系统的示例的框图。例如,系统1200可代表用于执行上文所描述的任何过程或方法的上述任何数据处理系统。系统1200可代表桌面型计算机、膝上型计算机、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(PDA)、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒、或其组合。

参考图12,在一个实施例中,系统1200包括处理器1201和外围接口1202,外围接口1202在本文中又称为芯片组,它经由总线或互连将包括存储器1203和装置1205-1208在内的各种组件耦合到处理器1201。处理器1201可代表其中包含单个处理器核或多个处理器核的单个处理器或多个处理器。处理器1201可代表一个或多个通用处理器,例如微处理器、中央处理单元(CPU)等。更具体来说,处理器1201可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其它指令集的处理器、或实现指令集的组合的处理器。处理器1201也可以是一个或多个专用处理器,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器、或能够处理指令的任何其它类型的逻辑。处理器1201配置成执行指令以便执行本文中所论述的操作和步骤。

外围接口1202可包括存储器控制器集线器(MCH)和输入输出控制器集线器(ICH)。外围接口1202可包括与存储器1203通信的存储器控制器(未示出)。外围接口1202还可包括与图形子系统1204通信的图形接口,图形子系统1204可包括显示器控制器和/或显示装置。外围接口1202可经由加速图形端口(AGP)、外围组件互连(PCI)express总线或其它类型的互连与图形装置1204通信。

MCH有时称为北桥,而ICH有时称为南桥。如本文中所使用,术语MCH、ICH、北桥和南桥旨在广泛地解释为涵盖功能包括向处理器传递中断信号的各种芯片。在一些实施例中,MCH可与处理器1201集成。在这种配置中,外围接口1202作为执行MCH和ICH的一些功能的接口芯片操作。此外,图形加速器可集成在MCH或处理器1201内。

存储器1203可包括一个或多个易失性存储(或存储器)装置,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储装置。存储器1203可存储包括由处理器1201或任何其它装置执行的指令序列的信息。例如,可在存储器1203中加载并由处理器1201执行各种操作系统、装置驱动器、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据。操作系统可以是任何种类的操作系统,例如Microsoft®的Windows®操作系统、Apple的Mac OS®/iOS®、Google®的Android®、Linux®、Unix®、或诸如VxWorks的其它实时或嵌入式操作系统。

外围接口1202可提供到诸如包括无线收发器1205、输入装置1206、音频IO装置1207和其它IO装置1208的装置1205-1208的IO装置的接口。无线收发器1205可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其组合。输入装置1206可包括鼠标、触摸板、触敏屏(它可与显示装置1204集成)、诸如触笔的指向装置、和/或键盘(例如,物理键盘或作为触敏屏的一部分显示的虚拟键盘)。例如,输入装置1206可包括耦合到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可例如利用多个触敏技术(包括但不限于电容式、电阻式、红外和声表面波技术)以及其它接近传感器阵列或用于确定与触摸屏的一个或多个接触点的其它元件中的任一个检测其接触和移动或间歇。

音频IO 1207可包括扬声器和/或麦克风以便于语音启用的功能,例如语音识别、语音复制、数字记录和/或电话功能。其它可选装置1208可包括存储装置(例如,硬盘驱动器、闪速存储器装置)、通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥接器(例如,PCI-PCI桥接器)、传感器(例如,运动传感器、光传感器、接近传感器等)或其组合。可选装置1208还可包括成像处理子系统(例如,相机),它用于促进相机功能(例如,记录照片和视频剪辑),它可包括光学传感器,例如电荷耦合装置(CCD)或互补金属-氧化物半导体(CMOS)光学传感器。

注意,尽管图12示出数据处理系统的各种组件,但是它不是要代表互连这些组件的任何特定体系结构或方式;因为这些细节与本发明的实施例无密切关系。还将明白,具有更少组件或可能更多组件的网络计算机、手持式计算机、移动电话和其它数据处理系统也可与本发明的实施例一起使用。

上文用计算机存储器内的数据位上的事务的算法和符号表示介绍了以上详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用来向本领域中的其它技术人员最有效地传达他们的工作实质的方式。算法在这里一般视为是导致期望结果的事务的独立序列。这些事务是需要物理操纵物理量的事务。通常但不一定,这些量采用能够存储、传送、组合、比较以及以其它方式进行操纵的电或磁信号的形式。主要出于常用的原因,有时将这些信号称为位、值、元素、符号、字符、项、数字等经证实是便利的。

但是,应记住,所有这些和类似术语都将与合适的物理量相关联,并且它们只是应用于这些量的便利标记。除非另外特别指出,否则从以上论述显而易见,将明白,在本描述中,利用诸如“处理”、或“计算”、或“演算”、或“确定”、或“显示”等术语的论述是指操纵表示为计算机系统的寄存器和存储器内的物理(如电子)量的数据并将这些数据变换为类似地表示为计算机系统的存储器、或寄存器或其它这样的信息存储、传输或显示装置内的物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本文中介绍的算法和显示并非与任何特定计算机或其它设备固有地相关。各种通用系统可与根据本文中的教导的程序一起使用,或者构造更专门的设备来执行所需方法事务可证实是便利的。各种这些系统的所需结构将从以上描述显而易见。另外,没有参考任何特定编程语言来描述本发明的实施例。将明白,可使用各种编程语言来实现本文中所描述的本发明的实施例的教导。

在以上说明书中,参考本发明的特定示例性实施例描述了本发明的实施例。将显而易见,在不偏离随附权利要求所述的本发明的更广精神和范围的情况下,可对其进行各种修改。因此,说明书和附图应视为是说明性意义而不是限制性意义。

在整篇描述中,通过流程图介绍了本发明的实施例。将明白,这些流程图中所描述的事务顺序和事务只是为了说明的目的,而不是要限制本发明。本领域技术人员将意识到,在不偏离随附权利要求所述的本发明的更广精神和范围的情况下,可对这些流程图进行各种改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号