一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

利用分布式散列的无线客户端的快速漫游和统一策略的制作方法

2021-10-23 05:29:00 来源:中国专利 TAG:实施 公开 数据通信 分布式 来实现


1.本公开中呈现的实施例总体上涉及无线数据通信,并且更具体地,本文公开的实施例提供了用于使用分布式散列来实现无线客户端的快速漫游和统一策略管理的技术。


背景技术:

2.用于更大物理区域的现代无线网络通常由许多不同的接入点组成。例如,当为整个建筑物实施无线网络时,单个接入点可能无法为建筑物内的所有区域提供足够的覆盖范围。因此,可以实施包含分布在整个建筑物中的多个接入点的无线网络,以便为整个物理空间提供足够的覆盖范围和信号强度。
3.一种用于创建这种网络的潜在方式可能是在整个漫游域(例如,建筑物)中使用多个隔离的接入点。然而,当使用隔离的接入点时,从一个接入点漫游到另一接入点时不会维持会话数据。因此,用户可能需要在每次漫游发生时执行认证操作并且可能丢失其他会话数据以及漫游的结果。因此,在管理无线网络中的接入点之间的漫游时存在技术问题。这个问题在大规模网络中更加严重,其中较差的可扩展性可能会使用于在网络内漫游时维持会话数据的传统解决方案不可行。
附图说明
4.为了能够详细理解本公开的上述特征的方式,可以通过参考实施例来对以上简要概括的本公开进行更具体的描述,这些实施例中的一些在附图中被示出。然而,应注意,附图仅示出了本公开的典型实施例,并且因此附图不应被认为是对本公开范围的限制,因为本公开可以允许其他同样有效的实施例。
5.图1是示出根据本文描述的一个实施例的配置有网络自动化和编排(orchestration)组件的通信的示例细节的简化框图。
6.图2是示出根据本文描述的一个实施例的跨网络内的接入点进行的对网络状态数据的冗余存储的框图。
7.图3是示出根据本文描述的一个实施例的跨网络的接入点被冗余存储的网络状态数据的更详细视图的框图。
8.图4是示出根据本文描述的一个实施例的用于有效地认证跨网络的接入点进行漫游的客户端的方法的流程图。
9.图5是示出根据本文描述的一个实施例的用于有效地认证客户端的方法的流程图。
10.图6是示出根据本文描述的一个实施例的示例网络设备的框图。
11.图7a

