CN102176727B - 使用针对设备的web服务进行的跨网络漫游及解析 - Google Patents
使用针对设备的web服务进行的跨网络漫游及解析 Download PDFInfo
- Publication number
- CN102176727B CN102176727B CN201110099772.1A CN201110099772A CN102176727B CN 102176727 B CN102176727 B CN 102176727B CN 201110099772 A CN201110099772 A CN 201110099772A CN 102176727 B CN102176727 B CN 102176727B
- Authority
- CN
- China
- Prior art keywords
- address
- nat
- port
- client computer
- destination service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明涉及使用针对设备的web服务进行的跨网络漫游及解析。提供了便于在漫游对等设备之间进行自动化网络地址确定和通信的系统和方法。在一方面,提供了一种网络通信系统。该系统包括用于用当前传输地址更新解析供应器以及用于确定漫游服务地址和端口信息的方法。其它过程包括通过网络地址翻译器和防火墙打开并映射端口,以及结合级联的网络地址翻译器打开/映射端口。
Description
本申请是申请日为2006年4月24日申请号为第200680010303.5号发明名称为“使用针对设备的web服务进行的跨网络漫游及解析”的中国专利申请的分案申请。
背景
网络地址翻译器(NAT)是在传送包时能够翻译数据包的网际协议(IP)地址和TCP/UDP端口号的设备。例如,具有多台连接到因特网的计算机的小型企业网络可以使用NAT以用于这种连接。这种类型的企业通常必须从因特网服务供应器(ISP)获得该网络上用于每个计算机的公共IP地址。然而,采用该NAT,该小企业可以使用专用寻址,并且使该NAT将其专用地址映射到单个或者多个公共IP地址。NAT是对下面需求的组合的常见解决方法:充分利用对因特网的单个连接的使用而不是将多台计算机连接到因特网;使用专用地址;以及在无须使用代理服务器的情况下提供对因特网资源的访问。同时,这些翻译器通过隐藏内部IP地址提供了一种类型的防火墙保护,并且由于不可能与公司的专用域之外的地址冲突从而能够使公司使用更多的因特网IP地址。
NAT技术中的一个主要障碍是存在可以被用于翻译网络通信的多个不同的协议。例如,许多用户或家用系统都使用Cone(圆锥型)、Full Cone(完全圆锥型)或Restricted Cone(限制圆锥型)NAT技术,由此一些路由器可能对于UDP通信的作为Cone NAT运行而对于TCP通信作为对称NAT运行。在公司情形中,更可能与硬件或软件防火墙一起使用对称NAT。目前,为了在不同类型的协议上进行通信,需要强制手动配置来适当地配置NAT以便在以上提及的协议中的一种协议上进行通信。然而,为了在远程应用之间进行通信,许多网络情形可能需要采用一个以上的协议。
在主机从一个网络移动到另一个网络,会出现其它问题,其中主机可能会依赖本地网络分配其网络地址。该地址可能是因特网上的完整的可路由地址,或者也可能是网络地址翻译(NAT)系统背后的不可路由地址。这些主机具有通常被称为动态IP地址或NAT’ed(经过NAT的)IP地址。具有NAT’ed IP地址的设备一般不能接受引入的TCP连接用于服务,除非它们具有某种方法能注册一个由NAT系统为该特定主机服务重新映射的端口。因特网上的另个主机一般不可能利用诸如域名系统(DNS)或服务等常规地址发现手段发现为该服务所分配的地址或所映射的端口。虽然一些服务解决了动态IP的问题(动态DNS),但是它们一般对缓存DNS服务器不起作用,并且它们一般不能解析动态端口号。
概述
为了提供此处所述的一些方面的基本理解,下面给出了简化了的概述。此概述并不是广义的总的描述,也不旨在标出关键的/决定性的元件或者描绘此处所述的各个方面的范围。其唯一目的是以简化的形式给出一些概念,作为后面给出的更细化了的说明的前序。
提供了用于自动地确定和配置漫游或移动网络设备之间的通信能力的系统和方法。通过创建主机可以用于与附加服务信息一起发现相关联的漫游服务的网际协议(IP)地址和端口号的解析服务,减轻了传统系统必须手动配置和预注册大型服务器系统的问题。例如,在设备或组件已经获取了IP地址并且已经通过网络地址翻译器(NAT)映射了端口之后,该设备可以联系各自的解析服务,并因此以自动方式注册其相应的IP/Port(端口)对。也可以利用该解析服务或另一种解析服务自动地/动态地定位感兴趣的其它网络组件。如果需要,该解析服务可以存在于静态IP地址和公知的端口号上,但是也可以包括例如通过公知的或者预定的端口标识使用DYN-DNS(动态域名服务)的动态组件。也可以使用其它解析方法来解析解析服务本身(例如,PNRP可以被用于找出该解析服务)。
可以使用标准DNS或者动态DNS来解析解析服务,并且该解析服务可以任选地利用对等网络解析协议来解析。有意联系漫游主机上的服务的主机通常可以联系解析供应器或服务以便确定漫游设备的最新已知的IP地址和端口。这些移动主机然后可以直接联系那个IP/端口对上的服务。这种方案优于其它可能方案的一个好处在于:它通常不需要中央服务器或因特网基础设施修改。所解决的问题的一个具体示例包括当两个或多个便携式电脑周游世界,其中web服务主机在一个便携式电脑上而web服务客户机在另一个便携式电脑上之时。这些便携式电脑是诸如在一具体示例中为酒店和热点(hotsport)等“公共”网络上的漫游客人。因此,一个便携式电脑具有原材料定价信息,而另一个则使用原材料为销售人员动态地生成销售价格指导。如可以被理解的,例如,可以支持各种应用诸如古董或葡萄酒的前景。该系统的其它方面包括NAT穿越系统和方法,从而在一个例子中,可以穿越级联的NAT组件以便支持各种自动化地址确定和配置。
为了实现前述和相关目的,此处结合下面的说明和附图描述了某些示意性的方面。这些方面指示可以实践的各种方式,并且此处旨在覆盖所有这些方式。当结合附图考虑以下具体说明时,其它优点和新颖特征是显而易见的。
附图简述
图1是示出了网络漫游和解析系统的示意性框图。
图2是示出了解析供应方过程的流程图。
图3是示出了NAT解析过程的流程图。
图4-7示出了用于自动化地址解析确定的示例性系统。
图8是用于客户机系统和服务的示例性发现系统。
图9是示出了适当的操作环境的示意性框图。
图10是样本计算环境的示意性框图。
具体说明
提供了用于在漫游对等设备之间进行自动化网络地址确定和通信的系统和方法。一方面,提供了一种网络通信系统。该系统包括用于用当前主机地址更新解析供应器并且用于确定漫游主机服务地址和端口信息的方法。其它过程包括通过网络地址翻译器打开端口以及结合级联的网络地址翻译器打开端口。
如本申请中所使用的,术语“组件”、“翻译器”、“系统”、“对象”等旨在表示计算机相关实体,硬件,硬件和软件的组合,软件,或者执行过程中的软件。例如,组件可以是,但并不限于,处理器上运行的过程,处理器,对象,可执行文件,执行线程,程序,和/或计算机。作为示例,服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在处理和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或多个计算机之间。还有,这些组件可以从其上存储有各种数据结构的各种计算机可读介质中执行。诸如按照具有一个或多个数据包(例如来自通过信号与本地系统、分布式系统中的另一组件、和/或横跨诸如因特网等的网络与其它系统进行交互的一个组件的数据)的信号,该组件可以通过本地和/或远程过程进行通信。
开始参见图1,示出了自动化漫游和解析系统100。系统100包括网络110(例如,因特网),其中一个或多个漫游设备120可以横跨该网络建立通信。系统100包括用于确定用于设备120的网络地址的解析供应器130和有助于自动化地址确定的发现组件140。事件组件150可以被提供用于当设备120从一个位置移动到另一个位置时根据它们的路由变化来更新解析供应器130或发现组件140。穿越组件160可以被提供用于将设备120与网络110隔离,或者路由来自网络110的地址,或者提供防火墙支持。穿越组件160可以包括按照多个NAT协议进行操作的一个或多个网络地址翻译器(NAT)。这些协议使得能够在一个或多个终端用户应用之间进行通信。
一方面,系统100提供了其中在通常不需要中央服务器或因特网基础设施改变的情况下可以解析相关联的设备120的位置的系统。解析供应器130可以存储例如友好设备名、GUID、公共IP/端口对、NAT隧道期满时间以及路由至设备的端口。设备解析供应器可以在例如通过DNS查询可以到达的静态或动态IP上的公知端口上运行。如果需要,设备120可以向一个或多个设备解析供应器注册其当前位置。解析供应器130通常可以利用来自域名服务(DNS)的友好名进行访问。解析供应器130对传送友好设备名或GUID的地址的请求作出响应。解析供应器130还可以具有访问控制列表(ACL)以用于查询,并且可以通过例如使用客户机和服务器证书、共享机密或其它类型的安全机制的SSL/TLS等安全套接来认证位置更新。
系统100允许在漫游或移动网络设备120之间自动地确定和构造通信性能。通过创建主机可以用于与附加服务信息一起发现相关联的漫游服务的网际协议(IP)地址和端口号的解析服务,减轻了传统系统必须手动配置和预注册大型服务器系统的问题。例如,在设备120或组件已经获取了IP地址并且已经通过网络地址翻译器(NAT)组件160映射了端口之后,该设备可以联系各自的解析服务130,并由此以自动方式注册其相应的IP/Port(端口)对。同样,也可以联系相同或另一解析服务130,以便自动地/动态地定位感兴趣的其它网络组件。如果需要,该解析服务可以存在于静态的IP地址上以及公知的端口号上,但是也可以包括例如通过公知的或者预定的端口标识使用DYN-DNS(动态域名服务)的动态组件。它也可以直接利用PNPR(对等名称解析协议)被定位到DNS网关PNPR或用另一名称被定位到地址解析服务。
解析服务或供应器130可以使用其传送地址的内部数据库解析地址。有意联系漫游主机上的服务的主机通常可以联系解析供应器130或服务,以便确定漫游设备120的最新得知的IP地址和端口。然后,这些移动主机可以直接联系那个IP/端口对上的服务。这种方案优于其它可能方案之处在于,它通常不需要中央服务器或因特网基础设施修改。系统100所解决的问题的一个具体示例是,两个或多个便携式电脑跨不同的位置移动,其中web服务在一个便携式电脑上而web服务客户机在其它便携式电脑上。如可以被理解的,例如,可以支持各种通信应用。其它方面包括NAT穿越系统和方法,从而在一示例中可以穿越级联的NAT组件160以便支持用于该设备120的自动化地址确定端口映射。
图2和3示出了用于漫游设备的自动化地址解析处理。出于解释简洁的目的,虽然按照一系列或多个动作示出并描述了整套方法,但是应该理解和认识到的是,由于一些动作可以按照不同的顺序和/或与不同于此处所示并且描述的其它动作同时进行,所以本主题方法并不为此动作顺序所限定。例如,本领域技术人员将理解,方法可以替换性地由诸如状态图中的一系列相互关联的状态或事件来表示。此外,并非所有示出的动作都需要用于实现如此处所述的方法。
现在参见图2,示出了一种示意性解析供应器处理200。在这一方面,在210示出了用当前主机传输地址更新解析供应器的方法。这包括在220发送消息以更新解析供应器,以及在230向该解析供应器发送参数。例如,在位置事件改变时漫游主机服务使用例如WS-Eventing消息将SOAP消息发送给该解析供应器。在230,这个事件包括,例如,该服务的友好名、GUID、可路由的公共IP/端口对、专用IP/端口对、IP地址租约时间以及NAT隧道租约时间。
在240,提供了确定漫游主机的服务地址和IP端口的方法。这包括在250通过定向WS-发现解析主机地址,以及在260用传输地址匹配来响应该发现请求。在该示例中,为了解析主机的服务地址和端口,客户机主机使用了全局唯一标识符(GUID),并且利用对解析供应器的定向发现实现解析。在260,该解析供应器用包含主机的服务地址的地址和端口信息的解析匹配来进行响应。
图3示出了用于穿越网络地址翻译器的示例性处理300。方法300用于用当前主机地址更新解析供应器以及用于打开级联的网络地址翻译器(NAT)。处理300包括在310自动地发现NAT或防火墙参数,以及在320请求网络地址。据此,在330为漫游设备从设备池中选择地址。在340,解析供应器对具有外部地址的设备作出响应以进行通信,而在350,多个级联的NAT被自动打开。为了示出过程300,可以应用下面的例子。
被隐藏在NAT或防火墙后面的主机应当首先发现它们被与因特网隔离保护了,并且不能接收外部发起的连接。想要获得外部访问的主机应当使用,例如,WS-发现来搜索WSD启用的NAT或防火墙。然后,该主机将从WSD启用的NAT/防火墙请求外部IP地址和端口对。该主机可以向该NAT/防火墙呈递安全凭证,以便证明已被授权接收外部发起的连接。该NAT/防火墙可以从其设备IP池选择网际协议(IP)地址并从池中选择用于该IP地址的端口,并且然后将该端口和IP映射到主机的内部IP/端口对。该NAT/防火墙然后可以,例如在租约时间期间用外部映射的IP地址和端口号响应该主机设备。在350,提供了用于打开级联的NAT的过程。例如,当主机位于级联的两个或多个NAT之后时,较底层的NAT负责执行例如针对上游NAT/FW的WS-发现并请求将该主机的端口和IP地址映射到其外部端口中的一个。依次地,上游NAT/FW可以映射可路由的IP/端口对,并且向该较低的NAT返回那个值。可以使用该主机设备或较底层NAT的凭证来认证打开端口的每个NAT。
图4示出了用于地址解析的示例性系统400。在这个例子中,提供了用于内部网络中的WS存储设备的数码相机客户机410。该相机410按照以下序列将图像直接存储在个人计算机420上:存储服务(WSSS)使用例如基于Web服务的因特网网关设备(IGD)Web服务描述语言来请求外部IP/端口对。然后,WSSS将注册更新发送给可能位于该IGD中的其解析服务。该IGD存储用于WSSS的外部IP/端口和内部IP/端口对,并且IGD发现服务侦听WSSS的解析请求。相机410连接到IGD的外部地址上的发现服务,并且IGD检测源自被本地映射的设备的解析消息。IGD解析至存储服务的内部IP地址和端口号,并且相机410直接连接到便携式电脑420的存储服务。相机410(或任意网络设备)还可以将此复制给打印机服务430或后来的任意其它服务。
接着见图5,示出了外部网络位置解析系统500。在这个例子中,示例性系统500可以操作如下:相机510(或其它漫游设备)连接到IGD的外部地址上的发现服务,并且更新其传输地址信息。存储服务520移动到新的网络,并且更新该IGD上的传输地址信息。相机510与存储服务520进行通信,由此向该IGD发送解析请求。IGD解析至横跨例如因特网的存储服务的公共IP和端口对。然后相机510通过其公共地址及反向NAT直接连接到便携式电脑的存储服务。该存储服务可能需要解析相机,并且可以通过向IGD发送解析消息来实现。
接着见图6,示出了可替换的外部网络定位解析系统600。在该示例中,示例性系统600操作如下:相机610(或其它漫游设备)连接到IGD的外部地址上的发现服务。该IGD解析到存储服务的公共IP和端口对。相机610通过公共地址及反向NAT直接连接到便携式电脑620的存储服务。相机610重复对打印机630(或其它设备)的Web服务的查询,并且通过IGD的公共地址及反向NAT连接到打印机或其它设备。
参见图7,示出了示例性的网络地址翻译器穿越系统700。在该示例中,该系统为WSD设备提供了因特网可路由IP地址和端口,并且为可能位于一个或多个NAT之后该WSD设备提供了那个可路由IP/端口对上的TCP隧道。例如,它可以包括作为WSD客户机和服务器的IGD2(710)和GID1(720),其中IGD0(730)是WSD服务器和发现代理。便携式电脑740从本地IGD(IGD2)710请求外部IP和端口对。IGD2映射一端口,并且从上游IGD1(720)请求外部端口对映射。IGD1映射一端口,并且从上游IGD0(730)请求外部端口对映射。IGD0映射一端口,并且用外部IP地址和端口对以及租约时间来响应IGD1(720)。IGD1将外部IP/端口传输给IGD2(710),IGD2(710)又将该IP/端口对传输给便携式电脑740(或其它计算设备)。现在,该便携式电脑740可以使用外部IP/端口向解析供应器注册其位置。
图8是用于客户机系统和服务的示例性发现系统800。该系统800包括寻求通过发现协议830与一个或多个目标服务820进行通信的一个或多个客户机810。如所示出的,一个或多个探测840可以在客户机810和服务830之间被定向以便建立连接,其中响应于该探测各个消息可以从这些服务被定向。
通常,多点传送发现协议可以被提供用于定位服务820。发现的主要模式是,客户机810搜索一个或多个目标服务820。为了根据目标服务的类型、目标服务所驻留的范围或者两者找到目标服务820,客户机将探测消息840发送给多点传送组;匹配该探测的目标服务直接向该客户机810发送响应。为了根据名称定位目标服务的传输地址,客户机810将解析请求消息发送给同一多点传送组,并且,匹配的目标服务820再次直接向该客户机发送响应。为了使轮询的需要降到最低,当目标服务加入该网络时,它向同一多点传送组发送通告消息。通过侦听该多点传送组,客户机810无需重复探测就可检测最近可用的目标服务。
为了升级至大量的端点,如果在该网络上可以使用发现代理,则可以提供多点传送抑制行为。特别地,当发现代理检测到由多点传送所发送的探测或解析请求时,该发现代理发送对其本身的通告。通过侦听这些通告,客户机检测发现代理,并且转换为使用发现代理专用协议。然而,如果发现代理没有回答,则客户机回到使用此处所述的协议。
为了支持具有类似DHCP、DNS、域控制器、目录等明确的网络管理服务的网络,客户机和/或目标服务可以被配置为行为与此处所规定的不同。例如,另一规范可以规定包含发现代理的地址的公知DHCP记录,并且遵循此规范会要求端点向该发现代理而不是多点传送组发送消息。虽然可以在各种不同过程中提供该配置的专用手段,但是期望任何这种配置都可以允许客户机和/或目标服务在谨慎管理并且自组织的网络之间进行平滑迁移。还可以使用多个发现代理。例如,蜂窝电话可以更新工作发现代理和家用发现代理上的传输地址。解析该蜂窝电话上的定位的客户机也可以使用代理来解析它。
下面示出了用于示例性探测消息的XML例子:
(01)<s:Envelope
(02)xmlns:a=″http://schemas.xmlsoap.org/ws/2004/08/addressing″
(03)xmlns:d=″http://schemas.xmlsoap.org/ws/2004/10/discovery″
(04)xmlns:i=″http://printer.example.org/2003/imaging″
(05)xmlns:s=″http://www.w3.org/2003/05/soap-envelope″>
(06)<s:Header>(07)<a:Action>
(08)http://schemas.xmlsoap.Org/ws/2004/1O/discovery/Probe
(09)</a:Action>
(10)<a:MessageID>(H)uuid:0a6dc791-2be6-4991-9afl-454778al917a
(12)</a:MessageID>
(13)<a:To>urn:schemas-xmlsoap-org:ws:2004:10:discovery</a:To>
(14)</s:Header>
(15)<s:Body>
(16)<d:Probe>
(17)<d:Types>i:PrintBasic</d:Types>(18)<d:Scopes
(19)MatchBy=″http://schemas.xmlsoap.org/ws/2004/1O/discovery/ldap″>
(20)ldap:///ou=engineering,o=examplecom,c=us(21)</d:Scopes>
(22)</d:Probe>
(23)</s:Body>
(24)</s:Envelope>
上面例子中的行(07-09)表示该消息是探测,并且行(13)表示其正被发送给公知的地址[RFC 2141]。因为没有明确的ReplyTo SOAP标头块[WS-寻址],所以对此探测的任何响应将都作为UDP包被发送给探测传输标头的源IP地址和端口。行(17-21)规定了有关该探测的两个约束条件:行(17)约束对实现基本打印类型的目标服务的响应;行(18-21)约束,例如用于工程部门范围内的目标服务的响应。通常,只有同时满足这两个约束条件的目标服务才会作出响应。尽管这个例子中包括两个约束条件,但是并不要求探测包括其任何一个。
下面的XML例子示出了响应于上面的例子中所描述的探测消息的示例性探测匹配。
(01)<s:Envelope
(02)xmlns:a=″http://schemas.xmlsoap.org/ws/2004/08/addressing″
(03)xmlns:d=″http://schemas.xmlsoap.org/ws/2004/10/discovery″
(04)xmlns:i=″http://printer.example.org/2003/imaging″
(05)xmlns:s=″http://www.w3.org/2003/05/soap-envelope″>
(06)<s:Header>
(07)<a:Action>
(08)http://schemas.xmlsoap.Org/ws/2004/1O/discovery/ProbeMatches
(09)</a:Action>
(10)<a:MessageID>
(11)Uuid:e32e6863-ea5e-4ee4-997e-69539dlff2cc
(12)</a:MessageID>
(13)<a:RelatesTo>
(14)uuid:0a6dc791-2be6-4991-9afl-454778al917a
(15)</a:RelatesTo>
(16)<a:To>
(17)http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
(18)</a:To>
(19)</s:Header>
(20)<s:Body>
(21)<d:ProbeMatches>
(22)<d:ProbeMatch>
(23)<a:EndpointReference>
(24)<a:Address>
(25)uuid:98190dc2-0890-4ef8-ac9a-5940995e6119
(26)</a:Address>
(27)</a:EndpointReference>
(28)<d:Types>i:PrintBasic i:PrintAdvanced</d:Types>
(29)<d:Scopes>
(30)ldap:///ou=engineering,o=examplecom,c=us
(31)Idap:///ou=floor2,ou=b42,ou=anytown,o=examplecom,c=us
(32)</d:Scopes>
(33)<d:XAddrs>http://pm-example/PRN42/b42-1668-a</d:XAddrs>
(34)<d:MetadataVersion>75965</d:MetadataVersion>
(35)</d:ProbeMatch>
(36)</d:ProbeMatches>
(37)</s:Body>
(38)</s:Envelope>
上面的探测响应消息中的行(07-09)指示该消息是一探测匹配,行(13-15)指示它是对该示例响应之前的探测消息的响应。由于该探测不具有明确的ReplyTo SOAP标头块,所以行(16-18)指示该响应被发送至该探测的传输标头的源IP地址和端口。行(22-35)描述了单个目标服务。行(23-27)包含用于该目标服务的跨网络接口、传输地址以及Ipv4/v6恒定不变的稳定的唯一标识符。在这种情况下,该值是UUID方案URI,但如果它满足稳定性和唯一性要求,则也可以是传输URI(类似33行中的URI)。行(28)列出了该目标服务实现的类型(参见,例如[WSDL 1.1]),在该示例中,为与该探测匹配的基本打印类型以及高级打印类型。
行(29-32)列出了两个管理范围,一个是匹配该探测,以及另一个专用于特定的物理位置。行(33)表示该目标服务可以到达的传送地址;在该情形中为单个HTTP传送地址。行(34)包含用于该目标服务的元数据的版本;该版本在用于目标服务的元数据改变时递增(包括行28-33)。
为了提供用于所公开的主题的各个方面的环境,图9和10以及后面的讨论旨在提供对可在其中实现所公开的主题的各个方面的适当环境的简要的、一般性说明。以上虽然在运行于一个计算机和/或多个计算机上的计算机程序的计算机可执行指令的一般性环境中描述了该主题,但是本领域技术人员将认识到,也可以结合其它程序模块来实现本发明。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解,可以采用其它计算机系统配置来实施该方法,这些计算机系统配置包括单处理器或多处理器计算机系统、小型计算设备、大型计算机以及个人计算机、手持计算设备(例如个人数字助理(PDA)、电话、表……)、基于微处理器的或可编程消费或工业电子产品等。所示出的各方面也可以在其中由通过通信网络链接的远程处理设备来执行任务的分布式计算环境中实施。然而,即使不是所有的方面,某些方面也可以在单机计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存取设备中。
参见图9,用于实现各个方面的示例性环境910包括计算机912。计算机912包括处理单元914、系统存储器916以及系统总线918。系统总线918将包括但并不限于系统存储器916的系统组件耦接到处理单元914。处理单元914可以是各种可用处理器中的任意一种。双微处理器和其它多处理器架构也可以被用作处理单元914。
系统总线918可以是包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用总线结构的局部总线在内的多种类型的总线结构(多种)中的任意一种,以上各种可用总线结构包括,但并不限于,11位总线、工业标准结构(ISA)、微通道结构(MSA)、扩展ISA(EISA)、智能驱动器电路(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储器卡国际联合会总线(PCMCIA)、插件总线、蓝牙、火线1394以及小型计算机系统接口(SCSI)。
系统存储器916包括易失性存储器920和非易失性存储器922。包含诸如于起动期间在计算机912内各要素之间传送信息的基本例程的基本输入/输出系统(BIOS)被存储在非易失性存储器922中。作为示例而非限定,非易失性存储器922可以包括只读存储器(ROM)、可编程ROM(PROM)、电子可编程ROM(EPROM)、电子可擦除ROM(EEPROM)或闪存。易失性存储器920包括用作外部高速缓冲存储器的随机存取存储器(RAM)。作为示例而非限定,RAM可以诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)以及存储器总线直接RAM(RDRAM)等多种形式得到。
计算机912还包括可移动/不可移动的、易失性/非易失性的计算机存储介质。图9示出了,例如,磁盘存储器924。磁盘存储器924包括,但并不限于,类似于磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒等的设备。此外,磁盘存储器924包括与其它存储介质相分离或组合的存储介质,包括但并不限于,诸如压缩盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写设备(CD-RW驱动器)或数通用盘ROM驱动器(DVD-ROM)等光盘驱动器。为了便于将磁盘存储器设备924连接到系统总线918,通常使用诸如接口926等可移动或不可移动接口。
应当认识到图9描述了用作用户与合适的操作环境910中所描述的基本计算机资源之间的媒介的软件。此软件包括操作系统928。可以被存储在磁盘存储924上的操作系统928用于控制和分配计算机系统912的资源。系统应用930通过被存储在系统存储器916中或磁盘存储924上的程序模块932和程序数据934来利用操作系统928对资源的管理。
用户通过(诸)输入设备936将命令或信息输入到计算机912中。输入设备936包括,但并不限于,诸如鼠标、跟踪球、指示笔、触摸板等定点设备、键盘、麦克风、操纵杆、游戏垫、盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数字视频相机、web相机等。这些以及其它输入设备通过系统总线918经由(诸)接口端口938连接到处理单元914。(诸)接口端口938包括,例如,串行端口、并行端口、游戏端口以及通用串行总线(USB)。(诸)输出设备940使用某些与(诸)输入设备936相同类型的端口。因此,例如,USB端口可以被用于提供到计算机912的输入,以及从计算机912向输出设备940输出信息。输出适配器942被提供用以示出输出设备940中类似于监视器、扬声器以及打印机等一些输出设备940需要专用适配器。作为示例而非限,输出适配器942包括提供输出设备940与系统总线918之间的连接装置的视频卡和声卡。应当注意,诸如(诸)远程计算机944等其它设备和/或设备的系统也提供了输入和输出能力。
,计算机912可以在使用到诸如(诸)远程计算机944等一个或多个远程计算机的本地连接的网络化环境中操作。(诸)远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其它公共网络结点等,并且通常包括关于计算机912所描述的部分或所有要素。出于简洁的目的,远程计算机(多个)944仅示出了存储器存储设备946。(诸)远程计算机944通过网络接口948被逻辑地连接到计算机912,并且然后通过通信连接950物理地进行连接。网络接口948包括诸如局域网(LAN)和广域网(WAN)等通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网/IEEE 802.3、令牌网/IEEE 802.5等。WAN技术包括,但并不限于,点对点链接、如综合业务数字网(ISDN)等电路交互网络及其变体、分组交换网络、数字用户线路(DSL)、802.11G、802.11A/B、802.11N、Zigbee、超宽带、蓝牙、IRDA以及IP/USB。
(诸)通信连接950涉及被用于将网络接口948连接到总线918的硬件/软件。虽然出于说明清楚的目的而将通信连接950示于计算机912之内,但是它也可以位于计算机912的外部。仅出于示例性目的,连接到网络接口948所需的硬件/软件包括,诸如包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器在内的调制解调器、ISDN适配器以及以太网卡等内部和外部技术。
图10是样本计算环境1000的示意性框图。系统1000包括一个或多个客户机1010。(诸)客户机1010可以是硬件和/或软件(例如,线程、过程、计算设备)。系统1000还包括一个或多个服务器1030。(诸)服务器1030也可以是硬件和/或软件(例如,线程、过程、计算设备)。例如,服务器1030可以容纳执行变换的线程。客户机1010与服务器1030之间的一种可能的通信可以采取适于在两个或多个计算机过程之间传输的数据包的形式。系统1000包括可用于便于(诸)客户机1010与(诸)服务器1030之间的通信的通信框架1050。(诸)客户机1010被可操作地连接到可以被用于存储(诸)客户机1010本地的信息的一个或多个客户机数据存储器1060。类似地,服务器(多个)1030被操作地连接到可以被用于存储服务器1030本地信息的一个或多个服务器数据存储器1040。
以上已经描述的内容包括各种示例性方面。当然,不可能为了描述这些方面的目的而描述可以想到的组件或方法的每一种组合,但是本领域普通技术人员会意识到可能存在许多进一步的组合和置换。因此,此处所述的这些方面旨在包含落在所附权利要求的精神和范围内的所有这种改变、修改和变化。此外,对于在具体说明或权利要求中所使用的术语“包括(includes)”的程度而言,该术语旨在以与术语“包括(comprising)”在权利要求中作为过渡词使用时被解释的相类似的方式表示包含性的意思。
Claims (2)
1.一种网络发现系统,包括:
用于处理简单对象访问协议消息以存储至少一个网络设备的地址信息的设备,所述地址信息包括所述简单对象访问协议消息所提供的服务友好名、GUID、可路由的公共地址和端口对、或隧道期满时间中的一个或多个;
用于在客户机和至少一个目标服务之间通信的装置;
用于经由中间发现代理从所述客户机发送探测消息给所述至少一个目标服务的装置,其中所述探测消息包括与所述至少一个目标服务有关的至少一个响应限制;
用于从所述至少一个目标服务接收探测响应消息的装置,所述探测响应消息包括指示所述至少一个目标服务满足所述至少一个响应限制的信息;
用于基于所述客户机和所述至少一个目标服务之间的通信为所述至少一个目标服务确定网络地址和端口信息的装置;以及
用于至少通过以下步骤来打开两个或更多个级联的网络地址翻译器(NAT)的装置:处理所述客户机的访问所述NAT的安全凭证、如果所述客户机被授权则返回用于与所述NAT通信的外部地址和端口信息、以及将所述客户机的外部IP地址和端口信息映射到所述NAT的外部端口。
2.一种由计算设备实现的网络发现方法,包括:
处理简单对象访问协议消息以存储至少一个网络设备的地址信息的设备,所述地址信息包括所述简单对象访问协议消息所提供的服务友好名、GUID、可路由的公共地址和端口对、或隧道期满时间中的一个或多个;
在客户机和至少一个目标服务之间通信;
在经由中间发现代理从所述客户机发送探测消息给所述至少一个目标服务,其中所述探测消息包括与所述至少一个目标服务有关的至少一个响应限制;
从所述至少一个目标服务接收探测响应消息,所述探测响应消息包括指示所述至少一个目标服务满足所述至少一个响应限制的信息;
基于所述客户机和所述至少一个目标服务之间的通信为所述至少一个目标服务确定网络地址和端口信息;以及
至少通过以下步骤来打开两个或更多个级联的网络地址翻译器(NAT):处理所述客户机的访问所述NAT的安全凭证、如果所述客户机被授权则返回用于与所述NAT通信的外部地址和端口信息、以及将所述客户机的外部IP地址和端口信息映射到所述NAT的外部端口。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67461905P | 2005-04-25 | 2005-04-25 | |
US60/674,619 | 2005-04-25 | ||
US11/291,062 US8117340B2 (en) | 2005-04-25 | 2005-11-30 | Trans-network roaming and resolution with web services for devices |
US11/291,062 | 2005-11-30 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800103035A Division CN101501665B (zh) | 2005-04-25 | 2006-04-24 | 使用针对设备的web服务进行的跨网络漫游及解析 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102176727A CN102176727A (zh) | 2011-09-07 |
CN102176727B true CN102176727B (zh) | 2016-12-14 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537374A (zh) * | 2000-09-08 | 2004-10-13 | ��ʮ�����Ӽ����ѽ�˹��˹��˹���� | 短程无线网络环境中位置独立信息包路由选择和安全访问 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537374A (zh) * | 2000-09-08 | 2004-10-13 | ��ʮ�����Ӽ����ѽ�˹��˹��˹���� | 短程无线网络环境中位置独立信息包路由选择和安全访问 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101501665B (zh) | 使用针对设备的web服务进行的跨网络漫游及解析 | |
US8457014B2 (en) | Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system | |
JP4730118B2 (ja) | ドメインネームシステム | |
AU2009304186B2 (en) | NAT traversal method and apparatus | |
US8954603B2 (en) | Communication device and communication method of the same | |
JP2008539672A5 (zh) | ||
US20110055322A1 (en) | Method and system for providing connectivity between clients connected to the internet | |
US20020138596A1 (en) | Method to proxy IP services | |
Ishaq et al. | Facilitating sensor deployment, discovery and resource access using embedded web services | |
CN101809951A (zh) | 协同nat行为发现 | |
US7450585B2 (en) | Method and system in an IP network for using a network address translation (NAT) with any type of application | |
Lee et al. | z2z: Discovering zeroconf services beyond local link | |
US7440466B2 (en) | Method, apparatus and system for accessing multiple nodes on a private network | |
JP2005101890A (ja) | 名前登録仲介装置、名前解決仲介装置、名前解決システム、名前解決方法、名前登録仲介プログラムおよび名前解決仲介プログラム | |
Novo | Making constrained things reachable: A secure IP-agnostic NAT traversal approach for IoT | |
Yu et al. | Traffic identification and overlay measurement of Skype | |
CN102176727B (zh) | 使用针对设备的web服务进行的跨网络漫游及解析 | |
KR101710033B1 (ko) | 유동 ip기기 간 상시 연결성 유지 방법 및 이를 위한 장치 | |
AU2013300091B2 (en) | Method and apparatus for using rendezvous server to make connections to fire alarm panels | |
WO2008069504A1 (en) | Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system | |
KR100761984B1 (ko) | 자국어 인터넷주소의 처리방법 및 이를 실행시키기 위한프로그램을 기록한 기록매체 | |
Eddy et al. | Location management in a transport layer mobility architecture | |
Haase et al. | STUNT Enhanced Java RMI | |
KR20020036994A (ko) | 사설망 내부에 위치하는 웹 서버로의 접근을 지원하는사설 웹호스팅 방법 및 서비스 | |
Murtadha | Design and Implementation of Internet Protocol Based Geolocation System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150723 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant |