著录项信息
摘要
本文描述的实施例在SDN使能网络中的网络设备上利用API来监测流经网络设备的网络流量,并且确定发起网络流量的客户的身份。具体地,API为用户应用提供用户凭证、IP地址、MAC地址、以及从网络流中采集的其它识别信息。一旦身份被找出,应用可以识别客户的当前地理位置。网络设备可以继续监测网络设备,以识别与客户相关联的任何移动事件。响应于移动事件,应用可以重新分配接近客户的新地理位置的资源。
1.一种基于客户的地理移动分配资源的方法,所述方法包括:
确定所述客户的第一地理位置;
监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与所述客户相关联的识别数据;
将客户ID与含有所述识别数据的网络流相关联;
基于所述网络流确定所述客户的第二地理位置,其中,所述第一地理位置和所述第二地理位置不同;以及
响应于所述客户从所述第一地理位置移动到所述第二地理位置,分配与所述客户ID相关联的计算资源,其中
监测所述一个或多个网络流包括:
使用监测应用程序接口(API)在所述网络设备上执行用于监测所述一个或多个网络流的输入过滤器,所述监测API提取所述网络设备的控制平面以允许远程用户应用监测并控制穿过所述网络设备的数据流量,所述SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过所述多个网络设备的数据流量以检测所述识别数据的相应的监测API。
2.根据权利要求1所述的方法,其中,所述客户ID代表人类客户,其中,所述识别数据描述所述人类客户的属性。
3.根据权利要求1所述的方法,其中,分配与所述客户ID相关联的资源还包括:确定接近所述第二地理位置的本地资源,其中,所述本地资源提供以下各项中的至少一项:与所述客户相关联的缓存内容、与所述客户相关联的存储分区、重路由与所述客户ID相关联的网络流量、以及与所述客户相关联的网络服务。
4.根据权利要求1所述的方法,其中,分配与所述客户ID相关联的资源还包括:
基于所述第一地理位置和所述第二地理位置预测所述客户的未来地理位置;以及在确认所述客户已经移动到所述未来地理位置之前,重新分配接近所述未来地理位置的与所述客户相关联的资源。
5.根据权利要求1所述的方法,还包括:
检测含有所述识别数据的所述网络流已经停止;以及
在确定所述客户已经移动到另一地理位置之前,解除分配所述第二地理位置中与所述客户相关联的资源,其中,解除分配资源包括以下处理中的至少一项:移除与所述客户ID相关联的本地内容缓存、释放与所述客户ID相关联的本地存储分区、重路由与所述客户ID相关联的网络流量、以及中断与所述客户ID相关联的网络服务。
6.一种基于客户的地理移动分配资源的系统,包括:
用于确定所述客户的第一地理位置的装置;
用于监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与所述客户相关联的识别数据的装置;
用于将客户ID与含有所述识别数据的网络流相关联的装置;
用于基于所述网络流确定所述客户的第二地理位置的装置,其中,所述第一地理位置和所述第二地理位置不同;以及
用于响应于所述客户从所述第一地理位置移动到所述第二地理位置,分配与所述客户ID相关联的计算资源的装置,其中
监测所述一个或多个网络流包括:
使用监测应用程序接口(API)在所述网络设备上执行用于监测所述一个或多个网络流的输入过滤器,所述监测API提取所述网络设备的控制平面以允许远程用户应用监测并控制穿过所述网络设备的数据流量,所述SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过所述多个网络设备的数据流量以检测所述识别数据的相应的监测API。
7.根据权利要求6所述的系统,其中,所述客户ID代表人类客户,其中,所述识别数据描述所述人类客户的属性。
8.根据权利要求6所述的系统,其中,分配与所述客户ID相关联的资源还包括:确定接近所述第二地理位置的本地资源,其中,所述本地资源提供以下各项中的至少一项:与所述客户相关联的内容缓存、与所述客户相关联的存储分区、重路由与所述客户ID相关联的网络流量、以及与所述客户相关联的网络服务。
9.根据权利要求6所述的系统,其中,分配与所述客户ID相关联的资源还包括:
基于所述第一地理位置和所述第二地理位置预测所述客户的未来地理位置;以及在确认所述客户已经移动到所述未来地理位置之前,重新分配接近所述未来地理位置的与所述客户相关联的资源。
10.根据权利要求6所述的系统,还包括:
检测含有所述识别数据的所述网络流已经停止的装置;以及
在确定所述客户已经移动到另一地理位置之前,解除分配所述第二地理位置中与所述客户相关联的资源的装置,其中,解除分配资源包括以下处理中的至少一项:移除与所述客户ID相关联的本地内容缓存、释放与所述客户ID相关联的本地存储分区、重路由与所述客户ID相关联的网络流量、以及中断与所述客户ID相关联的网络服务。
11.一种基于客户的地理移动分配资源的系统,包括:
计算机处理器;以及
含有程序的存储器,所述程序在所述计算机处理器上被执行时执行包括以下各项的操作:
确定客户的第一地理位置;
监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与所述客户相关联的识别数据;
将客户ID与含有所述识别数据的所述网络流相关联;
基于所述网络流确定所述客户的第二地理位置,其中,所述第一地理位置和所述第二地理位置不同;以及
响应于所述客户从所述第一地理位置移动到所述第二地理位置,分配与所述客户ID相关联的计算资源,其中
监测所述一个或多个网络流包括:
使用监测应用程序接口(API)在所述网络设备上执行用于监测所述一个或多个网络流的输入过滤器,所述监测API提取所述网络设备的控制平面以允许远程用户应用监测并控制穿过所述网络设备的数据流量,所述SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过所述多个网络设备的数据流量以检测所述识别数据的相应的监测API。
12.根据权利要求11所述的系统,其中,所述客户ID代表人类客户,其中,所述识别数据描述所述人类客户的属性。
13.根据权利要求11所述的系统,其中,分配与所述客户ID相关联的资源还包括:确定接近所述第二地理位置的本地资源,其中,所述本地资源提供以下各项中的至少一项:与所述客户相关联的内容缓存、与所述客户相关联的存储分区、重路由与所述客户ID相关联的网络流量、以及与所述客户相关联的网络服务。
14.根据权利要求11所述的系统,其中,分配与所述客户ID相关联的资源还包括:
基于所述第一地理位置和所述第二地理位置预测所述客户的未来地理位置;以及在确认所述客户已经移动到所述未来地理位置之前,重新分配接近所述未来地理位置的与所述客户相关联的资源。
基于地理移动分配计算资源的方法和系统\n[0001] 相关申请\n[0002] 本申请要求申请日为2013年3月15日的美国专利申请No.13/843,435的优先权,该申请通过引用被合并于此。\n技术领域\n[0003] 本公开给出的实施例总地涉及监测客户的地理移动,更具体地涉及基于地理移动重新分配客户资源。\n背景技术\n[0004] 内容分发网络或内容递送网络(CDN)通常是被部署在因特网中的多个数据中心的服务器的大型分布式系统。CDN的目标是高可用性且高性能地向终端用户发送内容。现今,CDN提供了大部分因特网内容,这些因特网内容包括网络对象(文本、图像、URL、和脚本)、可下载对象(媒体文件、软件、文档)、应用(电子商务、门户网站)、实时流媒体、点播流媒体、和社交网络。\n[0005] 通常,CDN基于提出请求的客户设备的被感知的位置来缓存数据。例如,CDN可以使用提出内容请求的计算设备的IP地址来估计该计算设备的地理位置。然后,CDN可以在网络中接近该位置的位置处缓存附加数据。然而,CDN通常对请求内容的特定客户或客户设备是矛盾的。换言之,CDN通常不尝试识别区别于其他客户的请求数据的客户。另外,CDN只是在接收到对数据的请求之后尝试在请求实体附近缓存数据——即,一般的CDN并不知道客户身份。因此,CDN不能进行定制以适应特定客户的需求,或者不能在客户从CDN请求内容之前对客户位置变化作出反应。\n发明内容\n[0006] 根据本发明实施例的基于客户的地理移动分配资源的方法,方法包括:确定客户的第一地理位置;监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与客户相关联的识别数据;将客户ID与含有识别数据的网络流相关联;基于网络流确定客户的第二地理位置,其中,第一地理位置和第二地理位置不同;以及响应于客户从第一地理位置移动到第二地理位置,分配与客户ID相关联的计算资源,其中,监测一个或多个网络流包括:使用监测应用程序接口(API)在网络设备上执行用于监测一个或多个网络流的输入过滤器,监测API提取网络设备的控制平面以允许远程用户应用监测并控制穿过网络设备的数据流量,SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过多个网络设备的数据流量以检测识别数据的相应的监测API。\n[0007] 根据本发明实施例的基于客户的地理移动分配资源的系统,包括:用于确定客户的第一地理位置的装置;用于监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与客户相关联的识别数据的装置;用于将客户ID与含有识别数据的网络流相关联的装置;用于基于网络流确定客户的第二地理位置的装置,其中,第一地理位置和第二地理位置不同;以及用于响应于客户从第一地理位置移动到第二地理位置,分配与客户ID相关联的计算资源的装置,其中,监测一个或多个网络流包括:使用监测应用程序接口(API)在网络设备上执行用于监测一个或多个网络流的输入过滤器,监测API提取网络设备的控制平面以允许远程用户应用监测并控制穿过网络设备的数据流量,SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过多个网络设备的数据流量以检测识别数据的相应的监测API。\n[0008] 根据本发明实施例的基于客户的地理移动分配资源的系统,包括:计算机处理器;\n以及含有程序的存储器,该程序在计算机处理器上被执行时执行包括以下各项的操作:确定客户的第一地理位置;监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流,以确定与客户相关联的识别数据;将客户ID与含有识别数据的网络流相关联;基于网络流确定客户的第二地理位置,其中,第一地理位置和第二地理位置不同;以及响应于客户从第一地理位置移动到第二地理位置,分配与客户ID相关联的计算资源,其中,监测一个或多个网络流包括:使用监测应用程序接口(API)在网络设备上执行用于监测一个或多个网络流的输入过滤器,监测API提取网络设备的控制平面以允许远程用户应用监测并控制穿过网络设备的数据流量,SDN使能网络中的多个网络设备分别包括相应的输入过滤器和用于监测穿过多个网络设备的数据流量以检测识别数据的相应的监测API。\n附图说明\n[0009] 参考实施例,以本公开的上述特征可以被详细理解的方式更具体地描述以上概述的本公开,其中附图示出了本公开的一些实施例。然而,应该注意,附图只示出本公开的一般实施例,因此不应该被看作限制本公开的范围,因为本公开可覆盖其它等效实施例。\n[0010] 图1示出了根据本文公开的一个实施例的包括耦合到软件定义网络使能网络的计算设备的系统。\n[0011] 图2示出了根据本文公开的一个实施例的通过监测客户的地理移动来分配资源的方法。\n[0012] 图3A-3B示出了根据本文公开的一个实施例的基于监测客户的地理移动来缓存数据的系统。\n[0013] 图4示出了根据本文公开的一个实施例的预测地理位置以分配资源的方法。\n[0014] 图5A-5C示出了根据本文公开的一个实施例的基于移动事件预测地理位置以分配资源的系统。\n[0015] 为了帮助理解,尽可能地使用相同参考标号来指定多个附图共有的相同元件。期望在一个实施例中公开的元件可以有利地用于其他实施例而不需要具体详述。\n具体实施方式\n[0016] 综述\n[0017] 本公开的实施例包括一种用于确定客户的第一地理位置、以及监测穿过软件定义网络(SDN)使能网络中的至少一个网络设备的入端口的一个或多个网络流以确定与客户相关联的识别数据的方法。该方法包括将客户ID与含有识别数据的网络流相关联、并且基于网络流确定客户的第二地理位置,其中,第一地理位置和第二地理位置不同。该方法包括响应于客户从第一地理位置移动到第二地理位置分配与客户ID相关联的计算资源。\n[0018] 其它实施例包括但不限于使处理单元能够实施所公开的方法的一个或多个方面的指令的计算机可读介质、以及具有处理器、存储器、和被配置为实施所公开的方法的一个或多个方面的应用程序的系统。\n[0019] 示例实施例的说明\n[0020] 软件定义网络(SDN)是一种联网方法,其中控制被从硬件解耦合并且被给予在本文中被称为SDN控制器的软件应用。当分组到达非SDN使能网络中的网络设备时,由交换机中的专用固件管理的控制平面确定朝哪里转发分组。在一些网络设备中,控制平面可以被配置为辨认不同类型的分组并且对它们进行不同处理(例如,将分组转发至不同的网络设备、或者在满足某个标准时丢弃分组)。\n[0021] 在SDN使能网络中,网络管理员可以利用软件应用来改变网络设备路由数据分组的方式,而不必例如向各个网络设备派送技术人员。管理员可以利用SDN控制器远程地重新配置网络设备的控制平面中的规则——例如,优先、解除优先(de-prioritzing)、或者阻止特定类型的分组。相比基于固件使用控制平面的传统网络设备,SDN使能网络可以允许管理员以更灵活且更高效的方式管理流量负载。此外,SDN允许网络管理员跨越使用不同专用固件的多个供应商硬件系统配置交换结构。\n[0022] 通常,相对于传统网络,SDN提供了额外的灵活性。利用可以位于中心或者位于各个网络设备上的SDN控制器,网络管理员能够配置控制平面并且支配网络设备路由数据的方式。例如,网络管理员可以指派标准或规则,并且在该标准或规则被满足时指示网络设备对接收到的分组执行特定操作——例如,丢弃分组、将分组转发至特定的网络设备、利用网络设备上的应用评估分组等。在一个实施例中,SDN控制器基于网络管理员的偏好在网络设备中配置路由表或者转发表(例如,转发信息库)。\n[0023] 在一个实施例中,SDN的灵活性可以被用于追踪客户的地理移动并且基于这些移动来重新分配资源。因为SDN使能网络中的网络设备的控制平面可以被远程应用访问(或被暴露于远程应用),所以应用可以监测流过网络设备的网络流量,以确定发起网络流量的客户的身份。例如,应用可以使用网络设备中的提供客户凭证、IP地址、MAC地址、和其它能与网络流相关联的识别信息的一个或多个应用编程接口(API)。一旦客户身份被找出,应用即可以确定客户的当前地理位置。\n[0024] 网络设备可以继续监测网络流,以检测任何移动事件(例如,客户从网络设备断开连接(例如,关闭计算设备)、无线连接超时、连接至不同的无线设备等)。当检测到移动事件时,应用可以基于客户的新地理位置来重新分配资源。例如,应用可以在非常靠近客户的存储元件处缓存数据、在本地服务器启动用于客户的资源、将客户登录到新位置处的计算设备等。因此,相比于在客户请求数据之后重新分配资源的一般CDN,应用能够通过监测客户的移动来重新分配资源。\n[0025] 因为应用基于客户的特性或属性(例如,用户名、职位名称、客户生成的数据类型等)分配客户ID,所以应用甚至可以在客户在不同计算设备(例如,台式计算机和移动电话)之间切换时追踪客户。例如,SDN中的网络设备可以向应用通知客户已经下班(例如,客户不再使用她的台式计算机向边缘设备发送数据流量)。然而,当客户的移动电话发起无线连接时,另一网络路由器可以识别客户。然后,应用可以基于客户的新位置重新分配与客户相关联的资源。因此,应用可以基于客户ID追踪客户而不是追踪特定设备。\n[0026] 在一个实施例中,应用可以基于一个或多个移动事件预测客户的地理位置。应用可以开发基于移动事件被触发的历史模式。例如,客户可以进行从纽约到加利福尼亚的每月一次的旅行。基于客户在机场登录网络设备,应用可以预测客户的最终目的地(例如,加利福尼亚)并且相应地重新分配资源。\n[0027] 图1示出了根据一个实施例的包括耦合到SDN使能网络150的计算设备105的系统\n100。计算设备105包括处理器110和存储器115。处理器110可以使用可包括任意数量的处理内核的一个或多个处理器来实现。此外,处理器110可以使用能够执行本文所描述的功能的任意处理器设计来实现。存储器115可以包括易失性或非易失性存储器元件(例如,RAM、闪存、内部或外部硬驱动、EPROM等)。在一些实施例中,存储器115可以包括通信地耦合到计算设备105的外部存储器元件。\n[0028] 如图所示,存储器115包括网络管理应用120和用户应用125。在一个实施例中,网络管理应用120是允许程序员或网络管理员访问并监测SDN使能网络150中的网络设备155的不同功能和输出的抽象工具。如此处所示,网络管理应用120允许程序员生成收集与网络设备155的不同功能相关联的数据(例如,与网络设备155相关联的统计数据、路由表、设备\n155的状态、拓扑信息、错误等)的多个监测应用程序接口(API)160。此外,API 160也可以允许程序员或网络管理员控制网络设备155的功能(例如,改变转发引擎中的设置、改变设备\n155的状态等)。\n[0029] 在一个实施例中,网络管理应用120可以连接至网络设备155、识别网络设备中的不同接口、并且为每个接口配置API 160。通过利用API 160提取网络设备155的控制平面,网络管理应用120可以允许网络管理员监测并控制可分别使用专用固件的多个不同类型的网络设备155。一个允许这种功能的产品是由思科 (在美国许多司法管辖区注册的商标)开发的一体化平台软件开发工具包(SDK)。\n[0030] 利用网络管理应用120,用户应用125可以在网络设备上配置API 160以执行某些功能。例如,用户应用125可以使用API 160来接收数据(例如,统计数据、网络设备155的当前状态、或路由信息)。用户应用125可以使用这些搜集的信息来例如,识别与特定客户ID相关联的网络流。因为网络管理应用120基于各个网络设备155的下层固件和硬件配置来定制监测API 160,所以用户应用125可以从SDN使能网络150中的所有网络设备155接收相同的数据。\n[0031] 此外,用户应用125可以使用API 160来执行被发送至网络设备155的命令。例如,用户应用125可以配置多个网络设备155上的防火墙设置。用户应用125可以向每个网络设备155发送相同的指令,然后各个API 160基于网络设备155的具体固件被转化成指令。\n[0032] 如图所示,用户应用125包括身份嗅探器130、定位搜索器(location finder)135、和资源管理器140。身份嗅探器130可以被用于基于监测API 160提供的数据来辨认客户的身份(即,客户ID)。本文使用“客户ID”来将一个客户(或共享相同属性的客户群)与访问SDN使能网络150的其它客户进行区分。例如,通过监测网络设备155中的网络流,身份嗅探器\n130可以检测客户访问802.1X无线LAN时使用的某些登录信息。每当客户使用802.1X登录信息时,身份嗅探器130能够将该登录信息与代表客户的客户ID关联起来。此外,由API 160报告的网络流的类型可以使身份嗅探器130能够推断出客户ID。例如,身份嗅探器130可以确定特定网络流与高速交易相关联。因此,用户应用125可以将高速交易网络流与表示股票经纪人的客户ID相关联。\n[0033] 定位搜索器135可以被用于确定客户的地理位置。也就是说,当客户ID被指派给网络流时,定位搜索器135确定生成网络流的客户的当前位置。在一个实施例中,定位搜索器\n135可以基于由身份嗅探器130检测到的客户ID来设置事件过滤器。事件过滤器可以利用SDN使能网络150中的不同网络流基于识别客户ID来检测客户何时改变地理位置。也就是说,当不同的网络流包含映射到客户ID的识别数据时,定位搜索器135可以追踪客户。这些流可以包括被提供以认证客户的登录信息、IP地址、MAC地址等。当这些识别数据在SDN使能网络150上传输时,过滤器可以获取这些信息并且将这些信息传输至定位搜索器135,定位搜索器135能够基于包含识别数据的网络流识别客户的当前地理位置。定位搜索器135可以使用API 160来例如,发现网络拓扑并且确定客户当前使用的网络设备155。定位搜索器135可以将客户的地理位置链接至网络设备155的位置。\n[0034] 资源管理器140可以基于客户的地理移动重新分配资源。在一个实施例中,用户应用125可以是使用API 160提供的信息在接近客户的当前位置的存储元件中缓存客户通常请求的内容的内容分发网络(CDN)。因为在定位搜索器135识别出客户的当前位置时CDN能够尽快地开始缓存数据,所以资源管理器140甚至能够在客户实际发送对于来自CDN的数据的请求之前缓存接近客户的数据。除了缓存数据以外,资源管理器140还可以被配置为分配其它资源(例如,与客户相关联的存储空间或虚拟资源)。例如,如果客户在旅行时通常使用虚拟桌面服务来工作,那么资源管理器140可以指示接近客户的桌面服务的服务器预留用于向客户提供虚拟桌面的资源。这么做可以减小桌面服务和客户之间的延时,并且可以使资源管理器140能够在不同服务器之间进行负载均衡。\n[0035] 在一个实施例中,SDN使能网络150包括网络设备155,其中网络设备155的控制平面被提取从而使得该控制平面可以由软件应用(例如,用户应用125)控制。网络150可以只是包括其它SDN使能网络或非SDN使能网络的更大网络(例如,因特网)的一部分。网络设备\n155可以是任何类型的网络元件,比如路由器、交换机、桥接器等。网络设备155可以由不同的供应商销售,并且因此可以使用不同的专用固件来配置控制平面。然而,如上面所讨论的,每个网络设备155可以包括向用户应用暴露出设备155的各种功能的一个或多个监测API 160。在一个实施例中,用户应用125可以配置监测API 160来适应用户应用125的特定需求。然而,在其它实施例中,API 160可能已经被网络管理应用120进行了配置。然后,用户应用125可以利用预先配置的API 160来监测网络设备155的功能,并且向网络设备155发送指令以重新配置设备155的设置。\n[0036] 图2示出了根据一个实施例的通过监测客户的地理移动来分配资源的方法200。在块205处,身份嗅探器可以基于在SDN使能的网络设备的入端口处过滤数据流量来识别客户ID。身份嗅探器可以在例如,SDN使能网络中的一个或多个交换机或路由器的入端口上安装输入过滤器。在一个实施例中,身份嗅探器可以选择性地只在网络中的某些网络设备(例如,边缘设备)上安装输入过滤器。在一个实施例中,输入过滤器可以使用由网络管理应用建立的监测API来监测流经入端口的数据。\n[0037] 输入过滤器可以评估接收到的分组,以检测使身份嗅探器能够向特定客户ID指派网络流的信息。例如,身份嗅探器可以配置输入过滤器来查找含有以下各项的分组:IEEE \n802.1X认证信息、邮件连接(SMTP、POP、IMAP、或Activesync流量)、VPN连接、DHCP发现和注册分组、轻量目录访问协议(LDAP)数据库信息等。例如,输入过滤器可以在使用IEEE \n802.1X来认证客户的机制的无线路由器上被执行。或者,输入过滤器可以在能够监测VPN流量并且识别客户的初始IP的边缘设备上。也就是说,尽管在使用VPN时客户的初始IP地址被隐藏,输入过滤器也能够识别初始IP地址。例如,客户可以身体位于纽约,但是访问服务器位于加利福尼亚的VPN。当从CDN请求内容时,CDN可能错误地将由VPN指派的IP地址作为初始IP,并且因此在客户实际在纽约时开始在加利福尼亚缓存内容。相反,输入过滤器可以使用监测API来准确地查明初始IP,从而确定客户的正确客户ID。\n[0038] 在另一示例中,LDAP数据库或活动目录可以被查询,以将使用上述技术收集的任意信息与客户ID相关联。这些资源可以包含列出一组属性(例如,名字、电话号码、邮箱地址、职位说明等)的条目。身份嗅探器可以使用例如,由输入过滤器取回的邮箱地址或MAC地址来通过LDAP数据库进行解析,以获得与网络流相关联的客户ID。\n[0039] 在一个实施例中,身份嗅探器可以在具有相同的IP地址或使用相同的计算设备的多个客户之间进行区分。例如,住宅无线路由器可以向所有的出站流量指派相同的IP地址,即使这些流量源自不同的客户。连接到住宅路由器的网络设备上的输入过滤器可以确定,来自路由器的网络流量包括多个不同的MAC地址。然后,身份嗅探器可以基于MAC地址向从路由器流出的网络流量指派两个不同的客户ID。另外,即使两个客户使用相同的设备(并且因此具有相同的MAC地址),输入过滤器仍然可以在客户访问各自的邮箱账户时使用诸如SMTP或POP流量的信息来区分客户。\n[0040] 在一个实施例中,客户ID可以被直接绑定到具体的人类客户。相反,身份嗅探器可以基于客户的特点来利用输入过滤器向客户ID指派网络流。例如,客户ID可以是组织内的具体职位或级别。因此,多个客户可以与相同的客户ID相关联。在一个示例中,单个客户ID可以表示公司里的所有网络管理员。此处,输入过滤器可以使用用户名为“admin”的802.1X认证消息来识别与“网络管理员”客户ID相关联的网络流。实体内的若干人可以被集合到该客户ID;即使如此,用户应用也可以将这些个体与公司内的其它用户区分开来,并且相应地重新分配资源。在另一示例中,用户应用可以使用相同的客户ID来表示公司里所有的部门领导。部门领导可以使用独立的、更安全的服务器来托管它们的虚拟桌面连接。当输入过滤器识别出具有去往该服务器的分组的网络流时,不论是哪个部门领导实际生成的网络流,身份嗅探器都可以将网络流与客户ID相关联。这样,在不曾明确地分别识别用户的情况下(例如,基于共享或共同的属性可以将一组客户与其它客户进行区分),身份嗅探器可以基于网络流的属性猜出人的身份。\n[0041] 身份嗅探器可以维护客户ID的列表。这些ID可以是预先定义的条目(例如,表示公司中的所有部门领导的客户ID),或者是基于(例如)通过查询LDAP数据库取回客户的具体名称找出的身份而添加的条目。此外,身份嗅探器可以存储用于确定客户ID何时能够与特定的网络流相关联的标准。例如,如果多个客户可以使用相同的设备(并且因此生成具有相同MAC地址的网络流),那么标准可以规定在含有识别数据的网络流能与具体人的客户ID相关联之前,网络流必须包括含有用户名称的802.1X认证消息或邮件连接。可替换地,如果客户ID是针对一群人(例如,家庭)的,则识别MAC地址就足以将特定的网络流与代表群组的客户ID相关联。\n[0042] 有利地是,利用输入过滤器并且监测API来评估接收到的分组使得身份嗅探器能够访问用户应用不能从非SDN使能网络访问的数据。例如,为了在没有API的情况下监测入端口上的流量,系统管理员将需要使用多个命令行界面(CLI)命令或者脚本来利用网络设备的固件取回数据。这种处理可能不得不对网络管理员希望监测的每个网络设备重复进行。此外,当网络设备上的固件升级时,脚本也必须进行更新。相反,使用API提供的抽象层,程序员能够生成可以与SDN使能网络中的任意类型的网络设备相兼容的单个输入过滤器。\n[0043] 在块210,定位搜索器可以基于与客户相关联的数据流量来确定客户的拓扑位置或地理位置(或这两种位置)。在一个实施例中,定位搜索器可以基于身份嗅探器找出的客户ID来设置应用事件过滤器。一旦身份嗅探器识别出客户ID,其就会触发应用事件过滤器识别客户的地理或拓扑位置。也就是说,由身份嗅探器控制的输入过滤器可以不断地过滤流入一个或多个网络设备的数据,以查找识别数据。如果身份嗅探器能够将客户ID与网络流相关联,则网络流和/或客户ID被提供至应用事件过滤器以确定客户的位置。\n[0044] 尽管本实施例致力于识别客户的地理位置——例如,街道地址、地理区域(邮编、国家边界、或移动电话塔的覆盖区域)、维度/经度等——但是,在一些实施例中,与网络拓扑相关地识别客户可能就足够了。例如,为了识别最好的存储元件来为客户缓存数据,用户应用可以评估客户连接的网络设备和多个候选存储元件之间的网络跳或延迟时间。客户和存储元件之间的地理距离可能不需要考虑。因此,定位搜索器可以确定客户在网络拓扑中的位置,而不是识别客户的地理位置。\n[0045] 为了识别客户的位置,定位搜索器可以评估用于识别客户ID的网络流。例如,如果\n801.2X认证消息被用于检测客户,那么定位搜索器可以取回接收认证消息的无线LAN接入点的物理位置。具体地,定位搜索器可以维护含有网络设备在SDN使能网络中的不同地理位置的列表或目录。如果身份嗅探器使用IP地址(VPN或其它方式)或邮件连接确定了客户ID,那么定位搜索器可以使用GeoIP查找来确定客户的位置。如果客户ID被利用DHCP发现和注册分组识别出来,那么定位搜索器可以使用区段位置(segment location)。\n[0046] 在块215,定位搜索器可以基于地理位置确定客户是否已经移动。在一个实施例中,定位搜索器可以维护具有身份嗅探器找出的每个客户ID的当前地理位置的数据库或表。如果客户已经移动,那么定位搜索器可以触发移动事件以指示用户应用重新分配与客户ID相关联的资源。例如,身份嗅探器和定位搜索器可以预先确定,客户在工作中利用计算机建立了邮件连接。随后,身份嗅探器可以识别包括含有匹配客户ID的凭证的802.1X验证消息的网络流。因为客户改变了地理位置,所以定位搜索器可以触发移动事件从而指示用户应用基于客户的新地理位置重新分配资源。\n[0047] 在一个实施例中,定位搜索器可以包括用于确定何时识别网络流触发移动事件的标准。如果客户只是切换到不同的计算设备但停留在相同的位置(例如,客户从移动电话切换到台式电脑)、或者连接到检测出客户的网络流的先前网络设备的预定半径范围内的不同网络设备,那么位置探测器可以不触发移动事件。例如,定位搜索器可以具有预定义的不同地理位置或区域的地图。只有在客户连接到不同区域中的网络设备时,定位搜索器才可以触发移动事件。在特定区域内的网络设备之间的移动可以被忽略。\n[0048] 在一个实施例中,定位搜索器可以在网络流停止时触发移动事件。也就是说,定位搜索器可以基于网络流中止,推断出客户已经从其当前地理位置移走了。例如,DHCP通常要求设备周期性更新它的IP地址。如果客户例如关断她的电脑,那么DHCP流量就会停止。然后,监测DHCP流量的输入过滤器可以将DHCP流量停止报告给身份嗅探器和定位搜索器。如果没有其他的网络流能够被关联至客户ID,那么定位搜索器可以移除当前与客户ID关联的地理位置。这种移除可以触发致使用户应用重新分配与客户ID相关联的资源的移动事件。\n因此,用户应用可以基于客户离开当前位置来触发移动事件,即使还不知道新地理位置。\n[0049] 如果客户ID代表具有一个或多个共享属性的一组个人,那么定位搜索器可以存储多个地理位置。例如,三个不同的部门领导可以当前正在网络中工作并且在三个不同的地理位置生成三个不同的网络流。尽管如此,部门领导也可以与相同的客户ID相关联。如果网络流之一停止或者另一网络流被关联至客户ID,那么定位搜索器可以触发可重新分配资源的移动事件。\n[0050] 在一个实施例中,只有网络流被确定处于特定的地理位置时,定位搜索器才可以触发移动事件。例如,如果定位搜索器确定部门领导已经行进到外国,那么定位搜索器不触发移动事件。针对安全资源,用户应用可能不想将资源重新分配到处于特定异国的网络设备上。然而,在其它实施例中,资源管理器可以替代定位搜索器来确定是否重新分配资源。\n[0051] 在块220处,资源管理器可以基于定位搜索器触发移动事件来重新分配资源。具体地,资源管理器可以将与客户ID相关联的资源运载到接近客户的位置。当确定如何分配资源时,资源管理器可以考虑客户的位置和资源的位置之间的物理距离、或者隔开客户和资源的网络跳/延时(或它们两者)。例如,资源管理器可以在物理上最接近被客户用来访问SDN使能网络的网络设备的存储元件上缓存客户内容。或者,资源管理器可以识别与客户处于相同的地理区域中的所有存储元件,并且选择到客户具有最小延迟路径的存储元件或者选择最少被利用的存储元件(即,执行负载均衡)。\n[0052] 资源管理器可以在所选择的存储元件中缓存网络缓存数据、文件、媒体数据等。在一个实施例中,资源管理器可以在客户从用户应用请求数据之前缓存数据。如果用户应用是和通常的CDN不同的CDN,则一旦客户的位置被识别出来,用户应用就可以开始缓存数据,而不用等待客户发送对来自CDN的内容的请求。\n[0053] 除缓存数据外,资源管理器还可以使用在SDN使能网络中的本地存储区域网(SAN)上运行的监测API来为客户提供本地网络附加磁盘。然后,资源管理器可以将数据从现在的位置复制到接近客户的本地SAN上的新分区。例如,资源管理器可以将数据从接近客户之前的位置的SAN复制到本地SAN。这将释放可被用于其他客户的之前的SAN处的资源。\n[0054] 在另一实施例中,资源管理器可以重路由网络流以更接近客户。例如,在本地SAN中为客户建立分区后,资源管理器可以将与客户相关联的网络驱动的映射改变为指向本地分区。资源管理器可以使用网络设备中的API来更新它们的控制平面,以将数据从客户的当前位置直接路由至本地分区。其它客户用来从网络驱动取回数据或存储数据的网络流可以保持不变。\n[0055] 此外,资源管理器可以为客户分配本地计算机资源。虚拟机和其它服务可以被转移到接近客户的硬件资源。例如,如果用户应用控制虚拟桌面基础架构,那么资源管理器可以指示接近客户的服务器为客户启动虚拟桌面环境。因此,资源管理器甚至可以在客户尝试访问虚拟桌面之前在本地服务器上为客户分配已经准备好为客户服务的专用资源。在该实施例中,资源管理器分配可以在SDN使能网络外部的资源。也就是说,虚拟桌面环境的服务器可以被耦合至SDN使能网络,但可以不被SDN控制器控制。因此,本实施例不限于仅分配SDN使能网络提供的资源(例如,网络存储、缓存、或改变网络流),而还可以使用由SDN使能网络收集的信息来分配该网络外部的资源。\n[0056] 先前的示例意欲作为能够基于识别客户并且基于客户的地理移动转移与客户相关联的资源而被分配的不同资源的非限制示例。本领域技术人员将认识到通过监测网络流和指派客户ID收集的信息可以被用于重新分配与单个客户或客户群相关联的资源的各种不同方式。\n[0057] 图3A-3B示出了根据本文公开的一个实施例的基于监测客户的地理移动来缓存数据的系统。图3A示出了系统300,其中客户设备305利用网络设备155A来访问SDN使能网络\n150。此处,系统300使用存储元件310A的缓存器315A来缓存客户内容320。例如,存储元件\n310A-B可以是被配置来存储和缓存与客户(图中未示出)相关联的客户内容320的CDN的一部分。因为客户当前在地理区域A中,所以CDN在与客户处于相同区域内的存储元件(例如,存储元件310A)处缓存客户内容120。\n[0058] 如图3B的系统350中所示,客户设备305已经移动到地理区域B。CDN可以包括一旦客户设备305连接到网络设备155B就检测客户ID的身份嗅探器。具体地,身份嗅探器可以将如方法200的块205处讨论的检测任意识别数据的输入过滤器放置在网络设备155B的入端口处。一旦客户ID被识别出来,CDN就可以使用定位搜索器来确定客户的当前位置(例如,地理区域B)。基于这些认知,CDN将客户内容320传递至接近客户的新位置的存储元件310B。注意,该传递可以以每个客户为基础进行。也就是说,与其他客户相关联的客户内容可以保持不变。此外,CDN可以在客户发起另一内容请求(例如,在客户请求来自CDN的缓存网页、数据文件、媒体文件等)之前传输内容320。\n[0059] 图3A和3B所示的技术可以适用于分配其它资源(例如,改变网络流、创建用于网络存储的本地分区等)。\n[0060] 图4示出了根据一个实施例的用于预测地理位置以基于移动事件分配资源的方法\n400。具体地,方法400示出了作为图2的块220的部分执行的块的示例。在该实施例中,用户应用可以确定并估计客户移动事件,以向客户的未来或预测的位置重新分配资源。在块405中,当检测到移动事件时,资源管理器可以暂停或者关掉在先前位置与客户相关联的服务。\n如上面所讨论的,如果与客户ID相关联的网络流停止——例如,客户设备不再发出更新IP地址的DHCP指令——定位搜索器可以触发移动事件。由此,资源管理器可以假设客户已经移出了当前位置。作为响应,资源管理器可以例如,将缓存的客户内容移出本地存储元件、解除分配客户的本地分区、或者将网络流重路由回默认配置。例如,如果资源管理器在本地服务器为客户保留了处理资源,那么管理器可以移除该保留,从而使得处理资源可以被不同的客户使用。\n[0061] 替代地,在识别出客户的新地理位置时,资源管理器可以暂停或者关闭本地资源。\n如果客户已经停止网络流但是尚没有离开地理位置,那么在确保客户已经离开位置之前解除分配资源可能会浪费时间和计算机资源。如果客户重新开启网络流,资源管理器可能不得不重新分配资源。因此,在这个示例中,资源管理器可以在解除分配先前位置处的资源之前,首先识别客户的新位置。在另一实施例中,资源管理器可以在身份嗅探器确定网络流已经停止时解除分配一些资源(例如,管理器可以停止接近客户缓存客户内容),并且在定位搜索器确认客户已经移动到不同的地理位置时解除分配余下的资源(例如,管理器可以移除与客户相关联的本地分区)。\n[0062] 在块410处,资源管理器可以基于新位置事件或补充位置数据来预测客户的新地理位置。在一个实施例中,资源管理器可以确定客户的当前地理位置是临时位置。例如,身份嗅探器可以在与移动电话塔相关联的网络设备中检测出与客户ID相关的网络流。资源管理器可以基于网络设备的功能假设客户的当前位置是临时的(例如,客户可能在该位置停留的时间少于预定义的时间段)。类似地,如果客户访问大型工厂的入口处的无线路由器,那么资源管理器可以假设该位置只是被临时给定的、客户连接至的网络设备的位置。在另一实施例中,资源管理器最初可以将客户的每个位置都归类为临时位置,直到身份嗅探器确定与客户ID相关联的网络流持续达预定量的时间为止。\n[0063] 在一个实施例中,资源管理器可以使用这些临时位置来预测客户的最终目的地。\n例如,资源管理器可以在客户经过若干移动电话塔的覆盖区域时追踪客户。然后,管理器可以确定客户正在行进的大致方向。通过使用客户访问的先前位置的历史列表,资源管理器可以预测客户正在向她之前访问过的目的地行进。例如,客户在从家到工作地点的通勤中会经过相同的移动电话塔。一旦资源管理器确定客户正在去往工作地点的方向行进,那么管理器可以预测工作地点是她的最终目的地。\n[0064] 在另一实施例中,资源管理器可以基于客户的登录历史识别模式。例如,如果用户应用已经预先确定客户在最终在区域D停留一段时间之前会行进经过区域A、B、C(例如,区域A、B、和C可以是三个不同的移动电话塔),那么资源管理器可以在区域A、B、和C中检测到与客户相关联的网络流时预测客户正在朝区域D行进。\n[0065] 在一个实施例中,资源管理器可以访问来源于SDN使能网络外部的补充位置数据。\n例如,用户应用可以被链接至可以指定客户可以行进到的未来位置的客户的日历或日程规划。这些源还可以被资源管理器用来预测客户的未来位置。例如,客户可以在日历中存储说明她将在某日期从纽约行进至加利福尼亚但没有指定时间的条目。当在机场时,客户可以登录到包括与用户应用相关联的输入过滤器的网络设备。因此,资源管理器知道客户当前正在旅行,并且使用客户日历提供的补充信息数据,资源管理器可以预测客户正要旅行至加利福尼亚。\n[0066] 在块415处,资源管理器可以在预测位置为客户启动或开启服务。此处,资源管理器可以执行在图2的块220讨论的所有不同的技术来分配资源,但能够在没有首先确定客户已经到达资源被移动到的位置的情况下执行这些技术。例如,资源管理器可以开始向接近客户的预测位置的客户指派本地虚拟资源或者缓存内容。因此,当客户到达新地理位置时,她就能够享受具有本地分配的资源的好处(甚至是在用户应用的身份嗅探器和定位搜索器确定客户位于预测地理位置之前)。\n[0067] 图5A-5C示出了根据本文公开的一个实施例的基于移动事件预测地理位置以分配资源的系统。具体地,图5A示出了客户设备505当前正在网络设备155C中生成网络流的系统。在此示例中,假设每个网络设备155C-E包括用于识别与客户相关联的数据流的输入过滤器。如图所示,可以接近或位于地理区域A内的服务器510A已经向客户分配客户资源520。\n此处,客户资源520作为存储器515A的一部分被示出——例如,映射到客户的网络驱动的本地分区。如上面所讨论的,用户应用可以分配诸如客户缓存、处理资源、虚拟桌面环境等的其它资源。\n[0068] 在图5B中,客户设备505当前正在网络设备155D上生成网络流。因为网络设备155D在地理区域B中,所以用户应用知道客户已经离开地理区域A,并且因此在该区域分配给客户的资源(例如,存储器515A)被解除分配。然而,在一个实施例中,一旦从客户设备505到网络设备155C的网络流停止,用户应用即可以开始解除分配客户资源520。或者用户应用可以在网络流一旦停止时即解除分配被提供给客户的一些服务,并且在用户应用一旦检测到客户现在处于地理区域B时即解除分配余下的服务。\n[0069] 在一个实施例中,用户应用可以将地理区域B识别为客户的临时位置。该分类可以基于网络设备155D的类型、网络设备155D的功能、与客户相关联的使用模式、客户在地理区域B停留的时间等。无论如何,基于客户在网络设备155D上生成网络流,用户应用可以预测客户的最终目的地——即,地理区域C。如上文所讨论的,用户应用可以使用地理区域A和B来识别对应于地理区域C的方向。另外或可选择地,用户应用可以依靠客户的历史来看客户之前是否已经在该方向内的任意位置停留了预定时间段。如果是,那么用户应用可以开始将与客户相关联的资源分配至那个地理区域。在另一实施例中,用户应用可以基于客户之前的移动来识别模式。例如,当客户从地理区域A移动至地理区域B时,她很有可能在地理区域C停留一段时间。如此处所示,先前存储在服务器510A上的客户资源520现在经由服务器\n510B被提供给客户。\n[0070] 图5C示出客户使用客户设备505在网络设备155E上生成网络流。如图所示,客户资源520可直接在本地对客户可用,而无需用户应用确定客户是否实际位于地理区域C中。因为这可能花费若干分钟来重新分配资源,通过使用SDN网络预测客户的未来位置,相对于在检测到客户ID时加载资源,用户应用可以减小用于访问资源的延时。\n[0071] 在一个实施例中,用户应用可以在预测地理位置只分配一些与客户相关联的资源,然后一旦用户应用确认客户已经到达该位置时再分配额外的资源。例如,用户应用可以向预测的地理位置指派预测强度分数。用户应用可以基于该分数向预测位置重新分配资源。如果分数高,则用户应用可以向预测位置重新分配多个资源(例如,应用可以把客户的缓存移动至本地存储元件,并把网络流重路由至网络设备155E),但是如果分数低,则用户应用可以只向本地计算设备重新分配所选量的客户资源(例如,应用可以只把客户的缓存移动至本地存储元件而不生成本地分区,或者应用可以重路由客户使用的网络路径中的一个,而不重路由其它)。这样,如果用户应用不正确地预测客户的最终目的地,用户应用可以尝试减少潜在的资源浪费。\n[0072] 本领域的技术人员将会理解,实施例可以被具体化为系统、方法、或计算机程序产品。因此,多个方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)、或包括被统称为“电路”、“模块”、或“系统”的软件和硬件方面的实施例的形式。此外,多个方面可以采用被嵌入在其上嵌入有计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。\n[0073] 任意一个或多个计算机可读介质的组合可以被利用。计算机可读介质可以是计算机可读信号介质、或计算机可读存储介质。计算机可读存储介质可以是但不限于以下各项:\n例如,电、磁、光、电磁、红外线、或半导体系统、设备、或装置、或上述各项的任意适当组合。\n计算机可读存储介质的更具体的示例(非穷尽列举)包括以下各项:具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或上述各项的任意适当组合。在本文档的上下文中,计算机可读存储介质可以是任意有形介质,该有形介质能够包含或存储由指令执行系统、装置、或设备使用或与指令执行系统、装置、或设备相关的程序。\n[0074] 综述\n[0075] 在一个实施例中,SDN的灵活性可以被用于追踪客户的地理移动并且基于这些移动重新分配资源。在SDN使能网络中的网络设备上使用API,应用可以监测流经网络设备的网络流量以确定发起网络流量的客户的身份。具体地,API向用户应用提供客户凭证、IP地址、MAC地址、和从网络流采集的其它识别信息。一旦身份被找出,应用可以识别客户的当前地理位置。\n[0076] 网络设备可以继续监测网络设备以识别任意移动事件,这些移动事件是例如,客户从网络设备断开(例如,关闭计算设备)、无线连接超时、检测到客户已经连接至不同的网络设备等。当检测到移动事件时,应用可以基于客户的新地理位置开始重新分配资源。例如,应用可以在靠近客户的存储元件处缓存数据、在本地服务器启动用于客户的资源、将客户登陆到新位置处的计算设备等。因此,相比于在客户请求数据后重新分配资源的一般CDN,应用能够通过监测客户的移动来重新分配资源。\n[0077] 因为用户应用基于客户的特性或属性(例如,用户名、职位名称、客户生成的数据类型等)指派客户ID,所以应用甚至可以在客户在不同计算设备(例如,台式计算机和移动电话)之间切换时追踪客户。例如,SDN中的网络设备可以向应用通知客户已经下班(例如,客户不再使用她的台式计算机向边缘设备发送数据流量)。然而,当客户的移动电话开启无线连接时,另一网络路由器可以识别客户。然后,应用可以基于她的新位置重新分配与客户相关联的资源。因此,应用可以基于客户ID而不是监测特定设备来追踪客户。\n[0078] 在一个实施例中,应用可以基于一个或多个移动事件预测客户的地理位置。应用可以开发基于移动事件被触发的用户模式。例如,客户可以注销工作计算机,然后通勤至她的家里或健身房。假设这两条路径使客户通过不同的移动手机塔,那么当客户的移动电话连接至这些塔中的网络设备时,应用可以预测客户的最终目的地(例如,家或者健身房)并且相应地重新分配资源。\n[0079] 附图中的流程图和框图示出了根据各种实施例的系统、方法、和计算机程序产品的可能实现方式的架构、功能、和操作。在这点上,流程图或框图中的每个块可以代表包括实施具体逻辑功能的一个或多个可执行指令代码的模块、段、或部分。还应该注意的是,在一些替换实现方式中,块中标记的功能可能不以图中标记的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以大致同时执行,或者这些块有时可以以颠倒的顺序执行。还应该注意的是,框图和/或流程图的每个块、和框图和/或流程图中的块的组合可以通过执行指定的功能或动作的基于硬件的专用系统、或专用硬件和计算机指令的组合来实施。\n[0080] 综上所述,本公开的范围由所附权利要求确定。
法律信息
- 2018-11-27
- 2015-12-09
实质审查的生效
IPC(主分类): H04L 12/26
专利申请号: 201480015207.4
申请日: 2014.03.10
- 2015-11-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-01-09
|
2012-10-11
| | |
2
| |
2010-06-23
|
2008-12-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |