可经由网络地址转换型设备操作的通信协议的制作方法

文档序号:7728648阅读:181来源:国知局
专利名称:可经由网络地址转换型设备操作的通信协议的制作方法
技术领域
本发明一般地涉及基于网络的电话,更具体地,涉及经由例如NAT(网络地址转换)设备的转换接入点使用通信协议,而不必改变转换接入点来支持通信协议。
背景技术
近年来在网络技术中出现了显著进步并且价格降低,导致网络架构的显著增长。如图1所示,许多家庭100和企业106通过专用的和公共的网络104被互相连接起来,最著名的网络是互联网。现在大多数网络使用传输控制协议/互联网协议(TCP/IP)的通信协议,在其中网络位置被指定为典型地用点分四组表示法(四个分别具有从0到255的数值的数字)表示的全球唯一的32位数字地址。TCP/IP网络流量是基于流量的目的IP地址被路由的。
遗憾的是,互联网的急剧增长导致可用的网络地址短缺。为了补偿,已经作出了在多个计算机间共享一个网络地址的一些尝试。一个著名的实例是网络地址转换(NAT),在通过路由经过接入点的网络流量来与外部网络104通信中,它将内部网络隐藏在接入点102、108之后。内部网络通常使用要是不进行转换就不能在公共网络上被路由的专用网络地址。在操作中,接入点102、108转换输出网络流量的源IP地址和端口,将流量映射到接入点的外部或者公共的地址和一个唯一端口。相反地,接入点将输入网络流量的目的IP地址和唯一端口转换回原来的内部地址和端口。但是,接入点通常忽略并非是响应被转换的输出网络流量而接收的输入网络流量,以及指向不明端口的输入流量。
通过例如NAT网关/路由器102、防火墙108或者其他类似的转换按入点进行的网络流量转换对许多应用是透明的。但是,这样的转换在某些情况下中断了许多协议,例如视听会议协议、安全协议、游戏协议以及其他将设备网络地址嵌入在网络流量中的协议。例如,国际电信联盟(International Telecommunication Union,ITU)标准H.232、互联网工程任务组(Internet Engineering Task Force,IETF)媒体网关控制协议(MGCP/Megaco)、IETF会话发起协议(SIP)、IP安全(IPSec)、不允许包报头改变的端到端安全模型和文件传输协议(FTP),这些都是在例如NAT设备的转换接入点之后被使用时会中断的协议的例子。
例如,在图1中,一个H.323客户端116检查其网络配置,并将其作为协议数据向一个H.323网关118注册。类似地,H.323客户端110将自己向网关注册。但是,因为H.323客户端110从一个位于NAT网关/路由器114之后的专用网络中的互联网服务提供者112接受网络服务,所以对于客户端110的协议数据中所指出的配置不能被H.323网关118或者客户端116用来连接该客户端110。
针对这个问题提出的一个解决方案是将接入点修改为能够知道该协议。遗憾的是,由于已经安装的接入点数量众多,这是一个高成本的解决方案。为了正确地工作,全部转换接入点都不得不被修订为支持协议;如果触及任何一个上游的不支持的转换接入点,协议就会失败。


