logo好方法网

使用业务流拼接发现中间设备


技术摘要:
用于跨中间设备的流拼接网络业务流段的系统、方法和计算机可读介质。一种方法可以包括收集网络环境中第一中间设备和第二中间设备处的业务流段的流记录,该流记录包括分配给业务流段的一个或多个事务标识符。可以相对于第一中间设备和第二中间设备识别业务流段的源和目  全部
背景技术:
目前,部署在网络中的传感器可用于收集与网络中运行的节点相关的网络业务数 据。网络业务数据可以包括与分组、分组集合、流、双向流、流组、会话或另一粒度的网络通 信相关的元数据。也就是说,网络业务数据通常可以包括描述开放式系统互连(OSI)模型的 所有层上的通信的任何信息。例如,网络业务数据可以包括源/目的地MAC地址、源/目的地 IP地址、协议、端口号等。在一些实施例中,网络业务数据还可以包括网络活动的概要或其 他网络统计信息,例如分组的数目、字节的数目、流的数目、带宽使用情况、响应时间、时延、 丢包、抖动、以及其他网络统计信息。 可以分析收集到的网络业务数据以深入了解网络中节点的操作,这另外被称为分 析学。具体而言,可以使用网络业务数据来确定针对网络的已发现的应用或清单、应用依赖 关系、策略、效率、资源和带宽使用情况以及网络流。 部署在网络中的传感器可用于在客户端和服务器粒度级别上收集网络业务数据。 例如,可以收集网络业务数据,以确定哪些客户端正在与哪些服务器通信,反之亦然。然而, 传感器目前未被部署或与系统集成以收集针对形成服务器和客户端之间的业务流的不同 业务流段的网络业务数据。具体地,当前传感器收集作为直接在客户端和服务器之间的业 务流的网络业务数据,而忽略业务流在服务器和客户端之间传递时实际上通过了哪些节点 (例如,中间设备)。更具体地,当前传感器未被配置为收集作为通过服务器与客户端之间的 多个中间设备的业务流的网络业务数据。这实际上将服务器和客户端之间的网络环境视为 黑箱,并导致网络业务数据和由网络业务数据指示的业务流中的间隙。 进而,网络业务数据和对应的业务流中的这种间隙可能导致在网络环境中诊断问 题方面的缺陷。例如,由于客户端和服务器之间的流被视为黑箱,即使它实际上通过了一个 或多个中间设备,由配置不正确的中间设备引起的问题可能被诊断为在客户端处发生。在 另一示例中,服务器和客户端之间的网络业务数据中的间隙可能导致无法确定在服务器和 客户端之间的中间设备处是否正确实施了策略。因此,存在对用于生成在服务器和客户端 之间的节点处(例如,服务器和客户端之间的中间设备链中的多个中间设备处)的网络业务 数据的系统、方法和计算机可读介质的需要。具体而言,存在对用于进行以下操作的系统、 方法和计算机可读介质的需要:将通过服务器和客户端之间的多个节点的业务流拼接在一 6 CN 111557087 A 说 明 书 2/27 页 起以生成更完整和详细的业务流(例如服务器和客户端之间)。 附图说明 为了描述能够获得本公开的上述和其他优点及特征的方式,将呈现对以上简要描 述的原理的更具体的描述,这通过参考附图中所示的其具体实施例来进行。要理解,这些附 图仅描绘本公开的示例性实施例,因此不被认为是对其范围的限制,本文中的原理通过使 用附图结合额外的特征和细节来描述和解释,在附图中: 图1示出了示例网络业务监视系统; 图2示出了网络环境的示例; 图3描绘了用于将客户端和服务器之间的多个节点上的业务流段拼接在一起的示 例网络环境的图; 图4示出了形成跨中间设备的跨中间设备(cross-middlebox)拼接业务流的示例 方法的流程图; 图5示出了示例中间设备业务流拼接系统; 图6示出了根据各种实施例的示例网络设备;以及 图7示出了根据各种实施例的示例计算设备。
技术实现要素:
下面详细讨论本公开的各种实施例。虽然讨论了具体实现方式,但应该理解,这样 做只是为了说明目的。相关领域技术人员将认识到,可以在不脱离本公开的精神和范围的 情况下使用其他组件和配置。因此,以下的描述和附图是说明性的,并且不应被解释为限制 性的。许多具体细节被描述以提供对本公开的透彻理解。然而,在某些情况下,为了避免使 描述难以理解,并未对公知的或常规的细节进行描述。本公开中对一个实施例或实施例的 引用可以是对同一实施例或任何实施例的引用;并且,这些的引用表示实施例中的至少一 个。 对“一个实施例”或“实施例”的引用表示结合该实施例描述的特定的特征、结构或 特性被包括在本公开的至少一个实施例中。在说明书的各个地方出现的短语“在一个实施 例中”不一定都指代同一实施例,也不一定是与其他实施例相互排斥的单独或替代实施例。 此外,描述了可由一些实施例展现而未被其他实施例展现的各种特征。 本说明书中使用的术语通常在本领域、在本公开的上下文中以及在使用每个术语 的特定上下文中具有其通常的含义。替代的语言和同义词可用于本文所讨论的任何一个或 多个术语,且不应对术语是否在本文中被阐述或讨论施加特殊意义。在一些情况下,提供了 某些术语的同义词。对一个或多个同义词的详述并不排除使用其他同义词。在本说明书的 任何地方对示例(包括本文讨论的任何术语的示例)的使用仅是说明性的,并不旨在进一步 限制本公开或任何示例术语的范围和含义。同样,本公开不限于本说明书中给出的各种实 施例。 在无意限制本公开的范围的情况下,下面给出根据本公开的实施例的仪器、装置、 方法及其相关结果的示例。注意,为了方便读者,在示例中可能使用了标题或副标题,这决 不应限制本公开的范围。除非另有定义,否则本文中使用的技术和科学术语具有本公开所 7 CN 111557087 A 说 明 书 3/27 页 属领域的普通技术人员通常理解的含义。在存在冲突的情况下,则以本文件(包括定义)为 准。 本公开的附加特征和优点将在下面的描述中阐述,并且部分将通过描述而显而易 见或者可以通过实践本文所公开的原理来学习。本公开的特征和优点可以借助于所附权利 要求中特别指出的仪器和组合来实现和获得。本公开的这些和其他特征将通过以下描述和 所附权利要求而变得更加充分地明显,或者可以通过实践本文所阐述的原理来学习。 概述 本发明的各方面在独立权利要求中陈述,并且优选特征在从属权利要求中陈述。 一个方面的特征可以单独应用于每个方面,或者与其他方面结合应用。 一种方法可以包括收集网络环境中第一中间设备和第二中间设备两者处的业务 流段的流记录,这些业务流段与通过第一中间设备和第二中间设备中的一者或两者的一个 或多个业务流相对应。流记录可以包括分配给业务流的一个或多个事务标识符。可以使用 流记录来识别网络环境中业务流段相对于第一中间设备和第二中间设备中的一者或两者 的源和目的地。该方法可以包括基于分配给业务流段的一个或多个事务标识符以及网络环 境中业务流段相对于第一中间设备的源和目的地,将业务流段的子集拼接在一起,以形成 网络环境中的第一中间设备处的第一拼接业务流。另外,该方法可以包括基于分配给业务 流段的一个或多个事务标识符以及网络环境中业务流段相对于第二中间设备的源和目的 地,将业务流段的另一子集拼接在一起,以形成网络环境中的第二中间设备处的第二拼接 业务流。可以将第一拼接业务流和第二拼接业务流拼接在一起,以形成跨第一中间设备和 第二中间设备的跨中间设备的拼接业务流。随后,可以将跨中间设备的拼接业务流作为网 络环境的网络业务数据的一部分并入。 一种系统可以收集网络环境中第一中间设备和第二中间设备两者处的业务流段 的流记录,这些业务流段与通过第一中间设备和第二中间设备中的一者或两者的一个或多 个业务流相对应。流记录可以包括分配给业务流的一个或多个事务标识符。系统可以使用 流记录,来识别网络环境中业务流段相对于第一中间设备和第二中间设备中的一者或两者 的源和目的地。可以基于分配给业务流段的一个或多个事务标识符以及网络环境中业务流 段相对于第一中间设备的源和目的地,将业务流段的子集拼接在一起,以形成网络环境中 的第一中间设备处的第一拼接业务流。另外,该系统可以基于分配给业务流段的一个或多 个事务标识符以及网络环境中业务流段相对于第二中间设备的源和目的地,将业务流段的 另一子集拼接在一起,以形成网络环境中的第二中间设备处的第二拼接业务流。可以将第 一拼接业务流和第二拼接业务流拼接在一起,以形成跨第一中间设备和第二中间设备的跨 中间设备的拼接业务流。 一种系统可以收集网络环境中第一中间设备和第二中间设备两者处的业务流段 的流记录,这些业务流段与通过第一中间设备和第二中间设备中的一者或两者的一个或多 个业务流相对应。流记录可以包括分配给业务流的一个或多个事务标识符。该系统可以使 用流记录来识别网络环境中业务流段相对于第一中间设备和第二中间设备中的一者或两 者的源和目的地。可以基于分配给业务流段的一个或多个事务标识符以及网络环境中业务 流段相对于第一中间设备的源和目的地,将业务流段的子集拼接在一起,以形成网络环境 中的第一中间设备处的第一拼接业务流。另外,该系统可以基于分配给业务流段的一个或 8 CN 111557087 A 说 明 书 4/27 页 多个事务标识符以及网络环境中业务流段相对于第二中间设备的源和目的地,将业务流段 的另一子集(其包括与业务流段的子集共同的业务流段)拼接在一起,以形成网络环境中的 第二中间设备处的第二拼接业务流。可以将第一拼接业务流和第二拼接业务流拼接在一 起,以形成跨第一中间设备和第二中间设备的跨中间设备的拼接业务流。 示例实施例 所公开的技术解决了本领域中监视网络环境的需要,例如以诊断和防止网络环境 中的问题。本技术涉及用于进行以下操作的系统、方法和计算机可读介质:将服务器和客户 端之间的节点上的业务流拼接在一起,以提供更详细的网络业务数据,例如用于诊断和防 止网络环境中的问题。 本技术将在以下公开内容中描述如下。讨论开始于对网络业务数据收集的介绍性 讨论和对示例网络业务监视系统和示例网络环境的描述,如图1和图2所示。接着将讨论用 于将拼接网络业务流跨节点地拼接在一起的示例系统和方法,如图3-5所示。接着将讨论示 例网络设备和计算设备,如图6和图7所示。本公开现在转到对以下内容的介绍性讨论:基于 网络业务流的网络传感器数据收集,以及为了基于网络业务流来收集数据的目的而进行的 对网络中的节点的聚集。 在网络中实现的传感器传统上受限于在网络设备处收集分组数据。在一些实施例 中,网络可以在多个点处配置有传感器,包括在以下各项上:网络设备(例如,交换机、路由 器、网关、防火墙、深度分组检查器、业务监视器、负载平衡器等)、物理服务器、管理程序或 共享内核、虚拟分区(例如,VM或容器)和其他网络元件。这可以提供更全面的网络视图。此 外,网络业务数据(例如,流)可以与以下各项相关联或以其他方式包括以下各项:主机和/ 或端点数据(例如,主机/端点名称、操作系统、CPU使用情况、网络使用情况、磁盘空间、记录 的用户、安排的工作、打开的文件、关于存储在主机/端点上的文件的信息等)、进程数据(例 如,进程名称、ID、父进程ID、路径、CPU利用率、存储器利用率等)、用户数据(例如,用户名、 ID、登录时间等)和其他可收集的数据以提供对网络活动的更深入的了解。 在多个点处在网络中实现的传感器可被用于收集针对一起分组到集群中的节点 的数据。可以将节点聚集在一起,或者可以用其他方式使用适用的网络操作因素中的一个 或组合来识别节点集群。例如,可以将执行相似工作负荷、与相似的端点或网络设备集合通 信、具有相似的网络和安全限制(即策略)、以及共享其他属性的端点聚集在一起。 在一些实施例中,可以基于早期融合来确定集群,在该早期融合中每个节点的特 征向量包括跨多个域的单独特征向量的结合。例如,特征向量可以包括与基于聚合流的特 征(例如,流中的分组数、流中的字节数等)连结的基于分组报头的特征(例如,流的目的地 网络地址、端口等)。然后,可以将集群定义为如下一组节点:其各自的连接的特征向量被确 定为超过指定的相似性阈值(或低于指定的距离阈值)。 在一些实施例中,可以基于后期融合来定义集群,在该后期融合中每个节点可以 被表示为不同数据类型或域的多个特征向量。在这样的系统中,集群可以是如下一组节点: 其跨不同域的相似性(和/或距离度量)满足每个域的指定相似性(和/或距离)条件。例如, 第一节点可以由第一基于网络信息的特征向量和第一基于进程的特征向量定义,而第二节 点可以由第二基于网络信息的特征向量和第二基于进程的特征向量定义。如果节点对应的 基于网络的特征向量与指定的程度相似,且节点对应的基于进程的特征向量仅相隔指定的 9 CN 111557087 A 说 明 书 5/27 页 距离,则可以确定节点以形成集群。 现在参考附图1,图1是根据实施例的网络业务监视系统100的图示。网络业务监视 系统100可以包括配置管理器102、传感器104、收集器模块106、数据移动器模块108、分析引 擎110、和呈现模块112。在图1中,分析引擎110还被示出为与带外数据源114、第三方数据源 116和网络控制器118通信。 配置管理器102可以用于配设和维护传感器104,包括:在网络的各个节点中安装 传感器软件或固件、配置传感器104、更新传感器软件或固件、以及其他传感器管理任务。例 如,传感器104可以被实现为虚拟分区图像(例如,虚拟机(VM)图像或容器图像),并且配置 管理器102可以将图像分发到主机。通常,虚拟分区可以是VM、容器、沙盒或其他隔离软件环 境的实例。软件环境可以包括操作系统和应用软件。对于在虚拟分区内运行的软件,虚拟分 区可以仿佛是(例如)在单个物理服务器上执行的多个操作系统中的一个操作系统或多个 服务器中的一个服务器。配置管理器102可以实例化新的虚拟分区或将现有分区迁移到不 同的物理服务器。配置管理器102还可用于配置新的或迁移的传感器。 配置管理器102可以监视传感器104的健康状况。例如,配置管理器102可以请求状 态更新和/或接收心跳消息、发起性能测试、生成健康检查并且执行其他健康监视任务。在 一些实施例中,配置管理器102还可以认证传感器104。可以例如通过使用传感器的基本输 入/输出系统(BIOS)通用唯一标识符(UUID)的单向散列函数和由配置图像管理器102存储 的秘密密钥来为传感器104分配唯一标识符。UUID可以是恶意传感器或其他设备或组件难 以猜到的很大的数字。在一些实施例中,配置管理器102可以通过安装传感器软件的最新版 本和/或应用补丁来使传感器104保持更新。配置管理器102可以从本地源或互联网自动获 得这些更新。 传感器104可以驻留在网络的各个节点上,例如,虚拟分区(例如VM或容器)120;管 理一个或多个虚拟分区和/或物理服务器122的管理程序或共享内核;交换机、路由器、网关 或其他网络设备的专用集成电路(ASIC)124;或分组捕获(pcap)126设备(例如,独立的分组 监视器、连接到网络设备监视端口的设备、沿着数据中心的主干线串联连接的设备、或类似 设备)、或网络的其他元件。传感器104可以监视节点之间的网络业务,并且将网络业务数据 和对应数据(例如,主机数据、进程数据、用户数据等)发送到收集器106以进行存储。例如, 传感器104可以嗅探(sniff)正在通过其主机的物理或虚拟网络接口卡(NIC)发送的分组, 或者各个进程可以被配置为向传感器104报告网络业务和对应数据。在多个节点上和在网 络的一些节点的多个分区内并入传感器104可以允许对来自数据传输的每一跳的网络业务 和对应数据的鲁棒捕获。在一些实施例中,网络的每个节点(例如VM、容器、或其他虚拟分区 120、管理程序、共享内核、或物理服务器122、ASIC  124、pcap  126等)包括相应的传感器 104。然而,应当理解,可以使用各种软件和硬件配置来实现传感器网络104。 当传感器104捕获通信和对应数据时,它们可以连续地向收集器106发送网络业务 数据。网络业务数据可以包括与分组、分组集合、流、双向流、流组、会话或另一粒度的网络 通信相关的元数据。也就是说,网络业务数据通常可以包括描述开放式系统互连(OSI)模型 的所有层上的通信的任何信息。例如,网络业务数据可以包括源/目的地MAC地址、源/目的 地IP地址、协议、端口号等。在一些实施例中,网络业务数据还可以包括网络活动的概要或 其他网络统计信息,例如分组的数目、字节的数目、流的数目、带宽使用情况、响应时间、时 10 CN 111557087 A 说 明 书 6/27 页 延、丢包、抖动以及其他网络统计信息。 传感器104还可以针对每个会话、双向流、流、分组或其他更大粒度或更小粒度的 网络通信确定附加数据,该附加数据作为收集的网络业务数据的一部分被包括。附加数据 可以包括主机和/或端点信息、虚拟分区信息、传感器信息、进程信息、用户信息、租户信息、 应用信息、网络拓扑、应用依赖关系映射、集群信息、或与每个流相对应的其他信息。 在一些实施例中,传感器104可以在将数据发送到收集器106之前对网络业务和对 应数据执行一些预处理。例如,传感器104可以去除无关或重复的数据,或者它们可以创建 数据的概要(例如,时延、每个流的分组数、每个流的字节数、流的数目等)。在一些实施例 中,传感器104可被配置为仅捕获某些类型的网络信息而忽略其余类型。在一些实施例中, 传感器104可以被配置为仅捕获分组的代表性样本(例如,每第1000个分组或其他合适的采 样率)和对应数据。 由于传感器104可以位于整个网络中,因此可以从网络中的多个有利地点或多个 角度收集网络业务和对应数据,以提供更全面的网络行为视图。从多个角度而不仅仅是在 位于数据路径中或与数据路径中的组件通信的单个传感器处捕获网络业务和对应数据允 许数据关联于各种数据源,这些数据源可以被分析引擎110用作附加数据点。此外,从多个 视角收集网络业务和对应数据可以确保捕获更准确的数据。例如,常规的传感器网络可能 受限于在面向外部的网络设备(例如,路由器、交换机、网络设备等)上运行的传感器,从而 可能不监视东-西业务(east-west  traffic),包括同一主机上的VM到VM或容器到容器的业 务。此外,在穿过网络设备之前被丢弃的分组或包含错误的分组不能被常规的传感器网络 准确地监视。各种实施例的传感器网络104通过将传感器定位在潜在故障的多个点处,来基 本上减轻或消除全部这些问题。此外,网络业务监视系统100可以相互验证针对流的数据的 多个实例(例如,源端点流数据、网络设备流数据、和端点流数据)。 在一些实施例中,网络业务监视系统100可以评估来自多个传感器的流数据集的 准确度,并且利用来自被确定为最准确和/或最完整的单个传感器的流数据集。准确度可以 基于诸如以下各项之类的因素:网络拓扑(例如,更接近源的传感器可能比更接近目的地的 传感器更准确)、传感器或承载传感器的节点的状态(例如,受损传感器/节点的流数据可能 比未受损传感器/节点的流数据更不准确)或流数据量(例如,为流捕获更大数目的分组的 传感器可能比捕获更少数目的分组的传感器更准确)。 在一些实施例中,网络业务监视系统100可以组装来自多个传感器的最准确的业 务数据集和对应数据。例如,沿着数据路径的第一传感器可以捕获流的第一分组的数据但 可能错失流的第二分组的数据,而沿着数据路径的第二传感器的情况则相反。网络业务监 视系统100可以从由第一传感器捕获的第一分组和由第二传感器捕获的第二分组组装针对 流的数据。 如上所述,传感器104可以向收集器106发送网络业务和对应数据。在一些实施例 中,每个传感器可以被分配给主要收集器和次要收集器,作为高可用性方案的一部分。如果 主要收集器发生故障,或者在其他情况下传感器和主要收集器之间无法进行通信,则传感 器可以将其网络业务和对应数据发送到次要收集器。在其他实施例中,传感器104未被分配 特定的收集器,但是网络业务监视系统100可以通过发现过程来确定用于接收网络业务和 对应数据的最佳收集器。在这样的实施例中,如果传感器的环境发生变化(例如,如果默认 11 CN 111557087 A 说 明 书 7/27 页 收集器发生故障,或者如果传感器迁移到新位置,并且传感器将其数据发送到不同收集器 将是最佳的),则传感器可以改变其发送网络业务和对应数据的位置。例如,传感器可以优 选地基于时延、最短路径、金钱成本(例如,使用私有资源与公共云供应商所提供的公共资 源相比)、错误率、或这些因素的某些组合,来在特定路径上和/或向特定收集器发送其网络 业务和对应数据。在其他实施例中,传感器可以向不同的收集器发送不同类型的网络业务 和对应数据。例如,传感器可以向一个收集器发送与一种类型的进程相关的第一网络业务 和对应数据,并且向另一收集器发送与另一种类型的进程相关的第二网络业务和对应数 据。 收集器106可以是任何类型的存储介质,其可以用作用于由传感器104捕获的网络 业务和对应数据的存储库。在一些实施例中,收集器106的数据存储装置位于存储器中的 (in-memory)数据库中(例如,来自 的dashDB),不过应该理解,收集器106的数据存储 装置可以是能够提供通常用于分析软件的快速随机存取速度的任何软件和/或硬件。在各 种实施例中,收集器106可以根据成本、响应性和大小要求来利用固态驱动器、磁盘驱动器、 磁带驱动器、或前述各项的组合。此外,收集器106可以利用各种数据库结构,例如标准化关 系数据库或NoSQL数据库等。 在一些实施例中,收集器106只能用作网络业务监视系统100的网络存储装置。在 这样的实施例中,网络业务监视系统100可以包括数据移动器模块108,用于从收集器106取 回数据并使数据可用于网络客户端,例如分析引擎110的组件。实际上,数据移动器模块108 可以用作用于向网络客户端呈现网络附接存储装置的网关。在其他实施例中,收集器106可 以执行附加功能,例如组织、汇总和预处理数据。例如,收集器106可以对从网络的不同节点 发送某大小或类型的分组的频率进行制表。收集器106还可以表征去往和来自各个节点的 业务流。在一些实施例中,收集器106可以基于序列号来匹配分组,从而识别业务流和连接 链路。由于在某些情况下无限期地保留所有数据是低效的,在一些实施例中,收集器106可 以周期性地用合并概要(consolidated  summary)替换详细的网络业务数据。以这种方式, 收集器106可以保留描述一个时间段(例如,过去一分钟或其他合适的时间段)的完整数据 集,以及另一时间段(例如,前2-10分钟或其他合适的时间段)的较小数据集,并且逐步合并 其他时间段(例如日、周、月、年等)的网络业务和对应数据。在一些实施例中,针对被标识为 正常或例行的一组流的网络业务和对应数据可以在较早的时间段处被筛选,而对于被标识 为异常或攻击的另一组流,更完整的数据集可以被保留更长的时间段。 分析引擎110可以使用由传感器104收集到的数据来生成分析。由分析引擎110生 成的分析可以包括对在网络中运行的节点或节点集群的适用分析。例如,由分析引擎110生 成的分析可以包括与以下各项有关的一种信息或信息的组合:通过节点的数据流、检测到 的网络或网络节点上的攻击、节点处的应用或跨节点分布的应用、针对节点处的应用的应 用依赖关系映射、在节点处实现的策略、以及在节点处实施的实际策略。 计算机网络可能会受到各种不同的攻击,这些攻击会暴露计算机系统的漏洞,从 而危害其安全性。一些网络业务可能与恶意程序或设备相关联。分析引擎110可以被提供对 应于攻击的网络状态和对应于正常操作的网络状态的示例。然后,分析引擎110可以分析网 络业务和对应数据以识别网络何时受到攻击。在一些实施例中,网络可以在可信环境中运 行一段时间,使得分析引擎110可以建立正常操作的基线。由于恶意软件是不断演变和变化 12 CN 111557087 A 说 明 书 8/27 页 的,机器学习可用于动态地更新用于识别恶意业务模式的模型。 在一些实施例中,分析引擎110可以用于识别与数据集中的其他示例不同的观测。 例如,如果存在具有已知异常值(outlier)标签的示例数据的训练集,则可以使用有监督异 常检测技术。有监督异常检测技术利用已被标记为正常和异常的数据集并训练分类器。在 不知道训练数据中的示例是否是异常值的情况下,可以使用无监督异常技术。在数据集中 的大多数实例为正常的假设下,可以通过寻找似乎适合于数据集其余部分的实例来使用无 监督异常检测技术来检测未标记测试数据集中的异常。 分析引擎110可以包括数据湖(data  lake)130、应用依赖关系映射(ADM)模块140、 和弹性处理引擎150。数据湖130是大型存储库,其提供:针对各种类型的数据的大容量存 储、巨大的处理能力、以及处理几乎无限的并发任务或工作的能力。在一些实施例中,数据 湖130使用来自马里兰州福里斯特希尔的 软件基金会的 分布式文件系 统(HDFSTM)来实现。HDFSTM是高度可扩展并且分布式的文件系统,其可以扩展到数千个集群 节点、数百万个文件和数千兆兆字节的数据。HDFSTM是针对其中数据位置公开的批处理而优 化的,以允许在数据所驻留在的位置进行计算。HDFSTM为整个集群提供单个命名空间,以允 许一次写入、多次读取访问模型中的数据一致性。也就是说,客户端只能附加到节点中的现 有文件。在HDFSTM中,文件被分成块,这些块的大小通常为64MB并在多个数据节点中被复制。 客户端直接从数据节点访问数据。 在一些实施例中,数据移动器108从收集器106接收原始网络业务和对应数据,并 将数据分发或推送到数据湖130。数据湖130还可以接收和存储带外数据114,例如功率水平 的状态、网络可用性、服务器性能、温度条件、笼门(cage  door)位置、和来自内部源的其他 数据,以及第三方数据116,例如安全报告(例如,由加利福尼亚州圣何塞的 系统有 限公司、马萨诸塞州伯灵顿的Arbor 加利福尼亚州森尼维尔的 公司、 英国阿宾顿的 集团股份有限公司、华盛顿州西雅图的 公司、纽约州纽 约的 通信有限公司等提供的)、地理位置数据、IP监察列表、Whois数据、作为服务 的配置管理数据库(CMDB)或配置管理系统(CMS)、以及来自外部源的其他数据。在其他实施 例中,数据湖130可以替代地从收集器106提取或获取原始业务和对应数据,以及从带外数 据源114和第三方数据源116提取或获取相关数据。在又一些其他实施例中,可以组合收集 器106、数据移动器108、带外数据源114、第三方数据源116、和数据湖130的功能。如本领域 普通技术人员已知的,各种组合和配置是可能的。 数据湖130的每个组件可以对原始网络业务数据和/或其他数据(例如主机数据、 进程数据、用户数据、带外数据、或第三方数据)执行某种处理,以将原始数据转换为弹性处 理引擎150可用的形式。在一些实施例中,数据湖130可以包括流属性132、主机和/或端点属 性134、进程属性136和策略属性138的存储库。在一些实施例中,数据湖130还可以包括VM或 容器属性、应用属性、租户属性、网络拓扑、应用依赖关系映射、集群属性等的存储库。 流属性132涉及关于穿过网络的流的信息。流通常是在指定时间段内在网络内发 送的共享某些属性的一个或多个分组。流属性132可以包括分组报头字段,例如,源地址(例 如,互联网协议(IP)地址、媒体访问控制(MAC)地址、域名系统(DNS)名称、或其他网络地 址)、源端口、目的地地址、目的地端口、协议类型、服务类别等字段。源地址可以对应于网络 13 CN 111557087 A 说 明 书 9/27 页 的第一端点(例如,网络设备、物理服务器、虚拟分区等),并且目的地地址可以对应于第二 端点、多播组或广播域。流属性132还可以包括聚合分组数据,例如流开始时间、流结束时 间、流的分组数、流的字节数、流的TCP标志的集合等流数据。 主机和/或端点属性134描述每个流的主机和/或端点数据,并且可以包括主机和/ 或端点名称、网络地址、操作系统、CPU使用情况、网络使用情况、磁盘空间、端口、记录的用 户、安排的工作、打开的文件,以及有关存储在主机和/或端点上的文件和/或目录的信息 (例如,日志文件、配置文件、设备特殊文件或受保护电子信息的存在、不存在、或修改)。如 所讨论的,在一些实施例中,主机和/或端点属性134还可以包括关于主机的带外数据114 (例如,功率水平、温度和物理位置(例如,房间、行、机架、笼门位置等))或第三方数据116 (例如,主机和/或端点是否在IP监察列表上或以其他方式与安全威胁、Whois数据或地理坐 标相关联)。在一些实施例中,带外数据114和第三方数据116可以通过进程、用户、流或其他 更大粒度或更小粒度的网络元件或网络通信相关联。 进程属性136与对应于每个流的进程数据相关,并且可以包括进程名称(例如 bash、httpd、netstat等)、ID、父进程ID、路径(例如/usr2/username/bin/、/usr/local/ bin、/usr/bin等)、CPU利用率、存储器利用率、存储器地址、调度信息、nice值、标志、优先 级、状态、开始时间、终端类型、进程占用的CPU时间、启动进程的命令、以及有关进程所有者 的信息(例如,用户名、ID、用户的真实名称、电子邮件地址、用户组、终端信息、登录时间、登 录过期日期、空闲时间,以及有关用户的文件和/或目录的信息)。 策略属性138包含与网络策略相关的信息。策略确立特定的流是否被网络允许或 拒绝,以及分组穿过网络的特定路径。策略还可用于标记分组,使得某些种类的业务在与排 队技术(诸如,基于优先级、公平性、加权公平性、令牌桶、随机早期检测、循环制等的那些排 队技术)结合使用时接收差异化服务。策略属性138可以包括策略统计信息,例如策略被实 施的次数或策略未被实施的次数。策略属性138还可以包括与网络业务数据的关联性。例 如,被发现不一致的流可以链接或标记对应的策略,以帮助调查不一致性。 分析引擎110可以包括任何数目的引擎150,包括例如用于识别流的流引擎152(例 如,流引擎152)或用于识别对网络的攻击的攻击引擎154。在一些实施例中,分析引擎可以 包括单独的分布式拒绝服务(DDoS)攻击引擎155,以用于专门检测DDoS攻击。在其他实施例 中,DDoS攻击引擎可以是一般攻击引擎的组件或子引擎。在一些实施例中,攻击引擎154和/ 或DDoS引擎155可以使用机器学习技术来识别对网络的安全威胁。例如,可以向攻击引擎 154和/或DDoS引擎155提供对应于攻击的网络状态和对应于正常操作的网络状态的示例。 然后,攻击引擎154和/或DDoS引擎155可以分析网络业务数据以识别网络何时受到攻击。在 一些实施例中,网络可以在可信环境中运行一段时间,以建立用于攻击引擎154和/或DDoS 的正常网络操作的基线。 分析引擎110还可以包括搜索引擎156。搜索引擎156可以被配置为例如执行结构 化搜索、NLP(自然语言处理)搜索、或视觉搜索。可以从一个或多个处理组件向引擎提供数 据。 分析引擎110还可以包括策略引擎158,该策略引擎158管理网络策略,包括创建 和/或导入策略、监视策略一致性和不一致性、实施策略、模拟对策略或影响策略的网络元 素的改变等与策略相关的任务。 14 CN 111557087 A 说 明 书 10/27 页 ADM模块140可以确定网络的应用的依赖关系。也就是说,特定的业务模式可以对 应于应用,并且应用的互连性或依赖关系可以被映射以生成应用的图(即,应用依赖关系映 射)。在此上下文中,应用是指一组网络组件,这些组件为给定的工作负荷组提供连接。例 如,在web应用的常规三层架构中,web层的第一端点、应用层的第二端点、和数据层的第三 端点构成web应用。ADM模块140可以接收来自数据湖130的各种存储库的输入数据(例如,流 属性132、主机和/或端点属性134、进程属性136等)。ADM模块140可以分析输入数据以确定 存在对应于超文本传输协议(HTTP)请求和响应的在第一端点的端口80上的外部端点之间 流动的第一业务。输入数据还可以指示对应于应用服务器请求和响应的在第一端点的第一 端口和第二端点的第二端口之间的第二业务,以及对应于数据库请求和响应的在第二端点 的第三端口和第三端点的第四端口之间流动的第三业务。ADM模块140可以将用于web应用 的ADM定义为三层应用,包括包含第一端点的第一EPG、包含第二端点的第二EPG、和包含第 三端点的第三EPG。 呈现模块112可以包括应用编程接口(API)或命令行接口(CLI)160、安全信息及事 件管理(SIEM)接口162、和web前端164。当分析引擎110处理网络业务和对应数据并生成分 析数据时,分析数据可能不是人可读的形式,或者对于用户来说量太大而无法导航。呈现模 块112可以获取由分析引擎110生成的分析数据,并且进一步对分析数据进行汇总、过滤和 组织以及为分析数据创建直观的呈现。 在一些实施例中,API或CLI  160可以通过将来自 的 Hive用于 后端并且将来自加利福尼亚州Redwood  Shores的 公司的 Database  Connectivity(JDBC)用作API层来实现。Hive是数据仓库基础设施,其提供数据概要和特殊 查询。Hive提供了使用结构化查询语言(SQL)的变体(被称为HiveQL)查询数据的机制。JDBC 是编程语言 的API,它定义了客户端如何访问数据库。 在一些实施例中,SIEM接口162可以通过将 Kafka用于后端并且将由加 利福尼亚州旧金山 有限公司提供的软件用作SIEM平台来实现。Kafka是被分区和 复制的分布式消息传递系统。Kafka使用主题的概念。主题是特定类别中消息的来源 (feed)。在一些实施例中,Kafka可以将来自数据移动器108的原始分组捕获和遥测信息作 为输入,并将消息输出到SIEM平台,例如 平台用于搜索、监视、和分析 机器生成的数据。 在一些实施例中,web前端164可以通过将由纽约州纽约 有限公司提 供的软件和来自 的 ElasticSearch用于后端并将Ruby  on  RailsTM用作 web应用框架来实现。 是基于带有动态模式的 对象表示法(JSON) 形式的文档的面向文档的NoSQL数据库。ElasticSearch是可扩展且实时的搜索和分析引 擎,其基于JSON提供特定于语言(DSL)的完整查询。Ruby  on  RailsTM是模型-视图-控制器 (MVC)框架,其为数据库、web服务和web页面提供默认结构。Ruby  on  RailsTM依赖于诸如 JSON或可扩展标记语言(XML)之类的web标准来进行数据传输,以及依赖于超文本标记语言 (HTML)、层叠样式表(CSS)和 来进行显示和用户对接。 尽管图1示出了网络业务监视系统的各个组件的示例配置,但本领域技术人员将 15 CN 111557087 A 说 明 书 11/27 页 理解,网络业务监视系统100或本文描述的任何系统的组件可以以多种不同方式配置,并且 可以包括任何其他类型和数目的组件。例如,传感器104、收集器106、数据移动器108、和数 据湖130可以属于一个硬件和/或软件模块或多个单独的模块。其他模块也可以组合成更少 的组件和/或进一步划分成更多的组件。 图2示出了根据实施例的网络环境200的示例。在一些实施例中,可以在网络环境 200中实现网络业务监视系统,例如图1的网络业务监视系统100。应当理解,对于网络环境 200和本文讨论的任何环境,可以存在处于类似或替代配置的额外或更少的节点、设备、链 路、网络或组件。本文还设想具有不同数目和/或类型的客户端、网络、节点、云组件、服务 器、软件组件、设备、虚拟或物理资源、配置、拓扑、服务、装置、部署、或网络设备的实施例。 此外,网络环境200可以包括任何数目或类型的资源,这些资源可以被客户端或租户访问和 利用。本文提供的图示和示例是为了清晰和简单。 网络环境200可以包括网络结构202,第2层(L2)网络204,第3层(L3)网络206,以及 服务器208a、208b、208c、208d和208e(统称为208)。网络结构202可以包括脊交换机210a、 210b、210c和210d(统称为“210”)和叶交换机212a、212b、212c、212d和212e(统称为“212”)。 脊交换机210可以连接到网络结构202中的叶交换机212。叶交换机212可以包括接入端口 (或非结构端口)和结构端口。结构端口可以向脊交换机210提供上行链路,而接入端口可以 向端点(例如服务器208)、内部网络(例如,L2网络204)、或外部网络(例如,L3网络206)提供 连接。 叶交换机212可以驻留于网络结构202的边缘处,因此可以表示物理网络边缘。例 如,在一些实施例中,叶交换机212d和212e作为与位于外部网络206中的边缘设备214通信 的边界叶交换机进行操作。边界叶交换机212d和212e可以用于将任何类型的外部网络设 备、服务(例如,防火墙、深度分组检查器、业务监视器、负载平衡器等)或网络(例如L3网络 206)连接到结构202。 尽管网络结构202在本文中被示出并描述为示例叶-脊架构,但本领域普通技术人 员将容易地认识到,各种实施例可以基于任何网络拓扑来实现,包括任何数据中心或云网 络结构。实际上,本文还设想了其他架构、设计、基础设施和变体。例如,本文公开的原理适 用于包括三层(包括核心、聚合和访问级)、胖树、网格、总线、轴辐式(hub  and  spoke)等的 拓扑。因此,在一些实施例中,叶交换机212可以是根据机架顶架构配置的机架顶交换机。在 其他实施例中,叶交换机212可以是任何特定拓扑(例如,行末(end-of-row)或行中 (middle-of-row)拓扑)中的聚合交换机。在一些实施例中,叶交换机212也可以使用聚合交 换机来实现。 此外,图2所示和本文描述的拓扑易于扩展,并且能够容纳大量组件以及更复杂的 布置和配置。例如,网络可以包括任何数目的结构202,这些结构202可以在地理上分散或位 于同一地理区域中。因此,网络节点可以在任何合适的网络拓扑中使用,这些网络拓扑可以 包括任何数目的服务器、虚拟机或容器、交换机、路由器、设备、控制器、网关或被互连以形 成大型复杂网络的其他节点。节点可以通过采用任何合适的有线或无线连接的一个或多个 接口耦合到其他节点或网络,这为电子通信提供了可行的路径。 网络结构202中的网络通信可以流过叶交换机212。在一些实施例中,叶交换机212 可以向网络结构202提供端点(例如,服务器208)、内部网络(例如,L2网络204)或外部网络 16 CN 111557087 A 说 明 书 12/27 页 (例如,L3网络206)访问,并且可以将叶交换机212相互连接。在一些实施例中,叶交换机212 可以将端点组(EPG)连接到网络结构202、内部网络(例如L2网络204)和/或任何外部网络 (例如L3网络206)。EPG是如下各项的群组:应用或应用组件,以及用于实现转发和策略逻辑 的层。EPG可以通过使用逻辑应用边界来允许网络策略、安全性和转发与寻址的分离。EPG可 以在网络环境200中用于映射网络中的应用。例如,EPG可以包括网络中指示应用的连接和 策略的端点群组。 如上所讨论,服务器208可以经由叶交换机212连接到网络结构202。例如,服务器 208a和208b可以直接连接到叶交换机212a和212b,叶交换机212a和212b可以将服务器208a 和208b连接到网络结构202和/或任何其他叶交换机。服务器208c和208d可以经由L2网络 204连接到叶交换机212b和212c。服务器208c和208d以及L2网络204构成局域网(LAN)。LAN 可以通过位于同一一般物理位置(例如,建筑物或校园)中的专用私有通信链路来连接节 点。 WAN  206可以经由L3网络206连接到叶交换机212d或212e。WAN可以通过长距离通 信链路连接地理上分散的节点,该长距离通信链路例如为公共载波电话线、光路(optical  light  path)、同步光网络(SONET)或同步数字体系(synchronous  digital  hierarchy; SDH)链路。LAN和WAN可以包括L2和/或L3网络和端点。 互联网是连接全世界不同网络的WAN的示例,其在各种网络上的节点之间提供全 球通信。这些节点通常通过根据预定义协议(例如,传输控制协议/互联网协议(TCP/IP))交 换离散帧或数据分组来在网络上进行通信。在此上下文中,协议可以是指定义节点如何彼 此相互作用的一组规则。计算机网络还可以通过中间网络节点(例如路由器)进一步互连, 以扩展每个网络的有效大小。端点(例如服务器208)可以包括任何通信设备或组件,例如计 算机、服务器、刀片服务器(blade)、管理程序、虚拟机、容器、进程(例如,在虚拟机上运行 的)、交换机、路由器、网关、主机、设备、外部网络等。 在一些实施例中,网络环境200还包括在主机208a上运行的网络控制器。网络控制 器使用来自 的应用策略基础设施控制器(APICTM)来实现。APICTM为结构202提供自 动化和管理、策略编程、应用部署和健康监视的集中点。在一些实施例中,APICTM作为复制的 同步集群控制器来进行操作。在其他实施例中,其他配置或软件定义网络(SDN)平台可被用 于管理结构202。 在一些实施例中,物理服务器208可以在其上实例化管理程序216,以用于创建和 运行一个或多个虚拟交换机(未示出)和一个或多个虚拟机218,如针对主机208b所示的。在 其他实施例中,物理服务器可以运行用于托管容器的共享内核。在又一些其他实施例中,物 理服务器208可以运行用于支持其他虚拟分区方法的其他软件。根据各种实施例的网络可 以包括托管任何数目的虚拟机、容器或其他虚拟分区的任何数目的物理服务器。主机还可 以包括没有虚拟机、容器或其他虚拟分区的刀片/物理服务器,例如服务器208a、208c、208d 和208e。 网络环境200还可以集成网络业务监视系统,例如图1所示的网络业务监视系统 100。例如,图2的网络业务监视系统包括传感器220a、220b、220c和220d(统称为“220”)、收 集器222和在服务器208e上执行的分析引擎(例如图1的分析引擎110)。分析引擎可以接收 和处理由收集器222收集并由传感器220检测的网络业务数据,其中传感器220被置于位于 17 CN 111557087 A 说 明 书 13/27 页 整个网络环境200中的节点上。尽管分析引擎208e在图2中被示为独立的网络设备,但是可 以理解,分析引擎208e也可以被实现为虚拟分区(例如VM或容器),该虚拟分区可以被分发 到主机或主机集群上、软件即服务(SaaS)上、或以其他合适的分发方法被分发。在一些实施 例中,传感器220在叶交换机212(例如,传感器220a)、主机(例如,传感器220b)、管理程序 216(例如,传感器220c)和VM  218(例如,传感器220d)上运行。在其他实施例中,传感器220 还可以在脊交换机210、虚拟交换机、服务设备(例如,防火墙、深度分组检查器、业务监视 器、负载平衡器等)上以及网络元件之间运行。在一些实施例中,传感器220可以位于每个 (或几乎每个)网络组件处,以在数据传输的每一跳处捕获粒度分组统计信息和数据。在其 他实施例中,传感器220可以不被安装在网络的所有组件或部分中(例如,其中客户对某些 虚拟机具有独占控制的共享托管环境(shared  hosting  environment))。 如图2所示,主机可以包括在主机(例如,主机传感器220b)和主机的各种组件(例 如,管理程序传感器220c和VM传感器220d)上运行的多个传感器220,以便可以监视穿过网 络环境200的所有(或基本上所有)分组。例如,如果在主机208b上运行的VM  218中的一个VM 从WAN  206接收到第一分组,则第一分组可以通过边界叶交换机212d、脊交换机210b、叶交 换机212b、主机208b、管理程序216和该VM。由于所有或几乎所有这些组件都包含相应的传 感器,因此第一分组很可能被识别并报告给收集器222中的一个。作为另一示例,如果第二 分组从主机208b上运行的VM218中的一个VM发送到主机208d,则沿数据路径安装的传感器 (例如在VM  218、管理程序216、主机208b、叶交换机212b和主机208d处)将可能导致从第二 分组捕获元数据。 目前,部署在网络中的传感器(例如,网络业务监视系统100的传感器)可用于收集 与在网络中运行的节点相关的网络业务数据。网络业务数据可以包括与分组、分组集合、 流、双向流、流组、会话或另一粒度的网络通信相关的元数据。也就是说,网络业务数据通常 可以包括描述开放式系统互连(OSI)模型的所有层上的通信的任何信息。例如,网络业务数 据可以包括源/目的地MAC地址、源/目的地IP地址、协议、端口号等。在一些实施例中,网络 业务数据还可以包括网络活动的概要或其他网络统计信息,例如分组的数目、字节的数目、 流的数目、带宽使用情况、响应时间、时延、丢包、抖动、以及其他网络统计信息。 可以分析收集到的网络业务数据以深入了解网络中节点的操作,这另外被称为分 析学。具体而言,可以使用网络业务数据来确定网络的已发现的应用或清单、应用依赖关 系、策略、效率、资源和带宽使用情况、以及网络流。 部署在网络中的传感器可用于在客户端和服务器粒度级别上收集网络业务数据。 例如,可以收集网络业务数据,以确定哪些客户端正在与哪些服务器通信,反之亦然。然而, 传感器目前未被部署或与系统集成以收集形成服务器和客户端之间的业务流的不同业务 流段的网络业务数据。具体地,当前传感器收集作为直接在客户端和服务器之间的业务流 的网络业务数据,而忽略业务流在服务器和客户端之间传递时实际上通过了哪些节点(例 如,中间设备)。更具体地,当前传感器未被配置为收集作为通过服务器与客户端之间的多 个中间设备的业务流的网络业务数据。这实际上将服务器和客户端之间的网络环境视为黑 箱,并导致网络业务数据和由网络业务数据指示的业务流中的间隙。 进而,网络业务数据和对应的业务流中的这种间隙可能导致在网络环境中诊断问 题方面的缺陷。例如,当客户端和服务器之间的流被视为黑箱时,即使它实际上通过了一个 18 CN 111557087 A 说 明 书 14/27 页 或多个中间设备,由配置不正确的中间设备引起的问题可能被诊断为在客户端处发生。在 另一示例中,服务器和客户端之间的网络业务数据中的间隙可能导致无法确定在服务器和 客户端之间的中间设备处是否正确实施了策略。因此,存在对用于生成服务器和客户端之 间的节点处(例如,在服务器和客户端之间的中间设备链中的多个中间设备处)的网络业务 数据的系统、方法和计算机可读介质的需要。具体而言,存在对用于进行以下操作的系统、 方法和计算机可读介质的需要:将通过服务器和客户端之间的多个节点的业务流拼接在一 起以生成更完整和详细的业务流(例如在服务器和客户端之间)。 本公开包括用于进行以下操作的系统、方法和计算机可读介质:跨网络环境中的 节点(例如,中间设备)拼接业务流段以形成通过网络环境中的节点的拼接的业务流。具体 而言,可以收集网络环境中第一中间设备和第二中间设备两者处的业务流段的流记录,这 些业务流段对应于通过第一中间设备和第二中间设备中的一者或两者的一个或多个业务 流。流记录可以包括分配给业务流的一个或多个事务标识符。可以使用流记录识别网络环 境中业务流段相对于第一中间设备和第二中间设备中的一者或两者的源和目的地。基于分 配给业务流段的一个或多个事务标识符和网络环境中业务流段相对于第一中间设备的源 和目的地,业务流段的子集可以被拼接在一起,以形成网络环境中的第一中间设备处的第 一拼接业务流。另外,基于分配给业务流段的一个或多个事务标识符和网络环境中业务流 段相对于第二中间设备的源和目的地,业务流段的另一子集可以被拼接在一起,以形成网 络环境中的第二中间设备处的第二拼接业务流。用于生成第一拼接业务流和第二拼接业务 流的业务流段的不同子集可以包括共同的业务流段。第一拼接业务流和第二拼接业务流可 以被拼接在一起,以形成跨第一中间设备和第二中间设备的跨中间设备的拼接业务流。随 后,跨中间设备的拼接业务流可以作为网络环境的网络业务数据的一部分被并入。 图3描绘了用于将客户端和服务器之间的多个节点上的业务流段拼接在一起的示 例网络环境300的图。图3所示的网络环境300包括客户端302、服务器304、第一中间设备 306-1、和第二中间设备306-2(在本文中被称为“中间设备306”)。客户端302和服务器304可 以交换数据。更具体地,客户端302和服务器304可以交换数据,作为客户端302访问网络环 境300中的网络服务的一部分并且作为服务器304提供客户端302对网络环境300中的网络 服务的访问的一部分。例如,客户端302可以发送对数据的请求,该请求最终可以被传送到 服务器304,并且服务器304可以最终将数据发送回客户端302作为对该请求的应答的一部 分。 客户端302和服务器304可以以一个或多个业务流的一部分的形式交换数据。业务 流可以是单向的,也可以是双向的。例如,业务流可以包括客户端302发送最终在服务器304 处接收到的请求。反之亦然,业务流可以包括服务器304发送最终在客户端302处接收到的 响应。在另一示例中,业务流可以包括客户端302发送最终在服务器304处接收到的请求和 服务器304发送最终在客户端302处接收到的对请求的响应这两者。客户端302和服务器304 之间的业务流可以形成包括以下各项的业务流的一部分:客户端302和网络环境内不同网 络节点处的其他源/目的地(例如,与服务器304和客户端302分离)。例如,客户端302和服务 器304之间的业务流可以形成客户端302和网络环境内的网络节点之间的整体业务流的一 部分,该网络节点最终通过服务器304和网络结构访问来访问。 此外,客户端302和服务器304可以作为一个或多个事务的一部分交换数据。事务 19 CN 111557087 A 说 明 书 15/27 页 可以包括源自客户端302并最终发送到服务器304的请求。此外,事务可以包括源自服务器 304并最终发送到客户端302的对请求的响应。反之亦然,事务可以包括源自服务器304并最 终发送到客户端302的请求,以及源自客户端302并最终发送到服务器304的对请求的响应。 事务可以与已完成的流相关联。具体地,事务的完成流可以包括源自客户端302并发送到服 务器304的请求以及源自服务器304并发送到客户端302的对请求的响应。 在图3所示的示例网络环境300中,客户端302和服务器304可以交换数据或以其他 方式通过中间设备306进行通信。如本文所使用的,中间设备是适用于对网络环境300中通 过中间设备的网络业务进行控制的网络设备。更具体地,中间设备可以是出于除了向预期 目的地实际转发业务之外的目的而用于对通过中间设备的业务进行过滤、检查、修改或以 其他方式进行控制的适用网络设备。例如,中间设备可以包括防火墙、入侵检测系统、网络 地址转换器、WAN优化器、和负载平衡器。 为了支持客户端302和服务器304之间的数据交换,可以在客户端302和服务器304 之间的中间设备306处创建业务流的不同部分,这另外也被称为业务流段。具体地,第一中 间设备306-1可以在第一业务流段308-1中从客户端302接收数据。随后,第一中间设备306- 1可以将从客户端302(例如,通过第一业务流段308-1)接收到的数据提供给第二中间设备 306-2作为第二业务流段308-2的一部分。随后,第二中间设备306-2可以将通过第一中间设 备306-1(例如,通过第二业务流段308-2)接收到的来自客户端302的数据提供给服务器304 作为第三业务流段308-3的一部分。类似地,第二中间设备306-2可以在第四业务流段308-4 中从服务器304接收数据。第二中间设备306-2可以将从服务器304(例如,在第四业务流段 308-4中)接收到的数据在第五业务流段308-5中提供给第一中间设备306-1。随后,第一中 间设备306-1可以将来自服务器304并在第五业务流段308-5中从第二中间设备接收到的数 据提供给客户端302作为第六业务流段308-6的一部分。 第一业务流段308-1、第二业务流段308-2、第三业务流段308-3、第四业务流段 308-4、第五业务流段308-5和第六业务流段308-6(统称为“业务流段308”)的全部或适用组 合可以形成单个业务流的一部分。例如,第一业务流段308-1、第二业务流段308-2和第三业 务流段308-3可以被用于将请求从客户端302发送到服务器304,并组合以形成客户端302和 服务器304之间的单个业务流。在另一示例中,第一业务流段308-1、第二业务流段308-2和 第三业务流段308-3可以形成发送到服务器304的请求,并且第四业务流段308-4、第五业务 流段308-5和第六业务流段308-6可以形成对该请求的响应。另外在该示例中,包括请求和 对请求的响应这两者的业务流段308可以形成客户端302和服务器304之间的单个业务流。 业务流段308可以与一个或多个事务标识符相关联或以其他方式被分配一个或多 个事务标识符。更具体地,事务标识符可以唯一地与通过第一中间设备306-1和第二中间设 备306-2两者的单个业务流相关联。随后,业务流段308的全部或组合可以与事务标识符相 关联,该事务标识符唯一地与由业务流段308的全部或组合形成的业务流相关联。例如,业 务流段308可以形成客户端302和服务器304之间的单个业务流,并且每个业务流段308都被 分配针对业务流的单个事务标识符。在另一示例中,第一业务流段308-1、第二业务流段 308-2和第三业务流段308-3可以形成第一业务流,并且第四业务流段308-4、第五业务流段 308-5和第六业务流段308-6可以形成第二业务流。随后,唯一地与第一业务流相关联的事 务标识符可以被分配给第一业务流段308-1、第二业务流段308-2和第三业务流段308-3,而 20 CN 111557087 A 说 明 书 16/27 页 唯一地与第二业务流相关联的事务标识符可以被分配给第四业务流段308-4、第五业务流 段308-5和第六业务流段308-6。 虽然客户端302和服务器304被示为通过中间设备306进行通信,在图3所示的示例 环境中,客户端302和服务器304中的一者或两者可以被另一中间设备替换。例如,服务器 304和另一中间设备可以通过中间设备306相互通信。在另一示例中,客户端302和另一中间 设备可以通过中间设备306相互通信。 图3所示的示例网络环境300包括第一中间设备业务流段收集器310-1、第二中间 设备业务流段收集器310-2(在本文中被称为“中间设备业务流段收集器310”)、以及中间设 备业务流拼接系统312。中间设备业务流段收集器310用于收集中间设备306的流记录。在针 对中间设备306收集流记录时,中间设备业务流段收集器310可以被实现为设备。此外,可以 至少部分地在中间设备306处实现中间设备业务流段收集器310。另外,可以至少部分地相 对于中间设备306在远程实现中间设备业务流段收集器310。例如,可以在驻留于中间设备 306处或在中间设备306远程的虚拟机上实现中间设备业务流段收集器310。虽然,图3中的 示例网络环境300被示出为包括分开的中间设备业务流段收集器,但是在各种实施例中,环 境300可以仅包括单个中间设备业务流段收集器。更具体地,环境300可以包括从第一中间 设备306-1和第二中间设备306-2两者收集流记录的单个中间设备业务流段收集器。 每个中间设备业务流段收集器310可以收集对应中间设备的流记录。例如,第一中 间设备业务流段收集器310-1可以收集第一中间设备306-1的流记录。此外,在示例中,第二 中间设备业务流段收集器310-2可以收集第二中间设备306-2的流记录。 中间设备的流记录可以包括与流过中间设备的业务段相关的适用数据。具体地, 中间设备的流记录可以包括以下各项中的一者或它们的组合:在业务流段中传输的数据的 源、在业务流段中传输的数据的目的地、分配给业务流段的事务标识符。更具体地,中间设 备的流记录可以包括以下各项中的一者或它们的组合:地址(例如,源或目的地的IP地址), 和源或目的地处的端口(例如,短暂端口、虚拟IP(本文中被称为“VIP”)端口、子网IP(本文 中被称为“SNIP”)端口、或服务器端口)的标识。例如,由第一中间设备业务流段收集器310- 1针对第一业务流段308-1和第二业务流段308-2收集的流记录可以包括与由段308-1和 308-2形成的业务流相关联并被分配给第一业务流段308-1和第二业务流段308-2的唯一标 识符。此外,在示例中,流记录可以包括客户端302的IP地址(第一业务流段308-1起源于此 处)和第一中间设备306-1处的VIP端口(此处第一业务流段308-1被接收)。更进一步地在示 例中,流记录可以包括第一中间设备306-1处的SNIP端口(第二业务流段308-2起源于此处) 以及第二中间设备306-2处的VIP端口(第二业务流段308-2在此处被接收,例如出于负载平 衡的目的)。 通过中间设备的对应业务流段的流记录中所包括的数据取决于业务流段是起源 于中间设备306中的对应中间设备还是结束于中间设备306中的对应中间设备。例如,由第 一中间设备业务流段收集器310-1收集的第一业务流段308-1的流记录可以包括唯一事务 标识符,并且指示第一业务流段从客户端302开始并在第一中间设备306-1处结束。类似地, 第二业务流段308-2的流记录可以包括唯一事务标识符(该唯一事务标识符也被分配给第 一业务流段308-1)以及对第二业务流段从第一中间设备306-1开始并在第二中间设备306- 2处结束的指示。因此,通过中间设备306的业务流段的流记录均植根(root)于中间设备306 21 CN 111557087 A 说 明 书 17/27 页 处,例如,通过包括对中间设备306中的一个作为业务流段的源或目的地的指示。具体地,由 于业务流段植根于中间设备306处,因此通过中间设备306的业务流段的流记录均在中间设 备306处开始或结束。 中间设备306可以生成通过中间设备306的业务流段的流记录。更具体地,中间设 备306可以将唯一事务标识符关联于或以其他方式分配到业务流段,作为创建针对业务流 段的流记录的一部分。例如,第一中间设备306-1可以将消费者请求的TID1分配给第一业务 流段308-1,作为创建(例如,针对第一业务流段308-1的)流记录的一部分。此外,在示例中, 第一中间设备306-1可以决定将消费者请求发送到第二中间设备306-2和/或服务器304,例 如,作为负载平衡的一部分。更进一步地在示例中,在消费者请求通过第二业务流段308-2 被发送到第二中间设备306-2(例如,作为负载平衡的一部分)时,第一中间设备306-1可以 将消费者请求的TID1分配给第二业务流段308-2。随后,中间设备306可以针对通过中间设 备306的业务流段导出生成的流段。 另外,中间设备306可以通过将业务流段与事务标识符相关联来修改业务流段的 流记录,作为导出流记录的一部分。例如,中间设备306可以决定导出业务流段的流记录。随 后,在导出流记录之前,中间设备306可以将业务流段与事务标识符相关联,并且随后修改 流记录以包括事务标识符。然后,中间设备306可以导出包括事务标识符的经修改流记录。 当流记录完成或以其他方式由中间设备306生成时,中间设备业务流段收集器310 可以从中间设备306收集流记录。具体地,在对应的业务流的全部或部分实际上通过中间设 备306时,中间设备306可以生成和/或导出业务流段的流记录。更具体地,在第一业务流段 308-1和第二业务流段308-2中的一者或两者在第一中间设备306-1处完成时,第一中间设 备306-1可以创建和导出业务流记录。另外,一旦由业务流段形成的对应业务流完成通过中 间设备306,则中间设备306可以生成和/或导出针对该业务流段的流记录。例如,一旦所有 的业务流段被发送以完成通过第一中间设备306-1的业务流,则第一中间设备306-1可以创 建和导出针对业务流段308-1、308-2、308-5和308-6的业务流记录。此外,在示例中,第一中 间设备306-1可以识别出消费者到生产者的流是完成的,例如,第一业务流段308-1、第二业 务流段308-2和第三业务流段308-3是完成的或所有业务流段308都被完成,并且随后第一 中间设备306-1可以将一个或多个对应的流记录导出到第一中间设备业务流段收集器310- 1。 根据用于导出流记录(例如从中间设备)的适用协议,中间设备业务流段收集器 310可以从中间设备306接收或以其他方式收集业务流记录。更具体地,中间设备306可以根 据用于导出流记录(例如从中间设备)的适用协议将流记录导出到中间设备业务流段收集 器310。例如,中间设备306可以使用互联网协议流信息导出(本文中被称为“IPFIX”)协议来 将流记录导出到中间设备业务流段收集器310。在另一示例中,中间设备306可以使用 NetFlow分组传输协议来将流记录导出到中间设备业务流段收集器310。 虽然流记录可以指示业务流段植根于中间设备306处,但是通过中间设备306的业 务段的流记录可能无法链接业务流段,例如通过中间设备306。具体地,第一业务流段308-1 的流记录可以指示第一业务流段308-1结束于第一中间设备306-1并且第二业务流段308-2 的流记录可以指示第二业务流段308-2开始于第一中间设备306-1,而流记录无法链接第一 业务流段308-1和第二业务流段308-2。此外,第一业务流段308-1的流记录可以指示第三业 22 CN 111557087 A 说 明 书 18/27 页 务流段308-3开始于第二中间设备306-2,而无法链接第一业务流段308-1和第二业务流段 308-2与第三业务流段308-3。 无法链接通过中间设备306的业务流段在同步或以其他方式识别服务器304和客 户端302如何通过中间设备306通信时是有问题的。具体地,无法链接通过中间设备306的业 务流段导致:从服务器侧的角度来看,所有流都在第二中间设备306-2结束。类似地,无法链 接通过中间设备306的业务流段导致:从客户端侧的角度来看,所有流都在第一中间设备 306-1结束。这可以相当于客户端302和服务器304之间的映射业务流中的间隙,例如,中间 设备306被像黑箱一样对待而不将客户端302与服务器304链接。进而,这可能导致在网络环 境300内诊断问题方面的缺陷。例如,在第一中间设备306-1处失败的策略检查可能被错误 地识别为在客户端302处发生,即使它实际上发生在第一中间设备306-1处。具体地,失败的 策略检查可能由第一中间设备306-1未能根据策略在客户端302和服务器304之间路由数据 而触发,然而,由于植根于第一中间设备306-1的业务流段没有与植根于第二中间设备306- 2的业务流段相链接,所以失败的策略检查可能根据业务流段被识别为发生在客户端302处 而不是第一中间设备306-1处。 中间设备业务流拼接系统312用于将通过中间设备306的业务流段拼接在一起,以 创建中间设备306处的拼接的业务流。例如,中间设备业务流拼接系统312可以将第一业务 流段308-1、第二业务流段308-2、第五业务流段308-5和第六业务流段308-6拼接在一起,以 形成第一中间设备306-1处的拼接的业务流。类似地,中间设备业务流拼接系统312可以将 第二业务流段308-2、第三业务流段308-3、第四业务流段308-4和第五业务流段308-5拼接 在一起,以形成第二中间设备306-2处的拼接的业务流。拼接的业务流可以被表示或以其他 方式用于创建对应的流数据。拼接的业务流的流数据可以包括:拼接的业务流段的标识符, 例如业务流段的源和目的地的标识符;以及与拼接的业务流段相关联的事务,例如相关联 的事务标识符。 此外,中间设备业务流拼接系统312可以将拼接的业务流拼接在一起,以形成跨中 间设备的拼接业务流。跨中间设备的拼接业务流可以包括跨多个对应的中间设备拼接在一 起的业务流段(其中,业务流段通过该对应的中间设备或以其他方式植根于该对应的中间 设备)以跨中间设备地创建拼接的业务流。例如,中间设备业务流拼接系统312可以将第一 业务流段308-1、第二业务流段308-2、第五业务流段308-5和第六业务流段308-6拼接在一 起,以形成第一中间设备306-1处的第一拼接的业务流。此外,在示例中,中间设备业务流拼 接系统312可以将第二业务流段308-2、第三业务流段308-3、第四业务流段308-4和第五业 务流段308-5拼接在一起,以形成第二中间设备306-2处的第二拼接的业务流。更进一步地, 在该示例中,中间设备业务流拼接系统312可以将第一拼接的业务流和第二拼接的业务流 拼接在一起,以在客户端302和服务器304之间形成横跨第一中间设备306-1和第二中间设 备306-2的跨中间设备的拼接业务流。 在将中间设备306处的业务流段拼接在一起以创建拼接的业务流和对应的跨中间 设备的拼接业务流时,中间设备306对于通过中间设备306的业务流可能不再起黑箱的作 用。具体地,从服务器侧视角和客户端侧视角两者来看,业务流都可以被视为实际通过中间 设备306到客户端302或服务器304,而不仅仅是仅起源于或结束于中间设备306的业务流 段。这是有利的,因为它允许更完整和深入的网络监视,从而使得问题诊断和解决更加准 23 CN 111557087 A 说 明 书 19/27 页 确。例如,当业务流被视为实际通过中间设备306时,可以根据业务流识别中间设备306的错 误配置,例如,作为监视网络环境的一部分。 由中间设备业务流拼接系统312拼接在一起的中间设备306处的业务流可用于在 中间设备(包括中间设备306)处实施策略。具体地,由中间设备业务流拼接系统312生成的 拼接的业务流和对应的跨中间设备的拼接业务流可用于识别服务器和客户端中一者或两 者之间的依赖关系。例如,由中间设备业务流拼接系统312生成的跨中间设备的拼接业务流 可用于生成在服务器和客户端处的不同应用之间的应用依赖关系映射。随后,可以基于使 用由中间设备业务流拼接系统312生成的跨中间设备的拼接业务流识别的依赖关系,来在 中间设备306处设置并随后实施策略。例如,可以根据通过中间设备306处的跨中间设备的 拼接业务流识别的客户端和服务器之间的应用依赖关系映射来识别用于在客户端和服务 器之间负载平衡通信的策略。此外在示例中,该策略随后可以在中间设备306处实施,以在 客户端和服务器之间提供负载平衡。 中间设备业务流拼接系统312可以基于从中间设备306收集到的流记录来将通过 中间设备306的业务流段拼接在一起。具体地,中间设备业务流拼接系统312可以基于由中 间设备业务流段收集器310从中间设备306收集到的流记录来将业务流段拼接在一起。在使 用流记录来将业务流段拼接在一起时,中间设备业务流拼接系统312可以基于分配给业务 流段的事务标识符(如由流记录所指示的)来将业务流段拼接在一起。具体地,中间设备业 务流拼接系统312可以将被分配相同事务标识符的业务流段拼接在一起。例如,业务流段 308全部都可以具有相同的分配的事务标识符,并且中间设备业务流拼接系统312可以基于 共享的事务标识符来将业务流段308拼接在一起以形成对应的第一和第二拼接的业务流。 此外,在示例中,中间设备业务流拼接系统312可以将业务流段308拼接在一起,以形成关于 第一中间设备306-1的对应的第一拼接的业务流和关于第二中间设备306-2的对应的第二 拼接的业务流。 中间设备业务流拼接系统312可以基于从中间设备306收集的流记录来将拼接的 业务流拼接在一起,以形成跨中间设备的拼接业务流。具体地,中间设备业务流拼接系统 312可以基于作为流记录的一部分被包括的一个或多个事务标识符来将拼接的业务流拼接 在一起,以形成跨中间设备的拼接业务流。更具体地,中间设备业务流拼接系统312可以基 于一个或多个事务标识符将拼接的业务流拼接在一起,该一个或多个事务标识符与业务流 段相关联并被用于从业务流段生成拼接的业务流。例如,中间设备业务流拼接系统312可以 基于与业务流段308相关联的事务标识符将业务流段308拼接在一起,以形成第一中间设备 306-1处的第一拼接的业务流以及第二中间设备306-2处的第二拼接的业务流。随后……。 此外,中间设备业务流拼接系统312可以使用由中间设备业务流段收集器310从中 间设备306收集到的流记录来识别通过中间设备306的业务流段的流向。具体地,中间设备 业务流拼接系统312可以使用从中间设备306收集到的流记录来识别业务流段相对于中间 设备306的流向。例如,中间设备业务流拼接系统312可以使用来自中间设备306的流记录来 识别从中间设备306到客户端302的第四业务流段308-4。中间设备业务流拼接系统312可以 使用业务流段的已识别的源和目的地(如由流记录指示的)来识别业务流段的流向。例如, 中间设备业务流拼接系统312可以基于作为第一业务流段308-1的源的客户端IP地址的标 识和中间设备306处的VIP端口的标识来确定第一业务流段308-1从客户端302流到中间设 24 CN 111557087 A 说 明 书 20/27 页 备306。 在基于流记录将业务流段拼接在一起时,中间设备业务流拼接系统312可以基于 根据流记录识别的业务流段的方向来将业务流段拼接在一起。例如,中间设备业务流拼接 系统312可以基于识别出的从客户端302朝向服务器304的第一业务流段308-1和第二业务 流段308-2的方向,来将第一业务流段308-1和第二业务流段308-2拼接在一起。另外,在基 于流记录将业务流段拼接在一起时,中间设备业务流拼接系统312可以基于业务流段的方 向以及分配给业务流段的事务标识符来将业务流段拼接在一起。例如,中间设备业务流拼 接系统312可以基于如下内容来将第三业务流段308-3和第四业务流段308-4拼接在一起: 这些段具有相同的事务标识符以及这些段共享从服务器304向客户端302的方向。 中间设备业务流拼接系统312可以基于业务流段的流向来按顺序将业务流段拼接 在一起。更具体地,中间设备业务流拼接系统312可以使用共享事务标识符来确定要拼接在 一起的业务流段,并且基于业务流段的流向来按特定顺序拼接业务流段以形成拼接的业务 流。例如,中间设备业务流拼接系统312可以基于分配给业务流段308的共享事务标识符来 决定拼接业务流段308。此外在示例中,中间设备业务流拼接系统312可以基于流段308的对 应识别的流向(例如相对于中间设备306)决定在第一业务流段308-1之后拼接第二业务流 段308-2,在第二业务流段308-2之后拼接第五业务流段308-5,并且在第五业务流段308-5 之后拼接第六业务流段308-6。 此外,中间设备业务流拼接系统312可以基于用于形成拼接的业务流的业务流段 的方向,将这些拼接的业务流拼接在一起,以形成跨中间设备的拼接业务流。例如,中间设 备业务流拼接系统312可以基于第二业务流段308-2具有从第一中间设备306-1到第二中间 设备306-2的方向,来将第一中间设备306-1处的拼接的业务流与第二中间设备306-2处的 拼接的业务流拼接在一起。类似地,中间设备业务流拼接系统312可以基于第五业务流段具 有从第二中间设备306-2到第一中间设备306-1的方向,来将第二中间设备306-2处的拼接 的业务流与第一中间设备306-1处的拼接的业务流拼接在一起。 此外,中间设备业务流拼接系统312可以基于共同的业务流段来将拼接的业务流 拼接在一起,以形成跨中间设备的拼接业务流。具体地,如果拼接的业务流共享一个或多个 共同的业务流段,则中间设备业务流拼接系统312可以将拼接的业务流拼接在一起以形成 跨中间设备的拼接业务流。共同业务流段是用于形成两个单独拼接的业务流的业务流段。 例如,第二业务流段308-2可以是针对第一中间设备306-1处的拼接业务流和第二中间设备 306-2处的拼接业务流的共同业务流段。此外,中间设备业务流拼接系统312可以根据拼接 的业务流中共同业务流段的位置将流拼接在一起。例如,基于第二业务流段308-2在第一中 间设备306-1处的第一拼接的业务流中和在第二中间设备306-2处的第二拼接的业务流中 的位置,中间设备业务流拼接系统312可以在第一拼接业务流之后拼接第二拼接业务流。 中间设备业务流拼接系统312可以将通过中间设备306的拼接的业务流和跨中间 设备的拼接业务流中的一者或两者作为网络环境的网络业务数据的一部分并入。例如,中 间设备业务流拼接系统312可以包括通过中间设备306的拼接业务流和跨中间设备的拼接 业务流以及网络环境中的其他业务流(例如从服务器到网络结构中的节点)。在另一示例 中,中间设备业务流拼接系统312可以更新网络业务数据,以指示客户端和服务器之间的完 成流通过多个中间设备在服务器和客户端之间传递(例如,如跨中间设备的拼接业务流所 25 CN 111557087 A 说 明 书 21/27 页 指示的)。 中间设备业务流拼接系统312可以将拼接的业务流和跨中间设备的拼接业务流作 为由诸如图1所示的网络业务监视系统100之类的适用网络业务监视系统生成的网络业务 数据的一部分并入。在将拼接的业务流和跨中间设备的拼接业务流并入由网络业务监视系 统生成的网络业务数据时,中间设备业务流拼接系统312的全部或部分可以集成在网络业 务监视系统处。例如,中间设备业务流拼接系统312在网络业务监视系统处实现的部分可以 从中间设备业务流拼接系统312在中间设备业务流段收集器310处实现的部分接收拼接的 业务流和跨中间设备的拼接业务流。随后,中间设备业务拼接系统312(例如在网络业务监 视系统处实现的)可以将拼接的业务流和跨中间设备的拼接业务流并入到由网络业务监视 系统生成的网络业务数据中。 在将拼接的业务流和跨中间设备的拼接业务流并入到网络业务数据中时,中间设 备业务流拼接系统312可以基于拼接的业务流和跨中间设备的拼接业务流来扩展网络业务 数据中的网络业务流。具体地,中间设备业务流拼接系统312可以将已经拼接的、通过中间 设备306延伸到客户端的业务流与延伸到网络环境300中的其他拼接的业务流相拼接。更具 体地,中间设备业务流拼接系统312可以将通过中间设备306的已拼接的业务流与从服务器 304延伸到网络环境300中的其他服务器或节点的其他业务流相拼接。例如,中间设备业务 流拼接系统312可以将从网络结构延伸到服务器304的业务流与通过中间设备306到客户端 302的拼接的业务流拼接在一起。这可以创建通过中间设备306从网络结构到客户端302的 完成业务流。 图4示出了形成跨中间设备的跨中间设备拼接业务流的示例方法的流程图。图4所 示的方法是作为示例提供的,因为有多种方式来执行该方法。另外,虽然用特定顺序的框来 图示示例方法,但是本领域普通技术人员将理解,图4和其中所示的框可以以任何顺序执 行,并且可以包括比图示更少或更多的框。 图4所示的每个框表示方法中的一个或多个步骤、过程、方法或例程。为了清楚和 说明的目的,参考图3所示的网络环境来描述图4中的框。 在步骤400,中间设备业务流段收集器310收集网络环境中第一中间设备和第二中 间设备处与通过中间设备的一个或多个业务流相对应的业务流段的流记录。流记录可以包 括分配给业务流段的一个或多个事务标识符。中间设备处的业务流段的流记录可以由中间 设备生成,并随后被导出到中间设备业务流段收集器310。更具体地,流记录可以通过IPFIX 协议导出到中间设备业务流段收集器310。可以在每个业务流段被建立(例如通过中间设 备)之后,将流记录导出到中间设备业务流段收集器310。替代地,也可以在业务流段的对应 业务流被完成(例如通过中间设备)之后,将流记录导出到中间设备业务流段收集器410。 在步骤402,中间设备业务流拼接系统312使用流记录来识别网络环境中业务流段 相对于中间设备的源和目的地。例如,中间设备业务流拼接系统312可以使用流记录来识别 业务流段是否正从客户端朝向服务器传递到一个或多个中间设备。在另一示例中,中间设 备业务流拼接系统312可以使用流记录来识别业务流段是否正从服务器朝向客户端传递到 中间设备。在又一示例中,中间设备业务流拼接系统312可以识别业务流段是否正在中间设 备之间传递(例如从第一中间设备到第二中间设备,或反之亦然)。中间设备业务流拼接系 统312可以基于作为流记录的一部分而被包括的业务流段的源和目的地中的一者或两者来 26 CN 111557087 A 说 明 书 22/27 页 识别业务流段的流向。例如,中间设备业务流拼接系统312可以基于流段开始于的服务器的 IP地址和中间设备处结束流段的第一或第二中间设备中的一个上的SNIP端口来识别业务 流段的流向。 在步骤404,中间设备业务流拼接系统312将业务流段拼接在一起,以形成第一中 间设备处的第一拼接的业务流和第二中间设备处的第二拼接的业务流。更具体地,中间设 备业务流拼接系统312可以基于分配给业务流段的一个或多个事务标识符,来将业务流段 拼接在一起以形成第一中间设备处的第一拼接的业务流和第二中间设备处的第二拼接的 业务流。此外,中间设备业务流拼接系统312可以基于业务流段相对于中间设备的源和目的 地,将业务流段拼接在一起,以形成第一中间设备处的第一拼接的业务流和第二中间设备 处的第二拼接的业务流。例如,共享相同事务标识符的业务流段可以基于业务流段的方向 (例如基于流记录)来拼接在一起以形成第一和第二拼接的业务流。更具体地,分配给业务 流段的一个或多个事务标识符可以由在步骤400处收集的流记录来指示并随后用于将业务 流段拼接在一起以形成第一和第二拼接的业务流。 在步骤406,中间设备业务流拼接系统312将第一拼接的业务流和第二拼接的业务 流拼接在一起,以形成跨第一中间设备和第二中间设备的跨中间设备的拼接业务流。具体 地,中间设备业务流拼接系统312可以基于业务流段相对于中间设备的源和目的地来将第 一拼接的业务流和第二拼接的业务流拼接在一起,以形成跨中间设备的拼接业务流。此外, 中间设备业务流拼接系统312可以基于第一拼接的业务流和第二拼接的业务流之间的共同 业务流段(例如,如业务流段的源和目的地所指示的)来将第一拼接的业务流和第二拼接的 业务流拼接在一起,以形成跨中间设备的拼接业务流。 在步骤408,中间设备业务流拼接系统312将跨中间设备的拼接业务流作为网络环 境的网络业务数据的一部分并入。具体地,跨中间设备的拼接业务流可以作为网络环境中 识别的业务流(作为网络环境的网络业务数据的一部分被包括)的一部分被并入。例如,跨 中间设备的拼接业务流可以被拼接到在网络环境的网络结构中识别的业务流,作为将拼接 的业务流并入针对包括网络结构的网络环境的网络数据的一部分。 图5示出了示例中间设备业务流拼接系统500。中间设备业务流拼接系统500可以 根据用于将通过中间设备的业务流段拼接在一起以形成拼接的业务流和对应的跨中间设 备的拼接业务流的适用系统(例如,图3所示的中间设备业务流拼接系统312)来工作。中间 设备业务流拼接系统500可以使用从中间设备收集或以其他方式导出的流记录来将业务流 拼接在一起。具体地,中间设备业务流拼接系统500可以识别业务流段的源和目的地以及可 能地段的对应流向,并且随后基于分配给业务流段的事务标识符和业务流段的源和目的地 来将业务流拼接在一起。 中间设备业务流拼接系统500的所有部分可以在用于从中间设备收集流记录的适 用收集器处实现,例如图3所示的中间设备业务流段收集器310。另外,中间设备业务流拼接 系统500的全部或部分可以在中间设备处实现,例如作为代理的一部分。此外,中间设备业 务流拼接系统500的全部或部分可以在用于监视网络环境中的网络业务的适用系统处实 现,例如图1所示的网络业务监视系统100。 中间设备业务流拼接系统500包括流记录散列表维护器502、流记录散列表数据存 储区504、业务流段拼接器506和完成流识别器508。流记录散列表维护器502用于维护流记 27 CN 111557087 A 说 明 书 23/27 页 录散列表。流记录散列表维护器502可以基于从中间设备收集或以其他方式由中间设备导 出的流记录来维护散列表。在维护流记录散列表时,流记录散列表维护器502可以生成和更 新存储在流记录散列表数据存储区504中的一个或多个流记录散列表。 T1 C→VIP T1 IP→服务器 T1 服务器→IP T1 VIP→C T2 C→VIP 表1 如上所示的表1示出了由流记录散列表维护器502维护并存储在流记录散列表数 据存储区504中的流记录散列表的示例。示例流记录散列表包括多个条目。每个条目对应于 通过中间设备的业务流段。此外,每个条目包括事务标识符和每个业务流段的源和目的地 标识符。例如,第一条目对应于从客户端C传递到中间设备上的端口VIP的业务流段。此外, 在示例中,第一条目包括事务标识符T1,该事务标识符T1例如由中间设备分配给业务流段。 在另一示例中,第二条目对应于从中间设备IP传递到服务器(在条目中用“服务器”表示)的 第二业务流段。流记录散列表可以包括具有对应于不同业务流的不同事务标识符的条目。 具体地,示例流记录散列表具有包括第一事务标识符T1的第一条目和包括第二事务标识符 T2的第五条目。 业务流段拼接器506用于将中间设备处的业务流段拼接在一起,以形成与通过中 间设备的业务流相对应的拼接的业务流。具体地,业务流段拼接器506可以使用例如存储在 流记录散列表数据存储区504中的流记录散列表来将业务流段拼接在一起。在使用流记录 散列表将业务流段拼接在一起时,业务流段拼接器506可以基于事务标识符将业务流拼接 在一起,该事务标识符作为与业务流段相对应的条目的一部分被包括在流记录散列表中。 例如,业务流段拼接器506可以基于如下内容来将与示例散列表中的第一条目相对应的第 一业务流段和与示例散列表中的第二条目相对应的第二业务流段拼接在一起:这两个条目 包括相同的事务标识符T1。 此外,业务流段拼接器506可以用于将拼接的业务流拼接在一起以形成跨中间设 备的拼接业务流。具体地,业务流段拼接器506可以使用例如存储在流记录散列表数据存储 区504中的一个或多个流记录散列表来将拼接的业务流拼接在一起。更具体地,业务流段拼 接器506可以使用流记录散列表来识别拼接的业务流之间的共同业务流段。随后,业务流段 拼接器506可以基于共同的业务流段将拼接的业务流拼接在一起,以形成跨中间设备的拼 接业务流。 在使用流记录散列表将业务流段拼接在一起时,业务流段拼接器506可以将散列 表中的条目分组以形成经分组的条目,并且随后使用经分组的条目来将业务流段和已经拼 接的业务流段拼接在一起。更具体地,业务流段拼接器506可以将共享事务标识符的条目分 组以形成经分组的条目。例如,业务流段拼接器506可以基于如下内容来将前四个条目分组 在一起:这些条目全部具有相同的事务标识符T1。随后,基于条目被分组在一起以形成经分 组条目,业务流段拼接器506可以将与经分组条目中的条目相对应的业务流拼接在一起。例 如,业务流段拼接器506可以将示例流记录散列表中的前四个条目分组,并且随后基于前四 28 CN 111557087 A 说 明 书 24/27 页 个条目的群组来拼接与前四个条目相对应的业务流段。 此外,在使用流记录散列表来将业务流段和已经拼接的业务流段拼接在一起时, 业务流段拼接器506可以基于流记录散列表中业务流段的对应条目来识别业务流段的流向 和/或源和目的地。更具体地,业务流段拼接器506可以基于流记录散列表中的对应条目中 段的源和目的地的标识符来识别业务流段的流向。例如,业务流段拼接器506可以基于以下 内容来识别出与示例散列表中的第一条目相对应的业务流段从客户端移动到中间设备:该 流段源于客户端且终止于中间设备处的VIP端口(如表中的第一条目所指示的)。随后,通过 利用从流记录散列表中识别出的业务流段的流向和/或源和目的地,业务流段拼接器506实 际上可以将业务流段拼接在一起以形成拼接的业务流和跨中间设备的拼接业务流中的一 者或两者。例如,业务流段拼接器506可以在与示例散列表中的第三条目相对应的业务流段 之后拼接与示例散列表中的第四条目相对应的业务流段。 业务流段拼接器506可以基于以下两者来将业务流段拼接在一起以形成拼接的业 务流段:(如从流记录散列表中的对应条目识别出的)业务流段的方向,和被包括在流记录 散列表中的事务标识符。具体地,业务流段拼接器506可以进行识别以将在流记录散列表中 具有共享共同事务标识符的对应条目的业务流段拼接在一起。例如,业务流段拼接器506可 以基于前四个条目共享相同的事务标识符T1来决定将与示例流记录散列表中的前四个条 目相对应的业务流段拼接在一起。另外,业务流段拼接器506可以基于从流记录散列表中段 的对应条目识别出的业务流段的流向来确定将业务流段拼接在一起的顺序。例如,业务流 段拼接器506可以基于从条目识别的段的流向,来决定在与示例散列表中的第二条目相对 应的第二业务流段之后拼接与示例散列表中的第三条目相对应的第三业务流段。 完成流识别器508用于识别通过中间设备发生的完成的业务流。完成的业务流可 以对应于在客户端和服务器之间的连接的建立,反之亦然。例如,完成的业务流可以包括从 客户端发送到中间设备的请求,以及在其最终发送到服务器之前从中间设备发送到另一中 间设备的请求。此外在该示例中,完成的业务流可以包括完成通过中间设备从客户端到服 务器的请求以及完成通过中间设备从服务器到客户端的对请求的响应。完成流识别器508 可以基于流记录来识别完成的流。更具体地,完成流识别器508可以基于一个或多个流记录 散列表来识别完成的流。例如,完成流识别器508可以基于以下两者来识别出前四个条目形 成完成的流:第一个条目从客户端开始并且最后一个条目在客户端结束,以及所有条目具 有相同的事务标识符T1。 业务流段拼接器506可以针对拼接的业务流和对应的跨中间设备的拼接业务流推 送或以其他方式导出业务流数据。更具体地,业务流段拼接器506可以导出业务流数据以并 入网络环境的网络业务数据。例如,业务流段拼接器506可以将业务流数据导出到网络业务 监视系统100,其中业务流数据可以与网络环境的网络业务数据组合。业务流段拼接器506 可以基于由完成流识别器508对完成的业务流的标识来推送业务流数据。更具体地,业务流 段拼接器506可以在识别出业务流实际上是完成的流时导出业务流数据,该业务流数据指 示完成的业务流的拼接业务流。这可以确保仅在已知拼接业务流对应于完成的业务流时, 推送或以其他方式提供针对拼接业务流和对应的跨中间设备的拼接业务流的数据。 综上所述,描述了用于跨中间设备的流拼接网络业务流段的系统、方法和计算机 可读介质。一种方法可以包括收集网络环境中的第一中间设备和第二中间设备处的业务流 29 CN 111557087 A 说 明 书 25/27 页 段的流记录,该流记录包括分配给业务流段的一个或多个事务标识符。业务流段的源和目 的地可以相对于第一中间设备和第二中间设备来识别。业务流段的对应子集可以拼接在一 起,以形成第一中间设备处的第一拼接业务流和第二中间设备处的第二拼接业务流。第一 和第二拼接业务流可以拼接在一起,以形成跨第一中间设备和第二中间设备的跨中间设备 的拼接业务流。跨中间设备的拼接业务流可以作为网络环境的网络业务数据的一部分被并 入。 本公开现在转到图6和图7,其示出了示例网络设备和计算设备,例如交换机、路由 器、负载平衡器、客户端设备等。 图6示出了适合于执行交换、路由、负载平衡、和其他网络操作的示例网络设备 600。网络设备600包括中央处理单元(CPU)604、接口602、和总线610(例如,PCI总线)。当在 适当的软件或固件的控制下动作时,CPU  604负责执行分组管理、错误检测和/或路由功能。 CPU  604优选地在软件(包括操作系统和任何适当的应用软件)的控制下完成所有这些功 能。CPU  604可以包括一个或多个处理器608,例如来自INTEL  X86系列的微处理器的处理 器。在某些情况下,处理器608可以是用于控制网络设备600的操作的专门设计的硬件。在某 些情况下,存储器606(例如,非易失性RAM、ROM等)还形成CPU  604的一部分。然而,有许多不 同的方式可以将存储器耦合到系统。 接口602通常作为模块化接口卡(有时被称为“线卡”)来提供。通常,它们控制通过 网络发送和接收数据分组,并且有时支持与网络设备600一起使用的其他外围设备。可提供 的接口包括以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。另外,可以提供各 种非常高速的接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、ATM接 口、HSSI接口、POS接口、FDDI接口、WIFI接口、3G/4G/5G蜂窝接口、CAN  BUS、LoRA等。通常,这 些接口可以包括适合于与适当介质通信的端口。在某些情况下,它们还可以包括独立处理 器,并且在一些实例中还包括易失性RAM。独立处理器可以控制诸如分组交换、媒体控制、信 号处理、加密处理和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理 器,这些接口允许主微处理器604有效地执行路由计算、网络诊断、安全功能等。 尽管图6所示的系统是本主题的一个特定网络设备,但它决不是可在其上实现本 主题的唯一网络设备架构。例如,通常使用具有处理通信以及路由计算等的单个处理器的 架构。此外,其他类型的接口和介质也可以与网络设备600一起使用。 无论网络设备的配置如何,它都可以使用一个或多个存储器或存储器模块(包括 存储器606),这些存储器或存储器模块被配置为存储程序指令,这些程序指令用于本文所 描述的用于漫游、路由优化和路由功能的通用网络操作和机制。例如,程序指令可以控制操 作系统和/或一个或多个应用的操作。一个或多个存储器也可以被配置为存储诸如移动绑 定、注册和关联表等之类的表。存储器606还可以保存各种软件容器和虚拟化执行环境和数 据。 网络设备600还可以包括可以被配置为执行路由和/或交换操作的专用集成电路 (ASIC)。例如,ASIC可以经由总线610与网络设备600中的其他组件通信,以交换数据和信号 并协调网络设备600的各种类型的操作,例如路由、交换、和/或数据存储操作。 图7示出了计算系统架构700,其中系统的组件使用诸如总线之类的连接705彼此 进行电通信。示例性系统700包括处理单元(CPU或处理器)710和系统连接705,该系统连接 30 CN 111557087 A 说 明 书 26/27 页 705将各种系统组件(包括系统存储器715,例如只读存储器(ROM)720和随机存取存储器 (RAM)725)耦合到处理器710。系统700可以包括高速存储器的缓存,该高速存储器与处理器 710连接、靠近处理器710或被集成为处理器710的一部分。系统700可以将数据从存储器715 和/或存储设备730复制到缓存712以供处理器710快速访问。这样,缓存可以提供性能提升, 这避免处理器710在等待数据时延迟。这些和其他模块可以控制或被配置成控制处理器710 以执行各种动作。其他系统存储器715也可供使用。存储器715可以包括具有不同性能特性 的多种不同类型的存储器。处理器710可以包括存储设备730中存储的硬件或软件服务(例 如服务1  732、服务2  734和服务3  736)和任何通用处理器,其被配置为控制处理器710,并 且包括将软件指令并入实际处理器设计中的专用处理器。处理器710可以是完全独立的计 算系统,包括多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非 对称的。 为了使用户能够与系统700交互,输入设备745可以表示任何数目的输入机构,例 如用于语音的麦克风、用于手势或图形输入的触感屏、键盘、鼠标、运动输入、语音等。输出 设备735也可以是本领域技术人员已知的多种输出机构中的一种或多种。在一些情况下,多 模式系统可以使用户能够提供多种类型的输入来与系统700通信。通信接口740通常可以控 制和管理用户输入和系统输出。不限制在任何特定的硬件布置上进行操作,因此这里的基 本特性在改进的硬件或固件布置被开发出时容易地被该改进的硬件或固件布置替代。 存储设备730是非易失性存储器,并且可以是硬盘或其他类型的计算机可读介质 (其可以存储计算机可访问的数据),例如磁带盒、闪存卡、固态存储器设备、数字通用盘、盒 式磁带(cartridge)、随机存取存储器(RAM)725、只读存储器(ROM)720,以及它们的组合。 存储设备730可以包括用于控制处理器710的服务732、734、736。其他硬件或软件 模块也被设想。存储设备730可以连接到系统连接705。在一个方面,执行特定功能的硬件模 块可以包括存储在计算机可读介质中的软件组件,该软件组件与必要的硬件组件(例如处 理器710、连接705、输出设备735等)相关联以执行该功能。 为了解释清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,包括包含 以下各项的功能块:设备、设备组件、在软件中体现的方法中的步骤或例程、或者硬件和软 件的组合。 在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的 有线或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波 信号、电磁波和信号本身之类的介质。 根据上述示例的方法可以使用存储在计算机可读介质中或以其他方式可从计算 机可读介质获得的计算机可执行指令来实现。这样的指令可以包括例如使得或以其他方式 配置通用计算机、专用计算机或专用处理设备以执行某种功能或某组功能的指令和数据。 所使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是,例如二进制文 件、中间格式指令(例如汇编语言、固件或源代码)。在根据所描述示例的方法过程中可用于 存储指令、所使用的信息和/或所创建的信息的计算机可读介质的示例包括磁盘或光盘、闪 存、配备有非易失性存储器的USB设备、联网存储设备等。 实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采 用各种形状因子中的任何一种。这种形状因子的典型示例包括膝上型电脑、智能手机、小形 31 CN 111557087 A 说 明 书 27/27 页 状因子个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现 在外围设备或插件卡中。通过进一步的示例,这样的功能还可以在不同芯片之间的电路板 上实现,或者在单个设备中执行的不同进程上实现。 指令、用于传送这些指令的介质、用于执行这些指令的计算资源以及用于支持这 些计算资源的其他结构是用于提供本公开中描述的功能的手段。 尽管使用了各种示例和其他信息来解释所附权利要求范围内的方面,但是不应基 于这些示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员能够使用这 些示例来推导出各种各样的实现方式。此外,尽管某些主题可能已经以特定于结构特征和/ 或方法步骤的示例的语言来描述,但是应当理解,在所附权利要求中定义的主题不一定限 于这些描述的特征或动作。例如,这种功能可以以不同的方式分布或在除本文所标识的组 件之外的组件中执行。而是,所描述的特征和步骤被公开作为所附权利要求范围内的系统 和方法的组件的示例。 记载“……中的至少一个”的权利要求语言指代集合中的至少一个,并指示集合中 的一个成员或集合中的多个成员满足该权利要求。例如,权利要求语言记载“A和B中的至少 一个”是指A、B、或A和B。 32 CN 111557087 A 说 明 书 附 图 1/7 页 图1 33 CN 111557087 A 说 明 书 附 图 2/7 页 图2 34 CN 111557087 A 说 明 书 附 图 3/7 页 图3 35 CN 111557087 A 说 明 书 附 图 4/7 页 图4 36 CN 111557087 A 说 明 书 附 图 5/7 页 图5 37 CN 111557087 A 说 明 书 附 图 6/7 页 图6 38 CN 111557087 A 说 明 书 附 图 7/7 页 图7 39
下载此资料需消耗2积分,
分享到:
收藏