图7b是示出根据本文描述的实施例的示例计算机系统的框图。
12.为了便于理解,在可能的情况下使用了相同的附图标记来表示附图中共有的相同元件。可以预期,一个实施例中公开的元件可以有益地用于其他实施例,而无需具体叙述。
具体实施方式
13.概述
14.一个实施例提供了一种方法,该方法包括:在网络的多个无线接入点中的第一无线接入点处从第一客户端设备接收对第一客户端设备加入网络的请求。该请求可以至少指定第一客户端设备的唯一标识符。该方法包括通过使用预定义散列函数处理第一客户端设备的唯一标识符来确定针对多个无线接入点中的第二无线接入点的标识符。此外,该方法包括使用所确定的针对第二无线接入点的标识符来确定第二无线接入点的网络地址。该方法还包括向所确定的第二无线接入点的网络地址发送请求以查询与第一客户端设备相对应的网络状态信息。该方法还包括:在接收到与第一客户端设备相关联的成对主密钥(pairwise master key,pmk)时,认证第一客户端设备加入网络。
15.另一实施例提供了一种无线接入点,该无线接入点包括一个或多个计算机处理器和非暂态逻辑,该非暂态逻辑在由一个或多个计算机处理器的操作执行时执行操作。该操作包括从第一客户端设备接收对于第一客户端设备加入包括包含该无线接入点在内的多个无线接入点的网络的请求,其中该请求至少指定第一客户端设备的唯一标识符。该操作还包括通过使用预定义散列函数处理第一客户端设备的唯一标识符来确定针对多个无线接入点中的第二无线接入点的标识符。此外,该操作包括使用所确定的针对第二无线接入点的标识符来确定第二无线接入点的网络地址。该操作包括向所确定的第二无线接入点的网络地址发送请求以查询与第一客户端设备相对应的网络状态信息。该操作还包括在接收到与第一客户端设备相关联的成对主密钥(pmk)时,认证第一客户端设备加入网络。
16.另一实施例提供了一种系统,该系统包括被配置为形成网络的多个无线接入点,其中该多个无线接入点中的第一无线接入点被配置为执行操作。该操作包括从第一客户端设备接收对于第一客户端设备加入包括包含该无线接入点在内的多个无线接入点的网络的请求,其中该请求至少指定第一客户端设备的唯一标识符。该操作还包括通过使用预定义散列函数处理第一客户端设备的唯一标识符来确定针对多个无线接入点中的第二无线接入点的标识符。此外,该操作包括使用所确定的针对第二无线接入点的标识符来确定第二无线接入点的网络地址。该操作包括向所确定的第二无线接入点的网络地址发送请求以查询与第一客户端设备相对应的网络状态信息。该操作还包括在接收到与第一客户端设备相关联的成对主密钥(pmk)时,认证第一客户端设备加入网络。
17.示例实施例
18.本主题技术提供了用于网络中的无线漫游的实施例。一个实施例提供了一种方法,该方法包括在网络的多个无线接入点中的第一无线接入点处从第一客户端设备接收对第一客户端设备加入网络的请求。该请求可以至少指定第一客户端设备的唯一标识符,例如客户端设备的媒体访问控制(mac)地址。该方法包括通过使用预定义散列函数处理第一客户端设备的唯一标识符来确定多个无线接入点中的第二无线接入点的标识符。例如,可以使用一致性散列来确定该标识符。
19.此外,在这样的实施例中,该方法可以包括确定第二无线接入点的网络地址。在一个实施例中,这可以通过使用所确定的第二无线接入点的标识符在存储在第一无线接入点上的路由表中执行查找操作来完成。替代地,该网络地址可以由管理实体提供。作为另一种选择,可以使用本地发现技术来识别该网络地址。该方法可以包括向所确定的第二无线接
入点的网络地址发送请求以查询与第一客户端设备相对应的网络状态信息。该方法还包括在接收到与第一客户端设备相关联的成对主密钥(pmk)时,认证第一客户端设备加入网络。
20.本公开的附加特征和优点将在随后的描述中阐述,并且部分将从描述中显而易见,或者可以通过本文公开的原理的实践来获知。本公开的特征和优点可以通过所附权利要求中特别指出的工具和组合来实现和获得。本公开的这些和其他特征将从以下描述和所附权利要求中变得更加明显,或者可以通过本文阐述的原理的实践来获知。
21.计算机网络可以包括硬件、软件、协议和传输组件的系统,这些组件共同允许单独的设备进行通信、共享数据和访问资源,例如软件应用。更具体地,计算机网络是地理上分布的节点集合,这些节点通过通信链路和分段进行互连,以用于在端点(例如,个人计算机和工作站)之间传输数据。可用的网络类型很多,从局域网lan)和广域网(wan)到覆盖和软件定义的网络,例如虚拟可扩展局域网(vxlan),以及虚拟网络(例如,虚拟lan(vlan)和虚拟专用网络(vpn))。
22.lan通常通过位于同一通用物理位置(例如,建筑物或校园)中的专用私有通信链路来连接节点。另一方面,wan通常通过远距离通信链路(例如,公共运营商电话线、光路、同步光网络(sonet)或同步数字层次结构(sdh)链路)来连接地理上分散的节点。lan和wan可以包括第2层(l2)和/或第3层(l3)网络和设备。
23.互联网是连接全世界不同网络、在各种网络上的节点之间提供全球通信的公共wan的示例。节点通常通过根据预定义协议(例如,传输控制协议/互联网协议(tcp/ip))交换离散的数据帧或数据分组来在网络上进行通信。在这种上下文中,协议可以引用定义节点之间如何进行交互的一组规则。计算机网络可以通过中间网络节点(例如,路由器、交换机、集线器或接入点(ap))进一步互连,这可以有效地扩展网络的规模或覆盖范围。
24.网络可以被分割为子网以提供层次结构式、多级路由结构。例如,可以使用子网寻址将网络分割为子网以创建网络分段。这样,网络就可以向特定的网络分段分配多组ip地址,以及将网络划分为多个逻辑网络。
25.此外,可以将网络划分为称为虚拟网络(例如vlan)的逻辑分段,该虚拟网络连接逻辑分段。例如,可以将一个或多个lan进行逻辑分段以形成vlan。vlan允许一组机器进行通信,就好像它们在同一物理网络中一样,而不管它们的实际物理位置如何。因此,位于不同物理lan上的机器可以像它们位于同一物理lan上一样进行通信。还可以使用路由器和隧道(例如,vpn或安全外壳(secure shell,ssh)隧道)来创建网络和设备之间的互连。隧道可以加密跨中间网络(例如,类似于互联网的公共网络)的点对点逻辑连接。这允许在逻辑连接之间并跨中间网络进行安全通信。通过互连网络,可以增加所互连的机器的数量和地理范围,以及用户可用的数据、资源和服务的量。
26.此外,可以通过网络虚拟化来扩展网络。网络虚拟化允许在虚拟网络中组合硬件和软件资源。例如,网络虚拟化可以允许多个vm经由相应vlan附接到物理网络。vm可以根据其相应vlan被分组,并且可以与其他vm以及内部或外部网络上的其他设备进行通信。
27.为了说明,覆盖网络通常允许在物理网络基础设施之上创建虚拟网络并使其分层。覆盖网络协议(例如虚拟可扩展lan(vxlan)、使用通用路由封装的网络虚拟化(nvgre)、网络虚拟化覆盖(nvo3)和无状态传输隧道(stt))提供了允许通过逻辑隧道跨l2和l3网络来传输网络流量的流量封装方案。此类逻辑隧道可以通过虚拟隧道端点(vtep)被发起和终
止。
28.网络可以包括各种硬件或软件器具或节点以支持数据通信、安全和配设服务。例如,网络可以包括路由器、集线器、交换机、ap、防火墙、中继器、入侵检测器、服务器、vm、负载平衡器、应用交付控制器(adc)和其他硬件或软件器具。此类器具可以分布或部署在一个或多个物理、覆盖或逻辑网络之上。此外,器具可以部署为集群,该集群可以使用第2层(l2)和第3层(l3)技术来形成。集群可以为与特定器具或节点相关联的流提供高可用性、冗余和负载平衡。流可以包括具有相同源和目的地信息的分组。因此,源自设备a的到服务节点b的分组都可以是同一流的一部分。
29.图1示出了用于实现无线漫游的示例系统100。系统100可以包括连接到诸如互联网之类的广域网(wan)115的网络120。在一些实施例中,网络120可以是专用网络,该专用网络可以包括一个或多个局域网(lan)、vlan等。本领域普通技术人员将容易认识到,在其他实施例中,网络120还可以或以其他方式连接到任何其他公共或专用网络。然而,为了清楚起见,wan 115被用作非限制性示例。
30.网络120可以包括一个或多个设备,例如设备145。设备145可以包括例如客户端设备或主机设备,例如个人计算机或终端、台式机、膝上型电脑、平板电脑、移动电话、无线媒体播放器、游戏系统等。为了简单起见,网络120包括单个设备145,但是本领域技术人员将认识到网络120可以包括任何数量的设备。
31.此外,网络120可以包括接入点(ap)135
a
、135
b
、135
c
...135
n
(统称135)。ap 135可以向设备145(例如,客户端设备)提供无线网络访问。ap 135可以连接到网络设备130
a
和130
b
(统称为130)。网络设备130可以包括l2和/或l3设备,例如交换机或路由器。本领域技术人员将认识到,本技术不限于特定的网络配置或大小。
32.在网络120中,ap 135
a
可以经由网络设备130
a
来发送和接收网络流量。类似地,ap 135
b
和ap 135
c
可以经由网络设备130
b
来发送和接收网络流量。网络设备130可以连接到网关125。网关125可以是提供对网络120的访问的诸如路由器之类的节点。例如,网关125可以连接到一个或多个互联网服务提供商(isp)以允许网络120访问wan 115,即互联网。此外,云控制器200可以通过wan 115来访问网络120,并被用于为网络120执行多个网络管理操作,如上面关于图2所描述的以及本文进一步描述的。
33.设备145可以包括能够与ap 135进行通信的无线收发器。当设备145位于ap 135
a
的信号范围内时,设备145可以建立通信会话并变为与ap135
a
相关联。在一些实施例中,设备145可以在它可以变为与ap 135
a
相关联之前提供特定凭证。例如,设备145的媒体访问控制(mac)地址可以用于确定是否允许设备145来访问网络120。替代地,用户服务中的远程认证拨号(radius)可以用于确定是否允许设备145来访问网络120。认证可能要求设备145的用户在设备145可以访问网络120之前输入特定密码。在一些情况下,一个或多个ap 135可以是无线网络的一部分,该无线网络可以包括ssid(服务集标识符)。因此,设备145可以使用ssid和/或任何其他凭证来加入无线网络。
34.在成功关联时,设备145可以获得对网络120的访问,并且可以经由接入点135
a
来获得网络或数据服务。网络和数据服务可以包括互联网web浏览、游戏、互联网协议上语音(voip)、即时消息、视频流、视频会议、计算资源、文件共享等。网络和数据服务可以根据与设备145相关联的地址(例如,互联网协议(ip)地址)而被提供给设备145。设备145的ip地址
可以作为静态ip地址而被分配,或者可以根据动态主机配置协议(dhcp)而被动态地分配。
35.如图1所示,设备145具有在网络120内漫游并连接到不同的ap 135的能力。例如,设备145可以在它变为与ap 135
a
相关联之后从ap 135
a
漫游到ap 135
b
。如果ap 135
b
也在vlan 1上,则可以经由相同的ip地址到达设备145,因为设备145在逻辑上保持连接到家庭广播域。
36.替代地,ap 135可以被配置为连接到不同的vlan。例如,ap 135
b
可以被配置为连接到vlan 2,该vlan 2可以对应于与ap 135
a
的vlan1不同的vlan。在这种情况下,当设备145从ap 135
a
漫游到ap 135
b
时,ap 135
b
可以将与设备145相关联的流量(例如,使用隧道140)隧道传输到ap 135
a
。这样,设备145可以保持其与它的家庭广播域(vlan 1)的连接并避免服务中断。通过保持其与它的家庭广播域的连接,设备145还可以保持其ip地址。因此,基于设备145的ip地址来被路由到设备145的数据可以通过隧道316被传送到设备145,该隧道316将设备145链接回其原始家庭广播域。
37.提供一种设备145通过其可以在接入点135之间漫游的高效且高度可扩展的机制,这是一项艰巨的技术挑战,尤其是在可能包含数千个用户和数百个(如果不是数千个的话)不同接入点的大规模网络中。在这样的场景中,每个接入点在连接到网络内众多接入点之一的每个不同客户端设备上存储网络状态信息可能是不可行的。此外,这样的解决方案可能会在更新客户端的网络状态信息时生成大量网络流量,因为当客户端进行漫游时,当客户端加入网络时,等等其他情形时,更新可能需要被广播到网络中的每个其他接入点。
38.因此,本文描述的实施例提供了用于促进客户端设备跨无线数据通信网络的接入点135进行有效漫游的技术。根据一个实施例,接入点上的客户端漫游管理组件可以从客户端设备145接收连接请求。例如,在所描绘的实施例中,假设当客户端设备145从接入点135
a
漫游到接入点135
b
时,客户端接入点135
b
上的客户端漫游管理组件接收到连接请求。在其他参数和数据值中,这样的连接请求可以指定客户端设备145的唯一标识符。例如,连接请求可以指定客户端设备145的媒体访问控制(mac)地址。
39.接入点135
b
上的客户端漫游管理组件可以通过使用预定义散列函数处理客户端设备145的唯一标识符来确定多个无线接入点135
a

n
中的另一无线接入点135(例如,如图4所示的存储接入点430)的标识符,该另一无线接入点135可以包含客户端设备145的网络状态数据。例如,客户端漫游管理组件可以利用一致性散列并且可以通过使用预定义散列函数处理客户端mac地址来确定散列值。在一个实施例中,客户端漫游管理组件可以利用一致性散列来确定与客户端的mac地址相对应的无线接入点的标识符。通常,一致性散列是一种独立于网络中的无线接入点的总数而运行的分布式散列系统,从而允许无线接入点的数量在不对散列系统产生实质性影响的情况下进行扩缩(即,通过使由于扩缩而需要重新定位的密钥的数量最小化)。这种散列系统可以是有利的,因为在网络内被激活的无线接入点的数量可能会随着时间变化而波动,例如,当接入点被重新启动时、当接入点被替换时、当接入点被添加时等等。通常,一致性散列通过将无线接入点分配到抽象圆上的相应位置来进行操作。
40.客户端漫游管理组件然后可以确定存储无线接入点135的网络地址。在一个实施例中,这可以通过使用所确定的针对第二无线接入点的标识符在存储在无线接入点135
b
上的路由表中执行查找操作来完成。替代地,该网络地址可以由管理实体提供。作为另一种选
择,可以使用本地发现技术来识别该网络地址。客户端漫游管理组件然后可以向所确定的存储无线接入点的网络地址发送请求以查询与客户端设备145相对应的网络状态信息。
41.即,实施例可以通过使用散列函数选择性地在网络内的接入点135
a

