用于生成M2M通信的虚拟网络拓扑的系统与方法与流程

文档序号:11637530阅读:256来源:国知局
用于生成M2M通信的虚拟网络拓扑的系统与方法与流程

本申请要求于2014年11月28日提交的申请号为14/555,935、公开名称为“用于生成m2m通信的虚拟网络拓扑的系统与方法”的美国非临时申请的权益,其通过引用结合在本申请中。

本公开涉及网络中的机器对机器(m2m)通信。具体地,本公开涉及用于生成m2m通信的虚拟网络拓扑的系统与方法。



背景技术:

机器对机器(m2m)通信是实现用于从通常大规模密集部署的机器(例如,传感器、智能仪表和/或其它低端设备)中收集数据并用于向高端应用发送由那些低端设备捕获的事件的网络的技术。m2m网络可以是有线或无线的,并且可以具有较大的地理分布(例如,在整个国家或世界)。高端应用通常负责将接收到的原始机器数据转换成有意义的信息,例如,以支持决策或自动化。m2m通信通常不涉及直接的人工干预,并且在连接计数方面已显示出较快增长。

m2m通信通常涉及大量机器向少量数据目的地(也称为汇点(sink))汇报。m2m数据通信可以低速率、小分组业务为特征。例如,机器通常进行低频率(例如,每几分钟或小时一次传输)传输,每次传输通常为少量的数据(例如,几十字节到几百字节范围内)。机器流量可以分批到达,而不是作为更稳定的流到达。m2m流量的这些特征为网络流量工程既带来了挑战也带来了机遇。



技术实现要素:

在一些示例中,本公开提供用于生成机器对机器通信的虚拟网络拓扑的方法。示例性方法可以包括:获取输入信息集合,其中所述输入信息包括网络信息,提供有关多个机器之间机器对机器通信的物理网络的信息;和配置信息,提供一个或多个用于配置虚拟网络拓扑的参数。所述示例性方法可包括:根据所述网络信息和所述配置信息,定位所述物理网络中一个或多个物理主机上的虚拟网络的一个或多个虚拟服务网关,并将所述多个机器中的每一个与所述一个或多个虚拟服务网关中的一个相关联。所述示例性方法还可包括:生成限定所述虚拟网络拓扑的输出信息集合。所述输出信息可包括:标识所述一个或多个物理主机上所述一个或多个虚拟服务网关的位置的信息;和标识所述多个机器和所述一个或多个虚拟服务网关之间关联关系的信息。

在一些示例中,本公开提供用于多个机器之间机器对机器通信的流量工程的方法。示例性方法可包括:获取对物理网络的虚拟网络拓扑进行限定的拓扑信息,其中所述虚拟网络拓扑标识所述物理网络中一个或多个物理主机上一个或多个虚拟服务网关的位置并标识所述多个机器中的每一个与所述一个或多个虚拟服务网关中一个的关联关系;将所述虚拟网络拓扑分割成各个流段;对所述流段执行流量工程并监控所述物理网络中的流量质量。当检测到触发事件时,可生成用于新的虚拟网络拓扑的请求。

在一些示例中,本公开提供用于生成机器对机器通信的虚拟网络拓扑的系统。示例性系统可以包括处理设备,被配置为使所述系统获取输入信息集合,其中所述输入信息包括:网络信息,提供有关多个机器之间机器对机器通信的物理网络的信息;和配置信息,提供一个或多个用于配置虚拟网络拓扑的参数。所述处理设备还可被配置为所述系统根据所述网络信息和所述配置信息,定位所述物理网络中一个或多个物理主机上的虚拟网络的一个或多个虚拟服务网关,并将所述多个机器中的每一个与所述一个或多个虚拟服务网关中的一个相关联。所述处理设备还可被配置为使所述系统生成限定所述虚拟网络拓扑的输出信息集合。所述输出信息可包括:标识所述一个或多个物理主机上所述一个或多个虚拟服务网关的位置的信息;和标识所述多个机器和所述一个或多个虚拟服务网关之间关联关系的信息。

在一些示例中,本公开提供用于多个机器之间机器对机器通信的流量工程的系统。示例性系统可包括处理设备,被配置为使所述系统:获取对物理网络的虚拟网络拓扑进行限定的拓扑信息,其中所述虚拟网络拓扑标识所述物理网络中一个或多个物理主机上一个或多个虚拟服务网关的位置并标识所述多个机器中的每一个与所述一个或多个虚拟服务网关中一个的关联关系;将所述虚拟网络拓扑分割成各个流段;以及对所述流段执行流量工程并监控所述物理网络中的流量质量。当检测到触发事件时,所述处理设备可使所述系统生成用于新的虚拟网络拓扑的请求。

附图说明

通过示例的方式,现参见对本公开的示例性实施例进行示出的说明书附图,其中:

图1为网络的示例性逻辑架构的示意图;

图2为与软件定义网络控制器进行通信的示例性软件定义拓扑系统的示意图;

图3为与软件定义拓扑系统进行通信的示例性软件定义网络控制器的示意图;

图4为适于实现本公开的示例性处理系统的示意图;

图5为m2m通信的示例性虚拟网络拓扑的示意图;

图6为示出了用于生成m2m通信的虚拟网络拓扑的示例性方法的流程图;以及

图7为示出了用于m2m通信的流量工程的示例性方法的流程图。

不同附图中可能使用相似的附图标记来表示类似的组件。

具体实施方式

软件定义网络(sdn)是一种用于创建智能可编程网络的架构框架,其中网络流量管理和网络流量转发通常分别分成控制平面和数据平面。在sdn中,网络控制通常是集中式并且底层网络基础设施通常从应用中进行抽象。

例如,根据本公开,可以形成软件定义拓扑(sdt),所述sdt可与sdn和软件定义协议(sdp)一起使用来创建虚拟网络(vn)。vn可以是基于服务(per-service)的网络,这意味着vn可以是为特定服务所虚拟化的资源的集合。sdt可以基于客户信息和提供商信息而形成。客户可包括一个或多个服务的用户(例如,通过用户设备(ue)、终端或其它合适的用户设备)。提供商可包括服务提供商、vn运营商和/或网络上的其它服务提供商。vn上的m2m通信可能给流量工程(te)带来挑战和机遇。

m2m会话通常不会表现为厚的数据包流,而是分散在一段时间内的一系列单个包或几个包的薄流。根据会话进行的流量拆分可以执行用于te优化,通常并不适用于m2m流量,因为流量拆分不能在单包流上来实现。采用常规te,许多这样的小尺寸数据包流的存在可能导致资源利用率较差并且系统性能下降。然而,虽然各机器的传输速率通常较低,由于大规模的机器部署,网络中存在的总的m2m分组计数通常较大。由于每个数据包占用一些网络资源(例如,路由器上的处理器周期,针对分组报头处理),因此通过小尺寸数据包传送数据比通过大尺寸数据包传送数据要昂贵的多。因而,大量的小尺寸数据包可能导致网络资源利用率退化并且系统性能下降。

