能够连接到具有本地地址域的网络的方法及系统的制作方法

文档序号:7892670阅读:232来源:国知局
专利名称:能够连接到具有本地地址域的网络的方法及系统的制作方法
技术领域
本发明主要涉及网络通信,更具体地涉及在不同地址域的网络之间提供连接。
背景技术
在网络通信中,通常需要在不同网络之间提供连接,特别是具有不同地址域的网络之间。例如,当处于专用网中的节点需要连接公用网中的主机时通常会出现这种情况。专用网通常具有在该网之外不能使用的内部地址,出于保密的原因或者只是因为内部地址在网络外部使用时无效。其它例子包括不同公共域的网络之间、以及不同专用网络之间的连接。
随着互联网、企业内网以及其它网络这样的互联网协议(IP)网络的爆炸性发展,当前版本的IP协议,IPv4,所提供的有限的IP地址空间变成了真正的挑战。32比特的地址域可以指定232种不同的地址,这大约是40亿个全球唯一的地址。下一版本的IP协议IPv6将具有128比特的地址域,因此提供了实际上无限多的全球唯一的IP地址。其挑战是只有有限数目的IPv4地址可供运营商用于它们的新网络,而IPv6只被互联网内很有限的一些节点所支持。而且,包括互联网子网在内的很多旧的网络在未来的很多年内很可能还将使用IPv4或更老版本的IP协议。
对于移动或蜂窝网络来说,电信制造商和运营商面临着在2.5和3G网络内部署支持预计很大数目的应用IP的移动终端的巨大挑战。当在不久将来开始大规模部署2.5和3G网络时,IPv4地址空间显然不能满足需要。现在,为新蜂窝网络申请地址范围的网络运营商得到的地址空间远小于预期的用户数。其比例可能低到预期的上百万注册用户只有几千个地址。
为了满足地址的需要,电信制造商正在敦促IPv6引入终端作为标准协议在下一代的蜂窝网络内使用。IPv6的全面应用自然会解决地址空间的问题,但是不幸的是,IPv6还没有在互联网中广泛应用,预计这个推广过程会相当慢,至少在近期会如此。由于IPv6没有在互联网中使用,制造商们将不得不使用在不同网络之间提供连接的过渡方案。
有一些现有的方案,既扩展了地址域又在不同地址域之间翻译。这些方案将在下面简单地概述,主要针对在工作于IP协议的专用和公共网络之间提供连接性的问题。
参考

图1,一个专用域是指定给主机的地址在互联网内并不唯一的主域,或者虽然唯一但是由于某种原因它们对公共域来说是隐藏的。一个常见的例子是,当专用域主机的数目超过为专用网10指定的公共地址数时,例如根据RFC1918中的规定,在专用网10中为主机指定了专用地址[a.a.a.a]到[a.d.d.d],使多个主机能够共享一个或一些公用的IP地址。由于没有指定的实体协调专用地址的使用,这些地址可能出现在世界的很多地方,因此通常不是唯一的而且不能在公共域中使用。为了使专用主机能够访问公共域网络20,可以利用网关30使多个专用主机共享一个或一些公共IP地址[x.x.x.x]到[x.x.x.z]以便接入公共域。因此网关30提供了将专用域内的主机连接到公共域的必要机制,特别是当专用主机的数目大于可以提供的公共IP地址数的时候。
网络地址翻译机(NAT)现有的扩展例如IPv4地址空间这样的地址域的方案一般基于所谓的网络地址翻译机(NAT)网关,它将专用地址翻译成公共地址,反之亦然[1]。不同特点的NAT的共同之处是它们都隐藏专用地址并复用公共地址,使专用域中的主机和公共域中的主机之间能够通信。
传统的NAT传统的NAT网关通常使用一组公共IP地址,在每次会话中指定给单个的专用节点。当专用域内的主机需要联系诸如互联网这类的公共网内的主机时,NAT将公共地址[x.x.x.x]到[x.x.x.z]中的一个指定给该专用主机。然后NAT用该公共地址重写输出分组IP字头中的发送地址,这样公共互联网中的相应主机就会认为该分组来自于公共指定的IP地址。当公共主机向这个公共指定的地址发回分组时,NAT用专用地址重写IP字头中的目标地址,这样分组就被正确地导入专用域。
这种在两个域之间翻译的方法很简单,但是有两个缺点,其它方法则试图解决这两个缺点。其一,它不允许公共互联网内的主机连接专用域内的主机,其二,它不能很好地扩展,因为每次专用主机需要连接到公共域主机时,整个公共IP地址都保留给了该主机。
网络地址端口翻译(NAPT)NAPT减轻了可扩展性的问题,它使多个专用域主机能够共享单个IP地址。这是通过将传输协议端口信息包括在翻译过程中而实现的。当专用域中的主机需要连接公共域中的主机时,网关在公共域接口上为该连接指定一个空闲端口,并将最初的以及指定的端口以及IP地址一起用于翻译。这样NAPT网关可以在多个专用主机之间共享单个IP地址。
例如,考虑需要连接公共互联网上主机[d.d.d.d]的主机[a.a.a.a]。当第一个到主机[d.d.d.d]的分组到达NAT时,它在接口上、也就是公共IP地址[x.x.x.x]上为连接指定一个空闲端口,将发送地址从[a.a.a.a]改写为[x.x.x.x],发送端口号改写为指定的端口号。当接收端响应时,目标地址是[x.x.x.x],端口是指定的端口号。当这个分组到达NAPT网关时,它用[a.a.a.a]改写目标地址,用原来的端口号改写目标端口号。
因此,NAPT在扩展性上优于传统的NAT,但是公共域内的主机仍然不能发起到专用域内主机的会话。
双向NAT双向NAT使公共互联网上的主机能够联系到专用域内的主机。这是在结合了双向NAT的域名服务器(DNS)中引入特殊的应用层网关(ALG)而实现的。ALG能够将专用域主机完全合法的域名(FQDN)解析到指定的公共域地址。ALG能够将对应于FQDN的专用域地址翻译为公共域地址,反之亦然。双向NAT允许公共互联网内的主机与专用域内的主机通信,但是主机和公共IP地址之间存在一对一的映射,当公共IP地址很少时可扩展性很差。
域特定的IP(RSIP)RSIP采取与NAT不同的方法提供不同域之间的连接[2、3]。RSIP使用能够看到不同域并且能够区分两个域的特殊节点。
一般来说,RSIP使用两个实体,RSIP服务器和RSIP客户端。RSIP服务器出现在两个域中而且能够在域之间提供路由器功能。它也可以是为专用主机分配公共地址的节点。RSIP客户端是专用域内的节点,当与专用主机通信时能够临时使用公共地址。因此,当专用和公共域之间通信时RSIP使双方都使用公共地址,而且不进行任何地址翻译。
这种方案的好处是不需要在应用程序中实施ALG,因为公共域地址也用于专用客户端。但是,普通的RSIP不允许公共域发起的连接。
有两种类型的RSIP,即域特定地址IP(RSA-IP)和域特定地址及端口IP(RSAP-IP)。
域特定地址IP(RSA-IP)当与公共域通信时为RSA-IP客户端指定一个公共IP。这个过程是一对一映射,因此在客户端释放之前,其它主机不能使用该地址(所谓地址精细度)。分组通常是隧道式穿越专用域到达RSA-IP服务器或者可以端到端地进行隧道穿越。
域特定地址及端口IP(RSAP-IP)RSAP-IP的操作类似于RSA-IP,区别是为RSAP-IP客户端指定公共IP地址以及有关的端口(所谓端口精细度)。用这种方法,几个RSAP-IP客户端可以共享公共IP地址。如果公共主机端接该隧道,复接是通过为指定端口增加IP隧道和附加的传输字头作为标识符来实现的。如果RSAP-IP服务器端接该隧道,那么复接基于目标地址及端口。
NAT-PT另一种类型的NAT,所谓NAT-PT,在IPv4和IPv6之间增加了特殊的协议转换。NAT-PT有三种类型,分别是标准NAT、NAPT和双向NAT。双向NAT-PT支持公共域发起通信,但是公共IP地址和专用域主机是一对一映射。尽管如此由于可用的公共IPv4地址的数目有限,这种方案的可扩展性不是很好。
通常,公共域发起的通信通过手动而且静态地启动,即配置网关,使带有给定目标地址和端口的内部分组转发到专用域中的某个节点。这种方案通常称为静态端口映射。
专用域和公共域之间的桥接也可以在会话层上实现,例如[4]中的描述。
显然,网关可以支持的并发流的数目是有限的,建立由公共域中节点发起的连接的机制也是有限的。

