专利名称:系统、终端、方法和计算机程序产品或者与位于网络地址转换器和/或防火墙之后的服务 ...的制作方法
技术领域:
本发明的实施方式一般地涉及用于根据因特网协议(IP )进行通 信的系统和方法,并且更特别地涉及用于与终结网络节点建立IP连 才妾的系统和方法。
背景技术:
例如IPv4之类的因特网协议(IP)的各种版本的局限性之一是 其有限的地址空间。因此,为了节约使用地址,企业和其它管理域 已经采取了使用私有地址的方法。私有地址是IP地址落入 10.0.0.0-10.255.255.255 , 172.16.0.0-172,31.255.255 或 者 192.168.0.0-192.168.255.255范围之内的网络地址。官络内具有相关性。相应地,这样的私有地址通常在私有网络外部是 不可见的。然而,使用私有地址的优点是不同的私有网络可以为其 各自私有网络内的主机分配相同的私有IP地址,而不必考虑任何冲 突。另一方面,当私有网络内^皮分配有私有地址的主才几想要向该发 送主机所在的私有网络之外的主机发送IP数据报时,网络地址转换 器(NAT )可被使用,NAT还可以起到网络地址端口转换器(NAPT ) 的作用。NAT在IP数据报被发送到与该NAT相关联的私有网络以 外之前,将私有IP地址(并且还可能有数据报中的其它选定字段) 转换为公共IP地址。利用NAPT的附加功能,NAT可以进一步将诸 如传输控制协议(TCP )端口或者用户数据报协议(UDP )端口的端 口从私有网络转换到公共网络。类似地,当IP数据报从处于NAT 所关联的管理域之外的主机发送到具有私有地址的主机时,NAT将公共IP地址转换为私有IP地址,并且利用NAPT的附加功能将公共 网络中的端口转换为私有网络中的端口 。除了提供地址和端口转换之外,NAT还可以与作为相关联的私 有网络的安全机制而进行操作的防火墙和/或网关进行通信。在这方 面,防火墙/网关可以操作以提供安全性,这是因为在传入数据报经 过NAT的转换过程之前和/或传出数据报经过NAT的转换过程之后, 防火墙/网关能够使这些数据报合格。而且,通过将私有IP地址转换 为公共IP地址,NAT能够为那些与私有IP地址相关联的主机提供 保密措施。私有网络中私有地址的使用以及私有网络边缘处NAT的使用在 企业内部已经被广泛采用和部署。然而,也存在与NAT的使用相关 联的缺点。在这方面,考虑包含移动网络或者是与移动网络连接或 关联的私有网络,其中移动网络例如是通用分组无线服务(GPRS) 网络。在这种情况下,穿过移动网络进行通信的终结节点,例如移 动终端,一4殳而言可以穿过NAT发起与IPi殳备的分组交换(例如, IP)连接。然而,IP设备通常不能穿过NAT发起与终结节点的类似 分组交换连接。而且,由于终结节点通常缺乏固定IP地址之类的静 态和公共身份,IP设备经常无法向N A T标识出所期待的终结节点。出于多种原因,移动网络通常被配置为阻止IP设备发起与各个 终结节点的分组交换连接。首先,取决于移动网络拓朴,允许到移 动网络内的终结节点的IP连接可能消耗所不期望的大量资源或降低 移动网络的性能,即使在没有IP流量穿过移动网络时也是如此。第 二,如在很多私有网络一样,在移动网络中的终结节点可能多于可 用的IP地址。这样,移动网络可以包括NAT、动态分配的IP地址 和/或私有IP地址。第三,很多移动网络的安全性需求和策略要求阻 止多种IP流量传入移动网络。这样的情况也经常会导致NAT的使 用,特别是在移动网络包括相关联的防火墙/网关时。通常,使用TCP/IP协议族并位于私有网络中的客户端能够与使 用TCP/IP协议族的位于公共网络中的服务器进行联系和连接。反向的连接,也即公共网络中的客户端连接私有网络中的服务器,通常较为复杂并且经常是无法做到的,这是由以下两个原因造成的(1 )因为私有网络内的节点具有私有的、不可路由的IP地址,其对于私 有网络之外的客户端来说没有意义,并且无法被该客户端所使用,以及(2)因为出于安全性的原因,防火墙经常被配置为阻塞所有这样的连接。已经提出了若干方案来解决这个NAT/防火墙穿越的问题。在一 种解决方案中,作为NAT/防火墙进行操作的节点公布与该节点自身 的公共IP地址相关联的端口 ,并且到这个端口的传入连接被转换并 作为传入连接被中继到预期的服务器。而且,很多系统提供的解决 方案使用诸如智能体(agent),代理(proxy)、应用网关、虛拟专 用网络(VPN)网关之类的中间节点。这些方案依赖于配置位于客 户端和服务器之间的一个或多个中间节点(例如NAT、防火墙、VPN 网关、应用网关等)以使其起到中介作用,以此使两个节点之间的 连接成功。虽然这些解决方案支持NAT/防火墙穿越,但其缺点是需 要中间节点来辅助客户端和服务器之间的连接。例如,这些中间节 点 一般是由操作员和/或管理员而不是用户来控制的,这使得由用户 进行的控制很少或者没有。而且,当新的服务器添加到私有网络中 时,为了支持通信,网络管理员或者用户将不得不经常重新配置 NAT/防火墙。因此,期望拥有这样的系统和方法,其支持NAT/防火 墙穿越而不需要对中间网络节点进行特殊配置,也不需要对最终节 点中已存在的客户端和服务器TCP/IP应用进行任何修改。发明内容因此提供了这样的一种系统、终结节点、方法和计算机程序产 品,其支持公共网络中的起始节点通过从该起始节点向私有网络中 的终结节点发送非基于IP的消息来与该终结节点进行通信,由此使 该终结节点发起与该起始节点的基于IP的通信。由于私有网络中 NAT和/或防火墙之后的客户端 一般能够与公共网络中的服务器连接并建立TCP/IP会话,因此这提高了起始节点随时与终结节点进行 通信的能力。只要基于IP的通信会话被建立,两个节点就可以双向 地交换数据,直到它们之间的连接被任何 一 个节点关闭。在这方面,用于与终结节点建立因特网协议(IP)连接的系统包 括起始节点和终结节点。终结节点能够通过非基于IP的通信技术接 收来自起始节点的通信请求,并且能够响应于该通信请求发起与该 起始节点的基于IP的通信。起始节点所使用的非基于IP的通信技术可以选自口头通信、电话、文本消息、射频(RF)通信、短消息服 务(SMS)通信、多媒体消息服务(MMS)通信以及即时消息。通 信请求可以定义起始节点处套接字的互联网协议(IP)地址和端口 号。终结节点还能够使用通信请求所定义的安全性信息来验证该通 信请求的有效性。在一种实施方式中,终结节点还包括应用层、中间件层和系统 层,并且起始节点包括应用层、中间件层和系统层。终结节点还能 够在终结节点的应用层和终结节点的中间件层之间创建虚拟服务器 套接字。起始节点还能够在起始节点的应用层和起始节点的中间件 层之间创建虛拟客户端套接字。起始节点还能够通过非基于IP的通 信技术将通信请求从起始节点的中间件层发送到终结节点的中间件 层。终结节点还能够在终结节点的中间件层和终结节点的系统层之 间创建客户端套接字。起始节点还能够在起始节点的中间件层和起 始节点的系统层之间创建服务器套接字。终结节点还能够在终结节 点的中间件层处接收通信请求,该通信请求定义了起始节点处服务 器套接字的互联网协议(IP)地址和端口号。在一种实施方式中,终结节点还能够通过终结节点处的客户端 套接字接收连接成功消息,通过终结节点处的中间件将连接成功消 息转换为接受成功消息,并在终结节点的虚拟套接字处接收接受成 功消息。起始节点还能够通过起始节点处的服务器套接字接收接受 成功消息,通过起始节点处的中间件将接受成功消息转换为连接成 功消息,并在起始节点的虛拟套接字处接收连接成功消息。起始节点可位于公共网络中,并且终结节点可位于私有网络中。 在一种实施方式中,私有网络具有防火墙和网络地址转换器中的至少一个。除了上述用于建立IP连接的系统之外,本发明的其它方面涉及 用于建立IP连接的相应终结节点、起始节点、方法以及计算机程序产品。
在概括的描述了本发明之后,现在将参考附图,这些附图无需按照比例绘制,其中图1是从本发明的实施方式中受益的通信系统的示意性框图, 该通信系统包括与起始节点、中间节点和终结节点直接或者间接双 向耦合的至少 一个移动网络和至少 一个公共网络和/或私有网络;图2是根据本发明的实施方式的能够作为网络节点进行操作的 实体的示意性框图;图3是根据本发明的实施方式的能够作为移动终端进行操作的 移动台的示意性框图;图4是根据本发明的一种示例性实施方式的与位于NAT和/或防 火墙之后的服务器建立传输级连接的方法的流程图;以及图5是根据本发明的一种示例性实施方式的与位于NAT和/或防 火墙之后的服务器建立传输级连接的系统的功能性框图。
具体实施方式
此后将参考附图更为完整地描述本发明的示例性实施方式,附 图中示出了本发明的优选实施方式。然而,本发明可以通过不同的 形式得以具体化,在此描述的实施方式不应构成对本发明的限制;完全传达给本领域技术人员。相似的标号始终表示相似的元件。尽 管在促进使用TCP的通信方面主要描述了本发明的示例性实施方式,本发明的实施方式还可被用以促进使用例如UDP的其它传输协 议的通信。参考图1,给出了将从本发明的实施方式中受益的一种类型的系 统的说明。本发明的实施方式的系统和方法将主要结合移动通信应 用进行描述。然而应当理解,本发明的实施方式的系统和方法可以 与移动通信产业之内和移动通信产业之外的各种其它应用结合使用。如图所示,系统10包括公共网络12,其例如是因特网之类的公 共因特网协议(IP)网络。公共网络包括多个网络节点,每个节点 通常包括例如服务器计算机、个人计算机、膝上型计算机之类的处 理元件。更特别地,公共网络可以包括一个或多个包括固定终端14 的网络节点,每个节点都能够在公共网络内或是穿过公共网络进行 通信。公共网络12的网络节点还可以包括例如会话发起协议(SIP) 代理的代理16。可以理解,SIP代理能够接收和转发SIP信令消息, 例如发往和/或来自网络节点的SIP信令消息,其中网络节点包括作 为SIP客户端进行操作的固定终端。此外,公共网络12可以包括一个或多个域名系统(DNS)服务 器18。在这方面,每个网络节点通常具有唯一的IP地址,通常为了 便于记忆,该IP地址具有与之关联的主机DNS名称。DNS服务器 能够将主机DNS名称转换为相关联的IP地址,使得网络流量可被 路由到适当的网络节点。正如下文将更加详细描述的,包括任何一 个或多个固定终端在内的任何 一 个或多个的网络节点可以作为起始 节点20进行操作,以穿过公共网络与终结节点进行通信。并且为了 有助于起始节点与终结节点进行通信,公共网络还可以包括一个或 多个包含中间节点22的网络节点,这也将在下文进行更为详细的描 述。除了公共网络12之外,系统10还包括一个或多个例如局域网 (LAN)的私有网络24。类似于公共网络,每个私有网络可以包括 多个网络节点。而且,类似于公共网络12,每个私有网络的网络节点可以包括一个或多个DNS服务器26。与前面类似,私有网络的 DNS服务器能够将主机DNS名称转换为相关联的IP地址,使得网 络流量可被路由到适合的公共或网络节点。私有网络还可以包括一 个或多个包含移动终端32的网络节点,每个节点能够在私有网络内 或是穿过私有网络进行通信。终端32例如可以包括移动电话、便携 式数字助理(PDA)、寻呼机、膝上型计算机、智能卡以及其它类 型的电子系统。除了移动终端之外,私有网络还可以包括例如个人 计算机的固定终端。为了便于终端32接入私有网络,私有网络24可以包括一个或 多个无线接入点(AP)(未示出),每个AP可与一个或多个终端 耦合。在这方面,AP可以包括被配置为例如根据以下技术与终端进 行通信的接入点,这些4支术例如为射频(RF)、蓝牙(BT)、红外 (IrDA)或包括无线局域网(WLAN)在内的多种不同的无线联网 技术中的任何技术,或包括有线技术在内的其它技术。而且,类似 于公共网络,私有网络可以包括起始节点20和/或中间节点22,两 者都将在下文中详细描述。如下文还将描述的,私有网络可以包括 能够通过中间节点与起始节点通信的终结节点36。而且如下文还将 描述的,私有网络的一个或多个终端能够作为起始节点或者中间节 点进行操作。为了便于公共网络12的网络节点和私有网络24的网络节点之 间的通信,每个私有网络还可以包括网络地址转换器(NAT),它 使公共网络和私有网络相互连接。正如在背景技术部分中所说明的, 为了公共网络和相应私有网络之间的通信,每个NAT能够将来自公 共网络的公共IP地址转换为相应私有网络的网络节点的私有IP地 址,反之亦然。可以理解,NAT还可以包括应用级网关(ALG)(未 示出),其能够转换例如嵌入在应用协议数据单元(PDU)中的IP 地址。此外,NAT可以包括针对相应私有网络的防火墙和/或网关或 是与相应私有网络的防火墙和/或网关相关联。如图所示,包括防火墙/网关或是与防火墙/网关相关联的NAT净皮示为NAT/FW28。系统10还可以包括一个或多个移动网络或蜂窝网络30。蜂窝网络可以包括多种不同移动网络中的一种或多种。在这方面,蜂窝网络可以包括多种第一代(1G)、第二代(2G) 、 2.5G和/或第三代 (3G)蜂窝网络中的任意网络,以及/或者多种能够根据本发明的实 施方式进行操作的其它蜂窝网络中的任意网络。例如,每个蜂窝网 络可以包括GSM(全球移动通信系统)、IS-136(时分多址一TDMA)、 IS-95 (码分多址一CDMA) 、 CDMA200、或者EDGE (增强数据 GSM环境)网络。可选地, 一个或多个蜂窝网络可以包括GPRS(通 用无线分组服务)或者基于GPRS(例如,通用移动电信系统一 UMTS ) 的网络。类似于公共网络12和私有网络24,蜂窝网络30也可以包括一 个或多个网络节点。在这方面,每个蜂窝网络的网络节点可以包括 一个或多个移动终端32,其能够在各自蜂窝网络内和/或是穿过各自 的蜂窝网络进行通信。并且如下文所述, 一个或多个移动终端能够 作为起始节点20进行操作,其操作方式例如与公共网络和私有网络 的起始节点相同。而且,如下所述, 一个或多个移动终端能够作为 终结节点36进行操作,如上文所指出和下文将描述的,终结节点36 能够通过中间节点22与起始节点进行通信。尽管起始节点和终结节 点在此被一般地描述为移动终端,但其它实施方式中的起始节点和 终结节点可以是固定终端。在蜂窝网络30中,网络节点还可以包括例如一个或多个SGSN (信令GPRS支持节点)38的一个或多个网络信令支持节点,以及 例如一个或多个GGSN (网关GPRS支持节点)40的一个或多个网 关支持节点。例如,网络节点可以包括第三代合作伙伴计划(3GPP) 的多个规范中所描述的一个或多个SGSN以及一个或多个GGSN。 本领域技术人员可以理解,SGSN能够路由发往和来自移动终端32 的通信,并且当移动终端被包含在与其它网络节点的通信会话中时, SGSN还能够提供到该其它网络节点的连接。另一方面,GGSN能够 使蜂窝网络和私有网络24相互连接。在这方面,GGSN能够执行公知的传统网关操作。应当注意,尽管蜂窝网络可以包括SGSN和GGSN,但蜂窝网络还可以包含其它类似地进行操作的网络节点以用于其它类型的蜂窝网络。现在参考图2,其说明了根据本发明一种实施方式的位于公共网 络12、私有网络24或者蜂窝网络30中的能够作为网络节点(例如, 起始节点20、中间节点22、 NAT/FW28、终结节点36、 SGSN38、 GGSN 40等)进行操作的实体的框图。尽管被示为分离的实体,但 在一些实施方式中, 一个或多个实体可以支持一个或多个网络节点, 这些网络节点在逻辑上是分离的,但是被共同置于一个或多个实体 之中。例如,单一实体可以支持逻辑上分离但被共同放置的起始节 点(例如,固定终端14、代理16、 DNS 18、移动终端32等)和中 间节点。同时,例如如上文指出的,单一实体可以支持逻辑上分离 但是被共同放置的NAT和防火墙/网关。能够作为网络节点进行操作的实体包括用于执行根据本发明的 示例性实施方式的一个或多个功能的各种装置,包括那些在此特别 示出和描述的装置。然而应当理解,在不背离本发明精神和范围的 前提下, 一个或多个实体可以包括用于执行一个或多个类似功能的 可选装置。更特别地,例如如图2所示,实体可以一般地包括与存 储器44连接的例如控制器42、处理器之类的装置,以用于控制实体 的各种功能。控制器还可以与至少一个接口 46或者其它用于发送和 /或接收数据、内容等的装置相连接。存储器可以包括易失性和/或非 易失性存储器,并且通常存储内容、数据等。例如,存储器通常存 储软件应用、指令等,它们被控制器用来执行根据本发明实施方式 的实体操作所关联的步骤。而且,存储器例如通常存储由网络节点发射或者接收的内容。图3示出了根据本发明实施方式的能够作为移动终端32、起始 节点20或者终结节点36进行操作的移动台的功能性框图。应当理 解,所说明并在此后被描述的移动台仅仅是能够受益于本发明的一 种说明性的移动终端类型,因此,其不应被用来限制本发明的范围。尽管为了示例的目的说明并在此后描述了移动台的若干实施方式, 但是其它类型的移动终端,例如便携式数字助理(PDA)、寻呼机、 膝上型计算机或者其它类型的语音和文本通信系统,也能够容易地 应用本发明的实施方式。此外,在其它实施方式中,例如个人计算 机的固定终端也可以替代地用作起始节点和/或终结节点。移动台包括用于执行根据本发明示例性实施方式的一个或更多 功能的各种装置,其中包括那些在此特别示出和描述的装置。然而 应当理解,在不背离本发明精神和范围的前提下,移动台可以包括用于执行一个和更多类似功能的可选装置。更特别地,例如如图3 所示,移动台包括发射器48、接收器50以及分别向发射器提供信号 和从接收器接收信号的装置,例如控制器52。这些信号包括根据可 应用的蜂窝系统的空中接口标准的信令信息,以及用户语音和/或用 户所产生的数据。在这方面,移动台可以能够根据一个或多个空中 接口标准、通信协议、调制类型和接入类型进行操作。更特别地, 移动台可以能够根据多种1G、 2G、 2.5G和/或3G之类的通信协议 中的任何协议进行操作。例如,移动台可以根据2G无线通信协议 IS-136 (TDMA) 、 GSM以及IS-95 (CDMA)进行操作。而且,移 动台例如可以按照2.5G无线通信协议GPRS、增强数据GSM环境 (EDGE)之类的协议进行操作。 一些窄带AMPS(NAMPS)和TACS 移动台也可得益于本发明的实施方式,正如双模式或更高模式的移 动台(例如,数字/模拟或者TDMA/CDMA/模拟电话)应该从本发 明的实施方式中所获益的那样。可以理解,控制器52包括执行移动台的音频和逻辑功能所需的 电路。例如,控制器可以包括数字信号处理器设备、微处理器设备、 以及各种模数转换器、数模转换器和/或其它支持电路。根据这些设 备各自的能力而在它们之间分配移动台的控制和信号处理功能。控 制器因而还包括在调制和传输之前对消息和数据进行巻积编码和交 织的功能。控制器还可以额外地包括内部语音编码器(VC) 52A, 并且可以包括内部数据调制解调器(DM) 52B。此外,控制器还可以包括操作 一个或多个可以存储在存储器中的软件应用的功能。移动台还可以包括用户接口 ,用户接口包括传统耳机或者扬声器54、振铃器56、麦克风60、显示器62以及用户输入接口 ,所有 这些都与控制器52耦合。允许移动台接收数据的用户输入接口可以 包括多种允许移动台接收数据的设备中的任意设备,例如小键盘64、 触摸显示器(未示出)或者其它输入设备。在包含小键盘的实施方 式中,小键盘包括传统数字键(0-9)和相关的键(#, *),以及其 它用来操作移动台的鍵。移动台还可以包括诸如用户标识模块(SIM) 66、可移除用户标 识模块(R-UIM)之类的存储器,其通常存储涉及移动用户的信息 单元。除了 SIM之外,移动台还可以包括其它存储器。在这方面, 移动台可以包括易失性存储器68以及其他非易失性存储器70,它们 可以是可嵌入的和/或可移除的。例如,其它非易失性存储器可以包 括嵌入的或可移除的多媒体存储卡(MMC)、索尼公司制造的记忆 棒、EEPROM、闪存、硬盘或者类似存储器。存储器可以存储被移 动台用来实现该移动台的功能的多条信息和数据的任何信息和数 据。例如,存储器可以存储例如国际移动设备标识(IMEI)码、国 际移动用户标识(IMSI)码、移动台集成服务数字网络(MSISDN) 码之类的标识符,其能够唯一地标识移动台。存储器还可以存储内 容,例如将被传输到起始节点20的或者从起始节点20处接收的内 谷。移动台还可以包括一个或多个用于根据多种不同的有线和/或无 线技术中的任意技术来共享数据和/或从例如其它网络节点的电子设 备获取数据的装置。例如,移动台可以包括射频(RF)收发器72和 /或红外(IR)收发器74,使得移动台能够根据射频和/或红外技术共 享和/或获取数据。而且,移动台例如可以包括蓝牙(BT)收发器76, 使得移动台能够根据蓝牙传输技术来共享和/或获取数据。尽管未被 示出,移动台还可以另外地或可选地能够根据包括局域网(LAN) 和/或无线LAN ( WLAN )和/或其它无线技术在内的多种不同的有线和/或无线网络技术向电子设备传输数据和/或从电子设备接收数据。 如背景技术部分中所指出的,用于支持例如起始节点20的IP设备发起与例如移动终端的终结节点36的IP连接的传统技术忽略 了类似于公共网络12 (例如,因特网)的公共域的局限性,这使得 NAT/FW 28被用以连接公共网络和相应的私有网络24。换言之,这 些技术忽略了可用公共IP地址的局限性。因此,本发明的实施方式 提供了用于与终结节点进行通信的改进的系统和方法,其中终结节 点位于例如蜂窝或其他移动网络的私有网络中。更特别地,本发明 的实施方式提供了一种系统、终结节点、方法和计算机程序产品, 其支持公共网络中的起始节点通过从该起始节点向私有网络中的终 结节点发送非基于IP的消息来与该终结节点进行通信,由此使该终 结节点发起与该起始节点的基于IP的通信。在这方面,起始节点(也 即,客户端)起到类似于服务器的作用,这是因为起始节点等待终 结节点发起传输级连接。类似地,终结节点(也即,服务器)起到 类似于客户端的作用,这是因为终结节点响应于非基于IP的消息而 发起与起始节点的传输级连接。已经提出了多种框架,这些框架通过透明地使用常规(例如, Berkley)套接字应用程序接口 ( API)或是使用虚拟套接字API来为 TCP/IP客户端和服务器应用提供"虛拟套接字"接口。 TCP/IP应用 对这些虛拟套接字的使用类似于或者甚至等同于对常规套接字API 的使用(也即,虛拟套接字对于TCP/IP应用来说可以是透明的)。 然而,这些虛拟套接字除了提供用以使用TCP/IP协议栈来创建端到 端连接的API之外,还提供了支持端到端TCP/IP会话的多个增强服 务。例如,"端到端会话支持"(e2e-SS)服务提供了对端到端移动 性的支持以及应对TCP套接字级别的连接断开的支持。这样的 e2e-SS服务的示例包括MobileSocket (例如参见T. Okoshi, M. Mochizuki, Y. Tobe,和H. Tokuda,杨6〃e5bcA;e/: Tb而油Cow/Zwwoi^ (9/7era"ow /or Java 々/7//ca/7ora, IEEE Int'l Conf. on Computer Comm'ns and Networks (ICCCN), 1999 ) 、 ROCKS/RACKS (例如参见V. Zandy和B. Miller, We歸/e脸/衡A Cow W隱,ACM MOBICOM 2002年9月)、Mobile TCP Socket (例如参见X. Qu, J. Xu Yu,和 R. Brent, ^ M96/7e rC尸Socto, Int'l Conf. on Software Engineering (SE), 1997年11月)以及Migrate (例如参见A. Snoeren,爿 iSws/ow-BosW」n:/z//ec/we/or /她A7 e/ M 6/7/(y,博士学位论文,MIT, 2003年2月)。这些框架可以被表征为通信中间件,因为它们提供支持的方式 是通过将自身插入到最终(也即,起始和终端)节点的应用和本机 系统网络支持之间来辅助不同最终节点的应用层之间的通信,这些 框架或者完全由最终节点或是在最终节点处执行,或者也有可能由 与最终节点 一起进行操作的代理执行。这样的中间件通常能够使用 常规套接字API根据需要而创建、修改和销毁实际网络套接字。这 种创建、修改和销毁对于TCP/IP应用而言是透明的,TCP/IP应用只 看到已经在应用和中间件之间被创建的虛拟套接字。这些框架的一 个性质是这样的框架不需要来自基础设施或者任何中间节点的支 持,而只需要两个最终节点进行协作。本发明的示例性实施方式利 用这样的框架来使得客户端和服务器进行协作,借以解决NAT/防火 墙穿越问题,这通常不需要对应用进行修改或是对任何中间节点进 行特殊配置。中间件可以为TCP/IP应用提供虚拟套接字接口 ,应用可以通过 该接口进行通信。使用虚拟套接字允许销毁和替换实际网络套接字, 这是可能发生的,这也有可能是例如为了应对IP地址改变、连接断 开和TCP到期所必须的。虛拟套接字将TCP/IP应用同网络(也即, 系统)层所发生的事件隔离开。因此,替代由应用打开实际的(真 实的)网络套接字,应用打开到中间件的套接字,该套接字是应用 和中间件层之间的虛拟网络套接字,并且中间件打开与网络(系统) 层的实际网络套接字。由此,中间件可以创建和销毁实际网络连接 而不对应用造成影响,由此将应用层和网络层隔离开。如上所述, 虛拟套接字对于应用可以是透明的,使得对于TCP/IP应用来说,应用就像是通过实际套接字而不是虚拟套接字进行通信一样。在一些 方法中,应用可以感知虚拟套接字,并且中间件控制用于应用的通 信。中间件允许最终节点针对连接断开和其它问题来监控和支持实 际通信连接,并保护应用层的应用不受与通信连接有关的问题的影响,这些问题例如是与移动环境中的TCP连接有关的问题。中间件通常不需要任何来自基础设施或者中间节点的支持。相反地,中间 件驻留在每个最终节点中,用以允许最终节点按照这样的方式进行本上,用于支持通信的智能性从基础实施中被转移到了最终节点中。因此,中间件是用于包括ad hoc场景和没有基础设施支持的场景在 内的传输级连接的适合的解决方案。NAT和/或防火墙之后的服务器建立传输级连接的方法的流程图。本 发明的实施方式使用中间件从起始节点向终结节点发送非基于IP的 消息,由此使终结节点发起与起始节点的基于IP的通信。位于私有 网络中的服务器(也即,终结节点)可以创建服务器套接字(也被 称为监听套接字),用以使服务器能够接收通信请求,并且作为响 应,中间件通常向服务器返回虛拟服务器套接字。参见图4的方框 150。当位于公共网络中的主机的客户端应用("客户端末端',或起 始节点)创建套接字(称为客户端套接字或连接套接字)以连接终 结节点的服务器应用时,中间件向客户端应用返回虛拟客户端套接 字。参见方框152。中间件还将使用常规套接字API在起始节点处创 建实际的服务器套接字(或称监听套接字)。参见方框154。中间件 接下来将使用非基于IP (也称为带外(out-of-band))通信机制(例 如,口头通信、电话、文本消息、射频(RF)通信、短消息服务(SMS) 通信、多媒体消息服务(MMS)通信、即时消息、ad-hoc网络链接、 近距离通信(例如,射频识别)、或者红外链接)将消息发送至起 始节点想要与之通信的节点(也即,位于私有网络中的终结节点)。 参见方框156。该非基于IP的消息通知终结节点,起始节点想要建立TCP/IP连接。该消息通常将包括标识起始节点处服务器套接字(也 即,监听套接字)的信息,例如监听套接字的IP地址和端口号,还 包含建立TCP/IP连接所需的任何其它参数,例如安全性信息(例如, 密码或者公开密钥)。此外,该消息还可以被加密,借以进一步提 高安全性。如果该消息被加密,则起始节点和终结节点通常将被预 配置为共享密钥,以便支持对消息的加密/解密。为了支持起始节点 将非基于IP的消息发送给终结节点,起始节点处的中间件通常将包 含例如交叉参考表的信息,用以将客户端应用所使用的基于IP的标识符(例如,IP地址或者DNS名称)转换为非基于IP的标识符(例 如,电话号码、电子邮件地址、IM屏幕名称),该非基于IP的标识 符可被用以通过相应的非基于IP的通信方法将通信消息发送给终结 节点。交叉参考表例如可以包含DNS名称(客户端应用可以4吏用它 来请求与特定服务器的TCP/IP连接)和相应的移动电话号码(客户 端的中间件可以使用它将SMS消息发送给特定服务器处的中间件) 之间的交叉参考。该消息能够被位于终结节点中的中间件接收。参 见方框158。当接收到该消息后,位于终结节点中的中间件通常将使 用本机套接字API来创建客户端套接字,并且连接起始节点处的服 务器套接字监听。参见方框160。由于TCP/IP连接是由私有网络中 的节点(也即,终结节点)发起的,相对于TCP/IP连接由公共网络 中的节点(也即,起始节点)发起的情况而言,该连接更有可能成 功。起始节点处的中间件继而接受与服务器套接字的连接(通常这 是在一些安全性握手之后)。参见方框162。起始节点处的服务器套 接字通常将接收"接受成功"消息,该消息指明服务器套接字成功 接受了来自客户端套接字的连接请求。参见方框164。由于客户端应 用具有在应用层和中间件层之间打开的(虚拟)客户端套接字,因 此客户端套接字期望接收"连接成功"消息。于是,中间件将把服 务器套接字处所接收的接受成功消息转换为连接成功消息,该连接 成功消息继而被虚拟客户端套接字接收。参见方框166。同时或接近 同时,终结节点处的客户端套接字通常将接收"连接成功"消息,该消息指明客户端套接字的与服务器套接字的连接请求是成功的。 参见方框168。由于服务器应用具有在应用层和中间件层之间打开的(虛拟)服务器套接字,因此服务器套接字期望接收"接受成功" 消息。于是,中间件通常将把客户端套接字处所接收的连接成功消 息转换为接受成功消息,该接受成功消息继而被虛拟服务器套接字接收。参见方框170。 一旦这个过程完成,就建立了基于IP的通信链路,并且TCP/IP数据可以在客户端应用和服务器应用之间进行传输。参见方框172。连接通常将保持为打开,直到它被各节点中的一 个节点所终止。现在参考图5,其说明了根据本发明示例性实施方式的能够根据 图4中详细说明并在上文被讨论的方法与位于NAT和/或防火墙之后 的服务器建立传输级连接的系统的功能性框图。图5的系统80包括 公共网络86中的起始节点82以及私有网络中的终结节点84。终结 节点84位于NAT/防火墙90之后。应当理解,NAT/防火墙90可以 是NAT、防火墙或是两者。起始节点82和终结节点84都包括三个 层应用层92、中间件层94以及系统层96。在应用层92中,起始 节点包含客户端应用98和中间件API 100。中间件API指引控制信 号86通过起始节点中间件102来协调客户端应用的操作。类似地, 在应用层92中,终结节点包含服务器应用114和中间件API 116。 中间件API指引控制信号88通过终结节点中间件118来协调服务器 应用的操作。在起始节点和终结节点处,中间件102、 118都可以包括顶层处 理机(handler) 104、 120,其用以控制与应用层的虚拟套接字通信, 并可以包括默认处理机108、 124,其用以控制通过实际网络套接字 的与网络层的通信。如上所述,在起始节点处,可以在客户端应用 98和中间件102之间建立虚拟客户端套接字112,并由中间件102 建立实际的服务器套接字132。而且,在终结节点处,可以在服务器 应用114和中间件118之间建立虚拟服务器套接字126。中间件102 通常包括NAT和/或防火墙穿越服务106。在虚拟客户端套接字112创建之后,NAT和/或防火墙穿越服务可以指引非IP的通信设备110 传输非基于IP的通信请求消息130。如上所述,非基于IP的通信请 求消息和非IP的通信设备110可以使用任意数目的不同通信方法。 非基于IP的通信消息13 0通常将在终结节点处被相应的非IP的通信 设备128所接收。在接收到非基于IP的通信消息130之后,NAT和 /或防火墙穿越服务122通常将创建实际的客户端套接字134。通常 在一些握手之后,可以在客户端套接字134和服务器套接字132之 间建立传输级通信连接136。根据本发明的 一 个示例性方面,例如网络节点之类的系统的一 个或多个实体所执行的功能可以由各种装置执行,例如包括上文所 讨论的那些单独的和/或在计算机程序产品控制下的硬件和/或固件。 用于执行本发明实施方式的方法的计算机程序产品包括例如非易失 性存储介质的计算机可读存储介质,以及在该计算机可读存储介质 中具体化的软件,该软件包括例如一 系列计算机指令的计算机可读 程序代码部分。在这方面,图4是根据本发明的方法以及程序产品的流程图。 可以理解,流程图的每个步骤以及流程图中步骤的组合可以由计算 机程序指令实现。这些计算机程序指令可以被载入到计算机或者其 它可编程装置上用以产生机器,使得在计算机或者其它可编程装置 上执行的指令创建用于执行流程图步骤中所指定的功能的装置。这 些计算机程序指令还可以存储在能够指引计算机或者其它可编程装置按照特定方式工作的计算机可读存储器中,使得存储在计算机可 读存储器中的指令产生包括指令装置的制品,其中指令装置实现流 程图步骤中所指定的功能。计算机程序指令还可以被载入到计算机 或者其它可编程装置上,使得一系列操作步骤在计算机或者其它可 编程装置上被执行,用以产生计算机可实现的过程,以便使计算机 或者其它可编程装置上执行的指令提供用于实现流程图步骤中所指 定的功能的步骤。相应地,流程图的步骤支持用于执行特定功能的装置的组合,用于执行特定功能的步骤的组合,以及用于执行特定功能的程序指 令装置。还可以理解,流程图的每个步骤以及流程图中步骤的组合 可以通过执行特定功能或者步骤的基于专用硬件的计算机系统实 现,或者通过专用硬件和计算机指令的组合实现。本领域技术人员将会想到很多本发明的修改和其它实施方式, 本发明对于它们同样具有上文说明以及相关附图中所给出的教导的 益处。因此,应当理解,本发明不局限于所公开的特定实施方式, 修改和其它实施方式也意在被包括在所附权利要求书的范围之内。 尽管在这里使用了特定的术语,但它们只在一般的和描述性的意义 上被使用,而不是出于限制的目的。
权利要求
1.一种用于与终结节点建立因特网协议(IP)连接的系统,所述系统包括起始节点;以及终结节点,其能够通过非基于IP的通信技术接收来自所述起始节点的通信请求,所述终结节点还能够响应于所述通信请求而发起与所述起始节点的基于IP的通信。
2. 根据权利要求1中所述的系统,其中,所述起始节点从包括 口头通信、电话、文本消息、射频(RF)通信、短消息服务(SMS) 通信、多媒体消息服务(MMS)通信以及即时消息的组中选择非基 于IP的通信纟支术。
3. 根据权利要求1中所述的系统,其中,所述通信请求定义所 述起始节点处套接字的因特网协议(IP)地址和端口号。
4. 根据权利要求1中所述的系统,其中,所述终结节点还能够 使用所述通信请求所定义的安全性信息来验证所述通信请求的有效 性。
5. 根据权利要求1中所述的系统,其中,所述终结节点还包括 应用层、中间件层和系统层;其中所述起始节点包括应用层、中间 件层和系统层;其中所述终结节点还能够在所述终结节点处的所述 应用层和所述终结节点处的所述中间件层之间创建虛拟服务器套接字;其中,所述起始节点还能够在所述起始节点处的所述应用层和所 述起始节点处的所述中间件层之间创建虛拟客户端套接字;其中,所述起始节点还能够通过所述非基于IP的通信技术将所 述通信请求从所述起始节点处的所述中间件层发送到所述终结节点 处的所述中间件层;其中,所述终结节点还能够在所述终结节点的所述中间件层和所 述终结节点的所述系统层之间创建客户端套接字;其中,所述起始节点还能够在所述起始节点处的中间件层和所述起始节点处的系统层之间创建服务器套接字;其中,所述终结节点还能够在所述终结节点的中间件层处接收所 述通信请求,所述通信请求定义了所述起始节点处所述服务器套接字的因特网协议UP)地址和端口号。
6. 根据权利要求5中所述的系统,其中,所述终结节点还能够 通过所述终结节点处的所述客户端套接字接收连接成功消息,通过 所述终结节点处的所述中间件层将所述连接成功消息转换为接受成 功消息,并且在所述终结节点的所述虚拟套接字处接收所述接受成 功消息;并且其中,所述起始节点还能够通过所述起始节点处的所述服务器套 接字接收接受成功消息,通过所述起始节点处的所述中间件层将所 述接受成功消息转换为连接成功消息,并且在所述起始节点的所述 虚拟套接字处接收所述连接成功消息。
7. 根据权利要求1中所述的系统,其中,所述起始节点位于公 共网络中,并且所述终结节点位于私有网络中。
8. 根据权利要求7中所述的系统,其中,所述私有网络具有防 火墙和网络地址转换器中的至少一个。
9. 根据权利要求1中所述的系统,其中,所述起始节点还能够 将所述终结节点的基于IP的标识符转换为所述终结节点的非基于IP 的标识符;并且其中,所述起始节点还能够使用所述非基于IP的标 识符通过所述非基于IP的通信技术将所述通信请求发送给所述终结节点o
10. —种用于通过因特网协议(IP)连接与起始节点进行通信的 终结节点,所述终结节点包括能够通过非基于IP的通信技术接收来自所述起始节点的通信请 求的处理器,所述处理器还能够响应于所述通信请求发起与所述起 始节点的基于IP的通信。
11. 根据权利要求10中所述的终结节点,其中,所述非基于IP的通信技术从包括口头通信、电话、文本消息、射频(RF)通信、短消息服务(SMS)通信、多媒体消息服务(MMS)通信以及即时 消息的组中进行选择。
12. 根据权利要求10中所述的终结节点,其中,所述通信请求 定义所述起始节点处套接字的因特网协议(IP)地址和端口号。
13. 根据权利要求10中所述的终结节点,其中,所述处理器还 能够使用所述通信请求所定义的安全性信息来验证所述通信请求的 有效性。
14. 根据权利要求10中所述的终结节点,还包括应用层、中间 件层以及系统层;其中,所述处理器还能够在所述应用层和所述中间件层之间创建 虛拟服务器套接字;其中,所述处理器还能够在所述中间件层处接 收所述通信请求,所述通信请求定义了所述起始节点处服务器套接 字的因特网协议(IP)地址和端口号;并且其中,所述处理器还能 够在所述中间件层和所述系统层之间创建客户端套接字。
15. 根据权利要求14中所述的终结节点,其中,所述处理器还 能够在所述客户端套接字处接收连接成功消息,通过所述中间件层 将所述连接成功消息转换为接受成功消息,并在所述虛拟套接字处 接收所述接受成功消息。
16. 根据权利要求10中所述的终结节点,其中,所述终结节点 位于私有网络中。
17. 根据权利要求16中所述的终结节点,其中,所述私有网络 具有防火墙和网络地址转换器中的至少 一个。
18. —种用于与终结节点建立因特网协议(IP )连接的起始节点, 所述起始节点包括能够通过非基于IP的通信技术将通信请求发送给所述终结节点 的处理器,使得所述终结节点能够响应于所述通信请求而发起与所 述起始节点的基于IP的通信。
19. 根据权利要求18中所述的起始节点,其中,所述处理器能够从包括口头通信、电话、文本消息、射频(RF)通信、短消息服 务(SMS)通信、多媒体消息服务(MMS)通信以及即时消息的组 中选择所述非基于IP的通信技术。
20. 根据权利要求18中所述的起始节点,其中,所述通信请求 定义了所述起始节点处套接字的因特网协议(IP)地址和端口号。
21. 根据权利要求18中所述的起始节点,其中,所述通信请求 定义了安全性信息,使得所述终结节点能够使用所述安全性信息验 证所述通信请求的有效性。
22. 根据权利要求18中所述的起始节点,还包括应用层、中间 件层以及系统层;其中,所述处理器还能够在所述应用层和所述中间件层之间创建 虛拟客户端套接字;其中,所述处理器还能够通过所述非基于IP的 通信技术从所述中间件层处发送所述通信请求;其中,所述处理器 还能够在所述中间件层和所述系统层之间创建服务器套接字;并且 其中,所述通信请求定义了所述服务器套接字的因特网协议(IP) 地址和端口号。
23. 根据权利要求22中所述的起始节点,其中,所述处理器还 能够通过所述服务器套接字接收接受成功消息,通过所述中间件层 将所述接受成功消息转换为连接成功消息,并在所述虛拟套接字处 接收所述连接成功消息。
24. 根据权利要求18中所述的起始节点,其中,所述起始节点 位于公共网络中,并且所述终结节点位于私有网络中。
25. 根据权利要求24中所述的起始节点,其中,所述私有网络 具有防火墙和网络地址转换器中的至少 一个。
26. 根据权利要求18中所述的起始节点,其中,所述处理器还 能够将所述终结节点的基于IP的标识符转换为所述终结节点的非基 于IP的标识符;并且其中,所述处理器还能够使用所述非基于IP 的标识符通过所述非基于IP的通信技术将所述通信请求发送给所述 终结节点。
27. —种与终结节点建立因特网协议(IP)连接的方法,所述方 法包括通过非基于IP的通信技术在所述终结节点处从起始节点接收通 信请求;响应于所述通信请求,由所述终结节点发起与所述起始节点的基 于IP的通信。
28. 根据权利要求27中所述的方法,其中,所述非基于IP的通 信技术从包括口头通信、电话、文本消息、射频(RF)通信、短消 息服务(SMS)通信、多媒体消息服务(MMS)通信以及即时消息 的组中进行选择。
29. 根据权利要求27中所述的方法,其中,所述通信请求定义 了所述起始节点处套接字的因特网协议(IP)地址和端口号。
30. 根据权利要求27中所述的方法,还包括在所述终结节点处使用所述通信请求所定义的安全性信息来验 证所述通信请求的有效性。
31. 根据权利要求27中所述的方法,还包括在所述终结节点处的应用层和所述终结节点处的中间件层之间 创建虚拟服务器套接字;在所述起始节点处的应用层和所述起始节点处的中间件层之间 创建虛拟客户端套接字;通过所述非基于IP的通信技术将所述通信请求从所述起始节点 处的所述中间件层发送到所述终结节点处的所述中间件层;在所述终结节点处的所述中间件层和所述终结节点处的系统层 之间创建客户端套接字;以及在所述起始节点处的所述中间件层和所述起始节点处的系统层 之间创建服务器套接字;其中,在所述终结节点处通过所述中间件层接收所述通信请求; 其中,所述通信请求定义了所述起始节点处的所述服务器套接字的 因特网协议(IP)地址和端口号;并且其中,在所述终结节点处通过所述中间件层发起所述基于IP的通信。
32. 根据权利要求31中所述的方法,还包括通过所述终结节点处的所述客户端套接字接收连接成功消息; 通过所述终结节点处的所述中间件层将所述连接成功消息转换为接受成功消息;在所述终结节点处的所述虚拟套接字处接收所述接受成功消息; 通过所述起始节点处的所述服务器套接字接收接受成功消息; 通过所述起始节点处的所述中间件层将所述接受成功消息转换为连接成功消息;以及在所述起始节点处的所述虛拟套接字处接收所述连接成功消息。
33. 根据权利要求27中所述的方法,其中,所述起始节点位于 公共网络中,并且所述终结节点位于私有网络中。
34. 4艮据一又利要求33中所述的方法,其中,所述私有网络具有 防火墙和网络地址转换器中的至少 一个。
35. 根据权利要求27中所述的方法,还包括 由所述起始节点将所述终结节点的基于IP的标识符转换为所述终结节点的非基于IP的标识符,其中所述非基于IP的标识符被用以 通过所述非基于IP的通信技术将所述通信请求发送给所述终结节 点。
36. —种用于与终结节点建立因特网协议(IP)连接的计算机程序产品,所述计算机程序产品包括至少 一个具有存储于其上的计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序 代码部分包括能够通过非基于IP的通信技术在所述终结节点处接收来自起始 节点的通信请求的第一可执行部分;以及能够响应于所述通信请求而由所述终结节点发起与所述起始节 点的基于IP的通信的第二可执行部分。
37. 根据权利要求36中所述的计算机程序产品,其中,所述非 基于IP的通信技术从口头通信、电话、文本消息、射频(RF)通信、短消息服务(SMS)通信、多媒体消息服务(MMS)通信以及即时 消息的组中进行选择。
38. 根据权利要求36中所述的计算机程序产品,其中,所述通 信请求定义了所述起始节点处套接字的因特网协议(IP)地址和端 口号。
39. 根据权利要求36中所述的计算机程序产品,还包括 能够使用所述通信请求所定义的安全性信息在所述终结节点处验证所述通信请求的有效性的第三可执行部分。
40. 根据权利要求36中所述的计算机程序产品,还包括能够在所述终结节点处的应用层和所述终结节点处的中间件层 之间创建虛拟服务器套接字的第三可执行部分;能够在所述起始节点处的应用层和所述起始节点处的中间件层 之间创建虚拟客户端套接字的第四可执行部分;能够通过所述非基于IP的通信技术将所述通信请求从所述起始 节点处的所述中间件层发送到所述终结节点的所述中间件层的第五 可执行部分;能够在所述终结节点处的所述中间件层和所述终结节点处的系 统层之间创建客户端套接字的第六可执行部分;以及能够在所述起始节点处的所述中间件层和所述起始节点处的系 统层之间创建服务器套接字的第七可执行部分;其中,在所述终结节点通过所述中间件层接收处所述通信请求; 其中,所述通信请求定义了所述起始节点处的所述服务器套接字的 因特网协议(IP)地址和端口号;并且其中,所述基于IP的通信由 所述终结节点处的所述中间件层发起。
41. 根据权利要求40所述的计算机程序产品,还包括能够通过所述终结节点处的所述客户端套接字接收连接成功消 息的第三可执行部分;能够通过所述终结节点处的所述中间件层将所述连接成功;肖,t-转换为接受成功消息的第四可执行部分;能够在所述终结节点处的所述虚拟套接字处接收所述接受成功 消息的第五可执行部分;能够通过所述起始节点处的所述服务器套接字接收接受成功消息的第六可执行部分;能够通过所述起始节点处的所述中间件层将所述接受成功消息 转换为连接成功消息的第七可执行部分;以及能够在所述起始节点处的所述虛拟套接字处接收所述连接成功 消息的第八可执行部分。
42. 根据权利要求36所述的计算机程序产品,其中,所述起始 节点位于公共网络中,并且所述终结节点位于私有网络中。
43. 根据权利要求42所述的计算机程序产品,其中,所述私有 网络具有防火墙和网络地址转换器中的至少 一个。
全文摘要
提供了一种系统、终结节点、方法和计算机程序产品,其支持公共网络中的起始节点通过从该起始节点向私有网络中的终结节点发送非基于IP的消息来与该终结节点进行通信,由此使该终结节点发起与该起始节点的基于IP的通信。由于私有网络中NAT和/或防火墙之后的客户端一般能够与公共网络中的服务器连接并建立TCP/IP会话,因此这改进了起始节点随时与终结节点进行通信的能力。只要基于IP的通信会话被建立,两个节点就可以双向地交换数据,直到它们之间的连接被任何一个节点关闭。这样,未经修改的客户端和服务器TCP/IP应用能够穿越NAT/防火墙,而无需对中间节点的配置。
文档编号H04L29/06GK101228771SQ200680027052
公开日2008年7月23日 申请日期2006年6月8日 优先权日2005年6月23日
发明者D·卡洛福诺斯 申请人:诺基亚公司