根据本公开实施例,流量汇聚(trafficaggregation)可有助于减轻上述挑战。流量聚合可受益于m2m网络流量的特性,其通常表现出内容相关并且部署密集,通常涉及多个机器向几个流量目的地发送数据,并且通常是延迟容忍的。此时可在汇聚的流量上执行te。

为了有助于理解本公开,首先参见图1,示出了可以用于m2m通信的网络的示例性逻辑架构100。所述示例性架构100可用于采用sdt实现sdn。可将sdt用在sdn中,以通过限定虚拟服务网关并通过限定虚拟拓扑来促进流量控制和/或流量处理,其中m2m通信经由所述虚拟服务网关被路由,如以下进一步讨论的。

通常,sdt可提供软件定义内容分发的框架,该框架可使得运营商限定点播和业务特定数据平面结构(也称为网络拓扑或逻辑拓扑)以助于能够更有效地利用网络资源和/或以助于确保用户体验质量(qoe)和/或服务质量(qos)。针对每个应用、服务或基于服务的vn,sdt可限定点播和定制数据平面拓扑。sdt可为逻辑数据平面限定逻辑网络节点的物理位置以及逻辑节点的拓扑。也可在sdt中对逻辑节点的服务特定数据处理功能进行限定。

通常,逻辑节点可以是物理网络节点(也称为逻辑节点的物理主机)上实现的软件定义实体,可执行各种功能,并且可在网络中承担各种角色。例如,除了其它可能的角色之外,逻辑节点可以是服务特定虚拟服务网关(v-s-sgw)、用户特定虚拟服务网关(v-u-sgw)或者内容容器。

sdt通常基于诸如qoe和/或qos等要求确定每个应用、服务或基于服务的vn的数据平面逻辑拓扑。除了其它参数外,sdt也可以根据业务等级逻辑拓扑、服务功能链要求、业务流量特性、客户分配和/或流量负载预测来确定数据平面逻辑拓扑。sdt可适应于来自sdn控制器的反馈,如以下所进一步讨论的,例如,以能够适应流量负载的变化、网络节点能力和/或物理网络中的变化。sdt可以由网络提供商、vn提供商或其它运营商进行管理。

图1示出了将示例性网络(例如,m2m网络)分成数据平面110、控制平面120和管理平面130的示例性网络架构100。数据平面110可以在各个网络节点之间(例如,机器到接入点、接入点到路由器和接入点/路由器到服务器)传输网络流量。控制面120可执行te,并且可在各个网络节点之间传输控制信号。管理平面130可为网络提供处理和管理功能。数据平面110、控制平面120和管理平面130可以彼此对接,以实现每个平面的功能。

控制平面120可提供应用程序接口(api)122,以使一个或多个应用140访问控制平面120。控制平面120可承载各种控制块,例如,sdt系统200、sdn控制器300和sdp系统128,以执行控制平面120的功能。可以在一个或多个共享或单独处理系统中实现sdt系统200、sdn控制器300和sdp系统128。

管理平面130可承载各种控制块(例如,软件模块)以执行其功能。例如,管理平面130可实现基础设施管理器132、数据分析器134、客户服务管理器136和/或连接性管理器138。管理平面130可提供其它功能,比如:内容服务管理,其可以限定无线接入网(ran)中的内容缓存,配置可缓存的网络节点,并管理内容转发。

管理平面130可以访问一个或多个可包括在架构100中的数据库以执行其功能。示例性数据库包括私有网络数据库150、客户服务信息数据库152、客户设备信息数据库154、基础设施数据库156和基础设施抽象数据库158。私有网络数据库150可存储拓扑信息、安全信息、有关节点能力的信息和/或有关节点状态的信息。客户服务信息数据库152可存储与客户设备(例如,ue)相关的认证和安全信息。客户设备信息数据库154可存储有关客户设备的能力、位置和/或状态的信息。基础设施数据库156可存储有关网络拓扑、节点能力和/或节点状态的信息。基础设施抽象数据库158可存储有关网络内各基础设施抽象性的信息。有可能会存在比本示例中描述的这些数据库多或少的数据库,并且可将这些示例性数据库的一个或多个组合成单个数据库。

图2为用于生成vn上m2m通信的逻辑拓扑的示例性系统的示意图。所述系统可以是sdt系统200。sdt系统200通常可负责定制vn的逻辑数据平面拓扑。在本公开中,vn的逻辑数据平面拓扑通常称为vn拓扑。sdt系统200可以与诸如sdn控制器300等一个或多个网络控制组件进行通信。sdt系统200可以与sdn控制器300协作以促进流量控制和处理,包括生成vn拓扑并向sdn控制器300提供有关vn拓扑的信息,例如,如本文中所公开的。

sdt系统200可以存储用于生成vn拓扑的信息。在所示出的示例中,sdt系统200将网络信息和配置信息分别存储在网络信息数据库205和配置信息数据库210中。此信息可以存储在sdt系统200的存储器中,例如,以下参见图4进行进一步讨论。网络信息数据库205可以包括有关物理网络的信息(例如,机器位置、机器流量、网络节点属性和/或候选虚拟服务网关),以下进行进一步讨论。配置信息数据库210可以包括用于配置vn拓扑的参数,比如:成本度量和关注范围,如以下进一步讨论的。网络信息和配置信息可以作为输入从一个或多个外部源(例如,来自sdn控制器300或来自运营商)接收。在一些示例中,网络信息和/或配置信息可以不由sdt系统200进行存储,而是可以替代地从外部源(例如,一个或多个外部数据库)接收或检索并且可以在使用后丢弃,在这种情况下,网络信息数据库205和/或配置信息数据库210可以从sdt系统200中省略掉。

拓扑生成模块215可以获取网络信息和配置信息(例如,从网络信息数据库205和配置信息数据库210,或从诸如sdn控制器300等外部源)作为输入,以生成vn拓扑。拓扑生成模块215可以采用优化过程生成vn拓扑,例如,以下示例中所描述的。尽管使用了术语“优化”一词,但应理解,这是指生成vn拓扑以满足特定标准(例如,如配置信息中说明的)的过程,可能并不是严格“最优”。例如,可能涉及权衡和/或估计,并且一些标准优先于其它标准(例如,基于运营商所做的选择)。

拓扑生成模块215可以输出有关生成的vn拓扑的信息,所述信息可以存储在sdt系统200存储器中的vn拓扑数据库220中。vn拓扑信息可以包括,例如,虚拟服务网关的物理主机的选择,机器与虚拟服务网关和网络层级(在使用了层级拓扑的示例中)的关联关系。sdt系统200可以通过有线或无线通信向sdn控制器300提供vn拓扑信息。在一些示例中,vn拓扑信息可以在sdt系统200外进行存储(例如,由sdn控制器300进行存储或存储在其它外部数据库中),在这种情况下,可以将vn拓扑数据库220从sdt系统200中省略掉。在一些示例中,仅存储有关当前vn拓扑的信息。在其它示例中,可以存储有关一个或多个历史vn拓扑的信息(例如,存储在外部历史数据库中)。

在一些示例中,sdt系统200也可以确定由一个或多个虚拟服务网关提供的一个或多个功能(例如,虚拟服务网关的物理主机上不存在服务限制的情况下)。所述确定可以由拓扑生成模块215执行。sdt系统200可以向sdp系统128提供对特定物理主机上特定虚拟服务网关的功能进行限定的输出信息。sdp系统128此时可以与数据平面110中的硬件进行交互以设置或者要不然启用指定物理主机上的限定的功能。这可以启动定制的或应用限定的虚拟服务网关功能。

sdt系统200可以由控制平面120的一个或多个服务器进行物理承载。sdt系统200可以为多个重叠的或不重叠的m2m网络以及不同的m2m业务生成vn拓扑。

图3为示例性sdn控制器300的示意图。sdn控制器300通常可负责定制资源的分配。sdn控制器300可以与sdt系统200协作以促进流量控制和处理。例如,sdn控制器300可以向sdt系统200提供反馈,例如,请求更新或改变vn拓扑。

sdn控制器300可以从sdt系统200接收对vn拓扑进行限定的信息,并且可以将vn拓扑信息存储在sdn控制器300存储器中的vn拓扑数据库305中。可以将所述vn拓扑信息提供给流转换器310,其可以出于te的目的将vn拓扑转换成各个流段。例如,流转换器310可以将通过多级层级拓扑的路径转换成对应于每个级别的各个流段。可以将来自流转换器310的流段提供给te模块315进行流量管理。这样,te模块315可以不需要具有任何有关实际vn拓扑的信息。te模块315可根据各种合适的te技术来执行流量管理。sdn控制器300可以实现质量监控器320,所述质量监控器320可以为了qoe和/或qos监控网络流量。sdn控制器300也可以实现网络监控器325,所述网络监控器325可以监控网络的网络事件,例如,数据平面拓扑的显著变化(添加/删除大量机器、添加/删除物理节点、网络节点之间物理连接性的变化)、机器或网络流量流的显著变化或其它这样的网络事件。

sdn控制器300可以向sdt系统200提供反馈。例如,sdn控制器300可以通过te模块315、质量监控器320和/或网络监控器325请求sdt系统200更新、改变或生成新的vn拓扑。例如,当检测到物理网络发生显著变化(例如,由网络监控器325检测到)、当检测到流量发生显著变化(例如,由网络监控器325检测到)或者当qoe和/或qos低于特定阈值(例如,由质量监控器320检测到)时,sdn控制器300可以从sdt系统200中请求新的拓扑。

图4为示例性处理系统400的示意图,其可以用于实现本文中所公开的方法和系统,比如:示例性sdt系统200、示例性sdn控制器300以及以下描述的示例性方法。可以在共享或单独的处理系统400上实现sdt系统200和sdn控制器300。在一些示例中,也可以由多个并行工作的处理系统400来实现sdt系统200和/或sdn控制器300。处理系统400可以例如为服务器,或任何合适的处理系统。可以采用适于实现本公开的其它处理系统,其可以包括与以下所讨论组件不同的组件。虽然图4示出了每个组件的单个实例,处理系统400中可能存在每个组件的多个实例。

处理系统400可以包括一个或多个处理设备405,比如:处理器、微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、专用逻辑电路或其组合。处理系统400还可以包括一个或多个输入/输出(i/o)接口410,其可以与一个或多个适当的输入设备435和/或输出设备440对接。处理系统400可以包括一个或多个与网络(例如,内联网、因特网、p2p网络、广域网和/或局域网)进行有线或无线通信的网络接口415。网络接口415可以包括用于内部网络和/或网络间通信的有线链路(例如,以太网电缆)和/或无线链路。网络接口415可以通过,例如,一个或多个发送器或发送天线和一个或多个汇点或接收天线,提供无线通信。处理系统400还可以包括一个或多个存储单元420,其可以包括诸如固态驱动器、硬盘驱动器、磁盘驱动器和/或光盘驱动器等大容量存储单元。

处理系统400可以包括一个或多个存储器425,其可以包括易失性或非易失性存储器(例如,闪存、随机存取存储器(ram)和/或只读存储器(rom))。非暂时性存储器425可以存储处理设备405执行的指令以实现sdt系统200和/或sdn控制器300的功能。取决于处理系统400是否执行了sdt系统200或sdn控制器300或两者,存储器425可以视情况而定具有有形地存储于其上用于实现sdt系统200或sdn控制器300或两者的功能的数据和模块。例如,存储器425可以包括网络信息数据库205、配置信息数据库210和/或vn拓扑数据库220以及诸如拓扑生成模块215等模块,如上述针对图2所示示例性sdt系统200所描述的。存储器425可以附加地或可选地包括vn拓扑数据库305以及诸如流转换器310、te模块315、质量监控器320和/或网络监控器325等模块,如上述针对图3所示示例性sdn控制器300所描述的。存储器425可以包括其它软件指令,例如,用于实现操作系统和其它应用/功能。在一些示例中,一个或多个数据集和/或模块可以由外部存储器(例如,与处理系统400进行有线或无线通信的外部驱动器)提供,或者可以由暂时性或非暂时性计算机可读介质提供。非暂时性计算机可读介质的例子包括:ram、rom、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、cd-rom或其它便携式存储设备。

提供通信的总线430可以设置在处理系统400的各组件之间,包括处理设备405、i/o接口410、网络接口415、存储单元420和/或存储器425。总线430可以是任何适当的总线结构,例如,包括存储器总线、外围总线或视频总线。

在图4中,输入设备435(例如,键盘、鼠标、麦克风、触摸屏和/或小键盘)和输出设备440(例如,显示器、扬声器和/或打印机)外置于处理系统400。在其它示例中,一个或多个所述输入设备435和/或输出设备440可以作为处理系统400的组件。

图5为适于m2m通信的示例性vn拓扑的示意图,其可以利用网络架构100实现。在本示例中,vn拓扑500包括多个机器510a,510b、一个或多个虚拟服务网关520a,520b和一个或多个汇点530(例如,目的地服务器)。通信可以包括有线通信(例如,从机器510a,510b到连接的有线接入点或路由器)和/或无线通信(例如,从机器510a,510b到无线接入点或路由器、从一个虚拟服务网关520a到另一个虚拟服务网关520b和/或从虚拟服务网关520a,520b到汇点530)。无线通信可以发生在任何合适的网络上(例如,内联网、因特网、对等(p2p)网络、广域网(wan)和/或局域网(lan)),并可以包括诸如蓝牙通信、近场通信、蜂窝通信和/或射频(rf)通信等短距离通信。

机器510a,510b可以是物理机或虚拟机,并且可以是设备内的服务。在一些示例中,接入点、基站或路由器可以起到机器510a,510b的作用(例如,作为虚拟机)。多个物理机可在vn拓扑500中通过代理表示为单个机器510a,510b(例如,单个虚拟机)。

在vn拓扑500中,每个机器510a,510b通过拓扑500中的逻辑路径与一个虚拟服务网关520a,520b相关联。拓扑500限定了直接从机器510a,510b到其各自相关联的虚拟服务网关520a,520b的逻辑路径,然而这种直接逻辑路径可以经由一个或多个接入点和/或路由器(未示出)通过数据传输来实现。在一些示例中,接入点和/或路由器可以通过将接入点和/或路由器视为机器510a,510b并入vn拓扑500中。

通常,第一分组a内的一个或多个机器510a与第一虚拟服务网关520a相关联并向第一虚拟服务网关520a发送数据,而第二分组b内的一个或多个机器510b与第二虚拟服务网关520b相关联并向第二虚拟服务网关520b发送数据。虽然图5示出分组a和分组b分别对应于机器510a,510b和虚拟服务网关520a,520b的地理位置,在一些示例中,分组可以基于其它因素,例如,要求的流量处理业务、流量密度或流量内容关联性等。

可以认为vn拓扑500中的流量包括两个阶段,即,机器到网关阶段和网关到汇点阶段。在机器到网关流量中,从机器510a,510b向其各自相关联的虚拟服务网关520a,520b发送数据包。在网关到汇点流量中,数据包在虚拟服务网关520a,520b上进行聚集并作为厚流转发给汇点530。通常,可以在流量的每个阶段上单独执行te,也可以仅在流量的一个阶段或两个流量阶段上执行te。

虚拟服务网关520a,520b为vn拓扑500中的逻辑网络节点。在基于服务的vn中,虚拟服务网关520a,520b通常为v-s-sgw,其可以提供诸如报文聚集、信息提取和传输、基于信息提取以控制服务的控制实体的反应,以及消息认证等流量处理功能。这些功能可以例如由服务客户和/或网络运营商来限定。虚拟服务网关520a,520b可以嵌入在诸如服务器等物理主机上,两个或更多虚拟服务网关520a,520b可以嵌入在同一物理主机上。

在一些示例中,比如在以下进一步讨论的层级vn拓扑中,第一虚拟服务网关520a可以由第二虚拟服务网关520b服务。在这种场景中,第二虚拟服务网关520b可以将第一虚拟服务网关520a看作是相当于机器510b的流量源。每个虚拟服务网关520a,520b提供的功能针对不同的虚拟服务网关520a,520b可能不同。例如,第一虚拟服务网关520a可以提供一个或多个功能的第一集合522a(例如,由体现第一虚拟服务网关520a的服务器承载的一个或多个合适应用来实现),而第二虚拟服务网关520b可以提供一个或多个功能的第二集合522b(例如,由体现第二虚拟服务网关520b的服务器承载一个或多个合适应用来实现)。第一功能集合522a可以与第二功能集合522b重叠(即,可能存在一个或多个共同的功能),或者可以完全不同。

不同的虚拟服务网关520a,520b提供不同的功能522a,522b,可以根据所需的流量处理对流量进行路由。例如,可以将来自机器510a的数据首先路由到第一虚拟服务网关520a以应用第一虚拟服务网关520a提供的第一处理522a。由第一虚拟服务网关520a处理之后,可以将所述数据进一步路由到第二虚拟服务网关520b,以应用第二虚拟服务网关520b提供的且在第一虚拟服务网关520a上不可用第二处理522b。可以将进一步处理的数据进一步路由到第三虚拟服务网关(未示出),如此等等,直到已经执行了所有需要的流量处理。然后可以将处理的数据转发给汇点530。在这种示例中,vn拓扑500可以是层级式的,层级基于每个虚拟服务网关520a,520b上可用的功能522a,522b建立。

在一些示例中,可以根据服务和/或客户需求来限定并改变一个或多个虚拟服务网关520a,520b提供的功能522a,522b。例如,sdt系统200可以限定虚拟服务网关520a,520b提供的功能522a,522b,并且可以将该信息输出给sdp系统128来在虚拟服务网关520a,520b的物理主机上设置或启用所限定的功能522a,522b。

sdt系统200可以采用本文中所公开的示例性方法来生成vn拓扑500。通常,可以对vn拓扑500进行设计以便更高效并且更有效地使用共享网络资源。例如,可以将vn拓扑500设计成采用单路径路由技术来对机器到网关流量进行路由,利用共享网络资源优化对网关到汇点流量进行路由。例如,对于给定机器而言,由于机器到网关流量未优化,选择到汇点的路径较短但距机器的路径径较长的虚拟服务网关可能导致网络资源低效利用。另一方面,选择距机器的路径较短但到汇点的路径较长的虚拟服务网关也可能导致效率低下,因为虚拟服务网关可能无法从足够数量的机器中收集足够的分组以在网关到汇点流量中形成厚流。通常,为了控制运营成本,虚拟服务网关的数量越少,效率越高;为了增加流量汇聚(因此,内容压缩)潜能,尽可能多地收集同一虚拟服务网关上内容相关的流量是更加有效的。

图6为用于生成m2m通信的vn拓扑的示例性方法的流程图。示例性方法600可以由sdt系统200采用一个或多个合适的处理系统400来实现。

在605中,接收触发信号,指示应生成新的vn拓扑。触发可以是,例如,超时事件(例如,sdt系统200执行计时器在设定时间触发vn拓扑的更新,比如每隔一小时),和/或可以是从sdn控制器300发送到sdt系统200的信号。例如,sdn控制器300可以发送信号给sdt系统200请求新的vn拓扑:

在qos和/或qoe低于预定质量阈值的情况下;

在网络发生显著变化的情况下(例如,机器流量或背景网络流量的变化超过特定阈值,流量相关性的变化超过特定阈值,机器分布发生变化,添加/删除机器和/或候选网关,网络节点之间的物理连接性发生变化,包括:添加/删除物理链路和/或增加/降低物理链路的容量);

在网关超载的情况下(例如,与给定网关相关联的机器数量超过特定阈值,网关流量高于特定阈值,资源利用率超过特定阈值);和/或

在网络性能下降的情况下(例如,流量拥塞)。

其中,触发信号源自sdn控制器300,可以通过流量工程模块315、质量监控器320和/或网络监控器325或者响应于流量工程模块315、质量监控器320和/或网络监控器325检测到的条件生成触发信号。

在610中,获取输入信息,并生成新的vn拓扑。sdt系统200可以基于输入信息集合生成虚拟网络拓扑,例如,所述输入信息集合包括网络信息和配置信息。

网络信息可以包括但不限于:

机器位置信息;

机器流量信息(其可以具有瞬时和/或统计性质),比如:传输调度、传输速率(例如,均值、方差)、传输速率测量系列和/或传输速率相关性;

网络流量信息(其可以具有瞬时和/或统计性质);

物理网络拓扑信息,比如:物理节点标识、节点属性(例如,位置、可用/最大存储空间)、物理链路标识、链路属性(例如,可用/最大容量、缓冲区大小)、流量源到网络的物理连接标识和/或连接属性(例如,吞吐量、延时);和/或

