专利名称:在两个用户代理之间建立对等连接的方法
技术领域:
本发明涉及在第一和第二用户代理之间建立互联网连接的方法,所述用户代理每个都任选地位于对称型NAT之后。
本发明基于优先权申请欧洲专利申请05290348.1,在此将其引入作为参考。
背景技术:
许多服务提供商和个体通常将网络地址转换(NAT)用作一种避开没有足够IP(互联网协议)地址的问题的方法。企业可以具有一组分配给它的IP地址,但计算机的数量大于所分配的IP地址。可选地,个体可以具有带一个IP地址的DSL连接,但是想要将多个计算机连接到互联网。NAT通过将内部地址映射到外部或公共地址而解决了这种问题。内部IP地址-端口对被映射到外部IP地址-端口对,并且无论何时NAT接收了带有外部IP地址-端口对的分组,它都知道怎样将该分组重新路由回内部IP地址-端口对。
存在四种已知类型的NAT-完全圆锥型(full cone)NAT-受限圆锥型(restricted cone)NAT-端口受限圆锥型(port restricted cone)NAT-对称型NAT完全圆锥型NAT包括存储临时IP地址和端口绑定的NAT表。完全圆锥型NAT的NAT表中的每个记录是由下列内容组成的位于NAT的私人站点上的内部设备的内部源IP地址、被使用的内部源端口和NAT的互联网站点上的被分配外部源端口。如果来自互联网的进入分组是去往NAT的外部源端口的,则允许它们通过NAT。每次外出分组被发送到公共互联网,就会在这个NAT表中产生新的条目。如果进入或外出的分组不刷新NAT表的条目,则所述条目将在指定时间段之后被撤消。由此,完全圆锥型NAT接受所有进入分组,该进入分组的目的端口匹配于包括在NAT表的任何条目中的外部源端口。
图3示出了完全圆锥型NAT的例子,NAT接受任何公共互联网主机,该主机寻址(address)NAT并且使用NAT的外部源端口61795作为目的端口,并且NAT将所述目的IP地址-端口对转换为10.0.0.10112836。
与完全圆锥型NAT相反,受限圆锥型NAT另外使用目的IP地址以识别到达的IP分组。因此,如图4所示,公共互联网主机的公用IP地址扩展了NAT表的条目。受限圆锥型NAT使用外部源IP地址并且从内部源IP地址和端口产生外部源端口,这意味着只要那些值不改变,外部源IP地址和端口就保持不变。如果应用使用了内部设备上的相同内部源端口以与公共互联网上的两个不同主机进行通信,则对于两个主机来说外部IP源端口是恰好相同的,然而在NAT表中产生了仅关于主机IP地址而不同的两个记录条目。然而,NAT将阻止来自另一主机的分组,直到客户端发送分组给所述另一个主机的公共IP地址。一旦这样做,两个主机就可以将分组发送回相同的内部源端口,并且它们均具有通过NAT的相同映射。
端口受限圆锥型NAT是受限圆锥型NAT的进一步扩展,其中,NAT将阻止所有分组,除非内部设备预先发送分组给IP地址和向NAT进行发送的主机的端口。端口受限圆锥型NAT对每个进入分组执行下列检查首先,其提取目的端口并且检验NAT表中是否存在有效的条目。如果不存在条目则丢弃该分组。在另一种情况下,NAT将主机IP地址-端口对与NAT表的条目进行比较。如果这些值相匹配,则NAT执行IP地址和端口的转换并且将分组转发到内部设备。否则丢弃所述分组(图5)。只要内部源IP地址和端口保持相同,NAT所用的外部源端口就总是相同的。NAT表可以存储仅关于目的IP地址-端口对而不同的其它条目。
对称型NAT的行为与端口受限圆锥型NAT的行为几乎相同。区别在于,内部源IP地址-端口对到NAT的外部源IP地址-端口对的指定映射取决于分组被发往的目的IP地址-端口对。一旦这四个值之一改变,对称型NAT就至少产生新的外部源端口并且在NAT表中添加另一个条目(图6)。由于上述策略,对称型NAT之后的设备可以被保护以避免任何种类的不友好访问。但是由于强阻止情况而产生了确定,例如在连接建立使用例如会话初始化协议(SIP)的情况下。例如用来建立对等连接以用于经由互联网的电话通信的应用,典型地使用SIP信令。这种应用被称作用户代理。SIP信令协议必须在建立阶段期间针对即将发生的媒体会话告知对等体目的IP地址-端口对。但是对称型NAT所使用的外部端口不能被预先确定并且对称型NAT将从设备的内部源IP地址-端口对中产生NAT端口,假设所述用户代理位于对称型NAT之后并且目的IP地址-端口对是在最初的分组被发送给目的IP地址-端口对之时。如果另一个主机也被对称型NAT屏蔽,则达到最坏的情况。
为了连接位于对称型NAT之后的两个用户代理,使用位于互联网中的中继器是公知的。这种中继器增加了不可忽略的分组时延并且不是足够可缩放的。此外,中继器将对等会话从中继器到第一对等体以及从中继器到第二对等体分成两个会话。此外,中继包括在传输层之上的功能。由于上述原因,使用中继以例如建立用于经由互联网的电话呼叫的两个用户代理间的连接是不利的。
因此直到目前,当至少一个用户代理位于对称型NAT之后时,不存在将两个用户代理彼此对等连接的已知解决方案。
由于如今使用各种所描述的NAT,因此可能的解决方案也应当能够结合不位于NAT之后的用户代理而被使用,并且也结合位于除对称型NAT之外的其它NAT之后的用户代理而被使用。
发明内容
本发明的技术目的是开发一种允许在两个用户代理间建立用于交换数据的互联网连接的方法,其中,至少一个用户代理可以位于对称型NAT之后。
通过提出一种用于在第一和第二用户代理间建立例如会话的互联网连接而完全达到了本发明的技术目的,其中,例如由服务器或由可控NAT本身产生位于互联网中的可控NAT中的NAT表条目,其中,所述NAT表条目包括例如由服务器传送给用户代理的公共IP地址-端口对,其中,用户代理使用所述公共IP地址-端口对用于经由可控NAT而在彼此间建立互联网连接。
由此,有必要提出的是,在用户代理间的通信发生之前,产生公共IP地址-端口对并且将其输入可控NAT的NAT表中。所述公共IP地址-端口对被用作这样的目的地址用户代理向该地址发送它们要彼此交换的数据。由于公共IP地址-端口对属于可控NAT,因此用户代理间的通信通过仅执行NAT层功能而经由可控NAT来发生。
具有本发明的指定特征的所述方法在现有技术状态上具有优点,其允许在可以位于对称型NAT之后的两个用户代理之间建立连接。由此,可控NAT优选地是对称型NAT,这是由于这增加了两个用户代理之间的连接的安全性。可控NAT是一种简单的部件,其不必是SIP感知的并且根据NAT表中的条目来转换IP地址和端口。端到端的分组时延仅可忽略地增加。本发明允许在互联网中设置多个可控NAT以便可以分配负载。由此,在第一实施例中,其中,服务器产生要被输入NAT表的公共IP地址-端口对,仅少数或仅一个服务器能够控制位于互联网中的许多可控NAT是可能的。在第二实施例中,可控NAT本身产生要被输入NAT表的公共IP地址-端口对,并且将这些公共IP地址-端口对提供给请求的服务器。此外,可控NAT功能可以被容易地添加到例如路由器中。所述方法允许在两个用户代理间建立任何连接用于交换数据。
本发明的优选实施例包括下列步骤-在服务器中注册两个用户代理;-从第一用户代理向服务器发送与第二用户代理建立连接的邀请消息,其中,所述邀请消息包括第二用户代理将回复的第一目的IP地址-端口对;-通过服务器产生位于互联网中的可控NAT表中的NAT表条目,其中,所述NAT表条目包括第一和第二公共IP地址-端口对;-由服务器用第一公共IP地址-端口对来替换邀请消息中的第一目的IP地址-端口对并且-从服务器向第二用户代理发送包括第一公共IP地址-端口对的被改变邀请消息;-由第二用户代理从服务器接收被改变邀请消息,并且从所述邀请消息中提取第一公共IP地址-端口对;-从第二用户代理向服务器发送与第一用户代理建立连接的确认消息,其中,所述确认消息包括第一用户代理将回复的第二目的IP地址-端口对;-由服务器用第二公共IP地址-端口对来替换确认消息中的第二目的IP地址-端口对并且-从服务器向第一用户代理发送包括第二公共IP地址-端口对的被改变确认消息并且-通过第一用户代理从服务器接收被改变确认消息,并且从所述确认消息中提取第二公共IP地址-端口对;-经由可控NAT在第一和第二用户代理之间交换数据,其中,第一用户代理将要被发送给第二用户代理的数据寻址到从确认消息中所提取的第二公共IP地址-端口对,并且其中,第二用户代理将要被发送到第一用户代理的数据寻址到从邀请消息中所提取的第一公共IP地址-端口对;并且-通过从经由可控NAT而从第一用户代理发送给第二用户代理的最初数据中提取第一源IP地址-端口对,以及从经由可控NAT而从第二用户代理发送给第一用户代理的最初数据中提取第二源IP地址-端口对,并且将第一和第二源IP地址-端口对插入可控NAT的NAT表条目中,来填充可控NAT的NAT表条目。
在本发明的优选实施例中,在从第二用户代理接收了确认消息之后,服务器将包括在邀请消息中的第一用户代理的第一源IP地址和包括在确认消息中的第二用户代理的第二源IP地址,添加到可控NAT的NAT表条目中,其中,通过将第一和第二用户代理的第一和第二源端口添加到包括在最初数据中的NAT表条目,来完成NAT表条目的填充,其中所述最初数据是经由可控NAT而在第一和第二用户代理之间被交换的。
在本发明的另一个优选实施例中,至少一个用户代理位于对称型NAT之后。
在本发明的优选实施例中,所述服务器是代理服务器。
在本发明的特定优选实施例中,所述代理服务器是SIP代理,其中,所述邀请消息和确认消息是SIP消息。
在本发明的另一个优选实施例中,所述服务器的特征在于,通过邀请和确认消息而在用户代理之间被建立的连接是对等连接。
在本发明的优选实施例中,在第一和第二用户代理之间被交换的数据包括媒体流。
在本发明的另一个优选实施例中,所述媒体流包括语音流。所述语音流例如允许使用第一用户代理的第一用户与使用第二用户代理的第二用户进行交谈。通过使用根据本发明的所述方法,经由互联网的电话对于位于对称型NAT之后的用户代理而言是可能的。
本发明的特定优选实施例的特征在于,至少一个用户代理运行在计算机上。优选地两个用户代理都运行在计算机上。也可以设想用户代理之一运行在个人数字助理PDA上等。
同样可以设想由可控NAT本身而不是由服务器来产生包括第一和第二公共IP地址-端口对的新的NAT表条目,其中,可控NAT将所述第一和第二公共IP地址-端口对传送给服务器,用于用第一和第二公共IP地址-端口对来替换邀请消息和确认消息中的第一和第二目的IP地址-端口对。
在本发明的另一个优选实施例中,通过存储在计算机可用介质上的计算机程序产品而实现了所述方法,所述计算机可用介质包括用于当在计算机上执行所述计算机程序产品时使计算机实现上面提到的方法的计算机可读程序装置。
图1示出了用于在建立连接之前执行根据本发明的方法的安排;图2示出了在建立连接之后的图1的安排;图3示出了完全圆锥型NAT的例子;图4示出了用于受限圆锥型NAT的例子;图5示出了用于端口受限圆锥型NAT的例子;和图6示出了用于对称型NAT的例子。
具体实施例方式
如图1所示,第一1和第二用户代理2与互联网3相连。两个用户代理1、2都位于对称型NAT4、5之后。代理服务器6位于互联网3中。可控NAT 7也位于互联网中。可控NAT 7可以由代理服务器6来控制,其中,代理服务器6能够产生可控NAT 7的NAT表中的条目。
图2示出了当经由可控NAT 7在两个用户代理1、2之间建立对等连接时的情形。以下是建立这种连接的过程两个用户代理1、2均在代理服务器6注册。第一用户代理1想要与第二用户代理2建立连接。为了建立连接,从第一用户代理向代理服务器6发送邀请消息。这个邀请消息包括第二用户代理2将回复的第一目的IP地址-端口对。由于第一用户代理1位于对称型NAT 4之后,因此在对称型NAT 4丢弃从第二用户代理2到第一用户代理1的回复,该回复被寻址到第一目的IP地址-端口对。为了解决这个问题,代理服务器6检查所述邀请消息并且搜索所述第一目的IP地址-端口对。代理服务器6用第一公共IP地址-端口对来替换邀请消息中的第一目的IP地址-端口对,并且将这个被改变邀请消息经由对称型NAT 5中的洞(hole)而转发给第二用户代理2,所述洞是与第二用户代理2在代理服务器6注册一起产生的。同时,代理服务器也产生可控NAT 7中的NAT表条目。这个NAT表条目包括第一公共IP地址-端口对和第二公共IP地址-端口对。第二用户代理2接收所述邀请消息并且从所述消息中提取第一公共IP地址-端口对。第二用户代理2使用第一公共IP地址-端口对,从而为被发送给第一用户代理的所有例如数据流的数据分组配置目的地址。然后,第二用户代理2产生确认消息并将这个确认消息发送给代理服务器6。这个确认消息包括第一用户代理1将回复的第二目的地址-端口对。由于第二用户代理2位于对称型NAT 5之后,因此在对称型NAT 5丢弃从第一用户代理1到第二用户代理2的回复,该回复被寻址到第二目的IP地址-端口对。为了解决这个问题,代理服务器6也用第二公共IP地址-端口对来替换确认消息中的第二目的IP地址-端口对,并且经由对称型NAT 4中的洞而将这个被改变确认消息转发给第一用户代理1,所述洞是与第一用户代理1在代理服务器6注册一起产生的。第一用户代理1接收所述确认消息并且从所述消息中提取第二公共IP地址-端口对。第一用户代理1使用第二公共IP地址-端口对,从而为被发送给第二用户代理2的所有例如数据流的数据分组配置目的地址。
现在第一1和第二用户代理2可以经由可控NAT彼此进行通信。为了填充可控NAT 7中的NAT表条目,第一源IP地址-端口对提取自从第一用户代理1发送给第二用户代理2的最初数据,并且第二源IP地址-端口对提取自从第二用户代理2发送给第一用户代理1的最初数据。由可控NAT来实现这些源IP地址-端口对的提取。第一和第二源IP地址-端口对被插入可控NAT的NAT表条目中。通过这样做,可控NAT的NAT表条目认为完成了第一1和第二用户代理2之间的会话。
有必要提出的是,为了保持图的简洁,图1和图2中仅示出了单个可控NAT 7,但是所述概念允许在互联网3中安排几个可控NAT。通常代理服务器6知道几个可控NAT,以便其可以在不同可控NAT之间分配负载,以防止网络中的热点(hot spot)以及重新安排通过互联网的媒体会话路径以例如克服错误情况、网络服务质量降级等。所述概念可以朝着具有每媒体会话数据负载计费的服务质量控制的负载平衡系统进行扩展。
在本发明的可选实施例中,可控NAT本身产生它的包括公共IP地址-端口对的NAT表条目。可控NAT将这些公共IP地址-端口对传送给代理服务器。代理服务器使用这些公共IP地址-端口对来替换邀请消息和确认消息中的目的IP地址-端口对。这个实施例不同于上述例子,这是由于由可控NAT本身而不是代理服务器来产生包括公共IP地址-端口对的NAT表条目。为了使代理服务器知道哪些公共IP地址-端口对可被用于替换邀请消息和确认消息中的目的IP地址-端口对,从可控NAT向代理服务器传送包括在由可控NAT产生的NAT表条目中的公共IP地址-端口对。
商业适用性本发明在商业上特别适用于用于互联网业务的网络的产生和操作领域。
权利要求
1.一种在第一和第二用户代理之间建立互联网连接的方法,其中,产生位于所述互联网中的可控网络地址转换中的网络地址转换表条目,其中,所述网络地址转换表条目包括被传送给所述用户代理的公共互联网协议地址-端口对,其中,所述用户代理使用所述公共互联网协议地址-端口对,用于经由所述可控网络地址转换而在彼此之间建立互联网连接。
2.根据权利要求1的方法,包括以下步骤-在服务器注册两个用户代理;-从所述第一用户代理向所述服务器发送与所述第二用户代理建立连接的邀请消息,其中,所述邀请消息包括第一目的互联网协议地址-端口对;-由所述服务器产生位于所述互联网中的所述可控网络地址转换中的网络地址转换表条目,其中,所述网络地址转换表条目包括第一和第二公共互联网协议地址-端口对;-由所述服务器用所述第一公共互联网协议地址-端口对来替换所述邀请消息中的第一目的互联网协议地址-端口对并且-从所述服务器向所述第二用户代理发送所述被改变邀请消息;-由所述第二用户代理来接收所述被改变邀请消息,并且从所述邀请消息中提取所述第一公共互联网协议地址-端口对;-从所述第二用户代理向所述服务器发送确认消息,其中,所述确认消息包括第二目的互联网协议地址-端口对;-由所述服务器用所述第二公共互联网协议地址-端口对来替换所述确认消息中的第二目的互联网协议地址-端口对并且-从所述服务器向所述第一用户代理发送包括所述第二公共互联网协议地址-端口对的所述被改变确认消息并且-由所述第一用户代理接收所述被改变确认消息,并且从所述确认消息中提取所述第二公共互联网协议地址-端口对;-经由所述可控网络地址转换而在所述第一和第二用户代理之间交换数据,其中,所述第一用户代理寻址到所述第二公共互联网协议地址-端口对,并且其中,所述第二用户代理寻址到所述第一公共互联网协议地址-端口对;并且-通过从经由所述可控网络地址转换而从所述第一用户代理发送给所述第二用户代理的最初数据中提取第一源互联网协议地址-端口对,以及从经由所述可控网络地址转换而从所述第二用户代理发送给所述第一用户代理的最初数据中提取第二源互联网协议地址-端口对,并且将所述第一和第二源互联网协议地址-端口对插入所述可控网络地址转换的网络地址转换表条目中,来填充所述可控网络地址转换的网络地址转换表条目。
3.根据权利要求2的方法,其中,所述服务器在从所述第二用户代理接收了所述确认消息之后,将包括在所述邀请消息中的第一用户代理的第一源互联网协议地址,和包括在所述确认消息中的第二用户代理的第二源互联网协议地址,添加到所述网络地址转换表条目中,并且其中,通过将所述第一和第二用户代理的第一和第二源端口添加到包括在所述最初数据中的所述网络地址转换表条目中,来完成所述网络地址转换表条目的填充,其中所述最初数据是经由可配置的网络地址转换而在所述第一和第二用户代理之间被交换的。
4.根据权利要求2或3的方法,其中,至少一个用户代理位于对称型网络地址转换之后。
5.根据权利要求2、3或4的方法,其中,所述服务器是代理服务器。
6.根据权利要求5的方法,其中,所述代理服务器是会话初始化协议代理,并且其中,所述邀请消息和所述确认消息是会话初始化协议消息。
7.根据权利要求1的方法,其中,所述连接是对等连接。
8.根据权利要求1的方法,其中,在所述第一和第二用户代理之间被交换的数据包括媒体流。
9.根据权利要求8的方法,其中,所述媒体流包括语音流。
10.根据权利要求1的方法,其中,至少一个用户代理运行在计算机上。
11.根据权利要求2至10之一的方法,其中,由所述可控网络地址转换本身而不是由所述服务器,来产生包括第一和第二公共互联网协议地址-端口对的新的网络地址转换表条目,其中,所述可控网络地址转换将所述第一和第二公共互联网协议地址-端口对传送给所述服务器,用于用所述第一和第二公共互联网协议地址-端口对来替换所述邀请消息和所述确认消息中的第一和第二目的互联网协议地址-端口对。
12.一种计算机程序产品,该计算机程序产品被存储在包括计算机可读程序装置的计算机可用介质上,所述计算机可读程序装置用于当在计算机上执行所述计算机程序产品时使计算机实现根据权利要求1的方法。
全文摘要
描述了一种在第一(1)和第二(2)用户代理之间建立互联网连接的方法,其中,产生位于互联网(3)中的可控NAT(7)中的NAT表条目,其中,所述NAT表条目包括被传送到用户代理(1、2)的公共IP地址-端口对,其中,用户代理(1、2)使用所述公共IP地址-端口对,用于经由可控NAT(7)在彼此之间建立互联网连接。
文档编号H04L12/28GK1822543SQ20061000825
公开日2006年8月23日 申请日期2006年2月16日 优先权日2005年2月16日
发明者S·瓦尔 申请人:阿尔卡特公司