专利名称:确定设备是否处于网络内部的制作方法
确定设备是否处于网络内部
背景技术:
很多计算设备是能被很容易地运送到不同的位置的移动设备。这些移动设备有时可以根据其是否被认为处于特定网络内部而以不同的方式工作。但是,在任何特定时间可靠确定移动设备何时处于特定网络内部是很困难的。
发明内容
本发明内容是为了以简化形式引入精选概念而被提供的,并且在以下的具体实施方式
中将会进一步描述这些概念。本发明内容的目的既不是识别所要求保护主题的关键特征或必要特征,也不是用来限制所要求保护的主题的范围。根据一个或多个方面,计算设备的网络地址将被获取。执行检查以便确定网络地址是否处于期望的网络地址范围以内和/或是否可以访问特定网络的资源访问管理器。如果网络地址处于期望的网络地址范围以内并且可以访问资源访问管理器,则确定计算设备处于特定网络以内,否则确定计算设备处于特定网络以外。根据一个或多个方面,计算设备向特定网络的资源访问管理器发送未经加密的请求。如果接收到来自资源访问管理器的响应并且计算设备具有处于期望的网络地址范围以内的网络地址,则确定可以访问资源访问管理器并且计算设备处于特定网络内部。否则确定资源访问管理器不能被访问,并且计算设备处于特定网络外部。
在整个附图中,相同的数字被用于引用相同的特征。图1图示了根据一个或多个实施例实现确定设备是否处于网络内部的处理的例示系统。图2图示了根据一个或多个实施例实现确定设备是否处于网络内部的处理的另一个例不系统。图3是示出了根据一个或多个实施例供计算设备用来确定其处于特定网络内部还是外部的例示过程的流程图。图4是示出了根据一个或多个实施例供计算设备用来确定是否可以访问域控制器的例示过程的流程图。图5图示了可以被配置成根据一个或多个实施例来实现确定设备是否处于网络内部的处理的例示计算设备。
具体实施例方式在这里论述的是确定设备是否处于网络内部的处理。计算设备获取网络地址,并且尝试访问特定网络(例如企业网)的资源访问管理器(例如域控制器)。如果计算设备的网络地址处于可被指派给处于特定网络内部的设备的地址范围以内,并且可以访问所述特定网络的资源访问管理器,则计算设备确定其处于该特定网络内部。否则,计算设备确定其处于特定网络外部。在这里将会参考加密、对称密钥密码术(cryptography)、公钥密码术以及公钥/私钥对。虽然这些密钥密码术对于本领域技术人员来说是众所周知的,但是在这里包含了对这种密码术的简要概述来为读者提供帮助。在公钥密码术中,实体(例如用户、硬件或软件组件、设备、域等等)具有与之关联的公钥/私钥对。公钥是可以公开获得的,但是实体会将私钥保密。在没有私钥的情况下,在计算上使用公钥加密的数据是很难解密的。因此,数据可以由任一实体使用公钥来进行加密,并且只能由具有相对应私钥的实体进行解密。此夕卜,用于数据的数字签名可以使用数据和私钥来产生。在没有私钥的情况下,计算上很难创建可以使用公钥核实的签名。通过对公钥、签名以及被签名的数据执行适当的数字签名核实算法,具有公钥的任何实体都可以使用公钥来核实数字签名。另一方面,在对称密钥密码术中,两个实体知道共享密钥(也被称为对称密钥)并将其保密。任何具有共享密钥的实体通常都能对使用共享密钥加密的数据进行解密。在没有共享密钥的情况下,计算上很难对使用该共享密钥加密的数据进行解密。因此,如果两个实体全都知道共享密钥,那么每一个实体都可以加密数据,并且所述加密数据可以被另一个实体解密,但是如果其他实体不知道共享密钥,那么所述其他实体是不能解密该数据的。类似地,具有共享密钥的实体可以对数据进行加密,并且该数据可以被相同的实体解密,但是如果其他实体不知道共享密钥,那么所述其他实体是不能解密该数据的。此外,数字签名可以是基于对称密钥密码术产生的,例如使用带有密钥的散列消息验证码(keyed-hashmessage authentication code)机制。任何具有共享密钥的实体都可以产生和核实数字签名。例如,可信第三方可以基于特定实体的身份来产生对称密钥,然后可以为这个特定实体产生和核实数字签名(例如通过使用对称密钥加密或解密数据)。图1图示了根据一个或多个实施例实现确定设备是否处于网络内部的处理的例示系统100。系统100包括网络102,该网络是通过通信网络耦合在一起的一个或多个设备。通信网络可以包括有线和/或无线通信,并且允许网络102中的多种不同设备与网络102中的其他多种不同的设备进行通信。举例来说,通信网络可以是局域网(LAN)、公共电话网、专用电话网、其他公共和/或专有网络、这些网络的组合等等。网络102包括多种不同的设备,这其中包括一个或多个路由器104、一个或多个实现域名系统(DNS)服务106的设备、一个或多个网关108、一个或多个实现域控制器110的设备以及一个或多个其他设备112。路由器104在网络102的多种不同设备之间路由数据分组或其他信息。网关108管理的是将网络102连接到其他网络(例如因特网)或网络102之外的其他设备。从网络102内部的设备到网络102外部的设备的通信以及从网络102外部的设备到网络102内部的设备的通信是由网关108管理的。DNS服务106将名称解析成网络地址,将特定名称(例如域名)映射成能被别的设备(例如计算设备120)用来访问特定设备或服务的相对应网络地址。这种域名到相对应网络地址的映射也被称为DNS解析。在一个或多个实施例中,DNS服务106实现符合众所周知的DNS协议(例如网络工作组请求注释1034 (1987年11月)以及网络工作组请求注释1035 (1987年11月)中论述的协议)的DNS系统。可替换地,DNS服务106可以实现执行类似功能的其他系统或协议。设备112可以是多种不同类型的设备,这其中包括计算设备,例如台式计算机、月艮务器计算机、膝上或上网本计算机、平板或笔记本计算机、移动站、数据库或其他存储设备、娱乐电器、可通信地耦合到显示设备的机顶盒、电视或其他显示设备、蜂窝电话或其他无线电话、游戏控制台、汽车用计算机等等。设备112还可以是多种不同类型的输入设备,例如扫描仪、相机或其他图像捕获设备等等。设备112还可以是多种不同类型的输出设备,例如打印机、传真机、投影仪或其他显示设备等等。域控制器110是对验证用户(或设备)以及网络102中的设备的访问许可进行管理的资源访问管理器。域控制器110允许用户登录域控制器110并且向所述域控制器110验证其自身,以及获得对于网络102中的一个或多个域以及其他设备集合的访问。虽然在这里论述的用于确定设备是否处于网络内部的技术参考了域控制器(例如域控制器110),但是应该指出,可替换地,其他类型的资源访问管理器也可以用于替换域控制器。这些资源访问管理器可以管理对于不同设备的集合或群组的访问许可,而不用考虑是否将这种集合或群组视为域的一部分。DNS服务106和域控制器110中的每一个通常都在一个或多个服务器上实现,但是可替换地,DNS服务106和域控制器110之一或是这二者也可以在其他类型的设备上实现。DNS服务106和域控制器110可以在相同的设备上实现,或者可替换地也可以在不同的设备上实现。通常,网络102包括多个设备,这其中包括至少一个路由器104、实现DNS服务106的至少一部分的至少一个设备、至少一个网关108、实现域控制器110的至少一部分的至少一个设备,以及至少一个设备112。然而应该指出的是,网络102可以包括任何数量的路由器104、用于实现DNS服务106的至少一部分的任何数量的设备、任何数量的网关108、用于实现域控制器110的至少一部分的任何数量的设备,以及任何数量的设备112。此外还应该指出,并不是所有这些设备都必须包含在网络中(例如,在网络中可以不包含设备112)。另夕卜,应该指出的是,网络102的一个或多个这样的设备可以组合成单个设备。例如,路由器104和网关108的功能可以由单个设备提供。网络102的一个或多个设备通常还会作为动态主机配置协议(DHCP)服务器来工作,从而将网络地址(例如网际协议(IP)地址)指派给网络102中的设备。在例示系统100中,网络102还包括具有网内/网外确定模块122的计算设备120。计算设备120也可以是设备110中的一个。该计算设备120可以是多种不同类型的计算设备,例如台式计算机、服务器计算机、膝上或上网本计算机、平板或笔记本计算机、移动站、数据库或其他存储设备、娱乐电器、可通信地耦合到显示设备的机顶盒、电视或其他显示设备、蜂窝电话或其他无线电话、游戏控制台、汽车用计算机等等。计算设备120通常是很容易移动到网络102内部的不同位置以及很容易在网络102内部的位置与网络102外部的位置之间移动的移动计算设备,例如蜂窝电话或其他无线电话、膝上或笔记本计算机等等。因此,网络102有时可以包括计算设备120 (当计算设备120处于网络102内部的时候),而在其他时候则不包括计算设备120 (当计算设备120处于网络102外部的时候)。虽然在系统100中图示了单个计算设备120,但是应该指出,在网络102中可以包括具有相同或不同设备类型的多个计算设备120。网络102中包含的设备被配置成彼此之间经由通信网络来进行通信。这种设备配置可以在将设备添加到网络102中的时候执行,并且还可以在设备已被包含作为网络102的一部分之后的多种不同时间执行。网关108允许基于特定的策略和/或规则而在网络102包含的设备与网络102不包含的设备之间进行通信。网关108遵循的特定策略和/或规则可以基于网络102的所有者和/或设计人员、网络102的管理员等等而改变。诸如计算设备120之类的计算设备通过连接到网络102来与网络102中的其他设备进行通信。连接到网络102指的是在计算设备与网络102之间建立通信链路。建立通信链路包括下列各项中的一项或多项:为通信设备获取网络地址(例如由网络102的DHCP服务器指派),向域控制器110验证计算设备或计算设备的用户(例如使用用户名和口令,使用数字证书等等),与作为网络102的一部分包含的设备协商协议(例如与路由器104或网关108),与作为网络102的一部分包含的设备(例如网关108)建立安全的(例如加密)通信信
梢坐坐
Λξ, -rj- -rj- ο在计算设备与网络102之间建立通信链路的处理可以由计算设备或别的设备(例如作为网络102的一部分包含的设备)启动。一旦建立了通信链路,则计算设备可以与网络102中的其他设备进行通信(服从网络02中的任何适当访问控制策略)。诸如计算设备120之类的设备可被称为处于网络内部或网络外部。处于网络以内(也被称为处于网络内部)的设备是包含在网络中并且因此能在不必访问网络外的设备的情况下与网络中包含的其他设备进行通信的设备。因此举例来说,路由器104、网关108、设备112、实现DNS服务106的设备以及实现系统100中的域控制器110的设备处于网络102内部,并且被配置成彼此之间经由网络102的通信网络来进行通信,而不必访问网络102外的设备。处于网络102内部的设备可以经由网关108来与不在网络102内部的其他设备进行通信。还应该指出的是,虽然网络102内部的设备彼此之间可以经由通信网络进行通信,但是对于网络102内部的哪些设备可以访问网络102内部的其他哪些设备(或是访问方式)的多种不同访问控制限制也是可以实现的。处于网络以外(也被称为处于其外部)的设备是一个不在网络内的设备。这种设备可以经由该网络的网关来与该网络内部的设备进行通信。因此举例来说,路由器104、网关108、设备112、实现DNS服务106的设备以及实现域控制器110设备可以经由网关108接收来自网络102外部的设备的通信(并且向其发送通信),以及服从网关108使用的策略和/或规则。哪些设备被包括在网络102中可以采用不同的方式定义,并且可以至少部分基于实现网络102的实体和/或网络102的管理员的希望。在一个或多个实施例中,网络102是由DNS服务106服务的设备定义的。网络102内部的设备向DNS服务106提交DNS查询,并且接收来自该服务的DNS响应。网络102外部的设备不能访问DNS服务106(例如,网关108使用的策略和/或规则阻止该设备访问DNS服务106)。在一个或多个其他实施例中,网络102是由能在不通过防火墙(例如由网关108或别的设备实现)进行通信或是没有访问因特网的情况下彼此访问的设备定义的。网络102内部的设备是那些能在没有通过防火墙通信或是接入因特网的情况下彼此访问的设备(月艮从网络102中任何适当的访问控制策略)。经由防火墙或因特网来与网络102内部的设备通信的设备则处于网络102的外部。此外,在一个或多个实施例中,网络102是一个由特定企业实体(例如特定公司,公司的特定部门或单位等等)管理或是为该特定企业实体管理的网络,并且因此被称为公司网。可替换地,网络102可以是其他类型的网络,例如家庭网络,教育网络,游戏网络等
坐寸O在系统100的示例中,计算设备120处于网络102内。然而也有可能出现计算设备120变成处于网络外部的情形。例如,计算设备120可以移动到不同的位置,并且计算设备120在该位置不能以使计算设备120成为在网络102内部的方式来与网络102建立通信链路。应该指出的是,在所有使用计算设备120的地方,计算设备120可以多次在网络102的内部与网络102的外部之间移动。图2图示了根据一个或多个实施例实现确定设备是否处于网络内部的处理的另一个例示系统200。系统200与图1的系统100相似,其包括网络102、一个或多个路由器104、DNS服务106、一个或多个网关108、域控制器110以及一个或多个其他设备112。此夕卜,系统200还包括计算设备120。虽然在系统200中只示出了单个计算设备120,但是应该指出,在系统200中可以包括具有相同或不同设备类型的多个计算设备120。图2的计算设备120是图1的计算设备120。在图1中,计算设备120包含在网络102内部。然而在图2中,计算设备120处于网络102外部,并且经由网关108来与网络102建立通信链路。在计算设备120与网关108之间可以经由多种其他设备或通信网络来建立通信链路,例如经由因特网、经由蜂窝或其他公共网络等等。计算设备120可以基于所述计算设备120确定其处于网络102的内部还是网络102的外部而以不同的方式工作。例如,计算设备120可以基于该计算设备120是否处于网络102的内部来决定是否使用加密通信,计算设备120可以基于该计算设备120是否处于网络102的内部来使能或禁用某个功能,计算设备120可以基于该计算设备120是否处于网络102的内部来允许或拒绝对存储在计算设备120上的文件的访问等等。基于计算设备120是否处于网络102的内部,例如基于计算设备120和/或运行在计算设备120上的软件或固件的设计,计算设备120可以可选地做出其他的多种不同决定或是执行其他的多种不同操作或功能。计算设备120包括用于在任何特定时间确定计算设备120处于网络102的内部还是网络102的外部的网内/网外确定模块122。通常,网内/网外确定模块122是基于计算设备120是否可以访问域控制器110以及计算设备120是否被指派了处于期望地址范围中的网络地址来确定计算设备120处于网络102内部还是网络102外部的。如果计算设备120可以访问域控制器110并且计算设备120被指派了一个处于期望地址范围以内的网络地址,那么网内/网外确定模块122确定计算设备120处于网络102内部。但是,如果计算设备120不能访问域控制器110和/或计算设备120没有被指派处于期望地址范围以内的网络地址,那么网内/网外确定模块122确定计算设备120处于网络102的外部。计算设备120通常从别的设备或服务获取网络地址(例如由DHCP服务器指派),并且使用该网络地址作为计算设备120的网络地址。这里论述的网络地址可以是IP版本4(IPv4)网络地址、IP版本6 (IPv6)网络地址、站内自动隧道寻址协议(ISATAP)地址等等。计算设备120的模块或组件从别的设备或服务获取网络地址。该模块或组件可以是计算设备120的操作系统的一部分、网络接口卡或芯片的一部分、网内/网外确定模块122等等。网内/网外确定模块122获取计算设备120的网络地址。该网内/网外确定模块122可以如上所述从别的设备或服务获取计算设备120的网络地址,或者从计算设备120的另一个组件或模块获取IP地址(其中所述组件或模块从别的设备或服务获取或者先前获取过计算设备120的网络地址)。网内/网外确定模块122检查指派给计算设备120的网络地址,并且确定计算设备120的这个网络地址是否处于期望的网络地址范围以内。所述期望网络地址范围是可以指派给网络102内部的设备的一个或多个网络地址(例如一个或多个可被指派给企业网内部的设备的企业网地址)。网络地址可以采用多种不同的方式指派给网络102内部的设备,例如由网络102的DHCP服务器指派、由网络102的管理员指派等等。网内/网外确定模块122还知道所述期望的网络地址范围是怎样的范围。该网内/网外确定模块122既可以被配置成具有关于期望网络地址范围的指示,也可以从别的设备或服务获取期望网络地址范围的指示,还可以采用别的方式来获取期望网络地址范围的指示。因此,网内/网外确定模块122可以很容易确定计算设备120的网络地址是否处于期望的网络地址范围以内(例如是包含在期望的网络地址范围以内的网络地址)。如果计算设备120的网络地址不在期望的网络地址范围以内,那么网内/网外确定模块122确定计算设备120处于网络102的外部。然而,如果计算设备120的网络地址处于期望的网络地址范围以内,那么网内/网外确定模块122将会检查计算设备120是否可以访问域控制器110。所述网内/网外确定模块122通常会在确定计算设备120的网络地址处于期望的网络地址范围以内之后检查计算设备120是否可以访问域控制器110。可替换地,网内/网外确定模块122也可以在确定计算设备120的网络地址是否处于期望的网络地址范围内部之前(或同时)检查计算设备120是否可以访问域控制器110。网内/网外确定模块122通过尝试与域控制器110取得联系来检查是否可以访问域控制器110。所述网内/网外确定模块122可以通过促使多个不同请求中的一个或多个请求被发送到域控制器110来尝试与域控制器110取得联系,其中举例来说,所述请求可以是要由域控制器110验证的请求,向域控制器110请求信息或数据的请求等等。网内/网外确定模块122可以通过将请求定址到域控制器110的网络地址来促使这些请求被发送到域控制器110 (该网络地址可以是实现域控制器110的设备的网络地址)。模块122可以被配置成具有域控制器110的网络地址,或者可以采用别的方式获取域控制器110的网络地址(例如从DNS服务器或网关108获取)。通过由模块122发送这些请求或可替换地促使计算设备120的别的组件或模块向域控制器110发送这些请求,网内/网外确定模块122可以促使这些请求被发送到域控制器110。网络102内部的设备之间的通信通常是未经加密的,但是,网关108与网络102夕卜部的设备之间的通信有可能是经过加密的。具体地,网关108预期的是对从处于网络102外部且与网络102相连的计算设备120引导到域控制器110的请求会进行加密。网络102外部的设备可以使用加密以多种不同的常规方式来与网关108建立安全信道,其中所述加密包括对称密钥密码术和/或公钥密码术。如果计算设备120的网络地址处于期望的网络地址范围以内,那么网内/网外确定模块122会在尝试与域控制器110取得联系的过程中发送一个或多个未加密(例如明文)请求。所述网内/网外确定模块发送这种未加密请求,不考虑计算设备120实际处于网络102内部还是网络102外部。如果计算设备120处于网络102内部,那么这个未加密请求将会被域控制器110接收,并且该域控制器110将会返回恰当的响应。域控制器110返回的特定响应至少可以部分基于发送至域控制器110的特定请求而改变。如果接收到来自域控制器Iio的响应,则网内/网外确定模块122确定计算设备120可以访问域控制器110。但是,如果计算设备120处于网络102外部,那么所述一个或多个未加密请求将会被网关108接收。网关108被配置成具有一个或多个策略和/或规则,其中之一是从网络102外部的计算设备去往域控制器110的请求是要经过加密的(例如经由安全信道接收)。网关108能够很容易确定请求是否是从网络102外部的设备接收的(例如基于用以接收请求的通信链路)。相应地,如果网关108接收到从网络102的外部的计算设备去往域控制器110的请求,那么网关108不会将该请求提供给域控制器110。所述网关108可以丢弃或以其他方式忽略该请求,或者向从中接收到所述请求的计算设备返回一个表明该请求存在错误或其他问题的指示。因此,如果计算设备120在处于网络102的外部时,在尝试与域控制器110取得联系的过程中发送未加密请求,那么该请求不会被提供给域控制器110,并且不会接收到来自域控制器110的响应。如果没有接收到来自域控制器110的响应,那么网内/网外确定模块122确定计算设备120不能访问域控制器110。因此,如果计算设备120处于网络102的内部,那么计算设备120的网络地址处于期望的网络地址范围以内,并且域控制器110是可以访问的。相应地,网内/网外确定模块122确定计算设备120处于网络102的内部。另一方面,如果计算设备120处于网络102的外部,那么计算设备120的网络地址通常不在期望的网络地址范围以内。相应地,网内/网外确定模块122确定计算设备120处于网络102的外部。然而,即使计算设备120处于网络102的外部,也有可能出现赋予了该计算设备120处于期望的网络地址范围以内的网络地址的情形。这种情形有可能是因为差错、巧合、恶意用户或程序的动作等等引起的。如果计算设备120处于网络102的外部,那么如上所述,域控制器110是不能被访问的(使用未加密请求)。因此,即使计算设备120的网络地址处于期望的网络地址范围以内,网内/网外确定模块122也会确定计算设备120处于网络102的外部。应该指出的是,即使计算设备120可能处于网络102的外部,计算设备120也仍旧可以经由网关108来访问网络102中的设备。因此,如果去往域控制器110的请求是经过加密的(例如经由计算设备120与网关108之间的安全信道发送),那么计算设备120可以访问域控制器110。在一个或多个实施例中,从计算设备120 (或者从网内/网外确定模块122)发送到实现域控制器110的至少一部分的设备的所有请求都是未加密的。因此,即使在计算设备120与网关108之间建立了安全信道,发送到域控制器110的请求也会免于经由安全信道发送或是不经由该安全信道发送。可替换地,在从计算设备120 (或者从网内/网外确定模块122)发送到实现域控制器110的至少一部分的设备的请求中,只有特定的请求是未加密请求。例如,只有发送至域控制器110的DNS和/或轻量级目录访问协议(LDAP)端口(例如用户数据报(M)P)端口 53和传输控制协议(TCP)端口 389)的请求是未加密请求。这些特定的请求会免于经由与网关108建立的安全信道发送,而其他那些从计算设备120(或者从网内/网外确定模块122)发送到实现域控制器110的至少一部分的设备(例如发送到域控制器110的其他端口)的请求则是加密的,并且是经由与网关108建立的安全信道发送的。在一个或多个实施例中,免于经由计算设备120与网关108之间的安全信道发送的请求仅仅在特定数量的时间免于所述发送(例如其间网内/网外确定模块122确定计算设备120处于网络102的内部还是外部的时间)。计算设备120在其他时间发送的请求和/或由网内/网外确定模块122之外的模块发送的请求是不被免于所述发送的,并且因此是经过加密的(例如经由与网关108建立的安全信道发送)。图3是示出了根据一个或多个实施例供计算设备用来确定其处于特定网络的内部还是外部的例示过程300的流程图。过程300可以在软件、固件、硬件或是其组合中实现。过程300是由计算设备执行的,例如图1和2的计算设备120,并且通常由该计算设备上的网内/网外确定模块(例如图1和图2的模块122)执行的。过程300被显示成是一组动作,并且不局限于所显示的用于执行多种不同动作的操作的顺序。过程300是一个供计算设备用来确定其是处于特定网络内部还是外部的例示过程;关于计算设备确定其处于特定网络内部还是外部的处理的附加论述是参考不同的附图而被包含在这里的。 在过程300中,网络地址将被获取(动作302)。该网络地址是指派给实现过程300的计算设备的网络地址,并且可以采用如上所述的多种不同方式获取。执行检查以检查在动作302中获取的网络地址是否处于期望的网络地址范围以内(动作304)。这个期望的网络地址范围是一个或多个网络地址的集合,并且如上所述,这些网络地址可以被指派给特定网络内部的设备。如果网络地址不在期望的网络地址范围以内,则确定实现过程300的计算设备处于特定网络以外(动作306)。如上所述,该确定是由实现过程300的计算设备的网内/网外确定模块做出的。但是,如果网络地址处于期望的网络地址范围以内,那么将会检查是否可以访问用于特定网络的域控制器(动作308)。如上所述,该检查可以通过向处于特定网络内部的域控制器发送多种不同的请求来完成。如果不能访问用于特定网络的域控制器,则确定实现过程300的计算设备处于特定网络的外部(动作306)。但是,如果可以访问用于特定网络的域控制器,那么将会确定实现过程300的计算设备处于特定网络的内部(动作310)。如上所述,该确定是由实现过程300的计算设备的网内/网外确定模块做出的。然后,关于计算设备处于特定网络内部还是特定网络外部的决定可被转发到计算设备的其他多种不同组件或模块或者被使得对于它们而言是可获得的。然后,基于计算设备处于特定网络内部还是特定网络外部,其他这些组件或模块可以继续酌情以各种不同的方式工作。过程300可以按特定的间隔重复进行,这其中包括规则或不规则的间隔。例如,过程300可以大约每五分钟、大约每小时等等执行一次。另举一例,过程300可以响应于特定事件而执行,例如响应于计算设备从节能模式(例如从休眠或冬眠模式中)中恢复操作,响应于检测到(例如通过计算设备的全球定位系统(GPS))计算设备的移动超出阈值数量(例如100码、I英里等等),响应于计算设备的网络接口的建立或移除(例如使能计算设备的网络接口),响应于计算设备确定该计算设备处于新的无线网络范围以内或者不再处于其先前所处的无线网络的范围以内等等。图4是示出了根据一个或多个实施例供计算设备用来确定是否可以访问域控制器的例示过程400的流程图。过程400可以在软件、固件、硬件或是其组合中实现。过程400是由计算设备执行的,例如图1和2中的计算设备120,并且通常是由该计算设备上的网内/网外确定模块(例如图1和2的模块122)执行的。举例来说,过程400可以是图3的动作308。因此,过程400可以是在确定计算设备被指派了期望网络地址范围以内的网络地址之后执行的。所述过程400被显示成是一组动作,并且其不受所显示的用于执行多种不同动作的操作的顺序的限制。过程400是一个供计算设备用来确定是否可以访问域控制器的例示过程;关于计算设备确定是否可以访问域控制器的处理的附加论述是参考不同附图而被包含在这里的。在过程400中,未加密请求被发送至特定网络的域控制器(动作402)。即使计算设备处于特定网络的外部,这个未加密请求也不会经由实现过程400的计算设备与特定网络的网关之间的安全信道发送。执行检查以检查是否接收到来自域控制器的响应(动作404)。如果在阈值数量的时间(例如5秒、20秒等等)以内没有接收到来自域控制器的响应,则确定没有接收到来自域控制器的响应。可选地,动作402和404可以重复多次,其中多个未加密请求会在获取来自域控制器的响应的尝试过程中被发送到域控制器。如果没有从域控制器接收到针对在动作402中发送的请求的响应,则确定不能访问域控制器(动作406)。然而,如果从域控制器接收到了针对动作402中发送的请求的响应,则确定域控制器是可以访问的(动作408)。回到图1和2,应该指出的是,虽然图示了单个网络102,但是这里论述的用于确定设备是否处于网络内部的技术可以与多个不同的网络一起使用。计算设备120可以被配置成具有或以其他方式获得期望网络地址范围的指示以及用于多种不同网络中的每一种网络的域控制器。因此,网内/网外确定模块122在任何特定时间都能够很容易地确定计算设备120处于这些不同网络中任何一个的内部还是外部。此外,应该指出的是,虽然网内/网外确定模块122被显示成是计算设备120的一部分,但是可替换地,网内/网外确定模块122的多种不同功能可以在其他设备上实现。例如,计算设备120可以与一个或多个其他设备或服务进行通信,其中所述其他设备或服务可以是网络102或别的网络的一部分,并且可以执行这里论述的用于确定设备是否处于网络内部的技术的多种不同方面。因此,这里论述的确定设备是否处于网络内部的技术允许计算设备在任何特定时间精确和可靠地确定计算设备是否处于特定网络内部。通过运用域控制器,这里论述的确定设备是否处于网络内部的技术使用了已有的可靠系统来做出判定。域控制器已经作为一个可靠的系统工作,其通过酌情提供复制、备份等来保持域控制器功能的高可用性。因此,不需要构造和保持可用性很高的附加可靠系统来实现这里论述的确定设备是否处于网络内部的技术。更进一步,这里论述的确定设备是否处于特定网络内部的技术是在多种不同类型的网络部署中工作的。例如,这里论述的确定设备是否处于特定网络内部的技术可以与网际协议(IP)版本4 (IPv4)网络地址、IP版本6 (IPv6)网络地址、站内自动隧道寻址协议(ISATAP)地址和机制、其他协议和/或机制、上述各项的组合等等一起使用。这里论述的确定设备是否处于网络内部的技术支持多种不同的使用场景。例如,计算设备可以在“始终启动”访问模式中工作,在该模式中,无论是否移动到在特定网络内部和特定网络外部之间变化的不同位置,计算设备都保持与特定网络(例如企业网)的连接。计算设备可以继续工作,因此在任何特定时间确定该计算设备处于网络内部还是外部,并且基于该判定来酌情采用不同的方式工作。图5图示了根据一个或多个实施例而被配置成实现确定设备是否处于网络内部的处理的例示计算设备500。举例来说,计算设备500可以是图1和2的计算设备120,一个或多个路由器104,网关108,和/或图1和2的设备112,或是实现图1和2的DNS服务106的至少一部分和/或域控制器110的至少一部分的一个或多个设备。计算设备500包括一个或多个处理器或处理单元502,可以包括一个或多个存储器和/或存储组件506的一个或多个计算机可读媒体504,一个或多个输入/输出(I/O)设备508,以及允许多种不同的组件和设备彼此通信的总线510。计算机可读媒体504和/或一个或多个I/O设备508可被包含作为计算设备500的一部分,或者可替换地它也可以耦合到计算设备500。总线510代表若干类型的总线结构中的一种或多种,包括使用了多种不同总线架构的存储器总线或存储器控制器,外设总线,图形加速端口,处理器或本地总线等等。总线510可以包括有线和/或无线总线。存储器/存储组件506代表一个或多个计算机存储媒体。组件506可以包括易失媒体(例如随机存取存储器(RAM))和/或非易失媒体(例如只读存储器(ROM)、闪存、光盘、磁盘等等)。组件506可以包括固定媒体(例如RAM、R0M、固定硬盘驱动器等等)以及可移除媒体(例如闪存驱动器、可移除硬盘驱动器、光盘等等)。这里论述的技术可以在软件中实现,其中指令是由一个或多个处理单元502运行的。应该了解的是,不同的指令可以存储在计算设备500的不同组件中,例如处理单元502中,处理单元502的多种不同缓存存储器中,设备500的其他缓存存储器中(未显示)或是其他计算机可读媒体上等等。此外,应该了解的是,在计算设备500中存储指令的位置是可以随时间改变的。—个或多个输入/输出设备508允许用户向计算设备500输入命令和信息,并且还允许将信息呈现给用户和/或其他组件或设备。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风、扫描仪等等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡等等。在这里,多种不同的技术可以是在软件或程序模块的一般上下文中描述的。通常,软件包括执行特定任务或实现特定抽象数据类型的例程、应用、程序、对象、组件、数据结构等等。这些模块和技术的实现方式可以存储在某种形式的计算机可读媒体上,或是经过此类媒体来传送。计算机可读媒体可以是能被计算设备访问的任何可用介质或媒体。作为示例而不是限制,计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。“计算机存储媒体”包括通过任何用于存储信息的方法或技术实现的易失和非易失、可移除和不可移除媒体,所述信息例如可以是计算机可读指令、数据结构、程序模块或其他数据。计算机存储媒体包括但不局限于RAM,ROM, EEPR0M,闪存或其他存储器技术,CD-ROM,数字多用途盘(DVD)或其他光学存储器,磁带盒,磁带,磁盘存储器或其他磁存储设备,或是其他任何可以用于存储期望信息井能被计算机访问的介质。“通信媒体”通常会将计算机可读指令、数据结构、程序模块或其他数据包含在诸如载波或其他传输机制之类的调制数据信号中。通信媒体还包括任何信息递送媒体。术语“调制数据信号”指的是这样的信号,其ー个或多个特性以将信息编码到信号中的方式被设置或改变。作为示例而不是限制,通信媒体包括诸如有线网络或直接线路连接之类的有线媒体以及诸如声学、RF、红外以及其他无线媒体之类的无线媒体。上述各项的任何组合也都包含在计算机可读媒体的范围以内。一般来说,这里描述的任何功能或技术都可以使用软件、固件、硬件(例如固定逻辑电路)、手动处理或是这些实现方式的组合来实现。这里使用的术语“模块”和“组件”通常代表软件、固件、硬件或是其组合。在软件实现方式的情况下,模块或组件代表当在处理器(例如ー个或多个CPU)上运行时执行指定任务的程序代码。程序代码可以存储在ー个或多个计算机可读存储器设备中,对它的更进一歩的描述可以參考图5来找到。这里描述的确定设备是否处于网络内部的技术的特征是不依赖于平台的,这意味着这些技术可以在具有多种处理器的多种商业计算平台上实现。虽然通过特定于结构特征和/或方法动作的语言描述了本主题,但是应该理解,附加权利要求中限定的主题未必局限于上述具体特征或动作。相反,以上描述的具体特征和动作是作为用于实现权利要求的例示形式公开的。
权利要求
1.一种方法,包括: 获取(302)指派给计算设备的网络地址; 检查(304,308)下列各项中的一项或所有两项:该网络地址是否处于期望的网络地址范围以内,以及是否可以访问用于特定网络的资源访问管理器;以及 如果网络地址处于期望的网络地址范围以内并且可以访问资源访问管理器,则确定(310)计算设备处于该特定网络内部,否则确定(306)计算设备处于该特定网络外部。
2.按权利要求1所述的方法,其中资源访问管理器包括用于特定网络的域控制器。
3.按权利要求1所述的方法,还包括:只有在网络地址处于期望的网络地址范围以内的情况下才检查是否可以访问资源访问管理器,否则,无论是否可以访问资源访问管理器,都确定计算设备处于特定网络外部。
4.按权利要求1所述的方法,其中检查是否可以访问资源访问管理器包括: 促使请求被发送到资源访问管理器; 检查是否从资源访问管理器接收到对该请求的响应;以及 如果从资源访问管理器接收到对该请求的响应,则确定可以访问该资源访问管理器,否则确定所述资源访问管理器是不能访问的。
5.按权利要求4所述的方法,其中无论计算设备处于特定网络内部还是特定网络外部,发送到资源访问管理器的请求都是未加密请求。
6.一种计算设备,包括: 一个或多个处理器(502);以及 一个或多个其上存储了多个指令的计算机可读媒体(504),其中在由所述一个或多个处理器运行时,所述指令促使所述一个或多个处理器: 向特定网络的资源访问管理器发送(402)未加密的请求;以及如果接收到来自资源访问管理器的响应并且该计算设备被指派了处于期望的网络地址范围以内的网络地址,则确定(408)资源访问管理器可被访问并且计算设备处于特定网络内部,否则确定(406)资源访问管理器不能被访问并且计算设备处于特定网络外部。
7.按权利要求6所述的计算设备,其中资源访问管理器包括用于特定网络的域控制器。
8.按权利要求6所述的计算设备,其中仅仅发送未加密请求是:只有计算设备被指派了期望的网络地址范围以内的网络地址,才会发送未加密的请求,否则,无论是否可以访问资源访问管理器,都确定计算设备处于特定网络以外。
9.按权利要求6所述的计算设备,其中发送未加密请求是不管计算设备处于特定网络内部还是特定网络外部都发送未加密请求。
10.按权利要求6所述的计算设备,其中该指令还促使一个或多个处理器向特定网络的网关发送未加密请求,但对发送至网关以访问特定网络中的其他设备的其他请求进行加LU O
全文摘要
获取计算设备的网络地址,并且向特定网络的资源访问管理器发送未加密请求。如果接收到来自资源访问管理器的响应并且计算设备具有处于期望网络地址范围以内的网络地址,则确定计算设备处于特定网络内部。否则确定计算设备处于特定网络的外部。
文档编号H04L29/08GK103095861SQ201110423099
公开日2013年5月8日 申请日期2011年12月16日 优先权日2010年12月16日
发明者A.蒂瓦里, R.K.阿马拉瓦迪, R.潘迪亚, A.贾因 申请人:微软公司