控制平面信息,比如:成对数据平面硬件之间的连接性标识以及相关属性(例如,吞吐量统计、运营成本、延迟)、候选网关主机标识和/或候选网关主机属性(例如,流量负载范围上限/下限、如若使用的话,最大/最小机器计数、容许层级级别、流量处理功能、速率降低/膨胀因素)。

配置信息可以包括但不限于:

有关网络范围的信息(例如,所关注的地理区域、所关注的机器组、所关注的流量密度);

机器到网关关联关系成本度量的定义(例如,跳数、物理距离、运营成本);

容许的层级高度;

客户/服务信息(例如,客户/服务标识符、诸如服务功能链要求等服务要求),其可以由客户、服务提供商和/或vn提供商指定作为服务要求的一部分;

是否在虚拟服务网关上进行内容压缩;

吞吐量要求;和/或

延时要求。

本公开可以用术语网络信息和配置信息通常指用于配置vn拓扑的输入信息。然而,应理解,这些术语并不是严格分类的定义,也可以包括其它类型的输入信息。例如,部分输入信息也可以称为客户信息或服务信息。

所述输入信息可以从sdt系统200内的数据库(例如,网络信息数据库205和/或配置信息数据库210)、sdt系统200外的数据库、sdn控制器300和/或运营商获取。在一些示例中,例如,触发信号从sdn控制器300中进行接收的示例中,至少部分输入信息可以包含在触发信号中。

在图6所示示例中,示例性递归过程用于生成vn拓扑。其它用于生成vn拓扑的递归或非递归过程也可以适用。图6所示示例性递归过程涉及对相应物理主机上的一个或多个虚拟服务网关进行定位,并将机器与相应虚拟服务网关相关联。在允许层级拓扑的情况下(例如,根据所输入的配置信息),较低级别的虚拟服务网关还与相邻较高级别的虚拟服务网关相关联。vn拓扑的生成可以阐述为优化问题,其实例在下文中进行进一步讨论,其旨在基于网络性能(例如,从网络信息中确定的)对一个或多个目标(例如,根据配置信息限定的)进行优化。如下所讨论的基于流量密度的递归优化过程可用来解决该优化问题。

在示例性递归优化过程中,要解决的用于生成vn拓扑的优化问题采用集群层级进行处理。先解决小机器集群的优化问题,然后再逐渐进行到整个网络。集群层级的使用可以使能分而治之的方法以生成针对大量机器的vn拓扑。虽然将这种方法描述为适用于寻址网络中较多机器的方法(例如,几千或更多),其也可以适用于具有更少量机器的网络(例如,小于几千或更少)。

在一些示例中,所述方法还可以适用于生成仅针对部分网络的vn拓扑。例如,可以仅针对物理拓扑发生显著局部变化、网络流量发生显著局部变化或qoe和/或qos显著降低(例如,如输入信息所指示的)的网络的局部区域对vn拓扑进行更新或改变。在这种情况下,可以标识与所述局部区域相关的集群,并且可以仅生成针对与所述局部区域相关的集群而不是针对整个网络的新vn拓扑,因为预期针对网络其余部分的vn拓扑保持不变。这可能会降低适应局部变化所需的处理能力,从而可能导致更快和/或更经济地适应vn拓扑。

在其它示例中,可以适用非递归方法(例如,针对相对稀疏的网络或机器数量较少的网络)。

在615中,生成基于流量密度的机器集群层级。这种集群层级根据流量密度利用任何适用的集群技术将网络中的机器划分成集群。特定空间区域的流量密度指源自该空间区域内的总流量。可以基于网络信息中提供的有关机器位置和机器流量(例如,平均流量、流量方差、流量相关性)的信息生成集群层级。所生成的集群层级的流量密度通常自上而下增加。在其它示例中,取代流量密度,可以采用其它基础来生成集群层级。

在620中,可以采用递归过程来在相应候选物理网关主机上设置虚拟服务网关,并根据,例如,以下描述的625至635将每个机器与相应的虚拟服务网关相关联。根据配置,自下(较大流量密度)而上(较小流量密度)或以相反顺序递归性遍历集群层级。

候选网关主机可以是物理网络中可用的用于承载虚拟服务网关的任何物理网络节点(例如,服务器)。在极端情况下,网络中的所有网络节点可以是候选者。在另一极端情况下,网络中可以仅存在一个候选主机。可以在610的网络信息中提供候选网关主机及其属性(例如,包括每个候选网关主机提供的服务)。集群层级的使用可以有助于确保机器在特定地理范围内与虚拟服务网关相关联。

在625中,将机器与物理主机上的虚拟服务网关相关联。可以在根据配置信息所限定的限制范围内(例如,特定成本度量的最小化)通过将机器的资源需求(例如,请求带宽和/或请求服务)与候选网关主机的资源相匹配(例如,在候选网关主机上提供的可用带宽和/或服务,其中虚拟服务网关位于所述候选网关主机中)来执行这种关联。在该示例以及以下进行进一步讨论的示例优化方法中,将机器与虚拟服务网关相关联以及定位物理主机上的虚拟服务网关是共同执行的。在其它示例中,将机器与虚拟服务网关相关联以及定位物理主机上的虚拟服务网关可以分开执行(例如,采用两个单独的优化计算)。

在对虚拟服务网关提供的功能自由限定的示例中,方法600可以包括确定应由一个或多个物理主机上的一个或多个虚拟服务网关提供的一个或多个功能,例如,根据网络信息中阐述的服务要求。

在630中,在进行关联之后,更新对应于虚拟服务网关的候选网关主机的资源,以反映出与机器的关联关系,例如,以反映出机器使用了候选网关主机特定量的带宽。

在635中,更新候选网关主机的状态,例如,以反映其是否仍具有与另一机器进行关联可用的资源或者其是否不再具有可用的资源。可以对物理主机上虚拟服务网关提供的功能进行自由限定的话,也就可以更新候选网关主机的状态以反映出任何新限定的功能。

针对集群层级中的所有机器(或者针对集群中被标识为与局部区域相关的所有机器,在仅针对局部区域生成vn拓扑的情况下),可以递归性重复625至635,直到所有机器已与虚拟服务网关相关联并且虚拟服务网关已定位在相应的物理主机上。

允许层级拓扑的话(例如,允许至少一个候选网关位于两层或更高的层级级别上),就可以通过将较低级别的虚拟服务网关看作与更高级别的虚拟服务网关相关联的虚拟机进一步执行625到635。当定位到物理主机上更高级别的虚拟服务网关时,可以采用与候选网关主机的允许层级级别相关的信息(例如,如网络信息中所提供的)。递归方法可用于将较低级别的虚拟服务网关与较高级别的虚拟服务网关相关联,从而导致层级拓扑。

如上所讨论的,例如,可以出于服务功能链接的目的生成层级拓扑。也可以根据物理拓扑生成层级拓扑。例如,较低级别的虚拟服务网关可以作为仅针对局部城市区域(例如,渥太华区域)中机器的出口路由器,较高级别的虚拟服务网关可以作为针对更大地理区域(例如,安大略省级网络)的出口路由器。

