提供用于分布式路由表的安全模式的方法和系统
背景
对等(P2P)网络提供无服务器通信环境。当今大多数P2P网络都是开放且不安全的。P2P网络中的对等体可以在没有诸如认证或授权等安全考虑事项的情况下向另一对等体提供路由信息并在另一对等体处查找路由信息。
概述
下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/重要元素,也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。
本发明的各实施例提供了用于分布式路由表(DRT)的安全模式。DRT包括具有分布在一组机器上的条目的表,该表可用于通过找到经过对等体网络的路线来将键映射到端点。在一个示例中,基本安全模式要求节点证明发布键的权限。在另一样示例中,成员资格安全模式要求节点证明发布键和查找键的权限。在又一示例中,机密安全模式要求节点证明发布键、查找键的权限,并且加密DRT消息中的至少一部分数据以使得对探测DRT通信的未授权节点遮蔽该数据。
许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
附图简述
附图中使用相同的附图标记来指代相同的部分。
图1是根据本发明一实施例的分布式路由表的框图。
图2是根据本发明一实施例的使用分布式路由表的对等网络的框图。
图3是示出根据本发明一实施例的对分布式路由表使用安全模式的操作的流程图。
图4是示出根据本发明一实施例的用于分布式路由表的基本安全模式的操作的流程图。
图5是示出根据本发明一实施例的用于分布式路由表的基本安全模式的操作的流程图。
图6是示出根据本发明一实施例的用于分布式路由表的成员资格安全模式的操作的流程图。
图7是示出根据本发明一实施例的用于分布式路由表的成员资格安全模式的操作的流程图。
图8是示出根据本发明一实施例的用于分布式路由表的机密安全模式的操作的流程图。
图9是示出根据本发明一实施例的用于分布式路由表的机密安全模式的操作的流程图。
图10是用于实现本发明的各实施例的示例计算设备的框图。
详细描述
下面结合附图提供的详细描述旨在作为对本发明各示例的描述,而非表示用于解释或利用本发明各示例的唯一形式。本说明书阐述各示例的功能以及用于构造和操作各示例的步骤序列。然而,相同或等效的功能与序列可由不同的示例来实现。
对等网络提供无服务器环境以便在多个计算设备之间进行协作。P2P网络以自组织方式将各设备连接成被称为网格(或覆盖网络)的节点集合。网格在底层传输层(例如,IPv4或IPv6网络)或物理网络(例如,无线传输能力)上操作。同样,DRT对该层是不可知的并且被抽象成可分离且可插入的层(被称为传输)中的一个。
DRT支持在网格中路由信息。DRT包括分布在网格中的若干节点上的一组路由表。DRT可由节点用来确定到网格中的目标节点的路线(例如,一系列网际协议(IP)地址、物理地址(例如MAC地址)、或设备ID)以及该目标节点本身的网络地址。DRT可包括对应于键(例如,节点的数字标识(ID)、节点的字符串ID等)的路由条目及其对应的网络地址。每一个节点可使用存 储在本地或另一节点处的DRT的一部分来搜索键。一旦该节点在DRT中找到所需键,该节点就可确定目标目的的网络地址;在键查找过程期间查询其本地DRT部分的节点集一起形成到该目标节点的路线。该节点然后可使用目标节点的网络地址(和/或在键查找期间发现的路线)来联系该目标节点以建立通信(例如,文件共享)。
图1示出了根据本发明的一实施例的系统100。在一个实施例中,系统100的一个或多个组件可以由可由一个或多个计算设备来执行的计算机可读指令来实现。示例计算设备以下结合图10讨论。
系统100包括用于支持包括节点121-123的网格的DRT 102。节点121-123分别在计算设备111-113上执行。DRT 102分布在寻求经由同一应用程序进行协作的多个节点121-123上。每一个节点121-123包括DRT 102的单独部分。在一个实施例中,单个设备可支持参与一个或多个网格的两个或更多节点(也被称为节点实例)。例如,单个应用程序可实例化参与同一网格的两个不同节点。
应用程序131、132和133被示为分别在每一个设备111-113上。应用程序使用P2P网格来交换与该应用程序相关的信息。示例应用程序包括文件共享、实时协作、分布式搜索引擎、网际协议语音(VoIP)等。
在一个实施例中,节点使用组件化模型。节点组件包括协议处理程序以及核心API。节点组件引用可分离子系统的可插入模块,这些模块可包括路由表管理、传输、引导、安全、以及日志记录。每一个模块都可由一应用程序实例化。
可插入模块的实施例包括安全模块。在一个实施例中,网格中的每一个节点使用相同的安全模块实现来操作和管理如此处所描述的安全模式,诸如分别在节点121-123处示出的安全模块124-126。安全模块允许DRT 102实现允许应用程序作者为其P2P网格配置安全设置的一组安全模式。应用程序可按需将DRT配置成具有各种安全设置。更多的安全性通常耗费更多的路由带宽并且需要更多的计算,但允许更严的管理和更好的私密性。
用于DRT 102的安全模式的各实施例包括(从最低安全级别到最高安全级别)基本安全模式、成员资格安全模式、以及机密安全模式。在一个实施例 中,安全模式包括在它之下的安全模式的特征。例如,成员资格模式包括基本模式的安全特征并且添加其自己的安全特征。
图1还包括安全标识(ID)服务150。设备可与服务150通信以获取供与此处所描述的安全模式一起使用的安全ID 152。安全ID允许节点证明其参与网格中的其他节点的权限。示例安全ID包括证书。
转向图2,示出了P2P网络的网格200的一实施例。网格200包括五个节点201-205,每一个节点分别具有安全模块206-210。这些节点可支持诸如台式PC、服务器、移动设备等计算设备(未示出)的混合上的应用程序或服务。
网格200在被示为网络250的底层传输层(例如,IPv4或IPv6网络、或物理网络)之上形成。每一个节点存储并维护分布式路由表的一部分。节点的DRT部分被称为该节点的本地DRT。在图2中,节点201-205分别存储本地DRT 211-215。本地DRT 211-215的组合构成该网格的整个DRT。
为了找到网格中的节点的地址(例如IP地址),节点可搜索另一节点的键。搜索节点可执行对其他节点的本地DRT的查找操作,直到找到该搜索的目标键。节点还可向网格发布其自己的键以便用其键来填充DRT。
在搜索算法的一个实施例中,节点可通过在该节点的本地DRT中查找键来搜索该键。如果未找到该键,则该节点开始搜索其他节点的本地DRT。例如,搜索节点询问具有在数值上最接近所需键的键的节点,该节点是否在其本地DRT中具有该键。该节点进而在其自己的本地DRT中查找并返回对应于该键的所请求的节点的地址或者发布其本地DRT中的在数值上最接近的键的节点的地址。该过程重复直到找到该键或者已确定不存在这样的键。这一路由系统的示例包括分布式散列表(DHT)和对等名称解析协议(PNRP)。DRT为这些路由系统提供路由高速缓存基础结构。
DHT用于存储由键标识的信息。在DHT中,键空间包括一组键。键空间在网格中的节点之间分解。每一个节点都负责一定范围的键。当一节点想要存储或检索关于特定键的信息时,该节点必须首先找到负责该键的节点,该节点搜索负责该键范围的节点。例如,在图2中,节点201可具有根15并且负责键8-22,节点202具有根26并且负责键23-31等等。通常只有一个节点发布对于特定键范围的键。当节点进入和离开网格时,调整分配给该节点的键范围。 该调整可以跨网格中的所有节点或一部分节点来进行。
在PNRP中,节点维护所存储的关于其向网格发布的自己的键的信息。因此,节点可发布多个键并且特定键可由不止一个节点发布(与通常将每一个键分配给仅仅一个节点的DHT相比)。同样,在节点与其他节点通信时,将这些其他节点的键添加到该节点的本地DRT。
得益于本说明书的本领域的技术人员可以理解,可将PNRP安全名与如此处所描述的DRT安全性区分开来。PNRP安全名允许节点证明它拥有特定键以防止键欺骗;它通过将名称与注册节点的公钥组合,并且提供证明拥有该公钥的证书来实现这一点。然而,PNRP不具有控制节点发布键或查找键的权限的安全措施。
PNRP的示例在图2中示出。每一个节点201-205分别具有其自己的键(即其根)100、200、300、450和500。每一个节点201-205将其自己的键以及其他键存储在其本地DRT中。假设节点201想要确定对应于键(即,PNRP ID)300的端点(即,节点)。节点201在其自己的本地DRT 211中查找键300并且没有找到该键。节点201然后在其本地DRT 211中查找在数值上最接近所需键300的键。在这种情况下,键200最接近键300,因此节点201向对应于键200的节点(即,节点202)发送PNRP请求消息。因为节点202在其高速缓存(即,本地DRT 212)中具有键300,所以节点202将节点203(其对应于键300)的地址(例如,IPv6地址)发送到节点201。节点201然后可使用该地址来向节点203发送PNRP请求消息以开始与节点203通信。节点201还将键300添加到其自己的本地DRT 211。
无论使用DHT、PNRP、还是某一其他路由系统,此处的各实施例提供关于对DRT中的信息的发布和访问的安全措施。
转向图3,流程图300示出了根据本发明一实施例的对分布式路由表使用安全模式的操作。在一个实施例中,流程图300的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。
从操作302开始,获取安全ID。安全ID可从对网格的参与中带外获取。例如,计算设备可连接到安全ID服务(诸如网站)并获取安全ID。
安全ID可以在诸如单个P2P会话等特定期限内有效。例如,用户可能想 要加入作为新闻网站的一部分的对等网络。该用户从新闻网站获取证书并在DRT消息中使用该证书。每一个节点都接收可以跟踪回到发行者(例如,经由证书链)的唯一安全ID。网格中的所有节点都接收安全ID以使得这些节点可彼此认证各种DRT消息,如下所述。
接着,在操作304中,启动供与P2P网络一起使用的应用程序。在一个实施例中,该应用程序用所需安全模式来预编程。在一个实施例中,不在网格中混合安全模式,因此所有节点都使用相同的DRT安全模式。当一应用程序希望加入网格时,可存在特定的网格范围配置期望。例如,可以期望应用程序使用传输控制协议(TCP)而不是如用户数据报协议(UDP)的另一协议来通信。类似地,网格将期望加入的应用程序使用如此处所描述的特定安全模式。
继续至操作306,创建节点并且该节点加入网格。例如,打开用于网格的DRT的节点实例。接着,在操作308中,使用如此处所描述的安全模式来处理DRT消息。处理DRT消息包括构造并发送DRT消息以及接收、认证、并处理得到认证的DRT消息。DRT消息包括与本地DRT高速缓存维护和搜索操作相关的消息,诸如洪泛消息(用于向对等体告知键的存在)、查找消息(用于查找键的拥有者)、询问消息(用于请求供认证的安全ID)、授权消息(用于传递供认证的安全ID)等等。
继续至操作310,节点离开网格。例如,关闭DRT的节点实例。
图3的操作的示例如下。体育网站具有用于向用户分发体育博客的网格。用户去往该体育网站并注册博客。在注册过程期间,用户接收供与网格一起使用的证书。用户然后启动其客户机器上的应用程序以加入网格。当与该用户相关联的节点在该网格中注册其存在(例如,发布其键)时,其他节点将认证证书以确保该用户的节点被授权在该网格中发布键。
此外,用户的证书可具有有限期限。例如,体育博客服务可向用户收取月度费用。证书在每个月用户支付了月度费用时续订。如果用户未支付月度费用,则证书期满并且该用户不再能够使用体育博客网格。实际上,用户是因为网格中的其他节点将忽略该用户的节点所发送的任何发布键消息而无法使用该网格的。因为节点的键将不会被添加到DRT,所以其他节点将无法找到该节点的网络地址。
转向图4-5,流程图400和500示出了根据本发明的一实施例的基本安全模式的操作。在一个实施例中,流程图400和500的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。在另一实施例中,流程图400和/或500的逻辑由节点处的安全模块来实现。
在一个实施例中,使用基本安全模式来控制发布键。以此方式,网格中的节点确保未授权节点没有向DRT提供假键。这些假键可用于将对等体定向到具有恶意目的的地址。可以理解,基本模式不阻止对等节点搜索节点的本地DRT(即,执行DRT查找)。在基本模式中,任何节点仍然能够搜索另一节点的本地DRT。
流程图400示出了根据本发明的一实施例的发布键的操作。发布键的节点在网格中搜索需要知道新键的邻居节点(操作402)。在这样做时,发布节点向找到的相邻节点请求安全ID。进而,邻居将其安全ID发送到发布节点以便认证(操作404)。所有得到认证的邻居都将接收到洪泛消息,如下所述。在一个实施例中,潜在邻居包括具有接近发布节点的键的键的节点以及网格中的随机节点。通过向网格中的各个节点发布其键,发布节点向其他节点的本地DRT提供其键。
发布节点通过向邻居节点发送DRT洪泛消息来向这些邻居(即,键空间中的将来邻居)警告新键的存在(操作406)。洪泛消息向发布节点的邻居告知键的存在。
进而,这些邻居向发布节点请求认证并且该发布节点将其安全ID提供给作出请求的邻居(操作408)。在一个实施例中,邻居向发布节点发送询问消息以请求安全ID,并且发布节点用具有安全ID的授权消息来响应该邻居。在一替换实施例中,安全ID通过在操作406中发送的DRT洪泛消息中包括发布节点的安全ID来提供给邻居。
流程图500示出了根据本发明的一实施例的节点接收DRT洪泛消息的操作。从操作502开始,节点接收DRT洪泛消息。接着,在操作504中,节点认证与接收到的洪泛消息相关联的发布节点的安全ID。在一个实施例中,接收节点在询问-授权消息交换中请求并接收发布节点的安全ID。在另一实施例中,发布节点的安全ID被包括在DRT洪泛消息中。
接收节点通过将附加安全ID的发行者与接收节点自己的安全ID的发行者进行比较并确保发行者匹配(例如,安全ID服务150)来确认安全ID。例如,接收节点将附加证书与其自己的证书的配置的根证书链进行比较。如果其证书链具有相同的根链,则发送节点得到认证。
如果安全ID得到认证,则处理DRT洪泛消息,如操作508所示。例如,将DRT洪泛消息中的键和对应的IP地址添加到节点的本地DRT。
如果安全ID未得到认证,则该逻辑继续至操作506以使得接收到的DRT洪泛消息失效。在一个实施例中,节点忽略消息(例如,让消息超时)。在另一实施例中,节点回答它不理解消息。
转向图6和7,流程图600和700示出了根据本发明的一实施例的成员资格安全模式的操作。在一个实施例中,流程图600和700的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。在另一实施例中,流程图600和/或700的逻辑由节点处的安全模块来实现。
在一个实施例中,成员资格模式在允许节点发布键和查找键之前要求节点证明其在网格中的成员资格。在成员资格模式中,节点必须证明搜索另一节点的本地DRT的权限。成员资格模式确保试图连接到其他节点(即,找到其网络地址)的节点是网格中的有效参与者。成员资格模式包括如以上结合图4和5描述的发布键安全措施。
流程图600示出了根据本发明的一实施例的发送DRT查找消息的操作。从操作602开始,节点构造DRT查找消息。DRT查找消息要求节点在其本地DRT中搜索特定键。接着,在操作604中,该节点向一节点发送DRT查找消息。进而,接收该DRT查找消息的节点向发送节点请求认证并且该发送节点将其安全ID提供给该接收节点(操作606)。在一替换实施例中,安全ID通过在操作604中的DRT查找消息中包括安全ID来提供。
流程图700示出了根据本发明的一实施例的接收DRT查找消息的操作。从操作702开始,节点接收DRT查找消息。接着,在操作704中,该逻辑认证发送DRT查找消息的节点的安全ID。在一个实施例中,接收节点在询问消息中请求发送节点的安全ID并且在来自发送节点的授权消息中接收发送节点的安全ID。在另一实施例中,发送节点的安全ID被包括在DRT查找消息本 身中。
在另一实施例中,认证包括检查包括在与键查找相关联的DRT消息中的防篡改机制。在该实施例中,在查找/询问/授权消息中的每一个中,采用其中发送节点用由接收节点确认的数字签名来“保护”该消息的各部分的防篡改机制。
如果安全ID得到认证,则该逻辑继续至操作708以处理DRT查找消息。在一个实施例中,为了处理DRT查找消息,节点在其本地DRT中查找所需键并且在找到该键的情况下返回对应的网络地址。如果节点未找到所需键,则该节点返回该节点的本地DRT中的最接近的键的网络地址。
如果安全ID未得到认证,则该逻辑继续至操作706以使得DRT查找消息失效。例如,可忽略失效消息或者可以用出错消息来响应失效消息。
转向图8-9,流程图800和900示出了根据本发明的一实施例的机密安全模式的操作。在一个实施例中,流程图800和900的至少一部分可以由可由一个或多个计算设备执行的计算机可读指令来实现。在另一实施例中,流程图800和/或900的逻辑由节点处的安全模块来实现。
机密安全模式包括如以上结合图4-7描述的发布键和键查找安全措施。另外,机密模式加密网格中的节点之间的DRT消息的至少一部分。
流程图800示出了根据本发明的一实施例的当在机密安全模式中时发送DRT消息的操作。从操作802开始,发送节点与对等节点建立加密。该加密可包括非对称密钥方案(例如,公钥/私钥)、对称密钥方案、混合方案(例如,使用非对称密钥来分发对称密钥,并且然后使用对称密钥来继续通信)等等。例如,在私钥/公钥对加密方案中,发送节点要求接收节点计算公钥/私钥对并将公钥发送到该发送节点。
在另一示例中,在混合模式中,发送节点生成用于加密消息的各部分的对称密钥并且用目标节点的公钥来加密该对称密钥。加密对称密钥被包括在消息中。目标节点(即,接收节点)通过用其私钥来解密该对称密钥来获取该对称密钥。在该方案中,在先前不进行对称密钥的密钥交换的情况下实现私密性。目标节点的公钥在先前交换中获取。该公钥高速缓存在源节点中以便在向目标节点发送消息时使用。
接着,在操作804中,节点构造DRT消息。继续至操作806,发送节点加密DRT消息的至少一部分。例如,发送节点可使用如在操作802中导出的密钥来加密一部分。接着,在操作808中,将DRT消息发送到接收节点。
在一个实施例中,在网格中的两个节点之间建立的加密对于该节点对是唯一的。例如,在图2中,节点201和202所使用的密钥对(例如,对称或非对称)与节点201和205所使用的密钥对不同。
流程图900示出了根据本发明的一实施例的当在机密安全模式中时接收DRT消息的操作。从操作902开始,与对等节点建立加密,诸如设置对称或非对称密钥对。例如,接收DRT消息的节点可导出公钥/私钥对。接收节点然后将公钥发送到发送节点并且保存私钥。
接着,在操作904中,接收节点接收具有已加密的至少一部分的DRT消息。继续至操作906,接收节点解密加密部分。例如,接收节点使用其私钥来解密。接着,在操作908中,接收节点在适当时处理DRT消息。在一个实施例中,安全模块建立如上所述的将对称密钥连同DRT消息一起发送的混合加密方案。
机密安全模式的各实施例对窥探的眼睛遮蔽DRT消息的各部分。以此方式,防止诸如两个节点之间的路由器等中间实体看见DRT消息的各敏感方面。可以加密的示例部分包括消息中用于解析与键相关联的IP地址的部分、应用程序净荷、节点在其本地DRT中所具有的IP地址的集合等。在一种情况下,只加密DRT消息的一部分以使得诸如因特网服务提供商(ISP)等中间实体可确定消息与P2P活动相关,但仍然无法查看该DRT消息的各敏感部分。
本发明的各实施例涉及用于分布式路由表的安全模式。应用程序作者可分配对于将由网格处理的信息的敏感性适当的安全模式。在必要时增加安全性的能力使DRT成为用于各种各样的公共和商用P2P系统的合适的平台。DRT安全模式可支持如PNRP的大型开放式系统,以及受控的专用企业P2P网络。
图10及以下讨论提供对实现本发明的各实施例的合适的计算环境的简要概括描述。图10的操作环境只是合适的操作环境的一个示例,并不旨在对该操作环境的使用范围或功能提出任何局限。可适用于与在此所述的各实施例一起使用的其它公知计算设备、环境、和/或配置包括但不限于个人计算机、服务 器计算机、手持或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
尽管并非必需,但本发明的各实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述。计算机可读指令可通过计算机可读介质来分发(在以下讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,如函数、对象、应用程序编程接口(API)、数据结构等等。通常,计算机可读指令的功能可按需在各个环境中组合或分布。
图10示出了用于实现本发明的一个或多个实施例的计算设备1000的示例。在一种配置中,计算设备1000包括至少一个处理单元1002和存储器1004。取决于计算设备的确切配置和类型,存储器1004可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该配置在图10中由虚线1006来例示。
在其它实施例中,设备1000可以包括附加特征和/或功能。例如,设备1000还可以包括附加存储(例如,可移动和/或不可移动),其中包括但不限于磁存储、光存储等等。这样的附加存储在图10中由存储1008示出。在一个实施例中,用于实现诸如安全模块124、节点121和应用程序131等本发明的各实施例的计算机可读指令可以在存储1008中。存储1008还可以储存实现操作系统、应用程序等的其它计算机可读指令。
此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其它数据这样的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器1004和存储1008都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备1000访问的任何其它介质。任何这样的计算机存储介质都可以是设备1000的一部分。
设备1000还可包括允许该设备1000与其它设备进行通信的通信连接1012。通信连接1012可包括但不限于,调制解调器、网络接口卡(NIC)、集 成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备1000连接到其它计算设备的其他接口。通信连接1012可以包括有线连接或无线连接。通信连接1012可以发送和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质通常以诸如载波或其它传输机制等“已调制数据信号”来体现计算机可读指令或其它数据,并包括任何信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及无线介质,如声学、射频、红外、近场通信(NFC)和其它无线介质。
设备1000可包括输入设备1014,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其它输入设备。设备1000中还可包括输出设备1016,诸如一个或多个显示器、扬声器、打印机和/或任何其它输出设备。输入设备1014和输出设备1016可以通过有线连接、无线连接或其任何组合来连接到设备1000。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备1000的输入设备1014或输出设备1016。
计算设备1000的组件可以通过诸如总线等各种互连来连接。这些互连可包括诸如PCI Express等外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等。在另一实施例中,计算设备1000的组件可以通过网络互连。例如,存储器1004可由位于通过网络互连的不同物理位置的多个物理存储器单元组成。
在描述和权利要求书中,可使用术语“耦合的”及其派生词。“耦合的”可意味着两个或多个元件正在接触(物理地、电子地、磁性地、光学地等)。“耦合的”还可意味着两个或多个元件未彼此接触,但仍彼此合作或交互(例如,通信地耦合的)。
本领域技术人员会认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可以通过网络1020访问的计算设备1030可以储存实现本发明的一个或多个实施例的计算机可读指令。计算设备1000可以访问计算设备1030并下载部分或全部计算机可读指令来执行。或者,计算设备1000可以按需下载计算机可读指令的片断,或者某些指令可以在计算设备1000处执行而 某些则在计算设备1030处执行。本领域的技术人员还可认识到,所有或部分计算机可读指令可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等专用电路来实现。
此处描述了本发明各实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以组成储存在一个或多个计算机可读介质上的计算机可读指令,这些指令如果被计算设备执行则使得计算设备执行所描述的操作。描述一些或全部操作的顺序不应被解释为暗示了这些操作必须要依赖于顺序。从本说明书获益的本领域技术人员应理解替换的排序。此外,应该理解并非所有的操作都必须存在于本发明的每一实施例中。
本发明各实施例的以上描述,包括在摘要中所描述的内容,不旨在是穷举或将各实施例限于所公开的精确形式。尽管本发明的具体实施例和示例此处是为了说明的目的而描述的,但如相关领域的技术人员鉴于以上详细描述所能认识到的,各种等效技术方案和修改都是可能的。在所附权利要求书中所使用的术语不应被解释为将本发明限于说明书中所公开的具体实施例。相反,所附权利要求书应该根据所确立的权利要求解释原则来解释。