n
中的一个或多个处存储给定客户端设备的网络状态信息。这样做节省了无线接入点上的数据存储资源(例如,相对于传统解决方案而言,在这种传统解决方案中,所有客户端的网络状态数据在所有接入点上被存储)并促进对客户端的网络状态数据的有效查找。在所描绘的实施例中,如果存储接入点确定它包含客户端设备145的网络状态数据,则存储接入点可以向接入点135
b
上的客户端漫游管理组件返回成对主密钥(pmk)和/或与客户端设备145相关联的任何其他网络状态数据。客户端漫游管理组件然后可以使用pmk和其他网络状态数据来认证第一客户端设备加入网络。这样做使得客户端设备145能够跨接入点135
a

n
进行快速且有效的漫游。
42.图2是示出根据本文描述的一个实施例的跨网络内的接入点进行的对网络状态数据的冗余存储的框图。如图所示,系统200示出了多个接入点210(1)

(n)。在所描绘的实施例中,接入点210(1)包含客户端漫游管理组件230和路由表240。值得注意的是,虽然在图200中示出了接入点210(1)的详细视图,但更一般地,接入点210(2)

(n)中的每一个都可以配置有客户端漫游管理组件230和路由表240的相应实例。
43.通常,接入点210(1)上的客户端漫游管理组件230(连同接入点210(2)

(n)上的客户端漫游管理组件)被配置为跨接入点210(1)

(n)来管理客户端设备的网络状态数据。例如,当新客户端成功认证其自身并连接到接入点210(1)时,客户端漫游管理组件230可以确定接入点210(1)

(n)中用于存储特定客户端的网络状态数据的一个或多个接入点。例如,客户端漫游管理组件230可以使用分布式散列函数(例如,一致性散列)来确定接入点210(1)

(n)中用于存储客户端的网络状态数据的一个接入点。更具体地,客户端漫游管理组件230可以通过使用散列函数处理客户端设备的mac地址来生成散列值。客户端漫游管理组件230然后可以使用路由表240来确定与该散列值相对应的网络地址。例如,客户端漫游管理组件230可以使用路由表240来查找无线接入点的互联网协议(ip)地址,其中该无线接入点被分配用于存储所讨论的客户端设备的网络状态数据。替代地,客户端漫游管理组件230可以被管理实体提供该ip地址。作为另一种选择,客户端漫游管理组件230可以使用本地发现技术来识别该ip地址。客户端漫游管理组件230然后可以向该ip地址发送请求,该请求指定客户端设备的标识符(例如,mac地址)并且如果客户端设备的网络状态数据可用则请求这样的状态数据。
44.在特定实施例中,客户端漫游管理组件230可以被配置为将在网络上被认证的每个客户端设备的网络状态数据存储在多个存储位置中。例如,假设客户端漫游管理组件230通过处理特定客户端的mac地址来生成散列值并且该散列值对应于接入点210(1),这表明接入点210(1)应当被用于存储该特定客户端的网络状态信息。客户端漫游管理组件230可以进一步确定附加的接入点以冗余地存储特定客户端的网络状态数据。这种冗余存储可以是有益的,例如,当接入点之一或网络内的连接遇到问题时,因而会延迟或阻止与一个或多个接入点进行通信。
45.在一个实施例中,客户端漫游管理组件230被配置为使用一致性散列来确定应当使用哪个网络设备来存储特定客户端的网络状态信息。通常,一致性散列是指分布式散列
算法,其中接入点210(1)

(n)可以被分配在抽象圆上的位置。这样的圆形布置在图200中是可视化的。在这样的实施例中,客户端漫游管理组件230可以选择n个附加接入点来冗余地存储(被存储在接入点210(1)上的)网络状态数据。例如,客户端漫游管理组件230可以在接入点210(1)