在一些示例中,即使允许层级拓扑,也可能不会生成层级拓扑结构或者可能生成比允许级别少的拓扑。例如,如果网络流量较低,为了提高网络性能和/或用户体验,拓扑级别可以优选地更少。在一些示例中,可以生成vn拓扑以包括具有更少级别的逻辑路径以对紧急流量进行路由。

在某些情况下,一个或多个候选网关主机可以不与任何机器或任何较低级别的虚拟服务网关相关联,在这种情况下,那些未关联的候选网关主机不会包括在vn拓扑中。

在640中,生成对vn拓扑进行限定的输出信息集合。可以将所述输出信息发送给外部系统,例如,发送给sdn控制器300的流转换器310。所述对vn拓扑进行限定的输出信息集合可以包括,例如:

对物理主机上虚拟服务网关进行定位的信息(例如,以数据集的形式,所述数据集将服务标识符与网关-主机标识符列表相关联);

将机器与虚拟服务网关相关联的信息(例如,以数据集的形式,所述数据集将服务标识符、机器标识符/描述以及相应的网关-主机标识符相关联);和/或

有关多级vn拓扑的信息(例如,以数据集的形式,所述数据集将服务标识符、第一网关-主机标识符以及相应的第二网关-主机标识符相关联),在生成层级拓扑的情况下。

在仅针对网络的给定部分(例如,仅针对局部区域)生成vn拓扑的情况下,输出信息可以包括仅与网络的给定部分相关的信息。在其它示例中,输出信息可以包括针对整个网络的信息,即使可能仅仅针对网络的给定部分的vn拓扑发生改变。

在一些示例中,方法600还限定了由物理主机上的虚拟服务网关提供的功能,也可以输出对物理主机上提供的功能进行限定的信息。例如,该信息可以包含在640中的输出信息集合中或第二输出信息集合中。可以将该信息发送给外部系统,例如,发送给sdp系统128。

上述示例性方法600采用集群技术和递归过程来生成vn拓扑。在其它示例中,例如,在机器数量较小的情况下(例如,小于几百),可以不采用集群和递归。相反,可以通过简单地向下遍历网络中的机器列表并针对每个机器执行625到635,或者通过简单地直接解决优化问题来生成vn拓扑。

针对不同的网络(例如,具有重叠或非重叠物理网络节点的)和/或针对同一网络内的不同m2m服务,可以生成不同的vn拓扑。不同vn拓扑(例如,针对不同m2m服务的)的虚拟服务网关可以共享一个或多个共同的物理主机。在这种情况下,针对虚拟服务网关选择主机可以在不同的vn拓扑上进行协调。例如,用于生成vn拓扑的输入信息可以包括有关当前可用(即,分配到一个或多个其它vn拓扑之后)主机资源的信息。

由示例性方法600生成的vn拓扑可以充分使得厚的汇总数据进行流动,以促进流自每个虚拟服务网关的流量进行te。为了提高网络资源利用率,生成的vn拓扑可以使得能够在虚拟服务网关上进行集群和/或内容压缩。

图7为采用vn拓扑的m2m流量的示例性te方法的流程图。sdn控制器300可以使用一个或多个合适的处理系统400来实施示例性方法700。

在705中,获取有关vn拓扑的信息。该信息可以在sdn控制器300的流转换器310上从sdt系统200中进行接收,或者可以从vn拓扑数据库305中进行检索。vn拓扑信息可以包括通过上述示例性方法600生成的输出信息。例如,vn拓扑信息可以限定对物理主机上虚拟服务网关的位置进行标识并对每个机器与所述虚拟服务网关中的一个之间的关联关系进行标识的vn拓扑。

在710中,vn拓扑信息用于将原始流转换成流段。这可以由流转换器310来执行。例如,可以将从给定机器到第一虚拟服务网关、再到第二虚拟服务网关、最后到汇点的逻辑路径径转换成三个单独的流段:从机器到第一虚拟服务网关、从第一虚拟服务网关到第二虚拟服务网关以及从第二虚拟服务网关到汇点。因此,可以将层级vn拓扑分割成相邻层级级别之间的流段。可以将非层级拓扑(即,仅具有单个虚拟服务网关层级)转换成从机器到其相关虚拟服务网关的流段以及从虚拟服务网关到汇点的流段。

在715中,在流段上执行te。对于两阶段流量,可以针对机器到网关流段以及网关到汇点流段分开执行te。在一些示例中,可以针对一个或两个流量阶段(例如,根据配置设置)执行te。在一些示例中,可以在仅在机器到网关阶段的te、仅在网关到汇点阶段的te、以及两个阶段的te之间进行动态切换(例如,响应于对网络的监控)。

te可以包括采用合适的te技术在720中执行流优化(例如,由te模块315执行)。方法700还可以包括在725中监控网络质量(例如,由质量监控器320执行),并在730中监控网络事件(例如,由网络监控器325执行)。为了检测到一个或多个触发事件以触发对vn拓扑的更新,可以执行监控网络质量和监控网络事件。监控网络质量可以包括监控网络的整体qoe和/或qos、每服务qoe和/或qos,和/或每服务每端到端流的qoe和/或qos。如果质量下降到预定阈值以下,这可能表示需要更新拓扑。监控网络事件可以包括检测物理拓扑发生的显著变化(例如,添加/删除大于阈值数目的机器、添加/删除虚拟服务网关的物理主机、增加/减少机器或背景网络流量超过预定阈值、添加/删除网络中的物理链路、增加/降低物理链路的容量)。

在735中,如果检测到至少一个触发事件(例如,流量负载、网络节点能力和/或物理网络发生显著变化),则方法700可以在740中生成用于新拓扑的请求。否则,方法700可能返回到720和730以继续流优化和质量监控。

可以将用于新拓扑的请求发送给sdt系统200,并且可以作为使sdt系统200生成新vn拓扑的触发,例如,如上所述的。用于新拓扑的请求可以包括用于生成vn拓扑的输入信息(例如,更新后的网络信息和/或更新后的配置信息),并且可以改变或更新所述输入信息(例如,成本度量、允许的层级深度)以反映动态网络行为。例如,如果网络流量目前较低,则sdn控制器300可以将vn拓扑限制成三级或更少级的层级结构,并将输入信息相应地更新到sdt系统200。sdn控制器300也可以向sdt系统200标识例如正显示出流量堵塞的特定网关-主机标识符,并将输入信息相应地更新到sdt系统200。

在一些示例中,本公开提供了用于机器对机器通信的流量工程方法,其中图7可以是一个示例。所述方法可包括:获取对物理网络的虚拟网络拓扑进行限定的拓扑信息;基于所述虚拟网络拓扑将流量流分割成各个流段;对所述流段执行流量工程并监控所述物理网络中的流量质量;以及当检测到触发事件时,生成用于新的虚拟网络拓扑的请求。

