通过分组关联在本地联网堆栈中的分组丢弃检测的制作方法

文档序号:27374610发布日期:2021-11-15 17:10阅读:92来源:国知局
通过分组关联在本地联网堆栈中的分组丢弃检测的制作方法
通过分组关联在本地联网堆栈中的分组丢弃检测


背景技术:

1.数据中心可以设置虚拟机或容器,这些虚拟机或容器运行提供给客户利用的应用和软件。在数据中心的各个计算机服务器内运行的虚拟化网络堆栈可以具有多个用于接收和传递分组的组件。虚拟化网络堆栈中的每个组件都提供独特的功能,其可以成为数据接收和传输的故障点(例如分组丢弃或延迟增加)。在某些情况下,客户在访问其虚拟机或容器时发现的问题可能难以确定虚拟联网堆栈中发生延迟的根本原因。


技术实现要素:

2.在托管虚拟化网络堆栈的服务器上实例化的分组监视应用用于跟踪在网络堆栈内每个组件的分组传播和丢弃,以减少识别延迟问题根本原因的时间量。计算机服务器管理员可以有选择地启用或禁用分组监视应用。当被禁用时,虚拟化网络堆栈中的组件不会向分组监视应用报告分组传播或丢弃。当被启用时,组件调用与分组监视应用关联的应用编程接口(api),并向分组监视应用报告分组丢弃和传播。用户可以将参数输入到分组监视应用中,通过这些参数,选择某些分组向用户公开,而忽略或丢弃其他分组。过滤参数可以包括虚拟化网络堆栈组件中的自定义粒度级别,包括组件内的监视级别(例如虚拟化网络堆栈内的微型端口或特定组件)和通信协议(例如传输控制协议 (tcp)、用户数据报协议(udp)等),以及其他参数。唯一的相关标识符(id)与每个分组相关联,以能够实现跨网络堆栈中每个组件的分组的跟踪。识别联网堆栈内每个组件的分组传播和丢弃的能力使用户能够识别网络堆栈内发生分组丢弃或延迟的位置,从而减少识别根本原因的时间。还可以实现对过滤分组的后处理,其中对分组执行各种确定或计算,诸如整个或部分网络堆栈处的分组延迟、通过网络堆栈中的组件的分组传播平均值、等等。
3.提供本发明内容以简化形式介绍一系列概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在确定要求保护的主题的关键特征或基本特征,也不旨在用作确定要求保护的主题的范围的帮助。此外,要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。应当理解,上述主题可以被实现为计算机控制的装置、计算机过程、计算系统,或者实现为诸如一个或多个计算机可读存储介质的制品。通过阅读以下具体实施方式和回顾相关附图,这些和各种其他特征将是显而易见的。
附图说明
4.图1示出了其中远程计算设备与在数据中心运行的计算机服务器传递分组的一个示例性环境;
5.图2示出了虚拟化网络堆栈内的组件的示意图;
6.图3示出了虚拟化网络堆栈内的组件的示意图;
7.图4示出了其中用户输入启用了分组监视应用的示意性的环境;
8.图5示出了其中联网堆栈内的组件将关于分组传播和分组丢弃的报告发送到分组监视器应用编程接口(api)的示意图;
9.图6示出了其中计算设备从用户输入接收过滤参数的示意性环境;
10.图7示出了数据分组通过其在虚拟化网络堆栈中被跟踪和过滤的参数的示意性分类;
11.图8示出了其中分组被分组监视应用分配了唯一的相关标识符 (id)的示意图;
12.图9示出了其中在虚拟化网络堆栈中的每个组件处的分组后面都有唯一的关联id的示意图;
13.图10示出了其中分组监视应用利用关联id来确定组件处的分组延迟的示意图;
14.图11示出了由组件报告给分组监视应用的信息的示意性分类;
15.图12

14是由数据中心内的一个或多个计算机服务器执行的示意性方法的流程图;
16.图15是可以至少部分地用于通过分组关联在本地联网堆栈中实现当前的分组丢弃检测的示意性数据中心的框图;
17.图16是可以至少部分地用于通过分组关联在本地联网堆栈中实现当前的分组丢弃检测的计算设备的示意性体系结构的简化框图;以及
18.图17是可以部分地用于通过分组关联在本地联网堆栈中实现当前分组丢弃检测的示意性远程计算设备、远程服务或计算机系统的简化框图。
19.附图中类似的附图标记表示类似的元件。除非另有说明,否则元素未按比例绘制。
具体实施方式
20.图1示出了示意性环境,其中客户计算设备105通过网络130与可能在数据中心中操作的计算机服务器110通信分组115。网络可以包括局域网、广域网和因特网。计算机服务器本地的计算设备120可以被配置有用户界面以使用户125能够控制计算机服务器上的各方面和操作。数据中心中的计算机服务器可以与向操作客户计算设备的客户提供解决方案的云服务提供商相关联。例如计算机服务器可以托管虚拟机或容器,每个虚拟机或容器都与唯一客户相关联并可由唯一客户访问。虚拟机和容器可以为客户计算设备提供解决方案,诸如数据分析、数据存储、人工智能处理等。单个计算机服务器可以托管多个不同客户分别可以访问的多个虚拟机和/或容器。
21.客户计算设备105可以是任何数量的设备,这些设备配置有网络连接以与由计算机服务器110提供的解决方案连接并利用由计算机服务器110提供的解决方案。计算设备的非穷举类型包括膝上型计算机、智能电话、平板计算机、本地服务器和可以收集和报告遥测数据的物联网(iot)设备(如片上系统(soc)设备一般和示意性地所示)。多个分组115可以在计算机服务器和客户计算设备之间传输。
22.图2示出了主机计算机服务器的虚拟化网络堆栈200配置的示意图。联网堆栈内的每个组件可以与分组监视应用编程接口(api)205通信。例如每个堆栈组件可以执行api调用210并向分组监视应用220 报告分组215,例如分组的状态(例如分组丢弃和成功的分组传播)。分组115可以在联网堆栈内的任一方向,即传递或接收。虚拟化网络堆栈可用于将分组传递到相应客户的虚拟机或容器。因此,由多个不同客户操作的多个虚拟机和容器可以在数据中心内操作,并由单个计算机服务器或多个计算机服务器一起处理。
23.虚拟化网络堆栈200内的组件的简要描述如下。虽然在整个描述和附图中利用的
一些名称可能是特定于平台的,但所描述的功能可能适用于任何实现。例如在虚拟化网络堆栈的其他实现中,可以不采用所描述的一些组件或者可以采用附加组件。
24.联网应用225可用于向用户提供对组件的控制。分组监视应用220 在与计算机服务器相关联的用户界面上向用户展示,用于启用或禁用网络堆栈内的组件对分组监视api 205的调用。
25.网络接口控制器(nic)230可以是实现以启用wi