(n)的抽象圆形布置中彼此等距地放置n个附加接入点。因此,在所描绘的实施例中,客户端漫游管理组件230已确定将接入点210(1)上的网络状态数据存储在两个附加位置(即,在所描绘的实施例中,n=2)中,并且已选择接入点210(4)和210(7)来存储附加网络数据。在这样的实施例中,当查询针对请求连接到接入点的客户端设备的网络状态数据时,该接入点不仅可以查询通过散列算法而识别出的网络状态设备,还可以查询冗余的存储位置。当然,本领域普通技术人员将认识到,根据本公开,可以使用任何数量的不同冗余存储位置和方案,并且提供这样的示例仅用于说明目的而不是进行限制。
46.继续该示例,图3是示出根据本文描述的一个实施例的跨网络的接入点而冗余存储的网络状态数据的更详细视图的框图。如图所示,系统300包含接入点210(1)、210(4)和210(7)。如上所述,接入点210(1)、210(4)和210(7)存储客户端的网络状态信息的冗余副本,其中,该客户端的标识符(例如,mac地址)散列到接入点210(1)、210(4)和210(7)之一。在所描绘的实施例中,这样的网络状态数据由分别存储在接入点210(1)、210(4)和210(7)上的网络状态信息310(1)、310(4)和310(7)表示。如图所示,网络状态信息310(1)包含经认证的客户端设备的成对主密钥(pmk)、客户端设备的配置文件330(1)和客户端设备的当前ap连接340(1)。通常,当前ap连接340(1)表明特定客户端设备当前连接到网络中的哪个接入点。接入点210(4)和210(7)包含网络状态信息310(1)的冗余副本,如网络状态信息310(4)和310(7)所示。
47.当新客户端设备尝试连接到网络内的接入点210(1)