示例性方法600和700可以一起操作,以实现sdt系统200和sdn控制器300之间的闭环反馈控制。这有助于自适应vn拓扑可以无缝并且动态地适应,例如,网络流量的变化、网关功能的变化和物理网络中的变化。

示例性优化过程

现在对可用于生成虚拟网络拓扑的示例性优化过程进行描述。所述示例性过程可以由sdt系统200(例如,拓扑生成模块215)执行,并且可以是如图6所述的用于生成vn拓扑的递归优化过程的示例。以下示例描述了将机器与虚拟服务网关相关联并定位物理主机上的虚拟服务网关的过程。虽然未进行详细讨论,类似的优化过程可用于在层级vn拓扑中将较低级别的虚拟服务网关与较高级别的虚拟服务网关相关联。

以下讨论的优化问题可以是np困难混合整数规划问题,其在这些示例中通过松弛和路由技术进行解决。可以采用在线贪心增量算法(例如,在预定时间间隔内)来适应网络中机器的动态添加和删除。

在下面的讨论中,将网络建模为:机器集合m通过单跳连接性连接到网络g。g包括节点集合n和链路集合l。出于优化的目的,可以忽略m和g之间连接性的性质(例如,无线或有线)和质量,因为这些预计不会对优化问题有任何直接影响。各机器m的物理位置是已知的先验。假设每个m在网络g内向预定汇点节点s发送恒定大小为z比特的分组,通常以较大时间间隔(例如,以秒为数量级)。例如,汇点s可以为网络网关,应用服务器通过该网络网关进行连接。

可以将分组大小z建模为z=h+b,其中h=αb为头部大小,b为有效载荷大小。n的子集w可以预先配置为候选网关主机,汇点s可以包括在w中。可以将参数为k的集群(trunking)函数fk(.)构建在每个候选网关主机中。函数fk(.)将相关联的机器中接收到的k个分组聚合成单个分组以便传送给汇点。因此,网关速率通过因子δ=(αb+kb)/k(αb+b)=(α+k)/(αk+k)发生降低。在k=1的情况下,不会发生中继并且δ=1。每个候选网关主机w的输出流量具有速率上限该上限可以结合以往经验进行确定。该上限除以速率降低因子δ之0,w的输入速率上限可以表示为应注意,通过w的输入链路总容量的最小值以及输出链路总容量的最小值自然而然具有上限。

机器m的流量通过受给定成本度量影响的最小成本路由(例如,最短路径路由)被送往相关联的虚拟服务网关w,而不是直接到汇点s。流量以遵循te优化决策的聚合形式从虚拟服务网关w送往汇点s。将m与w进行关联的成本可以定义为路由成本,其为沿路由路径的链路成本总和并表示为cmw。

现在对示例性优化方法进行说明。虚拟网络拓扑的生成可以具有关联成本最小化(acm)(即,从网络资源利用的观点来看,使平均关联成本最小化)以及网关选择最小化(gwsm)(即,从运营成本的角度来看,使所用网关的数量最小化)的共同目标。这呈现出联合的acm-gwsm优化问题。在这个示例中,将使用以下参数:

m:机器集合。

n:网络节点集合。

w:候选网关集合,其中

α:目标加权因子,其中0≤α≤1。

cmw:将m与w相关联的成本,其中m∈m,w∈w。

rm:m的流量速率。

r+w:w的输入速率上限。

amw:将m与w相关联的二元决策。

bw:选择使用w的二元决策。

在示例性实现方式中,可以从输入到拓扑生成模块215的网络信息中确定m、n、w、rm以及r+w,同时可以根据输入到拓扑生成模块215的配置信息用公式表示优化问题的约束和成本。

每个机器的平均关联成本可以表示为:

所选网关总数可以表示为:

可以通过线性标量化采用多目标优化来解决联合acm-gwsm问题,其可以用公式表示为:

使得:

以下对解决此acm-gwsm问题的示例性启发法进行概述。其它方法也可以适用。为了避免问题难以处理,以下示例采取松弛acm方法来代替。在这种方法中,acm和gwsm目标分离开来。在每次迭代中,解决了acm问题并且降低了候选网关集合。如果存在网关过载,如果求解质量下降并且网关不存在负载过轻的情况,或者无法对集合进行约减,则可以结束该过程。使用以下伪代码对示例性启发法进行概述:

示例性acm-gwsm启发法基于迭代更新的候选网关集合w解决了每次迭代中的松弛acm问题。在这个示例中,第7行评估上述(1)中定义的目标函数;第8和10行根据上述(3)中定义的约束条件评估每个虚拟服务网关的负载;第15行标识最佳候选虚拟服务网关w3,使得当前与候选虚拟服务网关w1和w2关联的机器关联到w3,从而实现最大的解质量改进(即,q值减小最大)。第6行中解决的松弛acm问题可表示为:

使得:

这里,v(a)为最大违反约束(3),并且m为非常大的正值使得任何违反都会抵消关联成本最小化的效益。使用这种软约束是为了确保可行性。

在一些示例中,可以生成vn拓扑以对m2m流量的趋势进行利用以具有相关流量内容。例如,本地机器组可能趋向于响应同一本地事件或查询,从而导致流量的瞬时速率增加(例如,以比平常短的时隙发送更多的分组)。相关速率增加可能意味着相关流量内容。可以将内容压缩应用于m2m流量以节省网络资源,例如带宽和能量。在共同的虚拟服务网关上聚合内容相关流量可以实现更好的内容压缩和更大的效率提高。

考虑到流量相关性,机器到网关关联问题可以表示为具有三个目标的优化问题:上述示例中的acm和gwsm目标以及另外的相关距离最小化(cdm)(即,为了使内容聚合的可能性最大化,使与同一网关关联的机器之间的总的相关距离最小化)。这种三个目标的问题称为联合acm-gwsm-cdm优化问题。

在时隙t内,机器m和m′之间的流量速率相关性可以表示为现在对示例性模型进行描述以计算该相关性。在这个示例中,将时间分为等长时隙,并且将每个时隙进一步均匀分成p帧。对于每个机器m,在每个时隙t的每个时间帧i内对平均流量速率进行采样。针对每个t,样本形成时间序列样本集rt(m)的均值可表示为可以利用以下rt(m)和rt(m′)两个样本集的皮尔森(pearson)相关性来计算时隙t内机器m和m′之间的流量速率相关性

相关性具有-1和1之间(包括-1和1)的实值。正值表示一个变量上相对高(或低)的分数映射到另一变量上相对高(或低)的分数。相反,负值表示一个变量上相对高(或低)的分数映射到另一变量上相对低(或高)的分数。因此,可以将m和m′之间的相关距离定义为:

其中,表示最近q个时隙内的预期相关值。dmm′的取值范围为[0,2]。值越小,m和m′的流量内容越有可能相关。应注意,dmm′=dm’m并且dmm=0。

可以将机器m的流量速率rm计算为最近q个时隙内的预期速率。

