得出网络设备和主机连接的制作方法

文档序号:28424574发布日期:2022-01-11 23:44阅读:135来源:国知局
得出网络设备和主机连接的制作方法

1.本公开涉及计算机网络的分析,包括确定计算机网络中的设备连接性。


背景技术:

2.虚拟化数据中心正在成为现代信息技术(it)基础设施的核心基础。特别地,现代数据中心已经广泛利用了虚拟化环境,其中诸如虚拟机或容器等虚拟主机部署在物理计算设备的基础计算平台上并且在其上执行。
3.大型数据中心内的虚拟化可以提供多个优势,包括有效利用计算资源和简化网络配置。因此,企业it员工除了具有虚拟化所带来的效率和更高的投资回报率(roi)之外,还因为其管理优势而通常更喜欢数据中心中的虚拟化计算集群。
4.在大型数据中心中支持虚拟化可能需要能够在数据中心网络中耦合在一起的众多网络设备和主机设备。指示主机设备如何连接到网络设备的连接性信息针对在数据中心内部署组件、分析组件和对组件进行故障排除很有用。


技术实现要素:

5.本公开描述了如下这样的技术,该技术包括:当网络设备中的至少一个未实现诸如lldp等第2层发现协议时,确定网络设备的连接性信息。作为示例,网络设备可以包括诸如网络交换机、路由器、网关等网桥设备、以及诸如服务器、客户端设备等主机设备。网桥设备通常实现lldp,而一个或多个主机设备可以不实现lldp。网络分析系统可以收集网络中的网络设备的底层和叠加流信息。连接性信息可以促进关于物理网络基础设施的信息的分析和呈现。例如,这些技术可以促进呈现关于底层流数据和网络虚拟化的信息(例如,叠加流数据),使数据相关联以使得能够洞悉网络操作和性能。在一些示例中,网络分析系统可以发出snmp查询以从诸如交换机、路由器、网关等网桥设备获取信息,以确定网桥设备的接口的各种参数。网络分析系统可以使信息相关联以确定耦合到网桥设备的主机设备的远程媒体访问控制(mac)地址。网络分析系统可以进一步使远程物理地址与互联网协议(ip)地址和/或主机名相关联。
6.本文中描述的技术可以提供一个或多个技术优点。例如,这些技术可以促进获取不实现第2层网络协议的设备的设备连接性数据。因此,这些技术可以提供更完整的网络拓扑,从而有助于改善网络分析和改善网络基础设施的可视化。
7.在一些示例中,本发明描述了根据本公开的一个或多个方面的由网络分析系统或其他网络系统执行的操作。在一个特定示例中,本公开描述了一种方法,该方法包括:由网络分析系统从具有一个或多个主机设备的网络上的网桥设备的网桥数据存储库取回多个第一接口索引,其中每个第一接口索引对应于网桥设备的多个网络接口中的一个网络接口;从网桥数据存储库取回与网桥设备的多个网络接口对应的多个远程物理地址,远程物理地址中的每个远程物理地址对应于第二接口索引;标识对应于与第一接口索引匹配的第二接口索引的远程物理地址;确定具有所选择的远程物理地址的主机设备;以及输出网桥
设备被通信地耦合到主机设备的指示。
8.在另一示例中,本公开描述了一种系统,该系统包括被配置为执行本文中描述的操作的处理电路。在另一示例中,本公开描述了一种包括指令的非暂态计算机可读存储介质,该指令在被执行时将计算系统的处理电路配置为执行本文中描述的操作。
附图说明
9.图1是示出根据本公开的一个或多个方面的包括用于分析网络上和/或数据中心内的设备连接性的系统的示例网络的概念图;
10.图2是示出根据本公开的一个或多个方面的用于分析网络上和/或数据中心内的设备连接性的示例性网络的框图;
11.图3是示出根据本公开的一个或多个方面的在网络设备数据库上执行的示例查询的概念图;
12.图4a和图4b是示出根据本公开的一个或多个方面的由用户接口设备呈现的示例用户接口的概念图;
13.图5是示出根据本公开的一个或多个方面的由示例网络分析系统执行的操作的流程图;以及
14.图6示出了用于获取主机设备的接口名称和接口的对应mac地址的示例程序代码。
具体实施方式
15.使用其中在物理计算设备的基础计算平台上部署和执行虚拟主机、虚拟机或容器的虚拟化环境的数据中心可以提供效率、成本和组织优势。典型的数据中心采用很多网络设备和主机设备,这些设备用于支持虚拟化环境并且实现数据中心内部和数据中心外部的实体之间的通信。获取对应用工作负载的有意义的见解针对有效管理数据中心结构至关重要。来自网络设备的业务样本可以有助于提供这样的见解。
16.在某些情况下,从网络设备收集足够的数据以促进网络分析可能是一个挑战,特别是当在数据中心或其他网络环境中缺少一个或多个网络设备的连接性信息时。例如,一个或多个主机设备可能不实现或执行诸如链路层发现协议(lldp)等网络发现协议,该协议将使得能够发现有关一个或多个主机设备的连接性信息。在这种情况下,网络分析工具可能缺少连接性信息而无法有效地分析网络业务流并且执行网络故障排除。此外,缺乏连接性信息可能阻止获取网络的完整可视化。本文中描述的技术使得无论主机设备是否实现发现协议都能够确定连接性信息。在一些示例中,可以生成用户接口以实现关于网络系统中的设备连接性、所收集的数据、以及数据如何流过底层和覆盖网络的准确可视化。设备连接性信息的准确确定可以促进这样的数据在用户接口中的分析和呈现,从而可以洞悉网络并且为用户、管理员和/或其他人员提供用于网络发现、调查和故障排除的工具。
17.图1是示出根据本公开的一个或多个方面的示例网络的概念图,该示例网络包括用于分析网络上和/或数据中心内的业务流的系统。图1示出了网络系统100和数据中心101的一种示例实现,该网络系统100和数据中心101托管一个或多个计算网络、计算域或项目、和/或基于云的计算网络(在本文中通常被称为云计算集群)。基于云的计算集群可以共同位于共同的整体计算环境中,诸如单个数据中心,也可以分布在整个环境中,诸如在不同的
数据中心之间。基于云的计算集群可以例如是不同的云环境,诸如openstack云环境、kubernetes云环境或其他计算集群、域、网络等的各种组合。在其他情况下,网络系统100和数据中心101的其他实现可能是合适的。这样的实现可以包括图1的示例中包括的组件的子集,和/或可以包括图1中未示出的附加组件。
18.在图1的示例中,数据中心101为通过服务提供方网络106耦合到数据中心101的客户104提供用于应用和服务的操作环境。图1可以被示出为分布在图1中的多个设备之间,在其他示例中,归因于图1中的一个或多个设备的特征和技术可以由一个或多个这样的设备的本地组件在内部执行。类似地,一个或多个这样的设备可以包括某些组件,并且执行在本文中描述为归因于一个或多个其他设备的各种技术。此外,某些操作、技术、特征和/或功能可以结合图1进行描述,或者由特定组件、设备和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由其他组件、设备或模块执行。因此,归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能也可以归因于其他组件、设备和/或模块,即使本文中没有以这种方式具体描述。
19.数据中心101托管基础设施设备,诸如网络和存储系统、冗余电源和环境控件。服务提供方网络106可以耦合到由其他提供方管理的一个或多个网络,并且因此可以形成例如互联网等大规模公共网络基础设施的一部分。
20.在一些示例中,数据中心101可以表示很多地理分布的网络数据中心中的一个网络数据中心。如图1的示例中所示,数据中心101是为客户104提供网络服务的设施。客户104可以是集体实体,诸如企业和政府或个人。例如,网络数据中心可以为若干企业和最终用户托管网络服务。其他示例服务可以包括数据存储、虚拟专用网、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心101是单独的网络服务器、网络对等方等。
21.在图1的示例中,数据中心101包括一组存储系统、应用服务器、计算节点或其他设备,包括网络设备110a至网络设备110n(被统称为“网络设备110”,表示任何数目的网络设备)。设备110可以经由由一层或多层物理网络交换机和路由器提供的高速交换结构121互连。在一些示例中,设备110可以被包括在结构121内,但是为了便于说明而被分开示出。
22.网络设备110可以是很多不同类型的网络设备(核心交换机、脊柱网络设备、分支网络设备、边缘网络设备或其他网络设备)中的任何一种个,但是在某些示例中,一个或多个设备110可以用作数据中心的物理计算节点。例如,设备110中的一个或多个可以提供用于一个或多个客户特定应用或服务的执行的操作环境。备选地或附加地,一个或多个设备110可以为一个或多个虚拟机或其他虚拟化实例(诸如容器)提供操作环境。在一些示例中,设备110中的一个或多个可以备选地被称为主机计算设备或更简单地被称为主机。网络设备110从而可以执行一个或多个虚拟化实例,诸如虚拟机、容器、或用于运行一个或多个服务(诸如虚拟网络功能(vnf))的其他虚拟执行环境。
23.通常,每个网络设备110可以是可以在网络上运行并且可以生成通过遥测或其他方式可访问的数据(例如,连接性数据、流数据、sflow数据)的任何类型的设备,其可以包括任何类型的计算设备、传感器、相机、节点、监测设备或其他设备。此外,一些或全部网络设备110可以表示另一设备的组件,其中这种组件可以生成通过遥测或其他方式可收集的数据。例如,一些或全部网络设备110可以表示物理或虚拟网络设备,诸如交换机、路由器、集线器、网关、安全设备(诸如防火墙、入侵检测和/或入侵防御设备)。
24.尽管未具体示出,但是交换结构121可以包括耦合到机箱交换机的分布层的架顶式(tor)交换机,并且数据中心101可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如防火墙、入侵检测和/或入侵防御设备)、服务器、计算机终端、笔记本电脑、打印机、数据库、无线移动设备(诸如蜂窝电话或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络设备。交换结构121可以执行第3层路由,以通过服务提供方网络106在数据中心101与客户104之间路由网络业务。网关108用来在交换结构121与服务提供方网络106之间转发和接收分组。
25.根据本公开的一个或多个示例,软件定义网络(“sdn”)控制器132提供逻辑上的并且在某些情况下是物理上的集中式控制器,以促进数据中心101内的一个或多个虚拟网络的操作。在一些示例中,sdn控制器132响应于经由北向应用程序编程接口(api)131从编排引擎130接收的配置输入而操作,北向api 131又可以响应于从与用户接口设备129交互和/或操作用户接口设备129的管理员128接收的配置输入而操作。
26.用户接口设备129可以被实现为用于呈现输出和/或接受用户输入的任何合适的设备。例如,用户接口设备129可以包括显示器。用户接口设备129可以是计算系统,诸如由用户和/或管理员128操作的移动或非移动计算设备。根据本公开的一个或多个方面,用户接口设备129可以例如表示工作站、膝上型计算机或笔记本计算机、台式计算机、平板计算机、或可以由用户操作和/或呈现用户接口的任何其他计算设备。在一些示例中,用户接口设备129可以与控制器201物理上分离和/或在与控制器201不同的位置。在这样的示例中,用户接口设备129可以通过网络或其他通信方式与控制器201通信。在其他示例中,用户接口设备129可以是控制器201的本地外围设备,或者可以集成到控制器201中。
27.在一些示例中,编排引擎130管理数据中心101的功能,诸如计算、存储、联网和应用资源。例如,编排引擎130可以为数据中心101内或跨数据中心的租户创建虚拟网络。编排引擎130可以将虚拟机(vm)附接到租户的虚拟网络。编排引擎130可以将租户的虚拟网络连接到外部网络,例如互联网或vpn。编排引擎130可以跨一组vm或到租户网络的边界实现安全策略。编排引擎130可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。
28.在一些示例中,sdn控制器132管理诸如负载均衡、安全性等网络和联网服务,并且可以经由南向api 133将来自用作主机设备的设备110的资源分配给各种应用。也就是说,南向api 133表示sdn控制器132用来使网络的实际状态等于由编排引擎130指定的期望状态的一组通信协议。例如,sdn控制器132可以通过配置物理交换机来实现编排引擎130的高级请求,例如,架顶式(tor)开关、机箱开关和交换结构121;物理路由器;物理服务节点,诸如防火墙和负载均衡器;以及vm中的诸如虚拟防火墙等虚拟服务。sdn控制器132在状态数据库内维持路由、网络和配置信息。
29.网络分析系统140与一个或多个设备110(和/或其他设备)交互或从其接收数据。这样的数据可以包括数据中心101和/或网络系统100上的网络连接性数据、网络拓扑数据、网络地址数据和网络流数据。这样的流数据可以包括底层流数据和叠加流数据。在一些示例中,底层流数据可以通过在osi模型的第2层收集的流数据的样本来收集。叠加流数据可以是从跨网络系统100内建立的一个或多个虚拟网络的叠加业务得出的数据(例如,数据样本)。叠加流数据可以例如包括标识源虚拟网络和目的地虚拟网络的信息。
30.网络分析系统140可以接收和处理查询。例如,在所描述的示例中,用户接口设备
129检测输入并且将关于该输入的信息输出到网络分析系统140。网络分析系统140确定该信息对应于来自用户接口设备129的用户的对关于网络系统100的信息的请求。网络分析系统140通过查询所存储的信息来处理该请求,这些信息是从网络发现交互(诸如根据lldp进行的交互)中得出的。网络分析系统140基于所存储的数据生成对查询的响应,并且将关于该响应的信息输出到用户接口设备129。
31.为了促进收集关于网络的信息(包括关于连接性的信息(mac地址、ip地址、接口名称、接口索引)或具有底层流数据的覆盖流数据)并且以准确的数据来响应于查询,网络分析系统140可以使用本文中描述的技术来确定设备110的连接性数据。在一些示例中,可以在不存在lldp或其他第2层网络发现协议的情况下确定连接性数据。网络分析系统140可以使用连接性数据来分析网络的各个方面(可以包括底层数据流),并且提供包括由于设备上缺少lldp或其他第2层网络发现协议而无法呈现的设备的网络的拓扑视图。
32.图2是示出根据本公开的一个或多个方面的用于分析网络上和/或数据中心内的设备连接性的示例网络的框图。图2的网络系统200可以被描述为图1的网络系统100的示例或替代实现。图2的一个或多个方面在本文中可以在图1的上下文中描述。
33.尽管诸如图1和图2所示的数据中心可以由任何实体来操作,但是某些数据中心可以由服务提供方来操作,其中这种服务提供方的商业模型可以涉及为客户或客户端提供计算能力。因此,数据中心通常包含大量计算节点或主机设备。为了有效地运行,这些主机必须彼此连接以及与外部世界连接,并且该能力是通过物理网络设备来提供的,该物理网络设备可以按照叶脊柱拓扑互连。这些物理设备(例如,网络设备和主机)的集合形成底层网络。
34.这种数据中心中的每个主机设备可以在其上运行有若干虚拟机,这些虚拟机可以被称为工作负载。数据中心的客户端通常可以访问这些工作负载,并且可以使用这用的工作负载来安装应用并且执行其他操作。在不同主机设备上运行但由一个特定客户端可访问的工作负载被组织成一个虚拟网络。每个客户端通常具有至少一个虚拟网络。这些虚拟网络也被称为叠加网络。在某些情况下,数据中心的客户端可能会遇到在不同工作负载上运行的两个应用之间的连接问题。由于工作负载在大型多租户数据中心的部署,因此对这样的问题进行故障排除通常会变得很复杂。由于缺少可以承载工作负载的服务器和其他计算节点的连接性数据,解决这样的问题的麻烦可能会更加复杂。
35.在图2的示例中,网络205连接网络分析系统240、主机设备210a和主机设备210b-210n。网络分析系统240可以对应于图1所示的网络分析系统140的示例或替代实现。主机设备210a、210b至210n可以被统称为“主机设备210”,表示任何数目的主机设备210。
36.每个主机设备210可以是图1的设备110的示例,但是在图2的示例中,与网络设备相反,每个主机设备210被实现为服务器或主机设备,该服务器或主机设备用作虚拟数据中心的物理或虚拟计算节点。如本文中进一步描述的,一个或多个主机设备210(例如,图2的主机设备210a)可以执行多个虚拟计算实例,诸如虚拟机228,并且此外,一个或多个主机设备210(例如,主机设备210b至210n中的一个或多个)可以在非虚拟化的单租户和/或裸机服务器上执行应用或服务模块277。因此,如在图1中,图2的示例示出了可以包括虚拟服务器设备和裸机服务器设备的混合的网络系统。
37.如图1所示,还连接到网络205的是可以由管理员128操作的用户接口设备129。在
filtering,and virtual lan extensions”(在此引入作为参考)中指定。相同或相似的网络管理环境260可以存在于其他叶设备203和脊柱设备202上。
43.网络分析系统240可以实现为任何合适的计算系统,诸如一个或多个服务器计算机、工作站、大型机、设备、云计算系统、和/或能够执行根据本公开的一个或多个方面而描述的操作和/或功能的其他计算系统。在一些示例中,网络分析系统240表示向客户端设备和其他设备或系统提供服务的云计算系统、服务器场和/或服务器集群(或其一部分)。在其他示例中,网络分析系统240可以表示数据中心、云计算系统、服务器场和/或服务器群集的一个或多个虚拟化计算实例(例如,虚拟机、容器),或者通过其而被实现。
44.在图2的示例中,网络分析系统240可以包括一个或多个处理器243、一个或多个通信单元245、一个或多个输入设备246以及一个或多个输出设备247。存储设备250可以包括用户接口模块254、流api256、snmp管理器257、拓扑和指标源253以及数据存储库259。
45.网络分析系统240的设备、模块、存储区域或其他组件中的一个或多个可以互连以实现组件间通信(物理上、通信上和/或操作上)。在一些示例中,这种连接可以通过通信信道(例如,通信信道242)、系统总线、网络连接、进程间通信数据结构、或用于传送数据的任何其他方法来提供。
46.网络分析系统240的一个或多个处理器243可以实现与网络分析系统240相关联或与本文中示出和/或本文中描述的一个或多个模块相关联的功能和/或执行与网络分析系统240相关联或与本文中示出和/或本文中描述的一个或多个模块相关联的指令。一个或多个处理器243可以是执行根据本公开的一个或多个方面的操作的处理电路,可以是这样的处理电路一部分,和/或可以包括这样的处理电路。处理器243的示例包括微处理器、应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器、以及被配置为用作处理器、处理单元或处理设备的任何其他硬件。
47.网络分析系统240的一个或多个通信单元245可以通过发射和/或接收数据来与网络分析系统240外部的设备通信,并且在某些方面可以用作输入设备和输出设备。在一些示例中,通信单元245可以通过网络与其他设备通信。在其他示例中,通信单元245可以在诸如蜂窝无线电网络等无线电网络上发送和/或接收无线电信号。通信单元245的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、gps接收器、或可以发送和/或接收信息的任何其他类型的设备。通信单元245的其他示例可以包括能够通过gps、nfc、zigbee和蜂窝网络(例如,3g、4g、5g)、以及在移动设备以及通用串行总线(usb)控制器等中发现的无线电设备进行通信的设备。这样的通信可以遵循、实现或遵守适当的协议,包括传输控制协议/互联网协议(tcp/ip)、以太网、bluetooth、nfc或其他技术或协议。
48.一个或多个输入设备246可以表示本文中没有另外描述的网络分析系统240的任何输入设备。一个或多个输入设备246可以从能够检测来自人或机器的输入的任何类型的设备生成、接收和/或处理输入。例如,一个或多个输入设备246可以生成、接收和/或处理以电、物理、音频、图像和/或视觉输入形式的输入(例如,外围设备、键盘、麦克风、相机)。
49.一个或多个输出设备247可以表示本文中没有另外描述的网络分析系统240的任何输出设备。一个或多个输出设备247可以从能够检测来自人或机器的输入的任何类型的设备生成、接收和/或处理输入。例如,一个或多个输出设备247可以生成、接收和/或处理以
电和/或物理输出形式的输出(例如,外围设备、致动器)。
50.网络分析系统240中的一个或多个存储设备250可以存储用于在网络分析系统240的操作期间进行处理的信息。存储设备250可以存储与根据本公开的一个或多个方面而描述的一个或多个模块相关联的程序指令和/或数据。一个或多个处理器243和一个或多个存储设备250可以为这样的模块提供操作环境或平台,其可以被实现为软件,但是在一些示例中可以包括硬件、固件和软件的任何组合。一个或多个处理器243可以执行指令,并且一个或多个存储设备250可以存储一个或多个模块的指令和/或数据。处理器243和存储设备250的组合可以取回、存储和/或执行一个或多个应用、模块或软件的指令和/或数据。处理器243和/或存储设备250还可以可操作地耦合到一个或多个其他软件和/或硬件组件,包括但不限于网络分析系统240的一个或多个组件和/或被示出为连接到网络分析系统240的一个或多个设备或系统。
51.在一些示例中,一个或多个存储设备250通过临时存储器而被实现,这可能表示,一个或多个存储设备的主要目的不是长期存储。网络分析系统240的存储设备250可以被配置用于作为易失性存储器进行信息的短期存储,并且因此如果被停用则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、以及本领域已知的其他形式的易失性存储器。在一些示例中,存储设备250还包括一个或多个计算机可读存储介质。存储设备250可以被配置为与易失性存储器相比存储更大量的信息。存储设备250还可以被配置用于作为非易失性存储空间进行信息的长期存储,并且在激活/关闭周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、闪存、或电可编程存储器(eprom)或电可擦除可编程(eeprom)存储器的形式。
52.用户接口模块254可以执行与生成用于呈现由流api 256执行的分析查询的结果的用户接口有关的功能。在一些示例中,用户接口模块254可以生成足以生成一组用户接口的信息,并且引起通信单元215在网络205上输出这样的信息,以供用户接口设备129使用以在与用户接口设备129相关联的显示设备处呈现一个或多个用户接口。
53.流api 256可以执行分析查询,涉及存储在数据存储库259中的数据,该数据是从底层流数据204和覆盖流数据206的集合中得出的。在一些示例中,流api 256可以按照从http post请求中得出的信息的形式接收请求,并且作为响应,可以将请求转换为要在数据存储库259上执行的查询。此外,在一些示例中,流api 256可以取回与设备110(图1)有关的拓扑信息,并且执行分析,包括重复数据删除、覆盖底图关联、业务路径标识、和热图业务计算。
54.snmp管理器257可以与诸如脊柱交换机202和叶交换机203等网络连接设备上的snmp代理262通信。例如,snmp管理器257可以获取并且设置由snmp代理262维持的mib中的数据值。snmp管理器257还可以确认和/或响应于从snmp代理262生成或接收的事件。
55.拓扑和指标模块253可以维持网络拓扑信息,该网络拓扑信息可以用于利用拓扑信息和/或指标信息来丰富或扩充流数据。例如,拓扑和指标模块253可以提供网络拓扑元数据,网络拓扑元数据可以包括所标识的节点或网络设备、配置信息、配置、已建立的链路、以及关于这样的节点和/或网络设备的其他信息。在一些示例中,拓扑和指标模块253可以使用appformix拓扑数据,或者可以是执行appformix模块。在这样的拓扑数据不可用的情况下,例如,当主机设备210未实现lldp或其他第2层发现协议时,拓扑和指标模块253可以
使用本文中描述的技术来确定连接性和/或拓扑信息。
56.数据存储库259可以表示用于存储与数据流信息和网络拓扑信息有关的信息的任何合适的数据结构或存储介质,包括从底层流数据204、叠加流数据206以及网络连接性和拓扑信息得出的数据的存储。数据存储库259可以负责以索引格式存储数据,以实现快速数据取回和查询执行。存储在数据存储库259中的信息可以是可搜索的和/或分类的,使得网络分析系统240内的一个或多个模块可以提供从数据存储库259请求信息的输入,并且响应于该输入,接收存储在数据存储库259内的信息。数据存储库259可以由snmp管理器257以及拓扑和指标模块253中的一者或两者维持。数据存储库259可以通过多个硬件设备而被实现,并且可以通过分片和复制数据来实现容错和高可用性。
57.每个主机设备210表示为虚拟主机、虚拟机、容器和/或其他虚拟化计算资源提供执行环境的物理计算设备或计算节点。在一些示例中,每个主机设备210可以是向客户端设备和其他设备或系统提供服务的云计算系统、服务器场、和/或服务器集群(或其一部分)的组件。
58.主机设备210的某些方面在本文中关于主机设备210a来描述。其他主机设备210(例如,主机设备210b至210n)可以类似地描述,并且还可以包括相同标号的组件,其可以表示相同、相似或对应的组件、设备、模块、功能和/或其他特征。因此,本文中关于主机设备210a的描述可以相应地应用于一个或多个其他主机设备210(例如,主机设备210b至主机设备210n)。
59.在图2的示例中,主机设备210a包括底层物理计算硬件,包括一个或多个处理器213a、一个或多个通信单元215a、一个或多个输入设备216a、一个或多个输出设备217a、以及一个或多个存储设备220a。在所示示例中,存储设备220a可以包括内核模块222和虚拟路由器模块224。虚拟机228a至228n(被统称为“虚拟机228”并且表示任何数目的虚拟机228)可以在管理程序(未示出)之上执行(当存在时)或者可以由管理程序控制。类似地,虚拟路由器代理229a可以在管理程序上或在管理程序的控制下执行。主机设备210a的一个或多个设备、模块、存储区域或其他组件可以互连以实现组件间通信(物理上、通信上和/或操作上)。在一些示例中,这种连接可以通过通信信道(例如,通信信道212a)、系统总线、网络连接、进程间通信数据结构、或用于传送数据的任何其他方法来提供。
60.处理器213a可以实现与主机设备210a相关联的功能和/或执行与主机设备210a相关联的指令。通信单元215a可以代表主机设备210a与其他设备或系统通信。一个或多个输入设备216a和输出设备217a可以表示与主机设备210a相关联的输入和/或输出设备。存储设备220a可以存储用于在主机设备210a的操作期间进行处理的信息。每个这样的组件可以按照与本文中结合网络分析系统240等而描述的方式相似的方式而被实现。
61.虚拟路由器模块224a可以为数据中心101(参见图1)中的对应虚拟网络执行多个路由实例,并且可以将分组路由到在由主机设备110a提供的操作环境中执行的适当虚拟机。虚拟路由器模块224a还可以负责收集叠加流数据,诸如在使用contrail sdn的基础设施中使用时的contrail flow数据。因此,一个或多个主机设备210可以包括虚拟路由器。
62.虚拟机228a至虚拟机228n(被统称为“虚拟机228”,表示任何数目的虚拟机228)可以表示虚拟机228的示例实例。主机设备210a可以将由存储设备220a提供的虚拟和/或物理地址空间划分为用于运行用户进程的用户空间。主机设备210a还可以将由存储设备220a提
供的虚拟和/或物理地址空间划分为内核空间,该内核空间受到保护并且用户进程可能无法访问。
63.每个虚拟机228可以表示租户虚拟机,该租户虚拟机运行客户应用,诸如网络服务器、数据库服务器、企业应用、或托管用于创建服务链的虚拟化服务。在一些情况下,主机设备210或另一计算设备中的任何一个或多个直接托管客户应用(即,不作为虚拟机)(例如,主机设备210b至210n中的一个或多个,诸如主机设备210b和主机设备210n)。尽管根据虚拟机或虚拟主机描述了本公开的一个或多个方面,但是本文中针对这样的虚拟机或虚拟主机而描述的根据本公开的一个或多个方面的技术也可以应用于在主机设备210上执行的容器、应用、进程、或其他执行单元(虚拟化或非虚拟化的)。
64.在图2的示例中,虚拟路由器代理229a被包括在主机设备210a内,并且可以与sdn控制器132(参见图1)和虚拟路由器模块224a通信,以控制虚拟网络的叠加并且协调主机设备210a内的数据分组的路由。通常,虚拟路由器代理229a与sdn控制器132通信,sdn控制器132生成用于控制分组通过数据中心101的路由的命令。虚拟路由器代理229a可以在用户空间中执行,并且用作虚拟机228与sdn控制器132之间的控制平面消息的代理。例如,虚拟机228a可以请求经由虚拟路由器代理229a使用其虚拟地址发送消息,而虚拟路由器代理229a进而可以发送该消息并且请求接收针对发起第一消息的虚拟机228a的虚拟地址的对该消息的响应。在一些情况下,虚拟机228a可以调用由虚拟路由器代理229a的应用程序编程接口呈现的过程或功能调用,并且在这样的示例中,虚拟路由器代理229a也处理消息的封装,包括寻址。
65.在图2的示例中,与主机设备210a类似,主机设备210b包括底层物理计算硬件,包括一个或多个处理器213b、一个或多个通信单元215b、一个或多个输入设备216b、一个或多个输出设备217b、以及一个或多个存储设备220b。存储设备220b可以包括一个或多个应用模块231b,应用模块231b可以对应于由主机设备210b的一个或多个租户执行或代表主机设备210b的一个或多个租户执行的应用。在图2的示例中,主机设备210b可以是裸机服务器,这可以表示主机设备210b作为没有诸如例如主机设备210a中的虚拟组件的单个租户设备而执行。在这样的示例中,主机设备210b可能不包括与主机设备210a的虚拟路由器模块224a和/或虚拟路由器代理229a对应的任何组件或模块。类似地,主机设备210n可能不包括与主机设备210a的虚拟路由器模块224a和/或虚拟路由器代理229a对应的任何组件或模块。
66.此外,尽管很多主机设备210可以包括使得主机设备能够发布有关其网络连接性的信息的诸如lldp的网络第2层发现协议,但是某些主机设备210可能不包括这种能力。例如,某些主机设备210的操作者可能希望维持对主机设备的操作环境的严格控制、以及对在主机设备上运行的应用(诸如应用231b和231n)的严格控制。作为示例,主机设备210可以是安全性相关设备,其中期望将应用和其他软件限制为已经由主机设备210操作者检查和批准的那些。这样,主机设备210的操作者可以选择不在主机210上并入和/或安装lldp或其他网络发现软件。在图2所示的示例中,主机设备210a、210b和210n不包括实现lldp或其他网络第2层发现协议的软件。结果,拓扑和指标模块253可能不能依靠lldp或其他网络第2层协议来发现关于与主机设备210a、210b和210n的连接性的信息。在这样的情况下,网络分析系统240可以使用本文中描述的技术来获取主机设备210a、210b和210n的连接性信息。
67.在一些方面,网络分析系统240可以向在叶设备203a上执行的snmp代理262发出snmp命令,以获取有关叶设备203a上存在的网络接口的连接性信息。网络分析系统240可以将信息与由网络分析系统240获取的其他信息相关联,以确定哪些设备被连接到叶设备203a,即使这些设备可能未实现lldp或其他网络第2层发现协议。
68.图3示出了这种snmp命令的格式以及响应于对应命令的执行而返回的示例数据。将结合图2讨论图3。在图2所示的示例中,叶设备203a的lldp模块264可以获取叶设备203a上的一些但不是全部网络接口上的连接性数据。为了获取不能使用lldp模块264的网络接口上的连接性数据,网络分析系统240可以发出“snmpwalk”命令以查询叶设备203a上的mib 266,并且使用响应于该命令而返回的数据来确定叶设备203a的更完整的连接性信息。snmpwalk命令发出一个或多个snmp get和/或get-next原语以从mib 266获取数据。
69.例如,网络分析系统240可以发出如下的snmp命令301:
70.snmpwalk-v 2c-c“public
”-
m all 10.84.30.145 dot1dbaseportifindex
71.其中:
[0072]-v 2c指定snmp的版本,
[0073]-c“public”指定社区名称,
[0074]-m all指定要查询设备上的所有mib文件,
[0075]
10.84.30.145指定要查询的设备(在该示例中为叶设备203a)的ip地址,并且
[0076]
dot1dbaseportifindex指定要查询的snmp对象标识符(oid)。
[0077]
dot1dbaseportifindex是snmp对象,其具有用于交换机的每个端口的数据,该数据标识与该条目对应的端口的ifindex。
[0078]
命令输出302是一系列mib记录,每个mib记录指定该记录的接口索引。在图2和图3所示的示例中,在mib中具有端口索引540的端口的ifindex值为整数值557。
[0079]
网络分析系统240可以发出如下的snmp命令303:
[0080]
snmpwalk-v 2c-c“public”10.84.30.145 dot1qtpfdbport
[0081]
其中:
[0082]-v 2c指定snmp的版本,
[0083]-c“public”指定社区名称,
[0084]
10.84.30.145指定要查询的设备(即,叶设备203a)的ip地址,以及
[0085]
dot1qtpfdbport指定要查询的snmp对象标识符(oid)。
[0086]
dot1qtpfdbport是snmp对象,其将由交换机学习的第2层mac地址映射到交换机上的物理端口。
[0087]
命令输出304是一系列mib记录,每个mib记录指定该记录的远程mac地址和接口索引。远程mac地址是在具有给定ifindex的交换机端口处耦合到交换机的设备的mac地址。mac地址可以被称为硬件地址或物理地址,并且是用于网络设备的网络接口的唯一标识符。在图2和图3所示的示例中,与ifindex 557对应的mac地址是“0.37.144.173.204.192”(当以十进制数表示时)。通过将命令301的输出与命令303的输出相关联,网络分析系统240确定端口索引为540的叶设备203a的端口的ifindex值为557。该端口的远程mac地址为“0.37.144.173.204.192”。mac地址通常使用十六进制数字表示,因此“0.37.144.173.204.192”变为十六进制的“00:25:90:ad:cc:c0”。
[0088]
网络分析系统240可以发出如下的snmp命令305:
[0089]
snmpwalk-v 2c-c“public”10.84.30.145 ifname.557
[0090]
其中:
[0091]-v 2c指定snmp的版本,
[0092]-c“public”指定社区名称,
[0093]
10.84.30.145指定要查询的设备(即,叶设备203a)的ip地址,以及
[0094]
ifname.557指定要查询的snmp对象标识符(oid)。
[0095]
ifname对象是snmp对象,其将接口索引映射到接口名称。
[0096]
命令输出306是提供包含与接口索引相关联的接口名称的文本字符串的记录。在图2和图3所示的示例中,ifindex为557的端口的接口名称为“ge-0/0/27.0”。
[0097]
在发出命令301、303和305并且接收到对命令的响应之后,网络分析系统240可以确定端口的端口索引为540和端口名称为ge-0/0/27.0的叶设备203连接到mac地址为00:25:90:ad:cc:c0的设备。网络协议栈的第2层通常使用mac地址来唯一地标识网络接口。但是,网络运营商通常会在指定网络设备时发现更易于使用的ip地址和/或主机名。因此,在一些方面,网络分析系统240可以使mac地址与ip地址和/或主机名相关。
[0098]
网络分析系统240可以按照各种方式使mac地址与ip地址和/或主机名相关。在实现lldp的设备的情况下,网络分析系统240可以通过使用snmp查询“物理拓扑”mib来获取设备的mac地址、ip地址和主机名。在不实现lldp的设备的情况下(例如,主机设备210、210b和210c),网络分析系统240可以使用其他技术。例如,如上所述,主机设备210执行一个或多个虚拟路由器224a。虚拟路由器通常维持mac地址到ip地址的映射,该映射可以由网络分析系统240获取。
[0099]
另外,网络分析系统240可以从云服务代理获取mac地址到ip地址的映射。在图2所示的示例中,主机210b执行appformix代理232。appformix代理232可以维持主机210b的mac地址到ip地址的映射。
[0100]
此外,网络分析系统240可以从网络管理实用程序234获取mac地址到ip地址的映射。例如,主机210n可以执行“ifconfig”命令。在被执行时,ifconfig命令将产生包含主机设备210n上一个或多个接口的mac地址、ip地址和主机名的输出。网络分析系统240可以解析ifconfig命令的输出,并且使用解析的输出来在mac地址和与该mac地址相关联的ip地址和主机名之间创建映射。其他网络管理实用程序(诸如“netstat”命令和“ip”命令)可以提供类似的信息。
[0101]
在一些示例中,实用程序234可以是定制实用程序,当在主机设备上执行时,该实用程序可以获取mac地址到ip地址或主机名的映射。这种实用程序234的可执行代码的示例在图6中示出。在图6所示的示例中,实用程序234代码是用python编程语言编写的,并且用于说明实用程序234程序的执行逻辑,以提供mac地址到ip地址的映射。其他编程语言可以用于执行类似的程序逻辑以获取这样的映射。在该示例中,实用程序234可以获取执行该实用程序的主机设备上的网络接口的列表,并且然后为列表中的每个接口获取物理地址(mac地址)。在图6所示的示例中,实用程序234在运行linux操作系统版本的主机设备中执行,并且从/sys/class/net/*/device获取物理接口名称并且从/sys/class/net/《interface_name》/address获取mac地址。
[0102]
在图3所示的示例中,该实用程序可以作为命令307被调用。示例实用程序输出308包括执行该实用程序的主机上的接口列表、以及与主机上的每个接口对应的mac地址。从图3中可以看出,标记为“eth1”的接口的mac地址与接口索引为557的dot1qtpfdbport条目的远程mac地址匹配。因此,执行该实用程序的主机设备作为远程设备被连接到接口索引为557的网桥设备。
[0103]
如上所述,网络分析系统240可以将底层流数据204和叠加流数据206存储在数据存储库259中,并且使用这种数据来分析网络中各种设备(物理和虚拟的)之间的网络业务。通过为网络中不实施lldp或其他第2层发现协议的设备提供更完整的连接性数据,如上所述确定的设备连接性信息可以改善这样的信息的分析。
[0104]
此外,网络分析系统240可以通过与所查询的虚拟网络相关联的一个或多个可能的业务路径来响应于查询。例如,用户接口模块254使用来自流api 256的信息来生成足以创建用户接口的数据,该用户接口呈现关于与所查询的虚拟网络相关联的业务的可能路径的信息。用户接口模块254可以使用如上所述确定的设备连接性信息以在网络业务的可能路径的表示中包括未实现lldp的设备。
[0105]
为了便于说明,在附图中和/或在本文中引用的其他说明中仅示出了有限数目的设备(例如,用户接口设备129、脊柱设备202、叶设备203、主机设备210、网络分析系统240以及其他设备)。然而,根据本公开的一个或多个方面的技术可以用更多的这样的系统、组件、设备、模块和/或其他项目来执行,并且对这样的系统、组件、设备、模块和/或其他项目的集体引用可以表示任何数目的这样的系统、组件、设备、模块和/或其他项目。
[0106]
图2所示的模块(例如,虚拟路由器模块224、虚拟机228、应用模块231、用户接口模块254、snmp管理器257、拓扑和指标253等)和/或在本公开的其他地方示出或描述的模块和系统可以执行使用驻留在一个或多个计算设备处中和/或在一个或多个计算设备处执行的软件、硬件、固件、或硬件、软件和固件的混合而描述的操作。例如,计算设备可以用多个处理器或多个设备执行一个或多个这样的模块。计算设备可以执行一个或多个这样的模块作为在基础硬件上执行的虚拟机。这些模块中的一个或多个可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以在计算平台的应用层作为一个或多个可执行程序来执行。在其他示例中,由模块提供的功能可以由专用硬件设备而被实现。
[0107]
尽管一个或多个存储设备中包括的某些模块、数据存储库、组件、程序、可执行文件、数据项、功能单元和/或其他项可以分别示出,但是这些项中的一个或多个可以作为单个模块、组件、程序、可执行文件、数据项或功能单元组合和操作。例如,一个或多个模块或数据存储库可以组合或部分组合,以使得它们作为单个模块操作或提供功能。此外,一个或多个模块可以彼此交互和/或结合操作,以使得例如一个模块用作另一模块的服务或扩展。而且,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以包括未示出的多个组件、子组件、模块、子模块、数据存储库和/或其他组件或模块或数据存储库。
[0108]
此外,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以按照各种方式而被实现。例如,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为可下载或预先安装的应用或“app”。在其他示例中,存储设备内示出的每个模块、数据存储库、组件、程序、可执
行文件、数据项、功能单元或其他项可以被实现为在计算设备上执行的操作系统的一部分。
[0109]
图4a是示出根据本公开的一个或多个方面的由用户接口设备呈现的示例用户接口的概念图。图4a示出了示例用户接口400。尽管示例用户接口400被示出为图形用户接口,但是在其他示例中可以呈现其他类型的接口,包括基于文本的用户接口、基于控制台或基于命令的用户接口、语音提示用户接口、或任何其他适当的用户接口。如图4所示的用户接口400可以对应于由网络分析系统240的用户接口模块254生成并且呈现在图2的用户接口设备129处的用户接口。本文中可以在图2的上下文中描述与用户接口400的生成和/或呈现有关的一个或多个方面。图4a所示的示例示出了示例用户接口400,其中设备连接性信息针对未实现网络第2层发现协议(诸如lldp)的设备不可用。
[0110]
根据本公开的一个或多个方面,网络分析系统240可以执行查询以标识通过物理或虚拟网络的路径。例如,在可以参考图2描述的示例中,用户接口设备129通过网络205检测输入并且输出信号。网络分析系统240的通信单元245检测流api 256确定的信号对应于对网络信息的查询。流api 256执行查询(例如,使用结合图3描述的技术),并且将关于结果的信息输出到用户接口模块254。
[0111]
网络分析系统240可以生成用户接口,诸如用户接口400,以在显示设备上呈现。例如,仍然参考图2和图4a,用户接口模块254生成用户接口400的底层信息,并且引起通信单元245通过网络205输出信号。用户接口设备129检测信号并且确定该信号包括足以呈现用户接口的信息。用户接口设备129以图4所示的方式在与用户接口设备129相关联的显示设备处呈现示例用户接口400。
[0112]
在图4a中,示例用户接口400被呈现在显示窗口401内。用户接口400包括侧边栏区域404、主显示区域406和选项区域408。侧边栏区域404提供了在用户接口400内正在呈现哪种用户接口模式的指示,这在图4的示例中对应于“结构”模式。其他模式可能适用于其他网络分析方案。沿主显示区域406的顶部是导航界面组件427,导航界面组件427也可以用于选择要执行的网络分析的类型或模式。状态通知显示元素428可以提供关于警报的信息、或与一个或多个网络、用户、元素或资源有关的其他状态信息。
[0113]
主显示区域406呈现网络图,并且可以提供正在分析的网络内包括的各种网络设备的拓扑。在图4a所示的示例中,示出了具有脊椎设备、叶设备、主机和实例的网络,如沿主显示区域406的底部所示的“图例”所示。在主显示区域406内,示出了网络设备与其他组件之间的实际或潜在数据路径。尽管在图4中示出了有限数目的不同类型的网络设备和组件,但是在其他示例中,可以呈现和/或具体示出其他类型的设备或组件或元素,包括核心交换机设备、其他脊椎和叶设备、物理或虚拟路由器、虚拟机、容器、和/或其他设备、组件或元素。此外,可以在用户接口400内隐藏或最小化网络的某些数据路径或组件(例如,实例),以促进与给定网络分析最相关的组件或数据路径的图示和/或呈现。
[0114]
在图4a所示的示例中,未示出未实现lldp或其他第2层发现协议的设备。例如,由图标409表示的叶设备可以连接到未实现lldp的主机设备。结果,如果不使用本文中描述的技术,网络分析系统240可能无法显示这样的设备。因此,如图4a所示,在主显示区域406所示的拓扑中,没有主机设备被示出为连接到叶设备409。图标410表示确实实现lldp并且因此被示出为被连接到其相应叶设备的主机设备。
[0115]
选项区域408沿用户接口400的右侧提供与正在分析的底层网络(例如,底层五元
组输入字段)以及正在分析的覆盖网络相关的多个输入字段(例如,源和目的地虚拟网络以及ip地址输入字段)。用户接口400通过与一个或多个显示的输入字段的用户交互来接受输入,并且基于输入到输入字段中的数据,用户接口模块254呈现关于正在分析的网络的响应信息。
[0116]
例如,使用已经在选项区域408中提供的输入,网络分析系统240确定关于通过底层网络设备的一个或多个可能的数据路径(例如,最可能的数据路径)的信息。网络分析系统240基于在选项区域408中指定的时间范围内由网络分析系统240收集的数据来确定这种可能的数据路径。网络分析系统240的用户接口模块254生成使得能够呈现用户接口400的数据,其中可能的数据路径被突出显示(通过用粗线绘制数据路径的每个段),如图4a所示。
[0117]
图4b是示出根据本公开的一个或多个方面的由用户接口设备呈现的另一示例用户接口的概念图。图4a示出了示例用户接口430。示例用户接口430包括与以上关于图4a所述的相同的区域。在图4b所示的示例中,网络分析系统240可以使用本文中描述的技术来确定不实现lldp或其他第2层发现协议的设备的设备连接性信息。例如,由图标412表示的主机设备可能不实现lldp或其他第2层发现协议。使用本文中描述的技术,网络分析系统240可以使用例如来自由图标409表示的叶设备的先前查询的存储在数据存储库259中的信息,或者可以查询由图标409表示的叶设备并且确定由图标412表示的主机设备实际上连接到由图标409表示的叶设备,如通信链路414所示。
[0118]
图5是示出根据本公开的一个或多个方面的由示例网络分析系统执行的操作的流程图。本文中在图2的网络分析系统240的上下文中描述图5。在其他示例中,图5中描述的操作可以由一个或多个其他组件、模块、系统或设备执行。此外,在其他示例中,结合图5描述的操作可以被合并,以不同的顺序执行,被省略,或者可以包含未具体示出或描述的附加操作。
[0119]
图5中描述的技术可以用于在网桥设备和主机设备未实现相同的第2层网络发现协议时使得能够确定网桥设备与远程主机设备之间的连接性。例如,网桥设备可以实现lldp,而被通信地耦合到网桥设备的主机设备可以实现不同的发现协议(例如,专有发现协议)或者根本不实现任何发现协议。
[0120]
在图5所示的过程中,并且根据本公开的一个或多个方面,网络分析系统240可以从网络205上的网桥的网桥数据存储库取回用于网桥设备(诸如交换机、路由器、网关等)的接口的索引(502)。在一些方面,网络分析系统240可以发出snmpwalk命令以引起叶设备(例如,tor交换机)上的snmp代理提供来自bridge-mib数据存储库中的dot1dbaseportifindex对象的数据。该数据可以包括接口索引。
[0121]
网络分析系统240可以从网桥的网桥数据存储库取回用于被通信地耦合到网桥设备的接口的设备的远程mac地址(即,物理地址)(504)。例如,网络分析系统可以从q-bridge-mib数据存储库中的dot1qtpfdbaddress对象获取数据。该信息可以包括用于网桥的每个网络接口的接口索引和用于通信地耦合到该设备具有转发和/或过滤信息的网络接口的远程主机的单播mac地址。
[0122]
网络分析系统240可以基于接口索引来选择与接口相关联的远程mac地址(506)。例如,网络分析系统可以从dot1dbaseportifindex对象中选择接口索引,并且从与匹配的接口索引对应的dot1qtpfdbaddress中选择远程mac地址。
[0123]
网络分析系统240可以确定具有所选择的远程mac地址的主机设备(508)。例如,网络分析系统可以使用lldp、appformix代理、虚拟路由器信息、或由远程主机设备执行的网络管理实用程序的输出来获取mac地址到ip地址的映射。网络分析系统240可以使用mac地址到ip地址的映射来确定远程主机设备的ip地址。远程主机设备的主机名可以按照类似的方式获取。
[0124]
网络分析系统240可以输出网桥设备被通信地耦合到远程主机设备的指示(510)。在一些方面,输出指示可以包括在数据存储库中存储将远程主机设备与网桥设备的网络接口相关联的数据。在一些方面,输出指示可以包括在用户接口设备129上的用户接口上提供网桥设备和主机设备的连接性的视觉表示。
[0125]
针对本文中(包括在任何流程图或流程图中)描述的过程、装置和其他示例或说明,本文中描述的任何技术中包括的某些操作、动作、步骤或事件可以按照不同顺序执行,可以完全添加、合并或省去(例如,并非所有描述的动作或事件针对实施该技术都是必需的)。此外,在某些示例中,操作、动作、步骤或事件可以例如通过多线程处理、中断处理或多个处理器同时而不是顺序地执行。即使未明确标识为自动执行,其他某些操作、动作、步骤或事件也可以自动执行。而且,被描述为自动执行的某些操作、动作、步骤或事件可以备选地不自动执行,而是在一些示例中,这样的操作、动作、步骤或事件可以响应于输入或另一事件而执行。
[0126]
本文中包括的附图各自示出了本公开的一方面的至少一个示例实现。然而,本公开的范围不限于这样的实现。因此,除了附图中所示的之外的在本文中描述的系统、方法或技术的其他示例或替代实现在其他情况下可能是合适的。这样的实现可以包括在附图中包括的设备和/或组件的子集,和/或可以包括在附图中未示出的附加设备和/或组件。
[0127]
上面阐述的详细描述旨在作为各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。为了提供对各种概念的充分理解,详细描述包括特定细节。但是,可以在没有这些特定细节的情况下实践这些概念。在某些情况下,公知的结构和组件在附图中以框图形式示出了,以避免使这些概念模糊。
[0128]
因此,尽管可以参考特定附图描述各种系统、设备和/或组件的一个或多个实现,这样的系统、设备和/或组件但是可以按照多种不同方式而被实现。例如,在本文中的附图(例如,图1和/或图2)中示出为单独设备的一个或多个设备可以备选地被实现为单个设备;例如,示出为单独组件的一个或多个组件可以备选地被实现为单个组件。而且,在一些示例中,在本文中的附图中生成为单个设备的一个或多个设备可以备选地被实现为多个设备;示出为单个组件的一个或多个组件可以备选地被实现为多个组件。这样的多个设备和/或组件中的每个可以经由有线或无线通信直接耦合,和/或经由一个或多个网络远程耦合。而且,可以在本文中的各个附图中示出的一个或多个设备或组件可以备选地被实现为在这样的附图中未示出的另一设备或组件的一部分。以这种和其他方式,本文中描述的一些功能可以通过两个或更多个设备或组件的分布式处理来执行。
[0129]
此外,某些操作、技术、特征和/或功能在本文中可以描述为由特定组件、设备和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由不同的组件、设备或模块执行。因此,在其他示例中,可以在本文中描述为归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以归因于其他组件、设备和/或模块,即使本文中没有
以这种方式具体描述。
[0130]
尽管已经结合一些示例的描述标识出了特定的优点,但是各种其他示例可以包括所列举的优点中的一些、全部或没有一个。从本公开中,技术或其他方面的其他优点对于本领域的普通技术人员可能变得很清楚。此外,尽管本文中已经公开了特定示例,但是本公开的各个方面可以使用任何数目的技术而被实现,无论当前是否已知,并且因此,本公开不限于本公开中具体描述和/或示出的示例。
[0131]
在一个或多个示例中,所描述的功能可以按照硬件、软件、固件或其任何组合而被实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质等有形介质)、或者通信介质(其包括有助于将计算机程序从一个地方转移到另一地方(例如,根据通信协议)的任何介质)。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形的计算机可读存储介质,或者(2)诸如信号或载波等通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0132]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁性存储设备、闪存、或者可以用于以指令或数据结构形式存储期望的程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(诸如红外、无线电和微波)从网站、服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电和微波等)。但是,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是涉及非暂态的有形的存储介质。所使用的磁盘和光盘包括压缩盘(cd)、激光盘、光盘,数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。上述的组合也应当被包括在计算机可读介质的范围内。
[0133]
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其他等效的集成或分立逻辑电路。因此,本文中使用的术语“处理器”或“处理电路”可以分别指任何前述结构或适合于实现所描述的技术的任何其他结构。另外,在一些示例中,所描述的功能可以在专用硬件和/或软件模块内提供。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。
[0134]
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、移动或非移动计算设备、可穿戴或不可穿戴计算设备、集成电路(ic)或一组ic(例如,芯片组)在内的多种设备或装置中实现。本公开中描述了各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元而被实现。而是,如上所述,各种单元可以组合在硬件单元中,或者由互操作的硬件单元(包括上述一个或多个处理器)的集合与合适的软件和/或固件相结合来提供。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1