发明内容
现有机制没有一种能够满足在未来网络中支持大规模布署大量应用IP的终端的需要,或者更一般地说,在不同地址域网络之间有效提供连接的需要。
本发明克服了现有技术装置的这些以及其它的缺陷。
发明的主要目的是提供一种改进的方案,以便在不同地址域网络之间提供连接。
特别重要的是提供了扩展性的增强,例如通过有限数目的可用公共地址能够支持大量的专用节点。换言之,改进通信网关的复接特性是特别希望的。
发明的又一目的是提供对灵活的所谓外部域发起的通信的稳定支持,例如对公共域发起的连接。
发明的另一目的是提供一种改进的方法及系统,在外部地址域和内部地址域之间通过中间网关建立连接。
发明的一个特定目的是提供一种改进的网关系统,能够有效地在不同地址域之间提供连接。
发明的又一目的是提供一种网关资源管理器,支持增强的可扩展性及/或有效而灵活的外部域发起的通信。
发明所要满足的这些以及其它的目标由所附的专利权利要求所定义。
本发明主要关心的是在两个不同地址域之间提供连接的问题,这两个地址域通常指内部域和外部域,做法是通过中间网关建立连接。网关通常具有多个外部域网关地址,能够在外部域中代表内部域节点。通常,内部域是专用地址域,而外部域是公共地址域。但是,内部域和外部域都可以是不同的专用地址域,或者两个域都是不同的公共域。
在这方面,以灵活而有效的方式允许外部域发起的连接是有挑战性的。不论是内部域发起还是外部域发明的通信,能够使用有限数目的外部域地址通过网关支持尽可能多的连接也是有挑战性的。
根据发明第一方面的一个基本思想是针对每个新连接,由相应外部节点发起的各个用户-资源标识符的查询触发,动态地建立新网关连接状态,这样就能够支持灵活的外部域发起的通信。
优选地,需要发起到内部节点的新连接的外部节点准备一个用户-资源标识符查询,例如DNS(域名服务器)查询或者类似东西,传递到中央分配或寻址机制,根据查询中包括的内部节点标识符确定内部域网络地址信息。来自外部节点的标识符查询还包括预定的连接信息,例如外部节点地址信息以及/或内部节点端口信息。这种来自标识符查询的预定的连接信息可能会被用做识别外部域网关地址的根据,该网关地址适合在外部节点和内部节点之间通过该网关建立新的动态网关连接状态。随后,至少是部分地根据所识别的外部域网关地址、来自标识符查询的预定的连接信息以及内部域网络地址信息,建立新的动态网关连接状态。这样,本发明就提供了对动态的外部域发起的通信的支持。
用户-资源标识符查询的例子包括DNS查询、SIP协议(会话发起协议)的URI(通用资源标识符)查询或者类似的专用协议查询,例如多媒体通信、文件共享或计算机游戏的专用对等协议。
对于外部域发起的连接,动态网关连接状态通常、但并不一定以两步建立。首先,根据所识别的外部域网关地址、来自标识符查询的预定的连接信息以及内部域网络地址,产生部分完整的网关连接状态。当收到来自外部节点的分组时,根据该分组所关联的补充连接信息,将部分完整的网关状态转换成完整的网关连接状态。通常将所识别的外部域网关地址通知外部节点,以便允许通信流中的最初分组传入该网关。
用于识别合适的外部域网关地址的预定连接信息可以是与主叫外部节点有关的外部网地址。在这种情况下,完成网关连接状态的补充连接信息最好包括与内部节点有关的端口号以及与外部节点有关的端口号。
作为替换或补充,已经认识到在来自外部节点的标识符查询中可以包括内部节点侦听输入分组的端口、预定端口或通过信令使外部节点已知的端口的信息。这种内部节点端口信息则可以用于识别外部域网关地址。在这种情况下,完成网关连接状态的补充连接信息通常包括与外部节点有关的外部网地址以及有关的端口号,或者至少包括外部节点端口号。
最好是将建立新的外部域发起的连接的任务在发送主叫标识符查询的外部节点、标识符到地址翻译器、网关资源管理器以及实际网关之间做功能划分。网关资源管理器通常负责这些信息例如确定的与有关内部节点对应的内部域网络地址以及最初包括在标识符查询中的预定的连接信息,并负责识别用于根据这些信息建立新的动态网关连接状态的合适的外部域网关地址。网关资源管理器最后向网关发送建立动态网关连接状态的状态建立请求。
根据发明第二方面的基本思想包括,在建立新的动态网关连接状态过程中智能地利用附加的复接信息,使网关能够同时支持的连接数能够显著增加。附加的复接信息通常是预定的连接信息,包括网络地址信息及/或端口信息,而且主要目的是根据给定的地址及/或端口信息识别包括外部域网关地址在内更多的连接信息。更具体地,其思想是识别更多的连接信息,与预定的连接信息一起定义一种在预定的一组现有网关连接状态中找不到对应的外部域网关状态的表示。外部域网关状态表示的意思是整个网关状态表示中的外部域部分。
对于外部域发起的连接,识别更多的连接信息的过程最好针对识别外部域网关地址来进行,该地址结合预定的连接信息定义了一种在任何现有的部分完整的网关连接状态中没有对应的部分完整的外部域网关状态表示。例如,预定的连接信息是从上面所示的标识符查询中提取的。一旦已经识别出了网关地址,那么根据外部域网关地址和预定连接信息所定义的部分完整的外部域表示,就可以建立网关连接状态。相比任何现有技术装置,附加的复接信息,例如外部节点地址信息及/或内部节点端口信息,可以用于区分更多数目的并发连接。上面增加网关的复接特性的过程通常需要与网关中现有的部分完整的网关连接状态比较。这种比较可以通过与网关直接相关的网关资源管理器执行,按照需要以及在需要的时候从网关中请求并提取部分完整的网关状态。但是,为了减少网关和资源管理器之间的信令,最好在资源管理器中维护一个已有的部分完整的网关连接状态的单独的列表表示,或者资源管理器至少可访问该列表表示。
得到通过网关支持更多数目并发连接的类似方法也可以用于内部域发起的连接。这里的思想是根据包括外部节点地址信息及/或外部节点端口信息在内的预定的连接信息识别包括外部域网关地址在内的更多连接信息,这些信息与预定连接信息结合定义一种在任何现有的网关连接状态中没有对应的至少是部分完整的外部域网关状态表示。然后可以根据所产生的外部域表示开始建立连接。
对于内部发起的连接,增加网关复接特性的过程通常需要与所有现有的网关连接状态比较,不象外部域发起的连接那样只针对部分完整的网关状态。
对于基于地址和端口翻译的所谓替代类型的网关,要识别的更多的连接信息除了外部域网关地址以外,也可以包括有关的网关端口信息。在这种情况下,所得到的外部域表示是完整的外部域表示,与相应的内部域表示一起完整地定义了通过网关的新连接。
另一方面,对于所谓的中继类型的网关,其网关状态的内部域表示可能是一种虚拟的点对点接口,所得到的外部域表示只能是部分完整的表示,这种表示构成了产生部分完整的网关状态的基础。在这种情况下,当从内部节点收到分组时,通常的建议是检查部分完整的表示与接收分组所关联的内部节点端口信息的进一步结合是否定义了唯一完整的外部域表示,该表示可以用于使网关连接状态完整。
发明所提供的复接好处是真正重要的,相比任何现有技术方案可以得到对相当大量的并发连接的支持。实际上,本发明及其提供的好处甚至可以使IPv6的加快引进变得完全不必要。
从各方面而言,本发明都是可用于本领域已知的任何恰当的通信网关的,从基于NAT的网关、或者更一般的替代类型的网关到基于RSIP的网关、或更一般的中继类型的网关。
发明提供了如下优点动态、灵活而且有效的外部域发起的通信。
在建立外部域发起的连接的整个过程中,有效地利用了用户-标识符查询,例如DNS-查询。
改进的网关复接特性。
相比现有技术网关,通过该网关可以支持更大数目的并发连接,既针对外部域也针对内部域发起的连接。
增强的可扩展性,例如通过了有限数目的可用公共地址可以支持大量的专用节点。
通常可用于大多数类型的网关。
本发明所提供的其它优点在阅读发明实施例的如下描述时将会得到理解。
附图的简单描述本发明及其更多的目标和优点通过结合附图参考如下描述将会得到最佳理解,其中图1是说明互连专用网和公共网的网关的示意图;图2说明在内部域网络和外部域网络之间提供连接性的示范网关的基本模型;图3是根据本发明的优选实施例,一种能够支持灵活的外部域发起的通信的方法的示意流程图;图4是根据本发明的优选实施例,一种改进外部域发起的通信的网关复接特性的基本方法的示意流程图;图5是根据本发明的优选实施例,一种改进内部域发起的通信的网关复接特性的基本方法的示意流程图;图6是示范网关系统的示意图,包括网关和有关的网关资源管理器,能够对改善网关复接特性提供有效的支持;图7是一个示意顺序图,说明在通过替代类型网关的内部域发起的通信的说明性例子中,参与单元之间的有关信令;图8是一个示意顺序图,说明在通过中继类型网关的内部域发起的通信的说明性例子中,参与单元之间的有关信令;图9是一个示意图,说明根据本发明的优选实施例能够支持灵活且有效的外部域发起的连接的整个系统的例子;图10是一个示意顺序图,说明在通过替代类型网关的外部域发起的通信的说明性例子中,使用有效复接的外部节点地址信息,参与单元之间的有关信令;图11是一个示意顺序图,说明在通过替代类型网关的外部域发起的通信的说明性例子中,使用有效复接的内部节点端口信息,参与单元之间的有关信令;图12是一个示意顺序图,说明在通过中继类型网关的外部域发起的通信的说明性例子中,使用有效复接的外部节点地址信息,参与单元之间的有关信令;
图13是一个示意顺序图,说明在通过中继类型网关的外部域发起的通信的说明性例子中,使用有效复接的内部节点端口信息,参与单元之间的有关信令;图14是一个示意框图,说明根据本发明的一个特定实施例,一个在不同地址域的节点之间提供连接性的系统的实现例子;以及图15是一个示意框图,说明根据本发明的另一个特定实施例,一个在不同地址域的节点之间提供连接性的系统的实现例子。
发明实施例的具体描述在所有附图中,相同的参照号用于相应或类似的单元。
一般概述一般而言,需要在不同地址域之间提供连接性,更一般的是指外部域和内部域之间。为了这个目的,通常要提供一个具有很多外部域网关地址的中间网关,能够在外部域表示内部域节点。在很多实际的应用中,内部域是专用地址域[5],而外部域是公共地址域。但是在其它应用中,内部域和外部域可能是不同的专用地址域,或代之以不同的公共域。
在这点上,公共域网络通常是这样一种网络,具有通信节点以及由全球唯一的网络地址组成的有关的网络地址空间。相反专用域网络则是具有节点以及由可能非唯一的网络地址组成的有关的网络地址空间的网络,其意义在于在不同的专用域场合中可能分配相同的网络地址。
网关通常是一种连接到内部域和外部域的网络单元。正如前面提到的,存在不同类型的网关,特别是替代类型网关(包括不同种类的NAT)和中继类型网关(包括不同种类的RSIP)。也应该理解的是整个网关功能不仅包括层4的分组转发,也可能包括层3分组转发在内的任何网络层上的分组转发。
为了更好地理解本发明,开始的时候简单介绍一下在内部域和外部域之间连接性的示范网关的基本模型可能是有用的,参考图2。
图2说明了在内部域10和外部域20之间互连的示范网关30的基本模型。网关30关联了网关资源管理器40,特别管理分配给该网关的外部域网络地址的储存库。在网关30中,基本网关功能由出外部域处理单元32、入内部域处理器单元34以及分组转发单元36支持。网关30和网关资源管理器40可以分开实现,但需是互连的节点。或者,网关资源管理器40可以与网关30处于同一位置,甚至集成在网关中。
对于替代类型的网关,正如其名字所指出的,执行分组字头中地址和端口信息的替换以便能够正确地转发分组。替代类型网关中的网关连接状态通常用外部n元组和内部n元组来表示。一般而言,一个n元组是一组n个信息单元,一般包括(源网络地址、源端口号、宿网络地址、宿端口号、协议号)。外部n元组一般是源和宿网络地址属于外部域的n元组。内部n元组一般是源网络地址属于内部域而宿网络地址属于外部域的n元组。为了能够正确地为通信流转发分组,有两种基本划分的处理入内部域处理,其中每个入内部域的分组与网关中网关连接状态的外部n元组匹配,当找到匹配的外部n元组时,分组字头中的宿地址和端口用对应于所识别的外部n元组的内部n元组的源地址和端口所替代。
出外部域处理,其中每个出外部域的分组与网关中网关连接状态的内部n元组匹配,当找到匹配的内部n元组时,分组字头中的源地址和端口用对应于所识别的内部n元组的外部n元组的宿地址和端口所替代。
对于中继类型的网关,网关连接状态通常用外部n元组和面向内部域通信节点的虚拟的点对点接口来表示。虚拟的点对点接口的一个例子是IP-in-IP隧道,也就是在入内部域方向,分组被封装在另一个分组中,其宿地址等于内部节点地址,而源地址等于内部网关地址,在出外部域方向,输入分组被拆除封装,取出内部的分组。在另一个例子中,不是封装和拆除封装,而是可以在内部域网关和通信节点之间存在一条层2的点对点链路(例如,GPRS系统中的PDP上下文(Context)层)。
在中继类型的网关中,能够为通信流正确地转发分组的两种基本处理定义为入内部域处理,其中每个入内部域的分组与网关中网关连接状态的外部n元组匹配,当找到匹配的外部n元组时,分组被发送到与所识别的外部n元组对应的虚拟点对点接口。
出外部域处理,其中每个出外部域的分组来自虚拟的点对点接口,由网关转发到外部域。
替代和中继类型之间的主要区别是,在中继类型中,内部节点知道当前分配的外部域地址(以及一个(多个)端口号)。在替代类型中,内部域节点不知道外部域地址,而由网关进行透明的翻译(替代)。
在替代和中继类型的网关中,可能存在部分完整的网关连接状态,即表示其所代表的连接目前处于建立过程之中,但是还没有收缩成一个网关会话完整的网关连接状态。这种部分完整的网关状态有时称为网关门或针孔。
在替代类型网关中,网关门是具有外部n元组和内部n元组的网关连接状态,其中外部n元组及/或内部n元组具有一个或多个未规定的连接变量(任意匹配,用“*”表示)。当网关收到匹配部分完整的外/内部n元组的规定值的入内部域分组/出外部域分组时,该n元组就变完整了,其意义是到目前为止部分完整n元组的未规定值被固定为该分组所关联的相应值。
在中继类型网关中,网关门是具有外部n元组和内部n元组的网关连接状态,其中外部n元组及/或内部n元组具有一个或多个未规定的连接变量。当网关收到匹配部分完整的外部n元组的规定值的入内部域分组时,该n元组就变完整了,其意义是到目前为止部分完整的n元组的未规定值被固定未该分组所关联的相应值。
外部n元组通常也称为外部域网关状态表示,因为它指的是整个网关状态表示中与外部域有关的部分。
有了上述对一般网关操作的基本认识,在某种程度上促进了对本发明有时比较复杂的方面的理解并使之更简单化了。
正如前面提到的,一种基本的挑战是能够以灵活且有效的方式允许外部域发起的连接。同时也特别希望改善网关的复接特性,既针对内部域也针对外部域发起的通信。后者的主要目的是能够使用有限数目的外部域地址通过网关支持尽可能多的连接。
外部域发起的通信的示范基本过程本发明认识到能够允许外部域发起的通信的灵活且动态的机制是通过令外部节点首发的用户-资源标识符查询触发网关中的连接状态建立而得到的,这种标识符查询诸如DNS-查询或等同的查询。根据发明优选实施例的基本过程主要以图3的流程图概述。在步骤S1中,外部节点需要发起到一个特定内部节点的新连接,于是准备好用户-资源标识符查询,例如DNS查询之类,传递到中心分配或寻址机制。在步骤S2中,根据查询中包括的内部节点标识符,确定内部节点的内部域网络地址。在DNS-查询情况下,例如可以用常规的域名-到-网络地址翻译器来完成这个任务。标识符查询还包括由网关资源管理器处理的预定的连接信息,该管理器使用这个信息作为基础识别适于建立新的动态网关连接状态的外部域网关地址,如步骤S3所示。例如,预定连接信息可能是外部节点的网络地址或内部节点的端口信息。在后一种情况下,端口信息可以是预定的内部节点接收端口,或者是通过明确的信令通知外部节点的接收端口号。然后在步骤S4,至少是部分基于所识别的外部域网关地址、预定的连接信息以及内部域网络地址,通过网关建立起外部节点和内部节点之间一个流的新动态网关连接状态。这就意味着发明提供了对动态的外部域发起的通信的支持。特别是这样就允许了所有形式的推业务、通知业务以及即使消息业务。
对于外部域发起的连接,动态网关连接状态通常、虽然不是一定地、以两步建立。首先,部分完整的网关连接状态的产生基于所识别的外部域网关地址、从标识符查询中提取的预定的连接信息以及内部网络地址。在从外部节点收到分组时,部分完整网关状态“收缩”成完整的网关连接状态,因为分组字头中的地址及/或端口信息这类的辅助连接信息被用于填充网关状态的未规定部分。通常将所识别的外部域网关地址通知外部节点,以便能够将最初的分组传递到网关。
改进的网关复接容量在发明的另一方面中,网关能够同时支持的外部域发起的连接数目可以通过在建立新的动态网关连接状态过程中智能地利用一个或多个附加的复接变量而大大提高。这里的附加复接信息最好包括预定的连接信息,通常是外部节点地址信息及/或内部节点端口信息,如从首发的用户-资源标识符查询中提取的那些。但是,从网关资源管理器的角度来看,用于状态建立过程的预定连接信息的来源并不重要,只要它收到了正确的连接信息即可。
图4是根据发明的优选实施例,改进外部域发起的通信的网关复接特性的基本方法的示意流程图。下面,外部域网关地址简称为外部网关地址。
如步骤S11所示,该示范方法包括接收用于状态建立过程的预定连接信息。对于替代类型的网关,在步骤S12中选择更多的连接信息,通常是外部网关地址。为了避免网关资源在几个同时进行的连接建立之间冲突,由外部网关地址以及预定连接信息的组合所定义的部分完整的外部n元组要对比所有现有的部分完整的网关连接状态进行分析,如步骤S13所示。该分析包括检查上面定义部分完整的外部n元组的连接信息组合是否在现有的部分完整的网关连接状态中存在任何对应。如果部分完整的外部n元组已经出现(Y)在现有的部分完整的网关状态中,那么外部网关地址和预定连接信息之间已经存在了一种绑定。这通常意味着必须从网关地址储存库中选择另一个外部网关地址,重复步骤S12-S13。网关资源管理器用外部网关地址储存库中的下一个地址重复该过程,直到找到“空闲”地址或者达到地址储存库的末尾。如果能够识别出一个外部网关地址,它与预定连接信息的组合在任何现有部分网关状态中没有对应部分(N),那么过程就继续到步骤S14。在步骤S14中,根据部分完整的外部n元组(自然也有相应的内部表示)发起连接的建立,在步骤S15中等待收到通信流中的第一个分组而完成。
如果地址储存库中的所有外部网关地址都已经遍历而没找到唯一的部分外部n元组,可能就不得不拒绝连接请求。但是再一次开始遍历网关地址储存库中的地址也是可能的,假定所提到的选择过程的延迟应该最小化两个并发的连接建立的可能性,这样任何现有的数据连接建立应该有时间在收到第一个分组之前完成。
正如上面提到的,当第一个分组到达时,部分网关状态转变成完整的网关连接状态。完整的网关连接状态可以进一步地用与相应分组所关联的补充连接信息来区分,因此不必在步骤S13所用的列表中表示。因此,只要存在完整的绑定,当部分网关状态转变成完整网关状态时,该部分网关状态就从不确定候选者的列表中去除。
上述增加网关复接特性的过程显然需要与当前存在于网关中的所有部分完整的网关连接状态比较。这种比较应该由直接关联于网关的网关资源管理器执行,按照需要以及在需要的时候从网关中请求并提取部分完整的网关状态。但是,为了减少网关和资源管理器之间的信令,最好在资源管理器中维护一个已有的部分完整的网关连接状态的单独的列表表示,或者资源管理器至少可访问该列表表示。
对于中继类型的网关,应该理解到内部域节点通常知道它们所使用的外部域地址,意味着这种外部域地址一般是预先分配给内部节点的。这就意味着对于中继类型的网关来说,步骤S12要在整个事件链之前执行,而且步骤S13变成更多的是检查预先分配的外部网关地址和接收的预定连接信息的组合是否在现有的部分完整网关状态中有对应部分。
示范情景例如,考虑公共主机B需要连接两个专用节点A1和A2。主机B向节点A1发起连接建立,而且网关资源管理器找到空闲的外部网关地址,即aOG1。同时,主机B向节点A2发起连接建立,而且网关资源管理器试图识别出一个有用的外部网关地址。通过网关地址识别过程中利用内部节点接收端口信息,假设专用节点A1和A2确实在不同的端口号上侦听,那么可以为专用节点A1和A2的未决连接分配相同的公共网关地址,aOG1,因为现在两个未决连接可以根据宿端口信息pA1和pA2来区分。因此,这就意味着每个公共网关地址可以用于任意数目的专用节点,只要它们都在不同的端口号上侦听。
进一步假设公共主机B需要发起向另一个专用节点A3的连接,A3在与节点A1相同的端口号上侦听。只要主机B发起向节点A3的连接建立时,主机B和节点A1之间的连接已经完整建立了,实际上就可以为节点A3安全地选择同一个公共网关地址,因为可以安全地假设主机B在向专用节点A1和A3发送业务流时将使用不同的端口号。公共主机B的端口号作为分组字头中的源端口信息加入,而且可以用做从B的其它流中区分给定分组流的补充连接信息。
在另一个例子中,考虑两个公共主机B1和B2,各自需要连接隐藏在网关之后的同一个专用网。主机B1发起连接建立,网关资源管理器找到空闲的公共网关地址,即aOG1。同时,主机B2发起连接建立,网关资源管理器试图识别出有用的公共网关地址。通过在识别有用的外部网关地址过程中利用公共主机地址,可以为主机B2选择同一个网关地址,因为两个未决连接可以根据源地址信息aOB1和aOB2来区分。通常,这实际上意味着每个公共网关地址可以用于任意数目的不同公共主机。
进一步假设公共主机B1需要发起到两个不同专用节点A1和A2的连接。只要主机B1向节点A2发起连接建立时,主机B1和节点A1之间的连接已经完整建立了,实际上就可以为节点A2安全地选择同一个公共网关地址,因为可以安全地假设在向专用节点A1和A2发送业务流时,主机B1将使用不同的端口号。公共主机B1的端口号作为分组字头中的源端口信息加入,而且可以用做从B的其它流中区分给定分组流的补充连接信息。这样甚至允许专用节点A1和A2在同一个端口号上侦听。能够允许专用节点中的应用软件自由地选择端口显然是很有利的。
低复杂度实现如果需要较低程度的实现复杂度,并对现有网关设备的影响较小,可以去掉逐步的状态建立,只根据分组接收之前可用的连接信息直接建立完整的网关连接状态。在优选的较低复杂度实现中,网关资源管理器请求为给定的专用节点分配公共网关地址,但是只是为来自特定公共主机的业务流分配,仍然保持该公共网关地址可用于从其它公共主机到同一个或其它专用节点的业务流。自然它的缺点在于,对于来自一个特定公共主机的流来说,可以同时接收信息的专用节点数限制于可用的公共网关地址数。但是,源于不同公共主机的流还可以分配同一个公共网关地址。
内部域发起的通信的示范基本过程改进的网关复接容量通过网关支持更大数目的并发连接的类似方法也可以用于内部域发起的连接,如图5的基本流程图中一般概括的那样。在步骤S21,包括外部节点地址信息及/或外部节点端口信息的预定连接信息,被网关资源管理器接收。对于替代类型的网关,在步骤S22中选择至少包括外部网关地址在内的更多的连接信息。在步骤S23,测试预定连接信息与更多连接信息的组合是否在现有网关连接状态中有任何对应,该组合定义了将要建立的新网关连接状态的至少是部分完整的外部域表示。如果至少是部分完整的外部n元组已经出现(Y)在现有网关状态中,就不得不从网关地址储存库中选择另一个外部网关地址,重复步骤S22-S23。网关资源管理器用外部网关地址储存库中的下一个地址重复该过程,直到找到“空闲”地址或者达到地址库的末尾。如果可以识别出一个外部网关地址,它与预定连接信息的组合定义了在任何现有网关状态中没有(N)对应的至少是部分完整的外部n元组,过程就继续到步骤S24。在步骤S24中,根据至少部分完整的外部n元组(自然也有相应的内部表示),发起连接建立。
特别应该注意的是,对于内部域发起的连接,一般需要比较所有现有的网关连接状态,不象外部域发起的连接那样只是比较部分完整的网关状态。
对于所谓的基于地址和端口翻译的替代类型的网关,要识别的更多的连接信息除了外部网关地址外可能还包括有关的网关端口信息。在这种情况下,所得到的外部域表示是完整的外部域表示,与相应的内部域表示一起完整地定义了通过该网关的新连接。
另一方面,对于所谓的中继类型的网关,其中网关状态的内部域表示可能是虚拟的点对点接口,那么所得到的外部域表示通常只是部分完整的表示。这种部分完整的外部域表示构成了产生部分完整的网关状态的基础,随后当收到来自内部节点的第一个分组时,它将转换成完整的网关状态。此外,正如前面提到的,对于中继类型,内部域节点通常知道它们所使用的外部域地址,这就意味着外部域地址已经预先分配了。
网关资源管理器上述增加网关复接特性以便比任何现有技术系统能够区分更多数目的并发连接的过程,显然需要比较网关中当前存在的各组网关连接状态。参考图6的简化框图,这种比较可以由直接关联于网关30的网关资源管理器40来执行,按照需要以及当需要的时候从网关中的状态数据库38中请求并提取有关的网关状态。但是,为了减少网关30和资源管理器40之间的信令,最好针对有关网关连接状态的一个或多个单独的列表表示进行分析。这个列表表示42可以方便地在资源管理器40中维护,或者存于资源管理器中的资源分配逻辑44可以有效地访问该信息的一个外部位置。
通常,资源管理器可以作为软件、硬件、固件或它们的任意组合来实现。在软件实现的情况下,与资源管理器有关的步骤、功能和动作被映射为一个计算机程序,当被计算机或同等的处理系统执行时能够进行有关的资源分配。
内部域发起的通信的顺序图为了更具体地理解本发明,现在参考示范的信令顺序图描述本发明。为了简单起见,我们将以内部域发起的通信开始。
替代类型图7是一个示意顺序图,说明在通过替代类型网关的内部域发起的通信的说明性例子中,参与单元之间的有关信令。网关(GW)可以允许内部域上的节点A向外部域上的节点B发起通信。假设节点A已经得到了信宿的网络地址信息aOB,通常是通过基于FQDN的常规DNS-查询得到的。信宿端口号pB可能是已知的端口号,或者通过明确的信令已知。支持A和B之间通过网关通信的示范顺序可以是节点A具有网络地址aIA并选择源端口(临时端口)pA。网关(GW)在某个通信流中收到内部域首发的第一个分组。
网关向网关资源管理器(GRM)发送包括信宿网络地址aOB及/或端口号pB的请求。
在处理X中,网关资源管理器根据信宿地址aOB及/或信宿端口pB,从网关地址储存库中分配网络地址aOG,并除那个地址外最好也有来自网关端口储存库的端口号pG。
网关通常将信宿地址及/或信宿端口作为预定连接信息提供给网关资源管理器,后者研究网关地址存储库中的下一个网关地址与信宿地址及/或信宿端口之间是否存在一种绑定。如果存在这样的绑定,资源管理器就用存储库中的下一个网关地址重复该过程,直到找到没有绑定的空闲网关地址(或者达到网关地址存储库的末尾)。
在这个特定例子中,GRM管理器执行一种算法,目的是选择aOG和pG,使外部n元组(源(aOB,pB);宿(aOG,pG);...)不是已经存在的网关连接状态的外部n元组。
所分配的网关地址aOG以及有关的端口号pG被发回网关。
在过程a中,网关根据提供的连接信息产生一个新网关连接状态。内部n元组得到这样的值(aIA,pA;aOB,pB),外部n元组得到这样的值(aOB,pB;aOG,pG)。
分组在网关中被出外部域处理器处理,并通过网关转发到外部域节点B。
网关接收到来自节点B的通信流中的应答分组。
应答分组被入内部域处理器处理,并被传递到内部域节点A。
复接容量被提高了,超过了现有技术的局限,而且流的数目可以大于(网关地址存储库中的网络地址数)·(可用端口数)。
中继类型图8是一个示意顺序图,说明在通过中继类型网关的内部域发起的通信的说明性例子中,参与单元之间的有关信令。
对于中继类型来说,尽管不是必需的,但是希望确保地址精细度方案下足够的端口复接来避免使用端口精细度方案。特别是在外部域发起通信的情况下,正如后面参考图12和13所描述的那样,接收内部节点应该最好能够自由地选择端口号。在端口精细度方案下是不能满足这个要求的。因此,下面讨论中继类型选项时我们主要指的是地址精细度方案。
支持从内部节点A1和A2通过网关到外部节点B的通信流的示范顺序可以是节点A1需要发起向属于外部域的节点B的通信流。节点A1向网关(GW)发送包括宿网络地址aOB和端口号pB的请求。在IETF RSIP框架(RFC3103)中,这条消息可以是“ASSIGN_REQUEST_RSA-IP”。
网关向网关资源管理器(GRM)发送该请求。
在处理X中,GRM管理器从网关地址储存库中分配网络地址aOG。
网关通常将信宿地址及/或信宿端口作为预定连接信息提供给网关资源管理器。在这个例子中,信宿地址信息和端口信息都包括在请求中。为了改进复接容量,网关资源管理器执行一种算法,根据给定的aOB和pB试图选择aOG使外部n元组(源(aOB,pB);宿(aOG,*);...)不是已经存在的网关连接状态的外部n元组。如果不可能选出(所有可能的网关地址aOG都已经被占用),那么选择最少网关连接状态中所用的网关地址。
所分配的网关地址aOG被发回网关。
在过程a中,网关根据提供的连接信息产生一个新的部分完整网关连接状态。内部域表示被标为A1,代表到内部节点A1的虚拟点对点链路,而外部n元组得到这样的值(aOB,pB;aOG,*)。“*”意味着这个域暂时未规定。
应答被送回节点A1,其中包括所分配的网关地址aOG。
节点A2也需要发起向节点B的通信流,并向网关(GW)发送包括信宿网络地址aOB和端口号pB在内的请求。
网关向网关资源管理器(GRM)发送相应的请求。
在处理Y中,GRM管理器从网关地址存储库中分配一个网络地址aOG,最好是使用上述处理X中的相同算法。为了说明的原因,假设网关地址储存库中的所有网关地址都遍历之后没有找到完全“空闲”的地址,那么迫使资源管理器选择用得最少的网关地址。在这个例子中,进一步假设用得最少的地址是前面分配给节点A1的同一地址aOG。
所分配的网关地址aOG被发回网关。
在处理b中,网关产生另一个部分完整网关连接状态。内部域表示被标为A2,代表到内部节点A2的虚拟点对点链路,而外部n元组得到这样的值(aOB,pB;aOG,*)。“*”意味着这个域暂时未规定。
应答被发回节点A2,其中包括所分配的网关地址aOG。
节点A1为通信流选择源端口pA1(所谓暂时端口),并发送第一个分组。这个分组被网关收到。
在处理c中,相应的部分完整的外部n元组收缩成完整的外部n元组(aOB,pB;aOG,pA1),现在外部n元组中未规定的值被填入了值pA1。
分组被出外部域处理器处理,并通过网关转发到外部域节点B。
网关接收到来自节点B的通信流中的应答分组。
分组被网关中的入内部域处理器处理,并被传递到内部域节点A1。
节点A2为通信流选择源端口pA2(所谓暂时端口),并发送第一个分组。这个分组被网关收到。
在处理z中,研究pA2是否等于pA1。如果pA2=pA1,那么存在冲突,第二个部分完整网关连接状态(在框c中)不应该收缩。相反,网关应该最好去尝试影响节点A2,使之选择另一个pA2,做法是使通信流复位,例如发送TCP复位信号。
假设pA2不同于pA1,部分完整的外部n元组就在处理d中收缩成完整的外部n元组(aOB,pB;aOG,pA2),现在外部n元组中未规定的值被填入了值pA2。
分组被出外部域处理器处理,并通过网关转发到外部域节点B。
15.网关接收到来自节点B的通信流中的应答分组。
16.分组被网关中的入内部域处理器处理,并被传递到内部域节点A1。
复接容量可以增加到可以使用地址精细度方案代替端口精细度方案的程度。这就意味着可以使用任意的暂时端口号。
下面,将参考外部域发起的通信描述本发明,该通信是DNS-查询或同等的用户-资源标识符查询所触发的。
外部域发起的通信的示范基本框图为了更好地理解发明中包含的复杂机制,参考图9,从所示范的整个系统概况开始比较有用。
图9是一个示意图,说明根据本发明的优选实施例能够支持灵活且有效的外部域发起的连接的整个系统的例子。所示范的互连内部节点A和外部节点B的整个系统包括中间网关30、有关的网关资源管理器40、名字-到-地址(N/A)翻译器50或者与有关的AAA-服务器60在一起的同等翻译器。例如,N/A翻译器50可以是修改的DNS服务器,接受包括名字在内的查询,并且最终以包括属于外部域的网络地址在内的应答来响应。可选地,查询和应答也包括端口号信息。名字是与每个节点关联的全球唯一的字串。例如,一个通信节点的名字可以是以移动电话号码、MSISDN与运营商的域名一起构成的FQDN(完全合格的域名),例如“070123456789.operator.country”。AAA-服务器60包括管理动态档案数据的功能,这些数据包括目前出于内部域的通信节点的名字信息以及内部域有关的网络地址信息。更一般地,N/A翻译器50是一个标识符-到-地址翻译器,接受包括DNS-查询、SIP-URI-查询[6]以及类似的专用协议查询在内的通用标识符查询。
在示范的基本情景中,诸如移动终端或其它节点设备的内部节点A中启动一个客户端应用程序。客户端应用程序打开一个套接字,即(低层)一个网络接口,并开始在一个端口上侦听。假设举例来说,该客户端具有一个网关30之后的专用IPv4地址,而且那个外部网关面向外部节点B,例如服务提供者的应用服务器或其它节点设备,那么正常的公共路由选择就开始了。进一步假设节点A的移动终端或其它设备有一个名字或类似的标识符,而且它已经在专用内部域中注册了自己,因此AAA-服务器60就包括了一个档案,其中包括该名字以及专用网络地址或同等的标识一个点对点接口的符号。节点B的应用服务器可能事先知道客户端软件正在侦听哪个端口号(所谓已知的或预定的端口),或者客户端软件可以在注册消息中将端口号通知公共应用服务器。节点B通常也知道节点A的名字。
在图9的例子中,控制信令接口用实线表示,分组数据接口用虚线表示。
首先,节点B应用服务器向N/A翻译器50发送DNS-查询(1)或同等的查询。该查询也包括节点B的公共网络地址信息及/或节点A在哪个端口侦听的信息。N/A翻译器50向AAA-服务器发送包括节点A名字的请求,后者用应答(3)来响应,其中包括节点A的专用网络地址或同等的代表到节点A的点对点接口的符号。然后N/A翻译器50向网关资源管理器(GRM)40发送分配请求(4),包括代表节点A的名字以及有关的专用网络地址以及节点B的公共网络地址及/或内部节点端口号。根据这些信息,网关资源管理器40为节点A识别合适的公共网关地址并向网关(GW)30发送产生网关连接状态的请求(5)。在产生网关连接状态之后,网关30发送一个应答(6),向资源管理器40确认状态的建立。资源管理器40则向N/A翻译器50发送应答(7),其中包括分配给节点A的公共网关地址,N/A翻译器50再将这个信息在最后的应答(8)中转发到节点B。节点B的应用服务器向网关30发送第一个分组(9),如果必要的话,网关30从中挑出补充连接信息,例如节点B所用的端口号,也可能有节点B的地址,以便网关30能够将可能不完整的网关连接状态转换成完整的网关状态。当收缩了不完整的网关连接状态时,网关30最好通知(10)资源管理器40,后者更新其代表网关连接状态的列表。在网关30中,入内部域处理与分组转发处理合作,将分组通过网关30传递并向前到达节点A。节点A可以应答(12)并通过网关30发送信息,向前传到(13)节点B。
也可以向网关资源管理器直接提供DNS-查询,资源管理器再将名字信息转发到有关的名字-到-地址翻译器功能,后者返回与有关的内部节点关联的内部网络地址。同前面一样,网关资源管理器根据DNS-查询中包括的预定连接信息为内部节点指定公共网关地址,并将包括指定的地址的DNS-应答发送到请求的外部节点。
从实现的角度来看,整个中心寻址机制,包括名字-到-地址翻译器以及网关资源管理器,可以在单个处理中、运行在单个节点上的多个处理中、或者几个节点中物理上分开的不同处理中实现。
如果外部节点网络地址用于识别合适的网关地址,那么建议直接传递名字查询,不用中间节点中继。在DNS服务器用于名字检索的情况下,这就对应于通过将RD(希望递归)比特设为“0”禁止所谓的递归查询,并依赖于迭代查询。将TTL(寿命)参数设为比面向同一个内部域节点和端口号的两个连续流之间的时间差距小的值,应该会避免不受控的缓存。
正如前面所示,不一定分两个阶段执行状态建立。相反,实际上可以根据所提供的包括外部节点地址及/或内部节点端口在内的连接信息直接建立完整的网关连接状态,没有(10)所示的信令的必要。显然这样在某种程度上减少了复接好处,因为外部节点端口号不能在建立网关连接状态时作为区分参数。但是这种解决方案在某些情况下可能就足够了。
互联网工程任务组(IETF)在Middlebox通信(MIDCOM)方面的工作组已经建议了控制NAT/FW状态的通用机制。
外部域发起的通信的顺序图替代类型——源地址已知图10是一个示意顺序图,说明在通过替代类型网关的外部域发起的通信的说明性例子中,使用有效复接的外部节点(源)地址信息,参与单元之间的有关信令。
在这个例子中,最初状态是内部域中的通信节点A已经启动了一个应用程序,正在端口号pA上侦听输入业务流。节点A具有“名字”nA。节点A已经在内部域中注册了自己,因此AAA-服务器就有了一个档案,其中包括nA以及分配给节点A的网络地址(aIA)。外部域中的通信节点B希望建立到节点A的通信。节点B知道nA和pA。
在下面的顺序中,有三个名字为nA1、Na2和nA3的内部节点,内部域地址分别为aIA1、aIA2和aIA3,分别在端口pA1、pA2和pA3上侦听。而且,有两个具有外部域地址aOB1和aOB2的外部节点,分别在端口pB1和pB2上发送。
节点B1向N/A翻译器发送包括nA1的查询。在查询分组的源域中地址aOB1是可见的。
N/A向AAA服务器发送包括nA1的请求。
AAA服务器查找对应于nA1的网络地址aIA1并向N/A发送包括nA1和aIA1的应答。
N/A向网关资源管理器(GRM)发送包括nA1、aIA1和aOB1的请求。
在处理X中,网关资源管理器执行如下算法在这种情况下,假设没有现有的部分网关状态,也称为门。因此网关资源管理器可以自由地从网关地址列表中选择aOG,通常取第一个可用地址。
网关资源管理器向网关发送请求,产生框a所描述的部分网关状态(门)。
网关在产生部分网关状态之后应答。
网关资源管理器发送包括nA1和aOG的响应。
N/A向节点B1发送包括nA1、aOG的响应。
节点B2向N/A发送包括nA2和aOB2的查询。在查询分组的源域中地址aOB2是可见的。
N/A向AAA服务器发送包括nA2的请求。
AAA服务器查找对应于nA2的网络地址aIA2并向N/A发送包括nA2和aIA2的应答。
N/A向网关资源管理器发送包括nA2、aIA2和aOB2的请求。
在处理Y中,网关资源管理器执行如下算法尝试从网关地址列表中选择aOG,使外部n元组(部分未规定)(源(aOB2,*);宿(aOG,*);...)不是已经存在的部分网关状态的外部n元组。在这种情况下,由于aOB2不等于aOB1,可以选择任何的aOG,甚至是上面处理X中选择的同一个aOG。如果不是这样的话,必须选择不同于处理X中所选的另一个aOG。
资源管理器向网关发送请求,产生网关状态,在框b中第二行描述。
网关在产生部分网关状态之后应答。
网关资源管理器发送包括nA2和aOG的响应。
N/A向节点B2发送包括nA2、aOG的响应。
节点B1在面向节点A1的通信流中发出第一个分组。
在网关中,部分网关状态收缩成完整网关状态,外部n元组变完整了,成为(源(aOB1,pB1);宿(aOG,pA1);...)而且内部n元组成为(源(aIA1,pA1);宿(aOB1,pB1);...),如框c所示。
分组被网关转发到节点A1。
节点A1在面向节点B1的通信流中发出下一个分组。
网关将该分组转发到节点B1。
节点B1向N/A发送包括nA3的查询。地址aOB1在查询分组的源域中是可见的。
N/A向AAA服务器发送包括nA3的请求。
AAA服务器查找对应于nA3的网络地址aIA3并向N/A发送包括nA3和aIA3的应答。
N/A向资源管理器发送包括nA3、aIA3和aOB1的请求。
在处理Z中,资源管理器执行如下算法尝试从网关地址列表中选择aOG,使外部n元组(部分未规定)(源(aOB1,*);宿(aOG,*);...)不是已经存在的部分网关状态的外部n元组。框c第一行中的完整网关状态已经存在是没有问题的。因为我们可以安全地假设节点B1将使用不同于pB1的端口号向节点A3发送业务流。
资源管理器向网关发送请求,产生部分网关状态,在框d中第三行描述。
网关在产生部分网关状态之后应答。
资源管理器发送包括nA3和aOG的响应。
N/A向节点B1发送包括nA3、aOG的响应。
在处理V中,网关最好在产生部分网关状态之后启动一个定时器。当定时器达到某个值、门寿命时,部分网关状态还没有收缩,就将部分网关状态删除,释放该门。
网关通知资源管理器该部分网关状态已被删除。资源管理器因此更新现有部分网关状态的列表。
正如上面提到的,在实际情况下,可能会出现步骤8、16和29中的应答被缓存。但是,为了使这个解决方案满意地工作,在小于面向同一个内部域节点和端口号的两个连续流之间时间差的时间间隔之后,应该认为缓存数据一定无效了。
替代方式——宿端口已知图11是一个示意顺序图,说明在通过替代类型网关的外部域发起的通信的说明性例子中,使用有效复接的内部节点(宿)端口信息,参与单元之间的有关信令。
用于N/A翻译器在名字查询中对节点A所侦听的端口号pA已知的情况。例如,DNS查询可以具有这个形式“_port._protocol._MSISDN.operator.country”。具体的例子是“_4712._tcp.070123456789.telia.se”。或者DNS查询可以具有这样的形式“_service._protocol._MSISDN.operator.country”。这种情况下具体的例子是“_http._tcp.070123456789.telia.se”。字串“http”将翻译成端口号,此时为80。
在下面的例子中,最初状态是内部域中的通信节点A已经启动了一个应用程序,正在端口号pA上侦听输入业务流。节点A具有“名字”nA。节点A已经在内部域中注册了自己,因此AAA-服务器就有了一个档案,其中包括nA以及分配给节点A的网络地址(aIA)。外部域中的通信节点B希望建立到节点A的通信。节点B知道nA和pA。
在下面的顺序中,有三个名字为nA1、Na2和nA3的内部节点,内部域地址分别为aIA1、aIA2和aIA3,分别在端口pA1、pA2和pA3上侦听。
节点B向N/A翻译器发送包括nA1和pA1的查询。
N/A向AAA服务器发送包括nA1的请求。
AAA服务器查找对应于nA1的网络地址aIA1并向N/A发送包括nA1和aIA1的应答。
N/A向网关资源管理器(GRM)发送包括nA1、aIA1和pA1的请求。
在处理X中,资源管理器执行如下算法在这种情况下,假设没有现有的部分网关状态,也称为门。因此资源管理器可以自由地从网关地址列表中选择aOG。
资源管理器向网关发送请求,产生框a所描述的网关状态。
网关在产生部分网关状态(门)之后应答。
资源管理器发送包括aOG和pA1的响应。
N/A向节点B发送包括nA1、aOG和pA1的响应。
节点B向N/A发送包括nA2和pA2的查询。
N/A向AAA服务器发送包括nA2的请求。
AAA服务器查找对应于nA2的网络地址aIA2并向N/A发送包括nA2和aIA2的应答。
N/A向资源管理器发送包括nA2、aIA2和pA2的请求。
在处理Y中,资源管理器执行如下算法尝试从网关地址列表中选择aOG,使外部n元组(部分未规定)(源(*,*);宿(aOG,pA2);...)不是已经存在的部分网关状态的外部n元组。假设在这个例子中,pA2不等于pA1。这就意味着可以选择上面处理X中选的同一个aOG。如果pA2等于pA1,资源管理器应该尝试从网关地址列表中选择不同于aOG的地址。
资源管理器向网关发送请求,产生网关状态,在框b中第二行描述。
网关在产生部分网关状态之后应答。
资源管理器发送包括nA2、aOG和pA2的响应。
N/A向节点B发送包括nA2、aOG和pA2的响应。
节点B在面向节点A1的通信流中发出第一个分组。
在网关中,部分网关状态收缩成完整网关状态,外部n元组完整了,成为(源(aOB,pB);宿(aOG,pA1);...)而且内部n元组成为(源(aIA1,pA1);宿(aOB,pB);...),如框c所示。
分组被网关转发到节点A1。
节点A1在面向节点B的通信流中发出下一个分组。
网关将该分组转发到节点B。
节点B向N/A发送包括nA3和pA3的查询。
N/A向AAA服务器发送包括nA3的请求。
AAA服务器查找对应于nA3的网络地址aIA3并向N/A发送包括nA3和aIA3的应答。
N/A向资源管理器发送包括nA3、aIA3和pA3的请求。
在处理Z中,资源管理器执行如下算法尝试从网关地址列表中选择aOG,使外部n元组(部分未规定)(源(*,*);宿(aOG,pA3);...)不是已经存在的部分网关状态的外部n元组。框c第一行中的完整网关状态已经存在是没有问题的。因为我们可以安全地假设节点B将使用不同于pB的端口号向节点A3发送业务流。如果网关地址列表中的所有地址都包含在与端口号pA3在一起的现有的部分网关状态中,那么资源管理器应该选择一个新的端口号pG,使外部n元组(部分未规定)(源(*,*);宿(aOG,pG);...)不是已经存在的部分网关状态的外部n元组。
网关资源管理器向网关发送请求,产生部分网关状态,在框d中第三行描述。
网关在产生部分网关状态之后应答。
资源管理器发送包括nA3、aOG和pG的响应。
N/A向节点B发送包括nA3、aOG和pG的响应。
在处理V中,网关在产生部分网关状态之后启动一个定时器。当定时器达到某个值时,部分网关状态还没有收缩,就将部分状态删除。
网关通知资源管理器该部分状态已被删除,资源管理器因此更新现有部分网关状态的列表。
如上面的顺序所示,存在两种情况。在来自N/A翻译器的应答(步骤8、16和29)中,或者端口号等于各个查询(步骤1、9和22)中发送的端口号,或者不等于。前一种情况是希望的,因为节点B中的应用程序希望向端口号pA发送。建议后一种情况只用于后备情况,因为它会要求改变节点B中应用程序的实现。
如前面,与回到外部节点的应答有关的缓存数据必须小心处理。
中继类型——源地址已知图12是一个示意顺序图,说明在通过中继类型网关的外部域发起的通信的说明性例子中,使用有效复接的外部节点(源)地址信息,参与单元之间的有关信令。
这个解决方案用于N/A翻译器在名字查询中对节点B的网络地址已知的情况。如果直接传递名字查询而且不通过中间节点中继,就是这种情况。在DNS用于名字查询的情况下,这就对应于禁止递归查询,而依赖于迭代查询。
正如前面提到的,在中继情况下,内部域节点知道已经分配给它的外部域网络地址。因此,希望从外部域发起通信流的运行在内部域节点上的应用软件必须绑定到目前指定的外部域网络地址。因此我们可以假设所有内部节点都已经分配了外部域地址。由于通常我们必须支持比提供给网关的外部域地址数目多的节点,我们必须假设一些内部节点分配了相同的外部域地址。在下面的顺序中,我们表示了三个内部节点A1、A2和A3,都具有相同的外部域地址aOG。我们进一步假设,根据顺序消息中用符号“A1”、“A2”和“A3”所代表的一些序号,网关资源管理器知道哪个外部域地址分配给了一个特定的内部节点。当面向内部节点的虚拟点对点链路作为IP-in-IP隧道实现时,一个例子是符号“A1”是分配给节点A1的内部域地址aIA1。
节点B1向N/A翻译器发送包括nA1的查询。在查询分组的源域中地址aOB1是可见的。
N/A翻译器向AAA服务器发送包括nA1的请求。
AAA服务器查找对应于nA1的符号A1并向N/A发送包括nA1和A1的应答。
N/A向网关资源管理器(GRM)发送包括nA1、A1和aOB1的请求。
在处理X中,网关资源管理器执行如下算法在这种情况下,假设没有现有的部分网关状态,也称为门。根据符号A1,资源管理器找到目前分配给节点A1的外部域地址,aOG。
网关资源管理器向网关发送请求,产生框a所描述的部分网关状态。
网关在产生网关状态之后应答。
资源管理器发送包括nA1和aOG的响应。
N/A向节点B1发送包括nA1、aOG的响应。
节点B2向N/A发送包括nA2的查询。在查询分组的源域中地址aOB2是可见的。
N/A向AAA服务器发送包括nA2的请求。
AAA服务器查找对应于nA2的符号A2并向N/A发送包括nA2和A2的应答。
N/A向网关资源管理器发送包括nA2、A2和aOB2的请求。
在处理Y中,资源管理器执行如下算法根据符号A2,资源管理器找到目前分配给节点A2的外部域地址,aOG。如果外部n元组(部分未规定)(源(aOB2,*);宿(aOG,*);...)不是已经存在的部分网关状态的外部n元组,那么可以用那个外部n元组产生新的部分网关状态。在这种情况下,由于aOB2不等于aOB1,可以用外部n元组(部分未规定)(源(aOB2,*);宿(aOG,*);...)产生新的部分网关状态(门)。
网关资源管理器向网关发送请求,产生网关状态,在框b中第二行描述。
网关在产生部分网关状态之后应答。
网关资源管理器发送包括nA2和aOG的响应。
N/A向节点B2发送包括nA2、aOG的响应。
节点B1在面向节点A1的通信流中发出第一个分组。
在网关中,部分网关状态收缩成完整网关状态,外部n元组完整了,成为(源(aOB1,pB);宿(aOG,pA1);...),如框c所示。
分组被网关转发到节点A1(中继类型)。
节点A1在面向节点B1的通信流中发出下一个分组。
网关将该分组转发到节点B1(中继类型)。
节点B1向N/A发送包括nA3的查询。地址aOB1在查询分组的源域中是可见的。
N/A向AAA服务器发送包括nA3的请求。
AAA服务器查找对应于nA3的符号A3并向N/A发送包括nA3和A3的应答。
N/A向网关资源管理器发送包括nA3、A3和aOB1的请求。
在处理Z中,资源管理器执行如下算法根据符号A3,资源管理器找到目前分配给节点A3的外部域地址,aOG。如果外部n元组(部分未规定)(源(aOB1,*);宿(aOG,*);...)不是已经存在的部分网关状态(门)的外部n元组,那么就可以用那个外部n元组产生新的部分网关状态。框c第一行中的完整网关状态已经存在是没有问题的。这是因为我们可以安全地假设节点B1将使用不同于pB1的端口号向节点A3发送业务流。如果带有外部n元组(部分未规定)(源(aOB1,*);宿(aOG,*);...)的部分网关状态已经存在,那么没有足够信息用于区分快要到来的通信流。因此,资源管理器应该最好是指示N/A,或者根本不响应节点B2,或者用一个显式的错误消息响应。这种错误情况在本顺序中没有表示。
网关资源管理器向网关发送请求,产生部分网关状态(门),在框d中第三行描述。
网关在产生部分网关状态之后应答。
资源管理器发送包括nA3和aOG的响应。
N/A向节点B1发送包括nA3、aOG的响应。
在处理V中,网关在产生部分网关状态之后启动一个定时器。当定时器达到某个值时,部分网关状态还没有收缩,就将该状态删除。
网关通知网关资源管理器该部分网关状态已被删除,资源管理器因此更新现有部分网关状态的列表。
如前面,与回到外部节点的应答有关的缓存数据必须小心处理。
中继类型——宿端口已知图13是一个示意顺序图,说明在通过中继类型网关的外部域发起的通信的说明性例子中,使用有效复接的内部节点(宿)端口信息,参与单元之间的有关信令。
用于N/A翻译器在名字查询中对节点A所侦听的端口号pA已知的情况。
下面的顺序中,我们表示了三个内部节点A1、A2和A3,都具有相同的外部域地址aOG。而且假设,根据顺序消息中用符号“A1”、“A2”和“A3”所代表的一些序号,网关资源管理器知道哪个外部域地址分配给了一个特定的内部节点。
节点B向N/A翻译器发送包括nA1和pA1的查询。
N/A向AAA服务器发送包括nA1的请求。
AAA服务器查找对应于nA1的符号A1并向N/A发送包括nA1和A1的应答。
N/A向网关资源管理器发送包括nA1、A1和pA1的请求。
在处理X中,资源管理器执行如下算法在这种情况下,假设没有现有的部分网关状态,也称为门。根据符号A1,资源管理器找到目前分配给节点A1的外部域地址,aOG。
网关资源管理器向网关发送请求,产生框a所描述的网关状态。
网关在产生部分网关状态之后应答。
资源管理器发送包括nA1、aOG和pA1的响应。
N/A向节点B发送包括nA1、aOG和pA1的响应。
节点B向N/A发送包括nA2和pA2的查询。
N/A向AAA服务器发送包括nA2的请求。
AAA服务器查找对应于nA2的符号A2并向N/A发送包括nA2和A2的应答。
N/A向网关资源管理器发送包括nA2、A2和pA2的请求。
在处理Y中,资源管理器执行如下算法根据符号A2,资源管理器找到目前分配给节点A2的外部域地址,aOG。如果外部n元组(部分未规定)(源(*,*);宿(aOG,pA2);...)不是已经存在的部分网关状态(门)的外部n元组,那么可以用那个外部n元组产生新的部分网关状态。在这种情况下,这就意味着如果pA2不等于pA1,那么可以用外部n元组(部分未规定)(源(*,*);宿(aOG,pA2);...)产生新的部分网关状态。另一方面,如果pA2等于pA1,那么没有足够的信息用于区分快要到来的通信流。因此,资源管理器应该最好是指示N/A翻译器,或者根本不响应节点B,或者用一个显式的错误消息响应。这种错误情况在本顺序中没有表示。
网关资源管理器向网关发送请求,产生网关状态,在框b中第二行描述。
网关在产生部分网关状态(门)之后应答。
资源管理器发送包括nA2、aOG和pA2的响应。
N/A向节点B发送包括nA2、aOG和pA2的响应。
节点B在面向节点A1的通信流中发出第一个分组。
在网关中,部分网关状态收缩成完整网关状态,外部n元组完整了,成为(源(aOB,pB);宿(aOG,pA1);...),如框c所示。
分组被网关转发到节点A1(中继类型)。
节点A1在面向节点B的通信流中发出下一个分组。
网关将该分组转发到节点B(中继类型)。
节点B向N/A发送包括nA3和pA3的查询。
N/A向AAA服务器发送包括nA3的请求。
AAA服务器查找对应于nA3的符号A3并向N/A发送包括nA3和A3的应答。
N/A向资源管理器发送包括nA3、A3和pA3的请求。
在处理Z中,资源管理器执行如下算法根据符号A3,资源管理器找到目前分配给节点A3的外部域地址,aOG。如果外部n元组(部分未规定)(源(*,*);宿(aOG,pA3);...)不是已经存在的部分网关状态(门)的外部n元组,那么就可以用那个外部n元组产生新的部分网关状态。如果这是不可能的,我们就有了与上面的处理Y相同的错误情况。框c第一行中的完整网关状态已经存在是没有问题的。这是因为我们可以安全地假设节点B将使用不同于pB的端口号向节点A3发送业务流。
网关资源管理器向网关发送请求,产生网关状态,在框d中第三行描述。
网关在产生部分网关状态之后应答。
网关资源管理器发送包括nA3、aOG和pG的响应。
N/A向节点B发送包括nA3、aOG和pG的响应。
在处理V中,网关在产生部分网关状态之后启动一个定时器。当定时器达到某个值时,门还没有收缩,就将该门删除。
网关通知资源管理器该门已被删除,资源管理器因此更新现有门的列表。
实现例子图14是一个示意框图,说明根据本发明的一个特定实施例,一个在不同地址域的节点之间提供连接性的系统的实现例子。图14的实现通常对应于图9的整个系统概况,但是网关30和网关资源管理器40在修改的防火墙/网络地址翻译器(FW/NAT)节点中实现,N/A翻译器在修改的DNS服务器中实现。这就意味着网关资源管理器40和网关30处于同一位置,而且甚至可能集成在网关中。
图15是一个示意框图,说明根据本发明的另一个特定实施例,一个在不同地址域的节点之间提供连接性的系统的实现例子。在这个例子中,网关资源管理器40和N/A翻译器50在修改的DNS服务器中实现,而网关30则在修改的FW/NAT节点中实现。
在还有一个实现中,网关资源管理器40在单独的网络节点中实现。
上面描述的实施例只是作为例子给出的,应该理解本发明不限于此。保持所揭示的基本原则并在这里做权利要求的进一步的修改、变化和改进都是在发明范围之内的。
参考文献[1]IP network Address Translator(NAT)Terminology andConsiderations(IP网络地址翻译器(NAT)术语及思考),P.Srisuresh,M.Holdrege,RFC 2663 of the Internet EngineeringTask Force(互联网工程任务组),August 1999(1999年8月). Realm Specific IPFramework(域特定IP框架),M.Borella,J.Lo,D.Grabelsky,G.Montenegro,RFC 3102 of the InternetEngineering Task Force(互联网工程任务组),October 2001(2001年10月). Realm Specific IPProtocol Specification(域特定IP协议规范),M.Borella,D.Grabelsky,J.Lo,K.Taniguchi,RFC 3103 of the Internet Engineering Task Force(互联网工程任务组),October 2001(2001年10月). htttp//www.peimeo.corn/pdf/solutionpaperl.pdf,2002. Address Allocation for Private Internets(专用互联网的地址分配),Y.Rekhter,B.Moskowitz,D.Karrenberg,G.J.de Groot,E.Lear,RFC 1918 of the Internet Engineering TaskForce(互联网工程任务组),February 1996(1996年2月). SIPSession Initiation Protocol(SIP会话发起协议),M.Handley,H.Schulzrinne,E.Schooler,J.Rosenberg,RFC2543 of the Internet Engineering Task Force(互联网工程任务组),March 1999(1999年3月)2001.
权利要求
1.一种在外部地址域的节点和内部地址域的节点之间通过中间通信网关建立连接的方法,网关具有多个外部域网关地址,能够在外部域表示内部域节点,所述方法包括如下步骤在所述外部节点准备用户-资源标识符查询,查询中包括内部节点标识符以及包括外部节点地址信息和内部节点端口信息中至少一个在内的预定连接信息;根据所述标识符查询中包括的所述内部节点标识符确定内部域网络地址信息;根据所述标识符查询中包括的所述预定连接信息,识别一个外部域网关地址,用于为所述外部节点和所述内部节点之间通过所述网关的流建立动态网关连接状态;根据所述识别的外部域网关地址、包括在所述标识符查询中的所述预定连接信息以及所述内部域网络地址信息,建立所述动态网关连接状态,藉此允许外部域发起的连接。
2.根据权利要求1的方法,其特征在于建立所述动态网关连接状态的所述步骤包括如下步骤根据所述识别的外部域网关地址、包括在所述标识符查询中的所述预定连接信息以及所述内部域网络地址信息,产生部分完整的网关连接状态;以及当收到从所述外部节点到所述网关的分组时,根据所述分组中关联的补充连接信息,将所述部分完整的网关状态转化成完整的网关连接状态。
3.根据权利要求1的方法,其特征在于识别外部域网关地址的所述步骤包括如下步骤识别这样的外部域网关地址——它与所述标识符查询中包括的所述预定信息的结合定义了在任何现有的部分完整网关连接状态中没有对应部分的部分完整的外部域网关状态表示。
4.根据权利要求3的方法,还包括维护一个现有部分完整网关连接状态的单独列表表示的步骤,而且其特征在于所述部分完整的外部域表示是根据与所述列表表示中表示的所有现有的部分完整网关连接状态的相应信息做比较而识别出的。
5.根据权利要求4的方法,其特征在于识别外部域网关地址的所述步骤包括如下步骤遍历与所述网关关联的外部域网关地址,直到找到一个外部域网关地址——它与所述标识符查询中包括的所述预定连接信息的结合在所述列表表示中表示的任何现有的部分完整网关连接状态中没有对应部分。
6.根据权利要求4的方法,其特征在于识别外部域网关地址的所述步骤包括如下步骤确认预分配的外部域网关地址与所述标识符查询中包括的所述预定连接信息的结合在所述列表表示中表示的任何现有的部分完整网关连接状态中没有对应部分。
7.根据权利要求2的方法,其特征在于包括在所述标识符查询中的所述预定连接信息是所述外部节点的外部网络地址,而且完成网关连接状态的所述补充连接信息包括所述内部节点的端口号以及所述外部节点的端口号。
8.根据权利要求2的方法,其特征在于所述标识符查询中包括的所述预定连接信息是内部节点端口号,而且完成网关连接状态的所述补充连接信息包括所述外部节点的外部网络地址以及所述外部节点的端口号。
9.根据权利要求1的方法,还包括将所述识别的外部域网关地址通知所述外部节点的步骤。
10.根据权利要求1的方法,其特征在于所述用户-资源标识符查询是域名服务器(DNS)查询。
11.根据权利要求1的方法,其特征在于所述内部地址域是专用地址域,而且所述外部地址域是公共地址域。
12.一种在外部地址域的节点和内部地址域的节点之间通过中间通信网关建立连接的系统,网关具有多个外部域网关地址,能够以外部域表示内部域节点,所述系统包括响应来自所述外部节点的用户-资源标识符查询、根据所述标识符查询中包括的内部节点标识符确定内部域网络地址信息的装置,其特征在于所述标识符查询还包括包含外部节点地址信息以及内部节点端口信息中至少一个的预定连接信息;根据所述标识符查询中包括的所述预定连接信息、识别一个外部域网关地址的装置,该地址用于为所述外部节点和所述内部节点之间通过所述网关的流建立动态网关连接状态;根据所述识别的外部域网关地址、包括在所述标识符查询中的所述预定连接信息以及所述内部域网络地址信息、建立所述动态网关连接状态的装置,藉此允许外部域发起的连接。
13.根据权利要求12的系统,其特征在于建立所述动态网关连接状态的所述装置包括根据所述识别的外部域网关地址、包括在所述标识符查询中的所述预定连接信息以及所述内部域网络地址信息、产生部分完整的网关连接状态的装置;当收到从所述外部节点到所述网关的分组时,根据与所述分组关联的补充连接信息,将所述部分完整的网关状态转化成完整的网关连接状态的装置。
14.根据权利要求12的系统,其特征在于识别外部域网关地址的所述装置用于识别这样的外部域网关地址——它与所述标识符查询中包括的所述预定连接信息的结合定义了在任何现有的部分完整网关连接状态中没有对应部分的部分完整的外部域网关状态表示。
15.根据权利要求14的系统,还包括维护一个现有部分完整网关连接状态的单独列表表示的装置,而且其特征在于所述部分完整的外部域表示是根据与所述列表表示中表示的所有现有的部分完整网关连接状态的相应信息做比较而识别出的。
16.根据权利要求15的系统,其特征在于识别外部域网关地址的所述装置包括遍历与所述网关关联的外部域网关地址,直到找到一个外部域网关地址的装置——该地址与所述标识符查询中包括的所述预定连接信息的结合在所述列表表示中表示的任何现有的部分完整网关连接状态中没有对应部分。
17.根据权利要求15的系统,其特征在于识别外部域网关地址的所述装置包括如下装置确认预分配的外部域网关地址与所述标识符查询中包括的所述预定连接信息的结合在所述列表表示中表示的任何现有的部分完整网关连接状态中没有对应部分。
18.根据权利要求13的系统,其特征在于包括在所述标识符查询中的所述预定连接信息是所述外部节点的外部网络地址,而且完成网关连接状态的所述补充连接信息包括所述内部节点的端口号以及所述外部节点的端口号。
19.根据权利要求13的系统,其特征在于所述标识符查询中包括的所述预定连接信息是内部节点端口号,而且完成网关连接状态的所述补充连接信息包括所述外部节点的外部网络地址以及所述外部节点的端口号。
20.根据权利要求12的系统,还包括将所述识别的外部域网关地址通知所述外部节点的装置。
21.根据权利要求12的系统,其特征在于,在与所述网关关联的外部域网关地址中识别外部域网关地址的所述装置包括网关资源管理器。
22.根据权利要求12的系统,其特征在于所述用户-资源标识符查询是域名服务器(DNS)查询。
23.根据权利要求12的系统,其特征在于所述内部地址域是专用地址域,而且所述外部地址域是公共地址域。
24.一种在外部地址域的节点和内部地址域的节点之间通过中间通信网关建立连接的方法,所述方法包括如下步骤受到所述外部节点发起的用户-资源标识符查询的触发,动态地为所述外部节点和所述内部节点之间通过所述网关的流建立网关连接状态。
25.根据权利要求24的方法,其特征在于所述网关连接状态是根据包括在所述标识符查询中的所述外部节点的外部网络地址以及所述内部节点的端口号中的至少一个而动态建立的。
26.通信网关的网关资源管理器,网关具有多个外部域网关地址,能够从外部域表示内部域节点,所述网关资源管理器包括—接收对应于内部节点的内部域网络地址信息以及包括外部节点地址信息和内部节点端口信息中至少一个的预定连接信息的装置;—根据所述预定连接信息识别外部域网关地址的装置,该地址用于为所述外部节点和所述内部节点之间通过所述网关的流建立动态网关连接状态;以及—根据所述识别的外部域网关地址、所述预定连接信息以及所述内部域网络地址信息,请求所述网关建立所述动态网关连接状态的装置。
27.根据权利要求26的网关资源管理器,其特征在于所述预定连接信息是外部节点地址,而且所述请求装置用于,针对来自所述外部节点地址的业务流,为所述内部节点请求分配所述识别的外部域网关地址。
28.根据权利要求26的网关资源管理器,其特征在于所述请求装置用于向所述网关发送请求,以便根据所述识别的外部域网关地址、所述预定连接信息以及所述内部域网络地址建立部分完整的网关连接状态。
29.根据权利要求28的网关资源管理器,还包括—从所述网关接收应答的装置,该应答表示所述部分完整的网关连接状态已经产生;以及—响应来自所述网关的所述应答,将所述识别的外部域网关地址通知所述外部节点的装置。
30.根据权利要求28的网关资源管理器,其特征在于识别外部域网关地址的所述装置用于识别这样的外部域网关地址——它与所述预定信息的结合定义了在任何现有的部分完整网关连接状态中没有对应部分的部分完整的外部域网关状态表示。
31.根据权利要求30的网关资源管理器,还包括维护一个现有部分完整网关连接状态的列表表示的装置,而且其特征在于所述部分完整的外部域表示是根据与所述列表表示中表示的所有现有的部分完整网关连接状态的相应信息做比较而识别出的。
32.一种在内部地址域的节点和外部地址域的节点之间通过中间通信网关建立连接的方法,网关具有多个外部域网关地址,能够在外部域表示内部域节点,所述方法包括如下步骤在任何可能的时候,根据预定连接信息识别更多的连接信息,它们与所述预定连接信息的结合定义了在预定的一组现有网关连接状态中没有对应的外部域网关状态表示,所述预定连接信息包括网络地址信息以及端口信息中的至少一个,而且所述更多的连接信息包括外部域网关地址;以及根据所述外部域网关状态表示,发起所述连接的建立。
33.根据权利要求32的方法,还包括维护所述预定一组现有网关连接状态的一个单独列表表示的步骤,而且其特征在于所述外部域网关状态表示是根据与所述列表表示中表示的所述网关连接状态的相应信息做比较而识别出的。
34.根据权利要求32的方法,其特征在于所述预定连接信息包括外部节点地址信息和外部节点端口信息中的至少一个,所述外部域网关状态表示是至少部分完整的网关状态表示,而且所述预定的一组网关连接状态包括所述网关中的现有网关连接状态。
35.根据权利要求34的方法,其特征在于所述更多的连接信息也包括有关的网关端口信息,所述外部域表示是完整的外部域表示,而且发起所述连接建立的所述步骤包括根据所述完整的外部域表示请求所述网关产生网关连接状态的步骤。
36.根据权利要求34的方法,其特征在于所述外部域表示是部分完整的外部域表示,而且发起所述连接建立的所述步骤包括如下步骤根据所述部分完整的外部域表示,请求所述网关产生部分完整的网关连接状态。
37.根据权利要求36的方法,还包括如下步骤如果所述识别是不可能的,那么在用得最少的外部域网关地址中选择一个外部域网关地址,定义用于发起所述连接建立的所述部分完整的外部域表示。
38.根据权利要求37的方法,还包括如下步骤当收到从所述内部节点到所述网关的分组时,确认所述部分完整的外部域表示与所述分组关联的内部节点端口信息的进一步结合,定义了在任何现有网关连接状态中没有对应部分的完整的外部域网关状态表示。
39.根据权利要求38的方法,还包括如下步骤将基于所述部分完整的外部域表示的所述网关中产生的部分完整网关连接状态转化成基于所述完整的外部域表示的完整的网关连接状态,藉此完成所述连接的建立。
40.根据权利要求32的方法,其特征在于所述预定连接信息包括外部节点地址信息和内部节点端口信息中的至少一个,所述外部域网关状态表示是部分完整的网关状态表示而且所述预定的一组网关连接状态包括所述网关中现有的部分完整网关连接状态。
41.根据权利要求40的方法,其特征在于识别包括外部域网关地址在内的更多的连接信息的所述步骤包括如下步骤遍历网关的外部域网关地址直到找到这样的外部域网关地址——它与所述预定连接信息的结合在任何现有的部分完整网关连接状态中没有对应部分。
42.根据权利要求40的方法,其特征在于识别包括外部域网关地址在内的更多的连接信息的所述步骤包括如下步骤确认预分配的外部域网关地址与所述预定连接信息的结合在任何现有的部分完整网关连接状态中没有对应部分。
43.根据权利要求40的方法,其特征在于发起所述连接建立的所述步骤包括根据所述部分完整的外部域表示请求所述网关建立部分完整的网关连接状态的步骤。
44.根据权利要求43的方法,还包括如下步骤当收到从所述外部节点到所述网关的分组时,根据与所述分组关联的补充连接信息,将所述网关中产生的所述部分完整网关连接状态转化成完整的网关连接状态。
45.根据权利要求44的方法,其特征在于所述预定连接信息是预定的外部节点地址信息,而且所述补充连接信息包括内部节点端口信息和外部节点端口信息。
46.根据权利要求44的方法,其特征在于所述预定连接信息是预定的内部节点端口信息,而且所述补充连接信息包括外部节点地址信息和外部节点端口信息。
47.根据权利要求40的方法,还包括如下步骤—根据预定的内部节点端口信息,如果所述识别是不可能的,那么就选择另一个网关端口;以及—根据所述所选的网关端口识别包括外部域网关地址在内的更多的连接信息,定义网关连接状态的唯一的部分完整的外部域表示。
48.根据权利要求40的方法,其特征在于所述预定的连接信息来自所述外部节点发起的用户-资源标识符查询。
49.一种在内部地址域的节点和外部地址域的节点之间通过通信网关建立连接的系统,网关具有多个外部域网关地址,能够在外部域表示内部域节点,所述系统包括在任何可能的时候,根据预定连接信息识别更多的连接信息的装置,这些信息与所述预定连接信息的结合定义了在预定的一组现有网关连接状态中没有对应部分的外部域网关状态表示,所述预定连接信息包括网络地址信息以及端口信息中的至少一个,而且所述更多的连接信息包括外部域网关地址;以及根据所述外部域网关状态表示,发起所述连接建立的装置。
50.根据权利要求49的系统,还包括维护所述预定一组现有网关连接状态的一个单独列表表示的装置,而且其特征在于所述外部域网关状态表示是根据与所述列表表示中表示的所述网关连接状态的相应信息做比较而识别出的。
51.根据权利要求49的系统,其特征在于所述预定连接信息包括外部节点地址信息和外部节点端口信息中的至少一个,所述外部域网关状态表示是至少部分完整的网关状态表示,而且所述预定的一组网关连接状态包括所述网关中的现有网关连接状态。
52.根据权利要求51的系统,其特征在于所述更多的连接信息也包括有关的网关端口信息,所述外部域表示是完整的外部域表示,而且发起所述连接建立的所述装置包括根据所述完整的外部域表示请求所述网关产生网关连接状态的装置。
53.根据权利要求51的系统,其特征在于所述外部域表示是部分完整的外部域表示,而且发起所述连接建立的所述装置包括根据所述部分完整的外部域表示,请求所述网关产生部分完整的网关连接状态的装置。
54.根据权利要求53的系统,还包括如下装置如果所述识别是不可能的,那么在用得最少的外部域网关地址中选择一个外部域网关地址,定义用于发起所述连接建立的所述部分完整的外部域表示。
55.根据权利要求54的系统,还包括如下装置当收到从所述内部节点到所述网关的分组时,确认所述部分完整的外部域表示与所述分组关联的内部节点端口信息的进一步结合定义了在任何现有网关连接状态中没有对应部分的完整的外部域网关状态表示。
56.根据权利要求55的系统,还包括如下装置将基于所述部分完整的外部域表示的所述网关中产生的部分完整网关连接状态转化成基于所述完整的外部域表示的完整的网关连接状态,藉此完成所述连接的建立。
57.根据权利要求49的系统,其特征在于所述预定连接信息包括外部节点地址信息和内部节点端口信息中的至少一个,所述外部域网关状态表示是部分完整的网关状态表示而且所述预定的一组网关连接状态包括所述网关中现有的部分完整网关连接状态。
58.根据权利要求57的系统,其特征在于识别包括外部域网关地址在内的更多的连接信息的所述装置包括如下装置遍历网关的外部域网关地址直到找到这样的外部域网关地址——它与所述预定连接信息的结合在任何现有的部分完整网关连接状态中没有对应部分。
59.根据权利要求57的系统,其特征在于识别包括外部域网关地址在内的更多的连接信息的所述装置包括如下装置确认预分配的外部域网关地址与所述预定连接信息的结合在任何现有的部分完整网关连接状态中没有对应部分。
60.根据权利要求57的系统,其特征在于发起所述连接建立的所述装置包括根据所述部分完整的外部域表示请求所述网关建立部分完整的网关连接状态的装置。
61.根据权利要求60的系统,还包括如下装置当收到从所述外部节点到所述网关的分组时,根据与所述分组关联的补充连接信息,将所述网关中产生的所述部分完整网关连接状态转化成完整的网关连接状态。
62.根据权利要求61的系统,其特征在于所述预定连接信息是预定的外部节点地址信息,而且所述补充连接信息包括内部节点端口信息和外部节点端口信息。
63.根据权利要求61的系统,其特征在于所述预定连接信息是预定的内部节点端口信息,而且所述补充连接信息包括外部节点地址信息和外部节点端口信息。
64.根据权利要求57的系统,还包括根据预定的内部节点端口信息,如果所述识别是不可能的,那么选择另一个网关端口的装置,而且其特征在于所述识别装置用于,根据所述所选的网关端口识别包括外部域网关地址在内的更多的连接信息,以便定义网关连接状态的唯一的部分完整的外部域表示。
65.根据权利要求57的方法,其特征在于所述预定的连接信息来自所述外部节点发起的用户-资源标识符查询。
全文摘要
发明主要关心的是在两个不同地址域之间提供连接的问题,这两个地址域通常指内部域和外部域,做法是通过中间网关建立连接。网关通常具有多个外部域网关地址,能够在外部域中代表内部域节点。首先,对于每个新连接,由相应外部节点发起的各个用户-资源标识符查询触发,动态地建立新网关连接状态,这样就能够支持灵活的外部域发起的连接。发明的第二方面,在建立新网关连接状态过程中智能运用预定的连接信息可以大大增加使用有限数目的外部域地址的网关能够同时支持的连接数。
文档编号H04L29/12GK1647489SQ03807847
公开日2005年7月27日 申请日期2003年3月28日 优先权日2002年4月8日
发明者B·沃尔兹, G·钱伯特, M·科尔林, B·兰德费尔德特, Y·伊斯迈洛夫 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1