本发明的特征和优点从下面的本发明的详细描述中将变得明显,其中图1举例说明通过网络互相连接的处理设备的现有技术的网络配置。
图2是根据一个实施例举例说明NAT设备内部的一个端点和NAT设备外部的另一个端点建立媒体会话的一般概况的流程图。
图3是根据一个实施例举例说明NAT设备内部的一个端点和NAT设备外部的另一个端点发起会话的一般概况的流程图。
图4是根据一个实施例举例说明NAT设备内部的两个端点,其中,一个端点呼叫另一个端点的一般概况的流程图。
图5根据一个实施例,举例说明协议事务的由上向下的时间线,其中,NAT设备后面的第一端点接收来自第二端点的呼叫。
图6根据一个实施例,举例说明协议事务的由上向下的时间线,其中,第一端点通过NAT设备向第二端点发起通信会话。
图7根据一个实施例,举例说明协议事务的由上向下的时间线,其中,第一端点向第二端点发起通信会话,这两个端点都在NAT设备后面。
图8举例说明可以在其中实现本发明的一些方面的适合的处理环境。
具体实施例方式
在一个实施例中,NAT以及其他转换接入点的缺陷可以通过修改通信协议来克服,以便它们有能力识别和补偿转换。这里所说的术语“NAT”是指改变经过的网络流量的源(origin)和/或端口值的任何接入点。
通常,在协议数据中传递信令信息的通信协议,例如ITU H.323或其他协议,可以被修改,以便令NAT设备后面的端点通过NAT设备使用用于接收响应数据的希望的通信端口来发送数据。这使得端点的NAT设备准备好在希望的通信端口上从特定的网络地址接收响应数据。
更具体地说,通信端点的行为被修改为使用相同的端口监听和产生通信会话(例如,信令和内容流两者)(在本说明书和权利要求中,术语“内容”指的是纯音频数据、纯视频数据、音频和视频组合的数据或者其他可以在端点之间被传输的数据)。
协议数据接收器,例如注册服务器或者其他通信端点,被配置来检查嵌入的端点网络位置值,例如,网络地址、通信端口(以后简称为端口)等等,来保证它们对应于可路由的网络地址。如果嵌入的地址是不可路由的,已经发现了NAT,则包含协议数据的网络流量包的源地址和端口数值被用来代替嵌入的值。
对通信协议的这些改变使得不依赖于特殊的服务器、代理或者对NAT硬件的修改就能支持NAT设备及其他这样的转换接入点。另外,虽然为了表达的清楚而使用的示图也许不能举例说明相对称的全部端点的全部操作,但是可以对称地作出这些更改,以便在NAT内部或者外部的端点行为之间没有区别。
图2是根据一个实施例举例说明NAT设备内部的一个端点和NAT设备外部的另一个端点根据例如实时传输协议(RTP)和实时传输控制协议(RTCP)的协议建立媒体会话的一般概况的流程图。注意,使用RTP/RTCP是为了示范的目的,因为它们是众所周知的使用呼叫建立和信令操作的通信协议。然而,本领域的技术人员会理解本发明对其他通信协议一般是适用的。
在举例说明的实施例中,位于NAT设备之后的内部主机从其希望接收相应的流的端口发送(步骤200)RTP和RTCP流。例如,如果端点希望在2244端口上接收音频,则它在端口2244上发起音频传递。如果存在NAT设备,当它接收(步骤202)要转换的数据流时,该NAT创建(步骤204)适当的转换表条目,并从而准备好接收相应的响应数据。
外部主机,例如注册服务器或者其他端点,当接收(步骤206)数据流时,它们被配置来检查(步骤208)在协议数据中嵌入的IP地址,例如,嵌入的对2244端口的引用,因为这种嵌入的引用没有被NAT设备查看。如果(步骤210)嵌入的地址是可路由的,则外部主机向嵌入的地址发送(步骤212)响应的数据。
但是,如果(步骤210)嵌入的地址不是可路由的,例如,不能通过互联网路由,则外部主机识别(步骤214)与编码协议数据的网络流量包相关联的地址和端口,这与NAT的结果一致。外部主机然后向被识别出的源地址和端口发送(步骤216)响应数据,例如,外部主机绑定到接收端口来向内部主机向回发送内容。这是必需的,因为NAT设备已经使在嵌入的数据中被识别出的地址和/或端口值无效。为在内部主机和外部主机之间流通媒体,内部主机最初发送一个媒体流以便其NAT设备将接受响应数据。
图3是根据一个实施例举例说明NAT设备内部的一个端点和NAT设备外部的另一个端点使用SIP、H.232或其他协议发起会话的一般概况的流程图。在该实施例中,内部主机在其希望接受呼叫的相同端口上发送(步骤300)注册请求,并提供身份别名。然后内部主机在内部地址和内部端口上监听(步骤302)。
注册服务器,例如,网守(gatekeeper)、SIP登记服务器等等,检查(步骤304)在注册中嵌入的内部地址,来确定(步骤306)该地址是否是可路由的地址。如果该地址是可路由的,则注册服务器照常注册(步骤308)该地址、端口和身份别名。如果该地址是不可路由的,则注册服务器识别(步骤310)和编码协议数据的网络流量包相关联的源地址和端口,这与NAT的结果一致,并且在被识别的源地址上以身份别名注册(步骤312)内部主机。
试图呼叫(步骤314)内部端点的外部端点将内部端点的身份别名解析为被识别(步骤310)的NAT设备的源地址和端口。内部主机正于被映射到通过注册服务器注册(步骤312)的外部端口上的端口进行监听。当NAT设备收到(步骤316)通过注册服务器路由进入的呼叫时,该NAT设备从外部端点向内部端点映射(步骤318)呼叫。
内容流可以如上面对图2的讨论被建立。
图4是根据一个实施例举例说明NAT设备内部的两个端点400,其中,一个端点使用H.232、SIP或者其他协议呼叫另一个端点的一般概况的流程图。
在该实施例中,两个端点都在注册过程中向注册服务器提供的内部地址上监听(步骤402)。第一端点试图解析(步骤404)另一个端点的身份别名。如上面所讨论的,注册服务器向该端点提供(步骤406)一个可路由的地址,该地址映射到另一个端点正在其上进行监听(步骤402)的内部地址上。第一端点通过注册服务器向另一个端点发送(步骤408)呼叫建立(call setup),并且被呼叫的端点响应(步骤410)呼叫建立的源地址和源端口。因为两个端点都在NAT后面,所以注册服务器将截取通信来对控制和媒体信息都进行路由,并充当代理。
内容流于是可以被建立(步骤412),建立内容流有两个选择。第一选择是来自呼叫建立的现有的通信地址和端口可以被用于传递内容流。第二选择是使用不同的地址和端口发信号。但是,因为两个端点都在NAT设备后面,所以如果(步骤414)端口不被重新使用,则注册服务器充当(步骤416)内容流的代理或者媒介。这是必需的,因为只有注册服务器是两个NAT设备都知道的输入数据的有效来源。在一个实施例中,注册服务器代理改变(步骤418)在协议数据中嵌入的地址,将其指向注册服务器,然后使内容流量在端点之间穿过(步骤420)。在一个实施例中,即使信号端口被重新使用,注册服务器也充当代理。
图5根据一个实施例举例说明协议事务的由上向下的时间线,其中NAT设备后面的第一端点EP1 500收到来自第二端点EP2 506的呼叫。请注意,所示的时间线中的一些操作可以同时发生,或者以不同的顺序发生。
注册服务器504用作媒介或者交换机,来促进端点之间的通信。注册服务器追踪端点的身份或者别名,以及端点的网络位置,例如地址等等。因为通过NAT设备的通信,如下面将要讨论的,端点使用的通信协议要求第一端点准备好其NAT设备来从第二端点在希望的端口上接收数据。
如上面所讨论的,所示的通信协议适用于任何利用包含例如网络地址和可能有的希望的通信端口的端点的网络地址的协议数据的协议。假设使用基于H.232的电话协议,并且EP1 500、NAT 502和EP2 506各自分别具有IP网络地址和通信端口508、510、512,并且在本例的期间中IP地址保持静态,但是使用了不同的端口值W、X、Y。然而,本领域的技术人员会理解到静态IP地址,乃至IP协议,并非是必需的。例如,可以使用象AppleTalk、NetBios扩展用户接口(Netbeui)等的协议。
EP1 500向呼叫注册服务器504发送(步骤518)注册消息,通过嵌入的协议数据告知注册服务器EP1将于地址A1端口P1被联络,并且具有标识符(例如,别名)ID1。(请注意,这里全部的端口指定是示范性的,不具有特殊的意义,并且示图使用符号A1/P1代表地址A1端口P1。)注册消息通过NAT 502,并且NAT将包含注册消息的网络流量转换(步骤520)为看似是从地址A2端口P2发起的。注册服务器确定(未表示)在协议数据中嵌入的地址A1端口P1是不可路由的,例如,NAT内部的专用地址,转换因此发生。因此,注册服务器基于包含注册消息的网络流量的包头,以标识符ID1替换注册(步骤522)EP1为位于地址A2端口P2。
然后EP2试图联络EP1。为了联络EP1,EP2通过向注册服务器504发送对于EP1的ID1的解析请求(步骤524),设法解析(步骤524)EP1的当前网络地址。注册服务器查找ID1的条目,并发送指出EP1具有网络地址A2端口P2的响应(步骤526)。然后EP2于地址A3端口P10(由EP2任意选择的端口)监听(步骤528)来接收内容,并通过注册服务器向地址A2端口P2对EP1发起呼叫请求(步骤530)。EP2的呼叫请求被路由直到注册服务器504,注册服务器504又将呼叫请求转发到NAT设备502。
假设NAT设备拒绝并非从已知网络地址和端口,例如NAT设备先前已经向其发送过网络流量的地址,产生的输入网络流量,则需要通过注册服务器路由呼叫请求,使得NAT设备因为被路由的请求看似是响应EP1的注册(步骤518)而接受从EP2产生的呼叫请求。为向位于地址A1端口P1的EP1传送,NAT设备转换(步骤534)包含指向地址A2端口P2的呼叫请求的网络流量。
一旦EP1接收呼叫请求,则于地址A1端口P20(由EP1任意选择的端口)监听(步骤536),并向位于地址A3端口P20(由EP2任意选择的端口)的EP2表明(步骤538)已收到呼叫请求。在向EP2发送的协议数据中,EP1指出它正于地址A1端口P20进行监听。通常,如果EP1不是在NAT设备后面,则通信会话的形成将完成,EP2可以简单地开始向地址A1端口P20发送内容。但是,因为EP1是在NAT设备后面,所以包含应答的EP1的网络流量被转换(步骤540)为地址A2端口P30。
因为呼叫请求(步骤530)最初是通过注册服务器504转发(步骤532)到EP1的,所以EP1向注册服务器发送其应答(步骤538),注册服务器又将其转发(步骤542)到位于A2/P10的EP2,该地址是EP2选择来进行监听(步骤528)的地址。在这一点上,注册服务器不再被需要作为媒介,因为EP1现在知道它将要向位于地址A3端口P10的EP2发送内容。但是,在一个实施例中,EP2并不假设另一个端点在NAT设备的后面,因此,它检验应答来识别(步骤544)转换已经发生,例如,在协议数据中嵌入的地址A1端口P20是不可路由的。
一旦转换被识别,EP2等待(步骤546)从EP1要被发送(步骤548)到EP2的内容,而不是象在传统的通信会话中会发生的那样立刻发送内容。注意,在向位于地址A3端口P10的EP2发送(步骤548)内容时,一些NAT设备可能因为EP1连续向同一目的地址和端口进行发送而重新使用由于向EP2发送(步骤540)应答而被设定的端口P30。当NAT设备转换(步骤550)内容发送时,这使得EP1的NAT设备准备好接收从EP2返回的往复的内容。意识到了转换的EP2向NAT设备发送(步骤552)其内容,NAT设备又转换(步骤554)包含该内容的网络流量并将其转交到EP1。
这样,建立了从EP2到EP1的通信会话。
图6根据一个实施例举例说明协议事务的由上向下的时间线,其中第一端点EP1 500通过NAT设备502向第二端点EP2 506发起通信会话。第一端点EP1将其自身向注册服务器504注册(步骤518、步骤520、步骤522),如在图5中所讨论的。
EP1于是在地址A1端口P1上进行监听(步骤600),EP2在地址A3端口P3上进行监听(步骤602)。EP2向注册服务器发送(步骤604)注册消息指出它具有网络地址A3端口P3以及标识符ID2。如上面在图5中所讨论的EP1的注册(步骤518),注册服务器执行检查(未示出)来确定EP2是否在防火墙后面。如果不是,则注册服务器用所提供的地址数据注册EP2。
为了发起从EP1向EP2的会话,位于NAT设备502后面的EP1向注册服务器发送解析请求(步骤608)来解析ID2。请求被转换(步骤610)并转发到注册服务器,注册服务器查找EP2的地址A3端口P3的注册。注册服务器执行检查,并识别(步骤612)EP1位于NAT设备的后面,例如,嵌入的协议数据包含不可路由的地址,因此注册服务器向地址A2端口P10对EP1发送(步骤614)解析响应,该地址是当转换EP1的解析请求(步骤608)时,通过NAT设备指定(步骤610)的地址。在一个实施例中,注册服务器简单地向解析请求发送响应,返回通过包含解析请求的网络流量识别的网络地址和端口,而不检查在协议数据中嵌入的地址。
EP1然后在地址A1端口P20(任意的端口)等待(步骤616)内容,例如,呼叫完成,并按照由注册服务器发送(步骤614)的解析数据向地址A3端口P3发送(步骤618)呼叫请求。在呼叫请求中作为协议数据嵌入的是EP1希望在其上进行通信的网络地址A1端口P20。呼叫请求被NAT设备转换为看起来好像是从地址A2(可路由的地址)端口P30(任意的端口)产生的,然后被NAT设备转发到EP2。如先前所讨论的,EP2检查协议数据,并识别出(步骤622)地址A1端口P20不是可路由的网络地址。
因此,EP2向NAT设备对地址A2端口P30发送(步骤624)呼叫应答,NAT设备又将应答对地址A1端口P20转发给EP1。来自EP1的呼叫应答包含指出EP2希望在地址A3端口P40(任意的端口)上从EP1接收内容的协议数据。当EP2发现EP1位于NAT设备的后面,EP2因此不向EP1发送内容,而是等待(步骤628)EP1通过向EP2发送内容来准备好其NAT设备。
EP1向如在EP2的应答(步骤624)中指出的地址A3端口P40对EP2发送(步骤630)内容。NAT设备将媒体转换(步骤632)为看起来好像是从地址A2端口P50(任意的端口)产生的。本领域的技术人员会理解到不同的NAT设备可能选择重新使用端口指定。现在,已经从EP1接收到内容,EP2可以向NAT设备对地址A2端口P50发送(步骤634)往复的内容,这又引起EP2的内容被转换成被定址为地址A1端口P20来向EP1进行发送。
这样,建立了从EP1到EP2的通信会话。
在一个实施例中,端点的注册包括预先注册一个监听端口,端点在此端口上对内容进行监听。例如,当EP1解析(步骤608)ID2,如上面所讨论的,服务器连同用于接收内容的端口P40返回地址A3端口P3。预先知道这个端口就使得EP1通过向EP2发送空包来预先准备其NAT设备,这允许EP2立即向EP1发送数据,例如音频数据,甚至在EP1和EP2完成协商全部的会话参数之前,例如要使用的编解码器(CODEC)、视频比特率或者质量、属性等等。
图7根据一个实施例,举例说明协议事务的由上向下的时间线,其中第一端点EP1 700向第二端点EP2 709发起通信会话,这两个端点都在NAT设备702、706后面。
如上面在图4中所讨论的,有不同的方法可以得到正确的信令,例如NAT设备702、706被正确地准备好来接收响应数据。端点的注册、希望的通信端口的信令以及识别NAT转换与前面所讨论的原理是一致的。在示出的实施例中,EP1从互联网地址A1端口P1向地址A4端口P4发出呼叫建立请求(步骤710),并且该呼叫被EP1的NAT 702转换(步骤712)为似乎是从地址A2端口P20产生的。在另一个实施例中,呼叫建立请求被直接指向别名,例如ID2,而不是所示的地址端口对。该呼叫建立被转发到注册服务器704,注册服务器改变(步骤714)呼叫建立协议数据,以便地址A1端口P1改为指向注册服务器。实际上,看似是注册服务器在发起向EP2的呼叫。被改变的呼叫建立协议数据通过EP2的NAT被接收,该NAT转换(步骤716)该呼叫建立协议数据,并将其传给EP2。
因此,EP2向服务器发送(步骤718)应答,指出它正在地址A3端口30上进行监听。EP2的NAT将应答转换(步骤720)为看似是从地址A4端口P40产生的。当注册服务器收到应答时,它改变(步骤722)应答,以便EP2的互联网地址A3端口P30改为指向注册服务器。被改变的应答被EP1的NAT 702接收,该NAT转换(步骤724)该应答来传给EP1。这样,两个端点都被诱导为向注册服务器发送(步骤726、步骤728)它们的内容,注册服务器又将其转发给适当的端点700、708。
图8以及下面的讨论是用来提供一个适合的处理环境的简要的、一般的描述,在该环境中可以实现图示的本发明的一些方面。例如,体现实施图5中的第一端点EP1 500或者注册服务器504的示范的系统包括具有用来连接各种设备部件的系统总线802的设备800。
典型地,连接到总线上的是处理器804、存储器806(例如RAM、ROM)、存储装置808、视频接口810以及输入/输出接口端口812。装置也可以包括嵌入的控制器,例如可编程逻辑器件或阵列(PLD、PLA)、通用或可编程阵列逻辑(GAL、PAL)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、单片机、智能卡等等。
本发明可以通过参考可以存储在存储器806和/或存储装置808中的程序模块来描述。程序模块包括过程、函数、程序、组件、数据结构等等,来执行某种任务或者实现某种抽象的数据数据类型。本领域的技术人员会认识到程序模块可以是高级编程语言结构或者低级硬件指令和/或语境,并且它们可以在被压缩或加密的格式中使用。数据可以存储在存储器806、存储装置808以及相关的媒体中。
设备被希望在使用通过网络接口818、调制解调器820或者其他通信路径与一个或多个远程设备814、816的逻辑连接的联网环境中操作。设备可以通过有线或无线网络822被互连,例如图1中的网络104,包括企业内部互联网、互联网、局域网、广域网、蜂窝、电缆、激光、卫星、微波、蓝牙、光学、红外线或者其他载波技术。
程序模块可以在单个的一个设备中实现,或者在分布式网络环境中被处理,并存储在本地和远程存储器两者中。存储器和存储装置包括硬盘、软盘、光学存储器、磁带、录音带、闪存卡、存储棒、数字视盘、生物存储等等,以及有线和无线传输环境,例如网络822,通过这些,该网络程序模块可以以包、串行数据、并行数据或者其他适合的传输格式的形式被传递。
于是,例如就示出的实施例而言,假设设备800操作一个端点,则远程设备814、816可以分别是第二端点和注册服务器。应当理解,远程设备814、816可以如同设备800一样配置,因此包括许多或者全部所讨论的设备的组成部分。还应当理解,设备800、814、816可以被嵌入到单个设备中或者分开的通信耦合的部件。
示出的方法及其相应的书面描述,是用来举例说明设备可访问的媒体存储指令或者类似的东西,它们可以被合并到单个或者多处理器设备、类似包括个人数字助理(PDA)的手持装置的便携式计算机、蜂窝电话等等。参考实施例已经描述和举例说明了本发明的原理,应当认识到示出的实施例可以在安排和细节上被修改而不脱离本原理。
并且,即使前面的讨论集中在特定的实施例上,也应理解其他的配置也被设想了。具体地说,即使在此使用了例如“在一个实施例中”、“在另一个实施例中”或者其他类似的表达方式,这些用语意思是一般地参考实施例,而并不是用来将本发明限制在特定的实施例配置。如在此使用的这些术语可以参考相同的或者不同的实施例,除非被暗含地或者清楚地指出,否则实施例是可以结合到其他实施例中的。因此,考虑到对上述实施例的置换具有广泛的多样性,详细的描述仅仅被用于例证性的,不应当被用来限制本发明的范围。
因此,本发明的权利要求是所有可能落入本发明权利要求的范围和精神的这样的修改及其等同物。
权利要求
1.一种通信协议,该通信协议用于通过网络转换装置发起通信会话,所述网络转换装置将具有内部地址和端口的内部网络流量转换为具有视在的外部源地址和端口的外部流量,所述协议包括为从具有不可路由的网络地址的第一设备向第二设备的会话准备会话建立(session setup),所述会话建立指出将向其发送会话应答的不可路由的地址;和通过所述网络转换装置向所述第二设备发送所述会话建立,其中所述网络转换装置不转换所述会话建立;其中,所述第二设备被配置以检查所述会话建立并识别所述会话建立包含不可路由的地址。
2.如权利要求1所述的协议,还包括在会话建立中包括用于和通信端点通信的第一端口;其中,所述网络转换装置的转换导致会话建立具有与在所述会话建立中的所述不可路由的地址和所述第一端口不同的视在的源和第二端口,并且其中所述第二设备被配置以检查所述协议数据并识别所述不可路由的地址。
3.如权利要求2所述的协议,其中,所述端点是在所述第二设备和用于注册通信端点的注册服务器中选择的一个。
4.如权利要求1所述的协议,所述网络地址转换装置接收用于对所述第二设备的会话的会话建立;向第二网络地址发送所述会话建立;在访问授权表中记录所述发送;从网络接收数据;以及将所述接收的数据和所述访问授权表条目的至少一部分进行比较,来确定所述接收的数据是否是响应所述发送。
5.如权利要求1所述的协议,其中,所述第二设备是用于以网络地址注册设备别名的注册服务器,所述注册服务器接收所述会话建立,所述会话建立包括含有所述第一设备的别名的所述协议数据;检查所述协议数据以便识别该协议数据是否包含不可路由的网络地址;以及如果所述协议数据包含不可路由的网络地址,则相对于别名和可路由的地址注册第一设备。
6.如权利要求1所述的协议,其中,所述第二设备是所述会话的一个端点,所述第二设备接收所述会话建立;确定所述会话建立指出向所述不可路由的地址发送所述会话应答;以及向可路由的地址对所述第一设备发送所述会话应答。
7.如权利要求6所述的协议,所述网络转换装置接收对所述第一设备的应答;以及转换所述会话应答以便传送到所述不可路由的地址。
8.一种在位于网络地址转换器(NAT)后面的第一端点和第二端点之间通信的方法,包括接收对所述第一端点的第一注册,所述注册包括对所述第一端点的嵌入的地址、嵌入的端口和嵌入的别名,其中所述注册具有所述网络地址转换器的视在的源地址;确定所述嵌入的网络地址是不可路由的地址;以及以所述视在的源地址、嵌入的端口和嵌入的别名注册所述第一端点。
9.如权利要求8所述的方法,还包括从所述第二端点接收对所述别名的解析请求;以至少是所述视在的源地址答复所述请求;从所述第二端点接收会话建立;并且将所述会话建立向所述视在的源地址转发给所述第一端点。
10.如权利要求9所述的方法,还包括通过所述网络地址转换器向所述第二端点发送应答,所述应答包括所述不可路由的地址和所述第一端点的动态指定的端口;通过所述第二端点确定所述第二网络地址是否是可路由的;并且如果所述第二网络地址是可路由的,则所述第二端点等待要从所述第一端点被发送到所述第二端点的视听数据。
11.一种用于通过不转换协议数据的网络转换装置发起会话的装置,所述装置包括可读媒体,在该可读媒体上编码了用于被处理器执行的指令,所述指令能够令处理器执行为从具有不可路由的网络地址的第一设备向第二设备的会话准备会话建立,所述会话建立指出将向其发送会话应答的不可路由的地址;以及通过所述网络转换装置向第二设备发送所述会话建立,所述第二设备被配置为检查所述会话建立来确定所述会话建立是否包含不可路由的地址。
12.如权利要求11所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令在所述会话建立中包括用于和通信端点通信的第一端口;其中,所述网络转换装置的转换导致会话建立具有与在所述会话建立中的所述不可路由的地址和所述第一端口不同的视在的源和第二端口,并且其中所述第二设备被配置以检查所述协议数据并识别所述不可路由的地址。
13.如权利要求12所述的装置,其中所述端点是在所述第二设备和用于注册通信端点的注册服务器中选择的一个。
14.如权利要求11所述的装置,所述指令还包括能够令处理器执行下列内容的指令接收用于对所述第二设备的会话的所述会话建立;向第二网络地址发送所述会话建立;在访问授权表中记录所述发送;从网络接收数据;以及将所述接收的数据和所述访问授权表条目的至少一部分进行比较,来确定所述接收的数据是否是响应所述发送。
15.如权利要求11所述的装置,所述第二设备是用于以网络地址注册设备别名的注册服务器,所述指令还包括能够令所述处理器执行下列内容的指令接收所述会话建立,所述会话建立包括含有所述第一设备的别名的所述协议数据;检查所述协议数据以便识别该协议数据是否包含所述不可路由的网络地址;以及如果所述协议数据包含所述不可路由的网络地址,则相对于别名和可路由的地址注册所述第一设备。
16.如权利要求11所述的装置,所述第二设备是会话的端点,所述指令还包括能够令所述处理器执行下列内容的指令接收所述会话建立;确定所述会话建立指出向所述不可路由的地址发送会话应答;以及向可路由的地址对所述第一设备发送会话应答。
17.如权利要求16所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令接收对所述第一设备的应答;以及转换所述会话应答以便传送到所述不可路由的地址。
18.一种用于在位于网络地址转换器(NAT)后面的第一端点和第二端点之间通信的装置,所述装置包括可读媒体,在该可读媒体上编码了用于被处理器执行的指令,所述指令能够令所述处理器执行接收对所述第一端点的第一注册,所述注册包括对所述第一端点的嵌入的地址、嵌入的端口和嵌入的别名,其中所述注册具有所述网络地址转换器的视在的源地址;确定所述嵌入的网络地址是不可路由的地址;以及以所述视在的源地址、嵌入的端口和嵌入的别名注册所述第一端点。
19.如权利要求18所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令从所述第二端点接收对所述别名的解析请求;以至少是所述视在的源地址答复所述请求;从所述第二端点接收会话建立;并且将所述会话建立向所述视在的源地址转发给所述第一端点。
20.如权利要求19所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令通过所述网络地址转换器向所述第二端点发送应答,所述应答包括所述不可路由的地址和所述第一端点的动态指定的端口;通过所述第二端点确定第二网络地址是否是可路由的;并且如果所述第二网络地址是可路由的,则所述第二端点等待要从所述第一端点被发送到所述第二端点的视听数据。
21.在网络转换装置内部的第一端点和在该网络转换装置外部的第二端点建立通信会话的方法,所述方法包括联络注册服务器以解析所述第二端点的别名;接收来自注册服务器的第一会话注册,所述第一会话注册包括所述第二端点的可路由的网络地址,以及内容端口,对于所述第二端点的内容应向该内容端口发送;以及在和所述第二端点建立所述通信会话完成之前,通过向所述可路由的地址在所述内容端口上对所述第二端点发送至少一个网络包来准备好所述网络转换装置。
22.如权利要求21所述的方法,还包括向所述注册服务器发送对所述第一端点的第二会话注册,所述第二会话注册包括所述第一端点的不可路由的网络地址。
23.如权利要求22所述的方法,所述注册服务器从和所述网络转换装置关联的可路由的网络地址,接收对所述第一端点的所述第二会话注册;识别所述第二会话注册包括不可路由的网络地址,并对其作出响应,按照和所述网络转换装置关联的所述可路由的网络地址注册所述第一端点;接收对所述第二端点的所述第一会话注册;并且识别所述第二会话注册包括可路由的网络地址,并对其作出响应,按照所述第一会话注册来注册所述第一端点。
24.如权利要求22所述的方法,还包括其中,所述注册服务器被配置以识别所述第二会话注册中的所述不可路由的网络地址,并响应所述识别,相对于和所述网络转换装置关联的可路由的网络地址注册所述第一端点。
25.在网络转换装置内部的第一端点和在该网络转换装置外部的第二端点建立通信会话的装置,所述装置包括可读媒体,在该可读媒体上编码了用于被处理器执行的指令,所述指令能够令所述处理器执行联络注册服务器以解析所述第二端点的别名;接收来自所述注册服务器的第一会话注册,所述第一会话注册包括所述第二端点的可路由的网络地址,以及内容端口,对于所述第二端点的内容应向该内容端口发送;以及在和所述第二端点建立通信会话完成之前,通过向所述可路由的地址在所述内容端口上对所述第二端点发送至少一个网络包来准备好所述网络转换装置。
26.如权利要求25所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令向所述注册服务器发送对所述第一端点的第二会话注册,所述第二会话注册包括所述第一端点的不可路由的网络地址。
27.如权利要求26所述的装置,所述指令还包括能够令所述处理器执行下列内容的指令从和所述网络转换装置关联的可路由的网络地址,接收对所述第一端点的所述第二会话注册;识别所述第二会话注册包括不可路由的网络地址,并对其作出响应,按照和所述网络转换装置关联的所述可路由的网络地址注册所述第一端点;接收对所述第二端点的所述第一会话注册;并且识别所述第二会话注册包括可路由的网络地址,并对其作出响应,按照所述第一会话注册来注册所述第一端点。
28.在网络转换装置内部的第一端点和在该网络转换装置外部的第二端点建立通信会话的装置,所述装置包括解析装置,该装置用于联络注册服务器以解析所述第二端点的别名;接收装置,该装置用于接收来自所述注册服务器的第一会话注册,所述第一会话注册包括所述第二端点的可路由的网络地址,以及内容端口,对于所述第二端点的内容应向该内容端口发送;和准备装置,该装置用于在和所述第二端点建立通信会话完成之前,通过对所述第二端点向所述可路由的地址在所述内容端口上发送至少一个网络包来准备好所述网络转换装置。
29.如权利要求28所述的装置,还包括发送装置,该装置用于向所述注册服务器发送对所述第一端点的第二会话注册,所述第二会话注册包括所述第一端点的不可路由的网络地址。
30.如权利要求29所述的装置,还包括接收装置,该装置用于从和所述网络转换装置关联的可路由的网络地址,接收对所述第一端点的所述第二会话注册;识别装置,该装置用于识别所述第二会话注册包括不可路由的网络地址,并对其作出响应,按照和所述网络转换装置关联的所述可路由的网络地址注册所述第一端点;接收装置,该装置用于接收对所述第二端点的所述第一会话注册;和识别装置,该装置用于识别所述第二会话注册包括可路由的网络地址,并对其作出响应,按照所述第一会话注册来注册所述第一端点。
全文摘要
在位于网络地址转换类型的装置(转换器)后面的具有不可路由地址的第一装置和第二装置之间,根据协议的通信,在所述协议中所述第一装置将其不可路由地址和通信端口嵌入在被发送到所述第二装置的协议数据中。转换为协议数据指定一个与所述不可路由的地址和所述嵌入的端口不同的视在的源和视在的端口。所述第二装置被配置以识别所述嵌入的不可路由的数据,并使用所述视在的源和视在的端口。
文档编号H04L29/12GK1623310SQ02808394
公开日2005年6月1日 申请日期2002年4月12日 优先权日2001年4月17日
发明者奔他威翁·蓬索帕, 阿尼·埃尔格巴利 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1