在示例性联合acm-gwsm-cdm问题中,将采用以下参数:

m:机器集合。

n:网络节点集合。

w:候选网关集合,其中

δ:w的流量速率降低因子,其中w∈w。

cmw:将m与w进行关联的成本,其中m∈m。

dmm’:m和m′的相关距离。

rm:m的流量速率。

r+w:w的输入速率上限。

amw:将m与w进行关联的二元决策。

bw:选择使用w的二元决策。

gwmm’:均与w关联的m,m′的二元标识。

每个机器的平均关联成本可以表示为:

所选网关总数可以表示为:

总的内部关联m2m相关距离可以表示为:

可以通过线性标量化采用多目标优化解决联合acm-gwsm-cdm问题,其可以用公式表示为:

使得:

v≥0(13)

在该示例性acm-gwsm-cdm公式中,amw,bw和gwmm’为决策变量;α,β,γ∈[0,1]为满足α+β+γ=1的目标加权因子。

约束条件(6)确保每个机器恰好与一个候选网关相关联。约束条件(7)和最小化目标一起确保bw等于maxmamw。由于amw具有二进制值,所以bw表示在解中是否使用了w。约束条件(8)和(9)与最小化目标一起迫使gwmm’在解中等于amwam’w,因而表示在解中m,m’与w共同关联。目标函数中的mv项为惩罚项。在最小化目标下,约束条件(10)和(13)确保人为变量v的取值在解中等于最大输入速率违反。如果不存在违反,则v的取值为零。由于m具有非常大的正值,该问题有利于在网关上产生零或最小输入速率违反的解。这种软输入速率控制而不是硬约束的使用可有助于确保可行性并获得最佳可能解。

该示例性公式提出了np困难混合整数规划问题,其可以分两个步骤来求解。在第一个步骤中,其可以松弛成线性规划问题,可以对所述松弛问题进行求解以获得分数解。在第二个步骤中,分数解可以以如下所述的迭代方式凑整。首先对整体决策进行固定,并对分数决策所针对的机器进行排序。这种机器集合可以用m′来表示。然后按amw,的降序顺序完成排序。根据这种顺序处理m′中的机器。当处理机器m时,将所有的amw,m′≠m,视为恒定变量并以最优方式解决acm-gwsm-cdm问题。然后,将这些决策作为m的最终决策。

对于acm-gwsm示例性问题和acm-gwsm-cdm示例性问题,可扩展性可能是关注所在。通常,候选网关(即,w)由网络操作预定并且通常是固定的。此时问题大小取决于机器数量(即,m),其通常是动态的并且依赖于用户(例如,m2m服务提供商)。当m|为非常大的数字(例如,在几百或更大范围内)时,优化可能需要很长时间来收敛。在需要向网络动态做出快速反应时,这种计算延迟可能是不能接受的。为了解决这个问题,针对可扩展性可以采用分而治之的方法。

例如,流量密度可以用作分而治之的方法的基础。在本示例中,r表示网络中的总体流量密度。可以将每个机器的流量密度归一化为:显然,dm∈[0,1]。考虑到acm目标,流量密集区域中或附近的候选网关可受到青睐。根据流量密度对机器进行集群以创建集群层级。用于创建基于密度的集群层级的合适技术包括诸如基于密度的带噪声的应用空间聚类(density-basedspatialclusteringofapplicationswithnoise,dbscan)和对各点排序以标识集群结构(orderingpointstoidentifytheclusteringstructure,optics)等方法。然后,在每个集群内解决优化问题(例如,acm-gwsm或acm-gwsm-cdm问题),自下(较大流量密度)而上(较小流量密度)遍历集群层级。通过自下而上进行,首先处理了更密集区域。在其它示例中,可以自上而下遍历集群层级。可以以任何顺序处理层级内同一级别的集群。在对每个集群进行处理之后,在处理下一群集之前对候选网关的能力(例如,流量负载约束)进行更新。这种方法可以使得优化问题即使在机器数量较大(例如,几千个机器或更多)的情况下仍得以解决。这种技术可以在上述示例性方法600中所描述的递归优化过程中进行使用。

可以将这种方法扩展到候选网关主机数量非常大的情况下(例如,几百或更高的范围内)。在扩展方法中,构建了集群层级并自下而上进行了遍历,如上所述的。在每个集群中,将群集内的机器合并成单个子图。这个过程可能引进不属于集群中的子图机器。这些额外的机器可用来保证子图的连接性。在一些示例中,可以通过集群内每个机器周围扩大盘来执行这个过程。随着盘的扩大,盘所覆盖的机器数量增加。当所有这些机器连接起来时(例如,通过盘所覆盖的路由器),停止所述过程并获得连接的子图。也可以采用其它合适的方法。

然后,通过删除终端路由器对子图进行递归简化,这些终端路由器为子图内并不服务子图中的任何机器的路由器。留在子图中的路由器此时可用作候选网关主机并且在集群内解决优化问题(例如,acm-gwsm或acm-gwsm-cdm问题)。利用这个集群的样例解,可以通过确定符合具有最小均方差(mse)的样例解决方案的候选来确定候选网关主机的子集。在一些示例中,可以针对该子集进一步解决优化问题,以获得最终解决方案。

本公开提供用于实现所公开的方法与系统的实施例的特定示例性算法和运算。然而,本公开不受任何特定算法或运算的约束。

虽然本公开描述了具有一定顺序步骤的方法和过程,如有需要,可以对所述方法和过程的一个或多个步骤进行省略或修改。如有需要,一个或多个步骤可以以不同于其进行描述所采用顺序的任何顺序发生。

虽然在方法方面对本公开进行了至少部分地描述,本领域普通技术人员应理解,本公开还涉及用于执行所述方法至少部分方面和特征的各种组件,其可以是通过硬件组件、软件组件或二者任意组合的方式。因此,本公开的技术方案可以以软件产品的形式来体现。可以将合适的软件产品存储在预先记录的存储设备或其它类似的非易失性或非临时性计算机可读介质中,例如,包括dvd、cd-rom、usb闪存盘、移动硬盘或其它存储介质。软件产品包括有形地存储于其上使得处理设备(例如,个人计算机、服务器或者网络设备)执行本文中所公开方法的实施例的指令。

在不脱离权利要求主题的前提下,本公开可体现为其它特定形式。所描述的示例性实施例在各方面都被认为仅仅是示意性而非限制性的。可以将一个或多个上述实施例中选择的特征进行组合以创建未明确描述的可选实施例,应将适于这种组合的特征理解为位于本公开范围内。

同时也公开了公开范围内的所有值和子范围。此外,虽然本文中所公开并示出的系统、设备和方法可包括特定数量的元件/组件,但是可以对所述系统、设备和组件进行修改以包括更多或更少这样的元件/组件。例如,虽然任何所公开的元件/组件可能引用为单数,但是可以对本文中所公开的实施例进行修改以包括多个这样的元件/组件。本文中所描述的主题旨在覆盖并包含技术上所有适当的变化。

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