fi、以太网或其他连接的硬件设备。nic 230可以向诸如路由器的另一个设备提供物理和数据链路层网络通信。ndis(网络驱动程序接口规范)235为 nic提供api,该api包括用作标准接口的函数库。wfp(过滤平台)(即wfp mac 240)是一组系统服务和api,它提供了用于创建网络过滤应用的平台。wfp允许开发人员编写与发生在操作系统联网堆栈中多个层的分组处理交互的代码。例如开发人员可以在数据到达目的地之前实施防火墙、入侵检测系统、防病毒程序、网络监视工具和家长控制等。在此示例中,wfp过滤可以应用于mac地址级别或ip地址级别(请参阅wfp ip 270)。
26.虚拟过滤平台(vfp)250是虚拟联网堆栈的虚拟交换机(vswitch) 245的扩展,其能够实现用于网络服务的核心软件定义联网(sdn) 功能。vfp可以是可编程网络组件,它向代表如虚拟网络控制器和软件负荷均衡器控制器的网络控制器的网络代理公开易于编程的抽象接口。通过利用主机组件并在数据中心运行的主机计算机服务器上执行分组处理,sdn数据平面提高了数据传递和接收的可扩展性。
27.pacer260是packet scheduler的缩写术语,它是过滤器中间驱动程序,其被提供并强制执行网络数据流的服务质量(qos)参数。pacer 可以执行各种功能以确保qos,包括允许管理员优先考虑网络业务和限制带宽利用率,以便操作系统继续执行某些操作,以及其他功能。
28.tcp/ip(传输控制协议/因特网协议)265是在tcp/ip堆栈的传输层和网络层处使用的通信协议。这些层在主机和客户端设备(例如计算机服务器和客户计算设备)之间建立可靠连接并在网络之间路由分组。winnat(网络地址转换)275用于转换分配给在计算机服务器上运行的虚拟服务(例如虚拟机、容器或其他服务)的私有ip地址,并共享可路由到因特网的公共ip地址。wfp ip 270如上文关于wfp mac 240所描述的被使用。
29.winsock280是api,其处理操作系统内因特网应用的输入/输出请求。winsock可以在应用(例如网络浏览器)和tcp/ip层之间运行,并为不同版本的操作系统提供接口。afd(辅助功能驱动程序) 285是内核驱动程序,其可以与winsock一起使用,使计算机服务器能够与硬件或连接的设备进行通信。wsk(winsock内核l)290是内核模式网络编程接口(npi),其在可以相互附接的网络模块之间创建网络接口。例如向特定npi注册为客户端的客户端模块可以附接到注册为同一npi的提供者的提供者模块。
30.http(超文本传输协议)295和smb(服务器消息块)298协议是在tcp/ip模型的应用层操作的示例性通信协议。http利用请求和响应在客户端和服务器之间进行通信。smb是允许在同一网络中运行的系统共享文件的协议。也可以实现其他未示出的应用层协议,包括smtp(简单邮件传输协议)和ftp(文件传输协议)。
31.以上关于图2提供的描述适用于图3中描绘的虚拟化网络堆栈。例如图3描绘了每个联网堆栈300内的通用术语和功能。传播点360 描绘了分组从一个组件传送到下一个组
件。
32.与ndis235相关联的过滤器305和扩展310可以例如实现上面关于wfp和vfp描述的功能并且对分组执行过滤功能。端口nic(ptnic) 315可以是进入或离开vswitch 245的端口,并且扩展nic(extnic) 320可以是到与ndis 235相关联的扩展310的接口。ptnic可以提供到外部物理网络的用于连接性的外部虚拟端口,并可以提供与物理功能或虚拟功能的连接。扩展协议(extprot)365可用于将分组转发到虚拟化网络堆栈内的下一层,诸如主机网卡(hnic)325或虚拟机网卡 (vmnic)330。vmnic可以将分组传送到虚拟机或容器335,或传送来自虚拟机或容器335的分组,并且可用于将虚拟机连接到因特网或桥接到不同的网段。
33.hnic325可用于向或从与虚拟机或容器不同的计算机服务器上的操作或应用传送分组。当分组通过hnic时,ndis 235和过滤器305 在将分组转发到tcp/ip堆栈之前应用于分组,其示例性地示出了传输340、网络345和帧350层。标注355可以是由驱动程序公开的功能集合,其用于分组的专门过滤和操纵,诸如病毒扫描、对不适当内容的家长控制、和分组数据解析等功能。
34.虚拟机/容器335服务于不同的功能并且可以由客户进行不同的配置。虚拟机是在主机计算机服务器上被实例化的计算机系统的仿真,其中可以采用多个独立运行的虚拟机。虚拟机包括自己的虚拟硬件,包括处理单元、存储器、网络接口等。虚拟机可以根据客户的配置来运行不同的客户操作系统和应用。容器同样可以为客户执行流程,但可能不像虚拟机那样使用客户操作系统,而是容器由应用代码组成来执行功能。容器可以与应用代码以及执行容器预期功能所必需的内容隔离开来。
35.图4示出了示意性环境,其中用户125将输入输入到计算设备120 中以启用分组监视应用。在启用分组监视应用时,虚拟化网络堆栈410 内的组件405调用分组监视器api 205。虚拟化网络堆栈410用于表示例如图2或3中描绘的联网堆栈。同样,组件405用于表示图2或图3中描绘的联网堆栈的物理或虚拟网络组件中的任何一个或多个。因此,对组件的引用可以引用构成虚拟化网络堆栈的网络组件中的任何一个或多个,包括ndis、vswitch、nic、tcp/ip、vmnic、过滤器、扩展等。
36.图5示出了示意图,其中注册的组件405将报告505发送到分组监视器api 205。报告包括用于在组件处的成功的分组传播510和分组丢弃515的分组信息。可以基于组件的边界(或边缘)评估和报告成功的分组传播,诸如分组进入和离开组件的位置(参见例如图3中的传播点360)。可以在组件内的任何点评估和报告分组丢弃,以便分组监视器api具有关于分组丢弃发生在组件内的位置的信息。此信息可用于确定组件内的特定功能是否干扰分组传播。
37.图6示出了示意性环境,其中用户125使用计算设备120来输入分组监视应用220使用的分组过滤参数。分组监视应用使用这些参数来评估选择哪些分组信息来显示在计算设备120上的用户界面上以及忽略或忽略哪些分组信息。根据场景,某些分组可能比其他类型的分组更具证明性并且与客户遇到的延迟问题相关。客户遇到的连接问题可能会向虚拟化网络堆栈所在的计算机服务器的管理员指示超文本传输协议(http)分组与识别网络堆栈上发生延迟或分组丢弃的位置有关。服务器消息块(smb)或其他协议可能与用户的浏览器连接性问题无关,因此被过滤掉并且不被分组监视应用220呈现给用户。
38.图7示出了参数705的示意性分类法,分组监视应用通过该分类法过滤虚拟化网络
堆栈内的接收到的分组。非详尽参数包括监视级别 (例如仅微型端口、特定组件、所有组件等)710、媒体访问控制(mac) 源和/或目的地715、以太网协议(例如任何、ipv4(因特网协议版本 4)、ipv6、icmp(internet control message protocol)、icmpv6)720、 vlan(虚拟局域网)id725、ip地址源或目的地(例如任何一个地址或两个地址)730、通信协议(例如、任何tcp(传输控制协议)、 udp(用户数据报协议))735、tcp标志(例如tcp syn(同步)、 tcp rst(重置)或tcp fin(完成))740、端口源和/或目的地(例如任何一个端口或两个端口)745、分组封装(检查内部和/或外部分组)750、以及业务类型(例如存储、基于网络、人工智能等)755。这些参数中的任何一个或多个都可以输入并被配置到分组监视应用中,以过滤和跟踪特定的信息分组配置,其有助于解决客户遇到的分组丢弃或延迟问题。
39.图8示出了示意图,其中分组监视应用220向每个分组115分配 805个关联标识符(id)810。关联id对于特定分组是唯一的并且贯穿在虚拟化网络堆栈410中的每个组件405(图4)。关联id可以是例如 64位操作系统上的32位数字或32位操作系统上的16位数字。关联 id的部署使分组监视应用能够显示分组的数据路径,这可以为检测分组延迟、分组丢弃等提供信息。因此,用户可以利用参数来过滤要跟踪或丢弃的分组,然后查看穿过虚拟化网络堆栈的每个单独的分组或一组类似的分组。
40.图9示出了示意图,其中关联id 810跟随分组115通过分组穿过的每个组件405。每个组件可以是虚拟化网络堆栈中的不同网络组件 (例如vswitch、过滤器、虚拟端口等)。分组监视应用220(图2)被配置为向用户显示单个分组使用其分配的关联id在其中穿过的每个组件。通过分组转换为每个分组保留关联id,诸如分组封装、网络地址转换等。关联id与原始分组相关联,因此对分组的任何转换都是可识别的,因此仍然可以识别原始分组。也就是说,例如内部分组上的外部报头是可识别的,因此内部分组仍然可以在整个虚拟化网络堆栈中被跟踪。
41.图10示出了示意图,其中分组监视应用220可以利用与相应分组115相关联的关联id 810来对过滤后的分组执行后处理1005。后处理任务可以包括分组监视应用评估其中发生客户问题的场景1010、确定组件处的分组延迟1015、确定分组穿过联网堆栈的一部分所花费的持续时间1020、以及计算分组跨网络堆栈的定义部分或整个网络堆栈传播的平均值。
42.关于场景的评估,分组监视应用可能会触发虚拟化网络堆栈中的某些点,跨越分组穿过的一个或多个计算机服务器。例如在针对客户相关问题执行负荷均衡的场景中,可以在执行负荷均衡的计算机服务器、分组所指向的接收服务器、和分组可能从其被发送到客户的计算设备的始发服务器上启用分组监视应用。如果数据没有被负荷均衡,则可以在正在使用的计算机服务器上启用分组监视应用。关联id可以跨计算机服务器使用,以实现对分组在其穿过路径中的一致审查。其他场景也是可能的。场景可以通过在与计算机服务器相关联的用户界面处的用户输入来实现,或者可以是自动化过程。
43.组件可以向分组监视应用报告每个数据分组的时间戳。时间戳可以与组件的边界(例如入口和出口点)相关联或在相应组件内(例如对于分组丢弃)。跟踪穿过组件的分组的能力使分组监视应用能够利用相关联的时间戳来执行至少一些后处理1005操作。例如从后续组件中的另一个时间戳值中减去分组在一个组件中时的时间戳值可以提供该分组的延迟,至少对于那些组件而言。此信息还可用于计算遍历平均值以及其他计算。
44.通过虚拟化网络堆栈的每个组件以可定制的粒度级别跟踪分组的能力使用户能够快速识别用户遇到的延迟问题的根本原因。这可以通过解决分组丢弃和延迟问题来节省网络带宽,否则可能会阻止分组传播。可以识别相对于组件或组件集合处的预期延迟增加的延迟的自动化处理可以进一步加快根本原因确定,以使用户能够识别和解决问题。最终可以在计算机服务器、在计算机服务器上运行的虚拟机和容器以及利用计算机服务器和数据中心提供的服务的客户设备上实现更高的网络速度。
45.图11示出了由组件向分组监视应用220报告的数据分组115的信息分类1105。报告的信息可以包括组件名称1110、丢弃功能名称和行号(用于丢弃)1115、来自全局enum(枚举)列表(用于丢弃) 的丢弃原因1120、包括有效载荷类型(例如以太网名称、ip帧等) 1130的分组有效载荷或报头信息1125、tcp/udp端口(例如源和/ 或目的地)1135、分组方向(例如发送或接收)1140、用户模式进程名称1145、接口id 1150、实例id(例如ndis句柄)1155、网络缓冲区列表(nbl)带外(oob)信息1160、以太网报头信息(例如源、目的地、协议)1165、vlan id 1170和ip报头信息(例如源、目的地、协议)1175。
46.图12