(n)之一时,接入点上的客户端漫游管理组件230可以从新客户端设备接收客户端设备加入网络的请求。这样的请求可以指定客户端设备的唯一标识符,例如客户端设备的mac地址。客户端漫游管理组件230可以通过使用散列函数散列客户端标识符来确定与客户端设备相对应的散列值。通常,这样的散列值可以表示网络内的另一接入点的标识符。针对本示例,假设散列值对应于散列值210(1)。
48.客户端漫游管理组件230然后可以使用散列值来访问路由表240的本地副本以确定接入点210(1)的网络地址(例如,ip地址)。替代地,客户端漫游管理组件230可以由管理实体提供网络地址。作为另一种选择,客户端漫游管理组件230可以使用本地发现技术来识别网络地址。客户端漫游管理组件230可以使用网络地址向接入点210(1)发送请求以获得客户端设备的网络状态数据(如果可用的话)。接入点210(1)在接收到请求时可以识别与该请求相对应的网络状态信息310(1)并且可以将该信息返回到发起该请求的客户端漫游管理组件230。客户端漫游管理组件230然后可以使用所接收的网络状态信息310(1)(其包括与客户端设备相关联的pmk 320(1))来认证客户端设备加入网络。
49.此外,客户端漫游管理组件230可以确定被指定用于存储客户端设备的网络状态信息(如果可用的话)的一个或多个冗余存储位置。例如,在确定标识接入点210(1)的散列值之后,客户端漫游管理组件230可以(例如,基于预定义配置数据)确定网络被配置为在与由散列值标识的接入点等距的接入点(例如,在根据一致性散列算法生成的在抽象圆中与接入点210(1)等距的接入点)中存储网络状态信息的两个冗余副本。在所描绘的实施例中,
客户端漫游管理组件230可以确定接入点210(4)和210(7)被指定为接入点210(1)的冗余存储位置。结果,客户端漫游管理组件230可以使用路由表240(或任何其他合适的技术,包括由管理实体提供网络地址和使用本地发现)来识别接入点210(4)和210(7)中的每一个的网络地址,并且可以使用网络地址向接入点210(4)和210(7)发送请求,以获得客户端设备的网络状态数据(如果可用的话)。
50.在客户端漫游管理组件230向不同接入点发送多个请求(例如,在当前示例中,向接入点210(1)、210(4)和210(7)发送三个请求)的实施例中,客户端漫游管理组件230可以处理从不同接入点接收的第一响应。也就是说,由于接入点被配置为存储相同的数据,来自接入点的应答消息也应该是相同的,并且因此客户端漫游管理组件230可以依赖于所接收的第一响应。这样做提高了数据通信网络的性能,因为客户端漫游管理组件230可以更快速地处理客户端请求,尤其是当网络遇到问题时(例如,在由于网络问题导致由散列值标识的接入点不可用或响应缓慢的情况下)。
51.图4是示出根据本文描述的一个实施例的用于有效地认证跨网络的接入点进行漫游的客户端的方法的流程图。如图所示,方法400开始于块450,在块450中客户端设备410向连接接入点420发送连接请求。在一实施例中,连接接入点420是客户端设备410正在漫游到的接入点。例如,客户端设备可能之前已经与另一接入点相关联。作为该关联的一部分,先前的接入点将进行完全认证(例如,使用radius服务器)并将生成与客户端设备410相关联的pmk。该pmk被存储在连接接入点420已知的位置中(例如,pmk被存储在存储接入点430和附加存储接入点440处)。
52.为了取回pmk,连接接入点420上的客户端漫游管理组件230基于与客户端设备410相对应的标识符来确定散列值(块455)。例如,连接请求可以指定客户端设备410的mac地址。连接接入点420的客户端漫游管理组件230可以使用散列函数来处理mac地址以确定散列值。
53.连接接入点420上的客户端漫游管理组件230然后可以识别与散列相对应的(一个或多个)接入点(块460)。例如,客户端漫游管理组件230可以使用一致性散列算法来识别被指定为针对与mac地址相对应的客户端设备存储网络状态数据的接入点(例如,存储接入点430)。此外,客户端漫游管理组件230可以确定一个或多个附加接入点(例如,附加存储接入点440),该一个或多个附加接入点被指定作为针对由散列值标识的接入点的冗余存储位置。例如,客户端漫游管理组件230可以确定在由一致性散列算法生成的抽象圆内与所识别的接入点等距的两个接入点。
54.客户端漫游管理组件230然后可以确定所识别的接入点的网络地址(块465)。例如,客户端漫游管理组件230可以访问连接接入点420上的路由表240以确定与所识别的接入点(例如,存储接入点430)以及被指定为所识别的接入点的冗余存储位置的两个接入点(例如,附加存储接入点440)相对应的ip地址。替代地,客户端漫游管理组件230可以由管理实体提供ip地址。作为另一种选择,客户端漫游管理组件230可以使用本地发现技术来识别ip地址。在所描绘的实施例中,客户端漫游管理组件230将指定客户端设备410的客户端标识符的查找请求发送到所确定的网络地址(块470)。因此,如图所示,客户端漫游管理组件230发送两个查找请求,一个发送到存储接入点430,而另一个发送到附加存储接入点440。
55.在所描绘的实施例中,存储接入点430上的客户端漫游管理组件230执行查找操作
以识别客户端设备410的网络状态信息是否被存储在存储接入点430上(块475)。如图所示,客户端漫游管理组件230确定客户端设备410的网络状态信息被存储在存储接入点430上并且将客户端设备的网络状态信息发送到连接接入点420(块480)。例如,当客户端设备410已经被网络上的另一接入点(例如,客户端410在漫游之前连接到的接入点)认证并且被分配有效的pmk时,这样的网络状态信息可以被存储在存储接入点430上。如果存储接入点430上的客户端漫游管理组件230确定没有网络状态数据可用于与客户端设备410相对应的mac地址,则客户端漫游管理组件230可以发送表明没有网络状态数据可用的消息(而不是在块480处发送的消息)到连接接入点420。然而,在所描绘的实施例中,连接接入点420上的客户端漫游管理组件230使用所接收的网络状态信息来认证客户端设备410(块485),并且方法400结束。
56.此外,在一实施例中,连接接入点420可以向客户端设备410先前已经连接到的接入点(例如,在漫游到连接接入点420之前连接到的接入点)发送上下文请求。上下文请求可以取回动态变化的网络策略,并且在存储接入点430中存储这种网络策略可能是低效的。客户端设备410曾连接到的先前接入点可以利用上下文响应来向连接接入点420作出响应。
57.图5是示出根据本文描述的一个实施例的用于有效地认证客户端的方法的流程图。如图所示,方法500开始于块510,在块510中客户端漫游管理组件230在网络的多个无线接入点中的第一无线接入点处从第一客户端设备接收对第一客户端设备加入网络的请求,其中该请求至少指定第一客户端设备的唯一标识符。客户端漫游管理组件230通过使用预定义散列函数处理第一客户端设备的唯一标识符来确定多个无线接入点中的第二无线接入点的标识符(块520)。
58.此外,客户端漫游管理组件230使用为第二无线接入点确定的标识符来确定第二无线接入点的网络地址(块530)。客户端漫游管理组件230向所确定的第二无线接入点的网络地址发送请求以查询与第一客户端设备相对应的网络状态信息(块540)。在接收到与第一客户端设备相关联的成对主密钥(pmk)时,客户端漫游管理组件230认证第一客户端设备加入网络(块550),并且方法500结束。
59.图6是示出根据本文描述的一个实施例的示例网络设备的框图。网络设备600包括主中央处理单元(cpu)610、接口640、以及总线650(例如,pci总线)。当cpu 610在适当软件或固件的控制下工作时,其负责执行分组管理、错误检测、和/或路由或转发功能。cpu 610可以在包括操作系统和任何适当应用软件的软件的控制下完成所有这些功能。cpu 610可以包括一个或多个处理器863,例如来自motorola系列微处理器或mips系列微处理器的处理器。在替代实施例中,处理器630是用于控制网络设备600的操作的专门设计的硬件。在特定实施例中,存储器620(例如,非易失性ram和/或rom)也形成cpu 610的一部分。然而,存储器可以以许多不同的方式耦合到系统。
60.接口640通常被提供为接口卡(有时称为“线卡”)。通常,它们控制通过网络来发送和接收数据分组,并且有时支持与网络设备600一起使用的其他外围设备。可以提供的接口为以太网接口、帧中继接口、电缆接口、dsl接口、令牌环接口等。此外,可以提供各种超高速接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、atm接口、hssi接口、pos接口、fddi接口等。通常,这些接口可以包括适合与适当媒体进行通信的端口。在一些情况下,它们还可以包括独立的处理器,并且在一些情况下,还可以包括易失性ram。独立处理
器可以控制诸如分组交换、媒体控制和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许主微处理器630高效地执行路由计算、网络诊断、安全功能等。
61.虽然图6所示的系统是本发明的一种特定网络设备,但它绝不是可以实现本发明的唯一网络设备架构。例如,经常使用具有处置通信以及路由计算等的单个处理器的架构。此外,其他类型的接口和媒体也可以与路由器一起使用。
62.不管网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器620),这些存储器或存储器模块被配置为存储用于通用网络操作以及本文所述的漫游、路由优化和路由功能的机制的程序指令。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动绑定、注册和关联表等之类的表。当实践本技术时,更合适的实施例对于本领域普通技术人员而言将是显而易见的。本领域普通技术人员也将容易地认识到,其他系统实施例也是可能的。
63.图7a示出了传统的系统总线计算系统架构700,其中系统的组件使用总线705彼此电通信。示例性系统700包括处理单元(cpu或处理器)710和系统总线705,系统总线705将包括系统存储器715(例如,只读存储器(rom)720和随机存取存储器(ram)725)的各种系统组件耦合到处理器710。系统700可以包括与处理器710直接连接、紧密接近或集成为其一部分的高速存储器的缓存。系统700可以将数据从存储器715和/或存储设备730复制到缓存712,以供处理器710进行快速访问。以此方式,缓存可提供避免处理器710在等待数据时延迟的性能提升。这些和其他模块可以控制或被配置为控制处理器710执行各种动作。其他系统存储器715也可供使用。存储器715可以包括具有不同性能特性的多种不同类型的存储器。处理器710可以包括任何通用处理器和硬件模块或软件模块(例如,存储在存储设备730中的模块1 732、模块2 734和模块3 736),该硬件模块或软件模块被配置为控制处理器710,并且处理器710可以包括专用处理器,在该专用处理器中软件指令被合并到实际的处理器设计中。处理器710可以基本上是完全自包含的计算系统,其包含多个核心或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
64.为了使得用户能够与计算设备700进行交互,输入设备745可以表示任何数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备735也可以是本领域技术人员已知的许多输出机制中的一种或多种。在一些情况下,多模态系统可以使得用户能够提供多种类型的输入以与计算设备700进行通信。通信接口740可以总体支配和管理用户输入和系统输出。对于在任何特定硬件布置上的操作没有限制,并且因此在开发了改进的硬件或固件布置时,本文的基本功能可以很容易地替换为改进的硬件或固件布置。
65.存储设备730是非易失性存储器并且可以是硬盘或其他类型的计算机可读介质,其可以存储可由计算机访问的数据,例如磁带、闪存卡、固态存储器设备、数字多功能磁盘、盒式磁带、随机存取存储器(ram)725、只读存储器(rom)720及其混合。
66.存储设备730可以包括用于控制处理器710的软件模块732、734和736。可以设想其他硬件或软件模块。存储设备730可以连接到系统总线705。在一个方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与必要的硬件组件(例如,处理器710、总线705、输出设备735(例如,显示设备)等)相关联以执行该功能。
67.图7b示出了具有芯片组架构的示例计算机系统750,该芯片组架构可以用于执行所描述的方法以及生成和显示图形用户界面(gui)。计算机系统750是可以用于实现所公开的技术的计算机硬件、软件和固件的示例。系统750可以包括处理器755,该处理器755代表能够执行被配置为执行所识别的计算的软件、固件和硬件的任何数量的物理上和/或逻辑上不同的资源。处理器755可以与可以控制处理器755的输入和输出的芯片组760进行通信。在该示例中,芯片组760将信息输出到输出765,例如显示器,并且可以向存储设备770读取和写入信息,该存储设备770例如可以包括磁性介质和固态介质。芯片组760还可以从ram 775读取数据以及将数据写入到ram 775。可以提供用于与各种用户接口组件785接口连接的桥780,以用于与芯片组760接口连接。这样的用户接口组件785可以包括键盘、麦克风、触摸检测和处理电路、诸如鼠标之类的定点设备等。一般而言,系统750的输入可以来自机器生成和/或人为生成的多种来源中的任意一种。
68.芯片组760还可以与一个或多个通信接口790接口连接,这些通信接口790可以具有不同物理接口。这样的通信接口可以包括用于有线和无线局域网、用于宽带无线网络以及个人局域网的接口。用于生成、显示和使用本文公开的gui的方法的一些应用可以包括通过物理接口来接收有序的数据集,或者这些应用可以由机器本身通过处理器755分析存储在存储装置770或775中的数据来生成。此外,机器可以经由用户接口组件785从用户接收输入并且通过使用处理器755解释这些输入来执行适当的功能,例如浏览功能。可以理解,示例系统700和750可以具有多于一个处理器710或者是联网在一起以提供更大处理能力的计算设备组或集群的一部分。
69.在前文中,参考了在本公开中呈现的实施例。然而,本公开的范围不限于特定描述的实施例。取而代之的是,无论是否涉及不同的实施例,所描述的特征和元件的任何组合都被设想用于实现和实践所设想的实施例。此外,尽管本文公开的实施例可以实现优于其他可能的解决方案或优于现有技术的优点,但是是否通过给定的实施例实现特定的优点并不限制本公开的范围。因此,除非在(一个或多个)权利要求中明确记载,否则前述各方面、特征、实施例和优点仅是说明性的,并且不被认为是所附权利要求的要素或限制。
70.如本领域技术人员将认识到的,本文公开的实施例可以体现为系统、方法或计算机程序产品。因此,各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合软件和硬件方面的实施例的形式,这些方面在本文中一般地都被称为“电路”、“模块”或“系统”。此外,各方面可以采取被体现在(一个或多个)计算机可读介质中的计算机程序产品的形式,这些计算机可读介质上具有计算机可读程序代码。
71.可以利用(一个或多个)计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或前述项的任何合适组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下各项:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦写可编程只读存储器(eprom或闪存)、光纤、便携式光盘只读存储器(cd

rom)、光学存储设备、磁性存储设备、或前述项的任何合适组合。在本文的上下文中,计算机可读存储介质是可以包含或存储程序以供指令执行系统、装置或设备使用或与其结合使用的任何有形介质。
72.计算机可读信号介质可以包括所传播的数据信号,其中包含计算机可读程序代码
(例如,在基带中或作为载波的一部分)。这样的传播信号可以采取多种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何这样的计算机可读介质:其不是计算机可读存储介质并且可以传送、传播或传输供指令执行系统、装置或设备使用或与其结合使用的程序。
73.包含在计算机可读介质上的程序代码可以使用任何适当的介质来发送,包括但不限于无线、有线、光缆、rf等,或前述项的任何适当组合。
74.用于执行本公开的各方面的操作的计算机程序代码可以以包括面向对象的编程语言(例如,java、smalltalk、c 等)以及常规的过程式编程语言(例如,“c”编程语言或类似的编程语言)的一种或多种编程语言的任何组合来编写。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一场景中,可以通过任何类型的网络(包括局域网(lan)或广域网(wan))将远程计算机连接至用户的计算机,或可作出至外部计算机的连接(例如,通过使用互联网服务提供商的互联网)。
75.以下参考根据本公开中呈现的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解的是,可以由计算机程序指令来实现流程图和/或框图的每个块以及流程图和/或框图中的块的组合。这些计算机程序指令可以被提供给通用计算机、专用计算机的处理器或其他可编程数据处理装置以产生机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现流程图和/或框图的一个或多个块中指定的功能/动作的装置。
76.这些计算机程序指令还可以被存储在计算机可读介质内,该计算机可读介质可以引导计算机、其他可编程数据处理装置或其他设备,以便以特定方式发挥作用,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图的一个或多个块中指定的功能/动作的指令的制品。
77.计算机程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在该计算机、其他可编程装置或其他设备上被执行以产生计算机实施的进程,以使得在该计算机或其他可编程装置上执行的指令提供进程,这些进程用于实施在流程图和/或框图的一个或多个块中所详细说明的功能/动作。
78.器具或节点以及集群可以在云部署中实现。可以在一个或多个网络中提供云部署,以使用共享资源来配设计算服务。云计算通常可以包括基于互联网的计算,其中计算资源从经由网络(例如,“云”)可用的资源集合被按需动态配设和分配给客户端或用户计算机或其他设备。例如,云计算资源可以包括任何类型的资源,例如计算、存储、网络设备、应用、虚拟机(vm)、服务等等。例如,资源可以包括服务设备(防火墙、深度分组检查器、流量监控器、负载平衡器等)、计算/处理设备(服务器、cpu、存储器、强力处理能力)、存储设备(例如,网络附接存储装置、存储区域网络设备)等。此外,这些资源可以用于支持虚拟网络、虚拟机(vm)、数据库、应用(app)等。此外,服务可以包括各种类型的服务,例如监控服务、管理服务、通信服务、数据服务、带宽服务、路由服务、配置服务、无线服务、架构服务等。
79.云可以包括“私有云”、“公共云”和/或“混合云”。“混合云”可以是由两个或更多个云组成的云基础设施,这些云通过技术进行互操作或联合。从本质上讲,混合云是私有云和公共云之间的交互,其中私有云加入公共云并以安全和可扩展的方式利用公共云资源。在
某些情况下,云可以包括一个或多个云控制器,这些云控制器可以帮助管理和互连云中的各种元件以及连接到云的租户或客户端。
80.云控制器和/或其他云设备可以被配置用于云管理。这些设备可以被预先配置(即,“开箱即用”)有集中管理、第7层(l7)设备和应用可见性、基于web的实时诊断、监控、报告、管理等。因此,在一些实施例中,云可以提供集中管理、可见性、监控、诊断、报告、配置(例如,无线、网络、设备或协议配置)、流量分配或重新分配、备份、灾难恢复、控制和任何其他服务。在某些情况下,这可以在没有特定器具或覆盖管理软件的成本和复杂性的情况下完成。
81.附图中的流程图和框图示出了根据各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这点上,流程图或框图中的每个块都可以表示模块、片段或代码的一部分,其包括用于实现(一个或多个)特定逻辑功能的一条或多条可执行指令。还应当注意,在一些替代实现方式中,在块中提到的功能可以按照不同于在附图中提到的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者块有时可以以相反的顺序执行。还应注意,框图和/或流程图图示中的每个块,以及框图和/或流程图图示中的块的组合,可以通过执行特定功能或动作的基于专用硬件的系统来实施,或通过专用硬件和计算机指令的组合来实施。
82.鉴于前述内容,本公开的范围由所附权利要求确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