14是可以使用计算机服务器110或计算设备120执行的示意性方法1200、1300和1400的流程图。除非特别说明,否则流程图中所示和在随附的文本不受特定顺序或顺序的限制。此外,一些方法或其步骤可以同时发生或执行,并且取决于实现的要求,并非所有方法或步骤都必须在给定的实现中执行,并且一些方法或步骤可以任选地被利用。
47.在步骤1205中,在图12中,计算机服务器启用分组监视应用的操作,该操作触发虚拟化网络堆栈中的每个组件调用与分组监视应用相关联的api。在步骤1210中,计算机服务器在分组监视应用处接收过滤分组所依据的参数。在步骤1215中,计算机服务器在分组监视应用处从虚拟化网络堆栈内的组件接收分组。在步骤1220中,计算机服务器通过分组监视应用使用参数来对从组件接收的分组进行过滤。在步骤1225中,计算机服务器在分组监视应用处将关联id分配给每个分组,以在分组穿过虚拟化网络堆栈的组件时启用分组的关联和跟踪。
48.在步骤1305中,在图13中,计算机服务器与一个或多个客户计算设备通信分组,其中,在通信期间,分组穿过计算机服务器上的虚拟化网络堆栈的组件。在步骤1310,虚拟化网络堆栈的组件向分组监视应用报告分组的穿过状态。在步骤1315中,计算机服务器为每个分组分配关联id。在步骤1320中,计算机服务器利用关联id来跟踪跨虚拟化网络堆栈上的组件的分组。在步骤1325中,计算机服务器配置分组监视应用以根据设置的参数来对分组进行过滤,从而选择相应的分组以显示在与计算机服务器相关联的用户界面上。
49.在步骤1405中,在图14中,计算机服务器向用户展示用户界面以启用分组监视应用,该应用使网络堆栈内的组件向分组监视应用报告分组。在步骤1410中,计算机服务器在用户界面处接收一个或多个参数的选择,其详述了分组监视应用要选择哪些分组。在步骤1415 中,网络堆栈内的组件调用与分组监视应用相关联的api。在步骤 1420中,分组监视应用从网络堆栈的组件接收分组。在步骤1425,分组监视应用使用参数来对接收到的分组进行过滤,其中符合参数的分组被分组监视应用选择以显示在用户界面上。在步骤1430中,分组监视应用向过滤后的分组分配唯一的关联id,其中分配给分组的关联id通过网络栈跟随相应的分组。在步骤1435中,分组监视应用使用关于分组传播的信息来计算组件处的分组的延迟。在步骤1440 中,计算机服务器显示包括过滤分组的计算出的延迟和分组丢弃的
报告。
50.图15是示例性数据中心1500的高级框图,该数据中心提供云计算服务或分布式计算服务,这些云计算服务或分布式计算服务可用于通过分组相关性在本地网络堆栈中实现当前的分组丢弃检测。多个服务器1501由数据中心管理控制器1502管理。负荷均衡器1503在服务器1501上分配请求和计算工作负荷以避免其中单个服务器可能变得不堪重负的情况。负荷均衡器1503最大化数据中心1500中资源的可用容量和性能。路由器/交换机1504经由外部网络1505支持服务器 1501之间以及数据中心1500与外部资源和用户(未示出)之间的数据业务,外部网络1505可以是例如、局域网(lan)或因特网。
51.服务器1501可以是独立的计算设备,和/或它们可以被配置为一个或多个服务器设备的机架中的单独刀片。服务器1501具有管理与其他数据库实体的通信的输入/输出(i/o)连接器1506。每个服务器 1501上的一个或多个主机处理器1507运行支持多个虚拟机(vm)1509 的主机操作系统(o/s)1508。每个vm 1509可以运行其自己的o/s,使得在服务器上的每个vm o/s 1510不同,或相同,或两者兼而有之。 vm o/s 1510可以是例如相同o/s的不同版本(例如运行操作系统的不同当前和旧版本的不同vm)。此外或替代地,vm o/s1510可由不同的制造商提供(例如一些vm运行操作系统,而其他vm运行操作系统)。每个vm 1509还可以运行一个或多个应用(apps)1511。每个服务器1501还包括可由主机处理器 1507和vm 1509用于存储软件代码、数据等而访问和使用的存储装置1512(例如硬盘驱动器(hdd))和存储器1513(例如ram)。在一个实施例中,vm 1509可以使用本文公开的数据平面api。
52.数据中心1500提供池化资源,客户可以根据需要动态提供和扩展应用,而无需添加服务器或额外的联网。这允许客户获得他们需要的计算资源,而无需基于每个应用、来采购、供应和管理基础设施。云计算数据中心1500允许客户动态地扩大或缩小资源以满足其业务的当前需求。此外,数据中心运营商可以向客户提供基于使用情况的服务,以便他们在需要使用资源时只为他们使用的资源付费。例如客户最初可以使用服务器15011上的一个vm 1509来运行他们的应用 1511。当对应用1511的需求增加时,数据中心1500可以根据需要在同一服务器15011和/或新服务器1501
n
上激活额外的vm 1509。如果稍后对应用的需求下降,则可以停用这些额外的vm 1509。
53.数据中心1500可以提供有保证的可用性、灾难恢复和备份服务。例如数据中心可以将服务器15011上的一个vm 1509指定为客户应用的主要位置,并且可以激活同一或不同服务器上的第二个vm 1509 作为备用或备份,以防第一个vm或服务器15011发生故障。数据中心管理控制器1502自动将传入的用户请求从主vm转移到备份vm 而无需客户干预。尽管数据中心1500被示为单个位置,但是应当理解,服务器1501可以分布到全球的多个位置以提供额外的冗余和灾难恢复能力。此外,数据中心1500可以是向单个企业用户提供服务的本地私有系统,或者可以是向多个不相关客户提供服务的可公开访问的分布式系统,或者可以是两者的组合。
54.域名系统(dns)服务器1514将域名和主机名解析为数据中心 1500中所有角色、应用和服务的ip(因特网协议)地址。dns日志1515 维护了哪些域名已被角色解析的记录。应当理解,本文使用dns作为示例,并且可以使用其他名称解析服务和域名记录服务来识别依赖性。
55.数据中心健康监视1516监视数据中心1500中的物理系统、软件和环境的健康。健康监视1516在数据中心1500中的服务器、刀片、处理器或应用检测到问题时或当网络出现带宽或通信出现问题时向数据中心管理者提供反馈。
56.图16示出了用于诸如膝上型计算机或个人计算机的客户端计算设备用于通过分组相关性在本地网络堆栈中进行分组丢弃检测的示意性架构1600。图16中所示的架构1600包括一个或多个处理器1602 (例如中央处理单元、专用人工智能芯片、图形处理单元等);系统存储器1604,包括ram(随机存取存储器)1606和rom(读仅存储器)1608;以及在操作上和功能上耦合架构1600中的组件的系统总线1610。包含帮助诸如在启动期间在架构1600内的元件之间传输信息的基本例程的基本输入/输出系统是通常被存储在rom 1608中。架构1600还包括大容量存储设备1612,用于存储用于实现应用、文件系统和操作系统的软件代码或其他计算机执行代码。大容量存储设备1612通过连接到总线1610的大容量存储控制器(未示出)连接到处理器1602。大容量存储设备1612及其相关联的计算机可读存储介质为架构1600提供非易失性存储。虽然本文包含的计算机可读存储介质的描述是指大容量存储设备,诸如硬盘或cd

rom驱动器,本领域技术人员可以理解,计算机可读存储介质可以是任何可用的存储介质可以由架构1600访问。
57.作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的用于存储例如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性和非易失性、可移动和不可移动介质。例如计算机可读介质包括但不限于ram、rom、eprom(可擦可编程只读存储器)、eeprom(电可擦可编程只读存储器)、闪存或其他固态存储技术、cd

rom、dvd、hd

dvd(高清dvd)、蓝光或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可用于存储期望的信息并可由架构1600访问的任何其他介质。
58.根据各种实施例,架构1600可以使用通过网络到远程计算机的逻辑连接在联网环境中操作。架构1600可以通过连接到总线1610的网络接口单元1616连接到网络。可以理解,网络接口单元1616也可以用于连接到其他类型的网络和远程计算机系统。架构1600还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器 1618,包括键盘、鼠标、触摸板、触摸屏、诸如按钮和开关的控制设备或电子手写笔(图16中未示出)。类似地,输入/输出控制器1618 可以向显示屏、用户界面、打印机或其他类型的输出设备(也未在图 16中示出)提供输出。
59.可以理解的是,本文描述的软件组件可以在加载到处理器1602 中并被执行时,将处理器1602和整个体系结构1600从通用计算系统转换为定制的专用计算系统,以促进本文介绍的功能。处理器1602 可以由任意数量的晶体管或其他分立电路元件构成,它们可以单独地或共同地呈现任意数量的状态。更具体地,处理器1602可以响应于在本文公开的软件模块内包含的可执行指令而作为有限状态机操作。这些计算机可执行指令可以通过指定处理器1602如何在状态之间转换从而转换构成处理器1602的晶体管或其他分立硬件元件来转换处理器1602。
60.对本文呈现的软件模块进行编码还可以变换本文呈现的计算机可读存储介质的物理结构。物理结构的具体变换可能取决于本说明书不同实现中的各种因素。这些因素的示例可以包括但不限于用于实现计算机可读存储介质的技术、计算机可读存储介质被特征化为主存储还是辅助存储等。例如如果计算机可读存储介质被实现为基于半导体的存储
器,则可以通过转换半导体存储器的物理状态将本文公开的软件编码在计算机可读存储介质上。例如软件可以转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。软件还可以转换这些组件的物理状态以便于在其上存储数据。
61.作为另一个示例,本文公开的计算机可读存储介质可以使用磁或光技术来实现。在这样的实施方式中,当软件在其中被编码时,本文呈现的软件可以转换磁性或光学介质的物理状态。这些转换可以包括改变给定磁介质内特定位置的磁特性。这些变换还可以包括改变给定光学介质内特定位置的物理特征或特性以改变那些位置的光学特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供上述示例只是为了便于讨论。
62.架构1600还可包括一个或多个传感器1614或电池或电源1620。传感器可耦合到架构以获取关于环境或组件的数据,包括温度、压力等。示例性传感器可以包括温度计、加速度计、烟雾或气体传感器、压力传感器(气压或物理)、光传感器、超声波传感器、陀螺仪等。电源可以采用交流电源线或电池,诸如用于便携性的可充电电池。
63.鉴于上文,可以理解,在体系结构1600中发生许多类型的物理变换以便存储和执行本文呈现的软件组件。还可以理解,架构1600 可以包括其他类型的计算设备,包括可穿戴设备、手持计算机、嵌入式计算机系统、智能电话、pda和本领域技术人员已知的其他类型的计算设备。还预期架构1600可以不包括图16中所示的所有组件,可以包括图16中未明确显示的其他组件,或者可以利用与图16中所示的架构完全不同的架构。
64.图17是诸如pc或服务器的示意性计算机系统1700的简化框图,利用该计算机系统可以通过分组关联来实现本地网络堆栈中的当前分组丢弃检测。计算机系统1700包括处理器1705、系统存储器1711 和系统总线1714,系统总线1714将包括系统存储器1711的各种系统组件耦合到处理器1705。系统总线1714可以是几种类型的总线结构中的任何一种,包括内存总线或内存控制器、外围总线或使用各种总线架构中的任何一种的本地总线。系统存储器1711包括只读存储器 (rom)1717和随机存取存储器(ram)1721。基本输入/输出系统 (bios)1725,包含诸如在启动期间帮助在计算机系统1700内的元件之间传输信息的基本例程,被存储在rom1717中。计算机系统1700 还可以包括用于读取和写入内部设置的硬盘(未示出)的硬盘驱动器 1728、用于读取或写入可移动磁盘1733(例如软盘)的磁盘驱动器1730、和用于读取或写入可移动光盘1743的光盘驱动器1738,诸如 cd(光盘)、dvd(数字通用盘)或其他光学介质。硬盘驱动器1728、磁盘驱动器1730和光盘驱动器1738分别通过硬盘驱动器接口1746、磁盘驱动器接口1749和光驱接口1752连接到系统总线1714。驱动器及其相关联的计算机可读存储介质为计算机系统1700提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管该说明性示例包括硬盘、可移动磁盘1733和可移动光盘1743,但可以存储可由计算机访问的数据的其他类型的计算机可读存储介质,诸如磁带、闪存卡、数字视频磁盘、数据卡带、随机存取存储器(ram)、只读存储器(rom)等,也可用于本地网络堆栈中通过分组关联进行的当前分组丢弃检测的一些应用中。此外,如本文所用,术语计算机可读存储介质包括介质类型的一个或多个实例(例如一个或多个磁盘、一个或多个cd等)。出于本说明书和权利要求的目的,短语“计算机可读存储介质”及其变体旨在涵盖非暂时性实施例,并且不包括波、信号和/或其他暂时性和/或无形通信介质.
65.多个程序模块可以被存储在硬盘、磁盘1733、光盘1743、rom1717或ram 1721上,
包括操作系统1755、一个或多个应用1757、其他程序模块1760和程序数据1763。用户可以通过诸如键盘1766 的输入设备和诸如鼠标的定点设备1768将命令和信息输入到计算机系统1700中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、轨迹球、触摸板、触摸屏、触敏设备、语音命令模块或设备、用户动作或用户手势捕获设备等。这些和其他输入设备通常通过串行端口接口1771连接到处理器1705,串行端口接口1771耦合到系统总线1714,但也可以通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(usb)。监视器1773或其他类型的显示设备也经由接口连接到系统总线1714,诸如视频适配器1775。除了监视器1773之外,个人计算机通常包括其他外围输出设备(未示出),诸如扬声器和打印机。图17中所示的示意性示例还包括主机适配器1778、小型计算机系统接口(scsi)总线1783、和连接到scsi 总线1783的外部存储设备1776。
66.计算机系统1700可在联网环境中使用到一个或多个远程计算机的逻辑连接,诸如远程计算机1788。远程计算机1788可以被选择为另一个人计算机、服务器、路由器、网络pc、对等设备或其他公共网络节点,并且通常包括上文相对于计算机系统1700描述的许多或所有元件,尽管图17中仅示出了单个代表性远程存储器/存储设备 1790。逻辑连接图17中描绘的包括局域网(lan)1793和广域网 (wan)1795。这样的联网环境经常部署在例如办公室、企业范围的计算机网络、内联网和因特网中。
67.当在lan网络环境中使用时,计算机系统1700通过网络接口或适配器1796连接到局域网1793。当在wan网络环境中使用时,计算机系统1700通常包括宽带调制解调器1798、网络网关、或用于在广域网1795上建立通信的其他手段,诸如因特网。可以是内部或外部的宽带调制解调器1798经由串行端口接口1771连接到系统总线 1714。在网络环境中,与计算机系统1700相关的程序模块或其部分可以被存储在远程存储器存储设备1790。注意,图17中所示的网络连接是示意性的,并且取决于通过分组关联在本地联网堆栈中当前分组丢弃检测的应用的具体要求,可以使用在计算机之间建立通信链接的其他手段。
68.现在通过分组相关性在本地联网堆栈中检测分组丢弃的各种示例性实施例以说明的方式呈现,而不是作为所有实施例的详尽列表。示例包括由计算机服务器执行以通过托管在计算机服务器上的虚拟化网络堆栈来监视分组传播和丢弃的方法,包括:启用分组监视应用的操作,该分组监视应用触发虚拟化网络堆栈中的每个组件来调用与分组监视应用相关的应用编程接口(api);在分组监视应用处接收过滤分组的参数;在分组监视应用处,从虚拟化网络堆栈内的组件接收分组,其中组件是联网组件,该联网组件被配置为处理并且路由穿过虚拟化网络堆栈分组;由分组监视应用使用参数过滤从组件接收的分组,其中选择满足参数的分组以显示在与计算机服务器相关联的用户界面上;在分组监视应用处为每个分组分配关联id(标识符),以在分组穿过虚拟化网络堆栈的组件时能够实现分组的关联和跟踪。
69.在另一个示例中,虚拟化网络堆栈包括硬件网络设备和软件定义网络(sdn)组件的组合。在另一个示例中,sdn组件包括虚拟交换机、虚拟机网络接口控制器(vnic)、网络驱动器接口规范(ndis)以及与 ndis相关联的过滤器或扩展。在另一示例中,该方法还包括在用户界面上显示经过滤的分组的报告。在另一示例中,该方法还包括用外部报头封装分组并将过滤参数应用于封装分组的内部报头和外部报头。在另一示例中,该方法还包括使用分配的关联id来确定虚拟化网络堆栈的每个组件处的分组的延迟。在另一示例中,组件向
分组监视应用报告在相应组件内的任何点发生的分组丢弃,并且组件基于满足组件边界的相应分组来报告成功的分组传播。在另一个示例中,参数包括通过因特网协议(ip)地址源过滤分组。在另一个示例中,参数包括通过因特网协议(ip)地址目的地过滤分组。在另一示例中,参数包括通过源或目的地的mac(媒体访问控制)地址过滤分组。在另一个示例中,参数包括通过以太网协议过滤分组。在另一个示例中,参数包括在虚拟化网络堆栈内的多个可用组件的各个组件处过滤分组。在另一示例中,参数包括通过端口源或端口目的地来过滤分组。在另一示例中,参数包括通过tcp(传输控制协议)标志来过滤分组,包括tcp syn(同步)、tcp rst(重置)或tcp fin(完成)中的任何一个或多个。
70.另一示例包括计算机服务器,该计算机服务器配置有分组监视应用以跨计算机服务器上的虚拟化网络堆栈来跟踪分组,该计算机服务器包括一个或多个处理器和一个或多个基于硬件的非暂态存储器设备,其存储计算机可读指令,当由一个或多个处理器执行时,使计算机服务器:在计算机服务器和一个或多个客户计算设备之间传递分组,其中,在通信期间,分组穿过虚拟化网络堆栈的组件,组件是与虚拟化网络堆栈相关联的虚拟网络组件或物理网络组件;由虚拟化网络堆栈的组件向分组监视应用报告分组的穿过状态;为每个分组分配一个相关标识符(id);利用关联id来跟踪跨虚拟化网络堆栈上组件的分组;并且配置分组监视应用以根据设置的参数来过滤分组,使得响应于满足一个或多个参数的分组而选择相应的分组以显示在用户界面上。
71.在另一个示例中,过滤参数是响应于用户输入而设置的。在另一个示例中,计算机服务器还包括多个计算机服务器,其具有用于跟踪分组的各自的分组监视应用,其中在跨越分组在其上穿过的每个计算机服务器的虚拟化网络堆栈上跟踪分组。在另一示例中,所执行的指令还使计算机服务器在与计算机服务器相关联的用户界面上显示启用和禁用分组监视应用的选项,其中组件响应于用户界面接收启用分组监视应用的输入来报告分组的状态,并且其中分组监视应用的默认设置被禁用。
72.另一个示例包括存储指令的一个或多个基于硬件的非暂态计算机可读存储设备,当由在计算机服务器中布设的一个或多个处理器执行时,使计算机服务器:向用户展示用户界面以启用分组监视应用,该分组监视应用导致网络堆栈中的组件报告分组;在用户界面处接收一个或多个参数的选择,其详细说明由分组监视应用选择哪些分组;通过网络堆栈内的组件来调用与分组监视应用相关联的应用编程接口(api),其中组件使用api向分组监视应用报告分组丢弃和分组传播;从联网堆栈的组件接收分组;使用参数来过滤接收到的分组,其中符合参数的分组由分组监视应用选择以显示在与计算机服务器相关联的用户界面上;为过滤后的分组分配唯一的相关标识符(id),其中分配给分组的关联id通过网络堆栈跟随相应的分组;由分组监视应用使用关于来自组件的分组传播的信息和分配给各个分组的关联 id来计算组件处分组的延迟;并显示报告,其包括过滤分组的计算出的延迟和分组丢弃。
73.在另一个示例中,所执行的指令还使计算机服务器向分组监视应用注册联网堆栈内的组件,其中只有注册的组件能够调用与分组监视应用相关联的api。
74.虽然已经以结构特征和/或方法动作特定的语言描述了该主题,但是应当理解,所附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上述特定特征和动作被公开为实施权利要求的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1