CN102484656A - 用于中继分组的方法和设备 - Google Patents

用于中继分组的方法和设备 Download PDF

Info

Publication number
CN102484656A
CN102484656A CN200980160227XA CN200980160227A CN102484656A CN 102484656 A CN102484656 A CN 102484656A CN 200980160227X A CN200980160227X A CN 200980160227XA CN 200980160227 A CN200980160227 A CN 200980160227A CN 102484656 A CN102484656 A CN 102484656A
Authority
CN
China
Prior art keywords
address
main frame
higher layer
grouping
inbound
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.)
Granted
Application number
CN200980160227XA
Other languages
English (en)
Other versions
CN102484656B (zh
Inventor
A·克拉南
J·豪塔科皮
J·马恩帕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN102484656A publication Critical patent/CN102484656A/zh
Application granted granted Critical
Publication of CN102484656B publication Critical patent/CN102484656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于中继第一主机和第二主机之间的分组的设备。该设备包括用于为所述第一主机登记第一主机的地址、第一主机的中继地址、第二主机的地址以及出站更高层标识符和/或入站更高层标识符的存储器。该设备还包括以下检验器的一个或两个:出站分组检验器,用于检验从所述第一主机接收的以及寻址到该设备的地址的分组,以确定它们是否包含登记的出站更高层标识符,以及如果是,则转发所述分组到第二主机的所述地址;以及入站分组检验器,用于检验从所述第二主机接收到的和寻址到所述中继地址的分组,以确定它们是否包含登记的入站更高层标识符,以及如果是,则转发所述分组到第一主机的所述地址。

Description

用于中继分组的方法和设备
技术领域
本发明涉及用于中继分组的方法和设备。它适用于实现网络地址转换(NAT)服务器的穿越并且特别适用于利用使用中继穿越绕行NAT(Traversal Using Relays around NAT)(TURN)协议的这种方法和设备。
背景技术
网络地址转换(NAT)是在穿过业务路由装置时为了将给定地址空间重新映射到另一个的目的而修改数据报分组报头中的网络地址信息的过程。结合网络伪装(或IP伪装)来使用NAT,网络伪装(或IP伪装)是一种隐藏整个地址空间的技术,地址空间通常由私有网络地址组成,其在另一个通常是公用地址空间中的单个IP地址后。在路由装置中实现这个机制,其使用状态转换表来将“隐藏”地址映射到单个地址,并且然后在出口重写外出的因特网协议(IP)分组,使得它们看上去是起始于路由器。在反向通信路径上,使用在转换表中存储的规则(“状态”)来将响应映射回起始IP地址。在没有新业务刷新其状态的短时间段之后,清除以这个方式建立的转换表规则。
当然,网络地址转换的使用意味着因特网中的许多主机不能够被其它主机直接联系,因为它们位于阻止入站(inbound)连接的网络地址转换器(NAT)之后。不同的NAT穿越技术,例如,交互式连接性建立(ICE)【参见J.Rosenberg的Interactive ConnectivityEstablishment(ICE):A Protocol for Network Address Translator(NAT)Traversal for Offer/Answer Protocols.draft-ietf-mmusicice-19(进行中的工作)2007年10月】已经被开发以克服这个问题,但是对于某些种类的NAT,在两个主机之间创建对等连接的唯一方式是通过对等体双方(包括NAT之后的一个对等体或多个对等体)都能够联系的节点来中继所有业务。
使用中继穿越绕行NAT(TURN)【参见Traversal Using Relaysaround NAT(TURN):Relay Extensions to Session Traversal Utilities forNAT(STUN).draft-ietf-behave-turn-15(进行中的工作)2009年2月】允许主机(也就是TURN客户端)在TURN服务器登记“中继地址”(IP地址和端口号的组合),使得“通过”TURN服务器和TURN客户端之间的NAT来建立会话(注意,在NAT之后的主机发起的连接,一般将引起通过NAT来建立会话,并且经由它,向其发起连接的节点能够发送分组给该主机)。由远程对等体发起的到中继地址的连接被TURN服务器中继到TURN客户端,使得其经过NAT中的穿孔(punched hole)。TURN客户端能够经由TURN服务器来发送数据给对等体,使得从对等体的观点来看,数据看起来是起始于中继地址。通过使用TURN服务器,甚至是对于最具限制性类型的NAT,都能够在两个对等体之间建立通信路径。
在从TURN服务器获得中继地址后,TURN客户端需要通过经由NAT发送周期性的保持存活消息到TURN服务器来维持其在NAT中的状态。为了最小化保持存活消息的量,TURN允许与不同对等体之间的多个连接再用相同的中继地址。因此,无论对等体的数量,仅要求一组保持存活消息。除了降低保持存活业务的量以外,这个方法还节约TURN服务器处和NAT处的公用端口,允许它们服务更大数量的同时存在的用户。
在多个对等体连接被复用到TURN客户端和TURN服务器之间的一个连接上的情况下,有必要提供一种机制,其允许TURN服务器和TURN客户端在它们交换的数据分组内标识对等体。为了这个目的,将服务器和客户端之间发送的数据封装在TURN消息内。
TURN封装增加了每分组的开销并且减少了TURN服务器和客户端之间的链路上的最大传送单元(MTU)。开销问题在受限带宽环境(例如,当使用蜂窝数据连接时)中特别严重,并且对于在多个小分组中发送的数据(例如,实时音频)也特别严重。更重要的也许是,封装阻止使用无修改操作***内核协议栈来接收和发送数据。这至少导致性能问题,因为数据需要在内核和用户空间进程之间被来回发送。在受限操作***(例如在移动设备中普遍使用的那些操作***)的情况下,当然不可能将分组反馈回内核协议栈或在栈处理后捕获分组。TURN封装在这类情况下不是可行选项。
因特网(IETF)草案-“Traversal Using Relays around NAT:RelayExtensions to Session Traversal Utilities for NAT(2007年7月8日)”提供了一种避免封装的机制。这个机制利用“设定活动目的地”请求。然而,该机制不允许多个会话被复用到TURN服务器到客户端的链路上。
发明内容
本发明的目的是允许不使用封装而在客户端和中继服务器之间发送分组,并且其减轻了已知解决方案的问题。
根据本发明的第一方面,提供了用于在第一主机和第二主机之间中继分组的设备。该设备包括:存储器,用于为所述第一主机登记第一主机的地址、第一主机的中继地址、第二主机的地址以及出站(outbound)更高层标识符和/或入站更高层标识符。该设备还包括以下检验器中的一个或两个:
出站分组检验器,用于检验从所述第一主机接收的以及寻址到该设备的地址的分组,以确定它们是否包含登记的出站更高层标识符,以及如果是,则转发所述分组到第二主机的所述地址;以及
入站分组检验器,用于检验从所述第二主机接收的并且寻址到所述中继地址的分组,以确定它们是否包含登记的入站更高层标识符,以及如果是,则转发所述分组到第一主机的所述地址。
本发明的实施例允许在第一主机和充当中继服务器的该设备之间发送分组,而不用在入站和出站方向中的一个或两个中进行封装。能够降低第一主机和该设备之间的链路上占用的带宽,同时允许将多个会话复用到该链路上。
出站分组检验器(如果存在)可以配置成:用所述中继地址来替换要被转发到所述第二主机的分组的源地址字段中的第一主机的地址。
入站分组检验器(如果存在)可以配置成:用第一主机的所述地址来替换要被转发到所述第一主机的分组的目的地地址字段中的所述中继地址,并且用该设备的地址来替换那些分组的源地址字段中的第二主机的所述地址。入站分组检验器可以配置成将包含所述入站更高层标识符的分组传递到所述第一主机,而不用附加的中继封装。
存储器可以配置成为所述第一主机附加地登记所述入站和出站更高层标识符或所述入站和出站更高层标识符中每个标识符的偏移位置,该偏移位置标识分组内的关联的更高层标识符的位置,并且出站分组检验器和入站分组检验器配置成使用相应偏移位置来确定更高层标识符的存在。
存储器以及所述入站分组检验器和所述出站分组检验器或所述入站分组检验器和所述出站分组检验器中的每个检验器可以配置成:使用入站和出站更高层标识符中的一个或两个来附加地处理所述第一主机和一个或多个另外主机之间分组的中继。
本发明适用于这样的情况,其中所述第一主机位于网络地址转换器之后,并且第一主机的所述地址是第一主机的经过NAT的(NATed)地址。在这个情况下,任何附加中继封装是根据使用中继穿越绕行NAT协议的封装。充当中继服务器的该设备可以包括用于登记所述第一主机和任何另外主机的客户端终端登记单元,该登记单元配置成使用所述使用中继穿越绕行NAT(TRUN)协议。
根据本发明的第二方面,提供了配置成经由中继服务器来与对等体终端交换分组的客户端终端。该客户端终端包括用于向中继服务器登记以便被中继服务器分配中继地址的中继单元,以及用于确定在与所述对等体终端交换的分组中要使用的入站更高层标识符的标识确定单元。该终端还包括标识符登记单元,用于连同所述中继地址、客户端终端的地址以及对等体终端的地址向所述中继服务器登记入站更高层标识符;并且包括分组处理机,用于使用所述入站更高层标识符将从所述中继服务器接收的分组与所述对等体终端关联。
终端的标识符确定单元可以配置成确定在与所述对等体终端交换的分组中要使用的出站更高层标识符,其中所述标识符登记单元配置成连同入站更高层标识符向所述中继服务器登记出站更高层标识符。
标识符确定单元可以配置成通过标识和使用以下协议参数之一来确定入站更高层标识符和/或出站更高层标识符:主机身份标签,HIT;同步源(SSRC)标识符;安全参数索引(SPI);TCP端口号。
中继单元可以配置成实现NAT穿越并且客户端终端的所述地址是经过NAT的地址。在这个情况下,中继单元和所述标识符登记单元可以配置成使用使用中继穿越绕行NAT(TURN)协议。可以提供另外的分组处理机,如果所述标识符确定单元不能确定从所述中继服务器接收了入站更高层标识符以及可选的、出站更高层标识符、或者TURN封装的分组,则该处理机用于使用使用中继穿越绕行NAT(TURN)封装来对于对等体终端发送和/或接收分组。
中继单元可以配置成:确定中继服务器是否支持基于更高层标识符的中继方法,以及如果否,则使用中继封装来发起与所述对等体终端的分组路由。
根据本发明的第三方面,提供了在第一主机和第二主机之间发送分组的方法。该方法包括代表第一主机在中继服务器登记第一主机的地址、第一主机的中继地址、第二主机的地址以及出站更高层标识符和/或入站更高层标识符。该方法还包括以下步骤中的一个或两个:
在中继服务器,检验从所述第一主机接收的以及寻址到中继服务器的地址的分组,以确定它们是否包含所述出站更高层标识符,以及如果是,则将所述分组转发到第二主机的所述地址;以及
检验从所述第二主机接收的以及寻址到所述中继地址的分组,以确定它们是否包含所述入站更高层标识符,以及如果是,则将所述分组转发到第一主机的所述地址。
第一主机可位于网络地址转换器之后,在该情况下,可以使用使用中继穿越绕行NAT(TURN)协议来实行所述登记步骤。如果从第二主机接收的分组不包含所述入站更高层标识符,则可以使用TURN封装来转发从中继服务器向第一主机发送的分组。
附图说明
图1示意性地示出涉及使用TURN的NAT穿越的网络通信情形;
图2示出图1的网络情形中的以及与修改的TURN协议关联的登记信令;
图3示意性地示出ESP分组格式;
图4示出图1的网络情形中的分组中继;
图5示意性地示出图1的网络情形中的TURN客户端和TURN服务器;
图6是示出TURN服务器登记和分组中继过程的流程图;
图7示意性地示出RTP分组格式;以及
图8示意性地示出HIP分组格式。
具体实施方式
NAT穿越的问题已经在上面的TURN封装的上下文中被考虑。现在将描述对TURN的增强以及使用数据中继的其它NAT穿越方案。
数据(其可能在其它情况下是TURN客户端和TURN服务器之间的TURN封装的对象)将经常在分组内的一贯位置处包括持续的更高层标识符(HLI)。这里建议在传输层协议之上利用这种HLI以替代TURN封装来复用/解复用分组。当TURN客户端想要不使用TURN封装来与对等体通信时,其首先检查TURN服务器以确定TURN服务器是否支持这里描述的HLI机制。如果是,则TURN客户端在TURN服务器登记一对HLI(一个入站和一个出站)。TURN服务器的HLI登记包含两个字节数组(每个HLI有一个),以及数组长度、偏移和对等体地址。对于入站业务,当TURN服务器接收到指向中继地址的分组时,它检查以查看分组数据是否匹配登记的入站HLI,以及如果其匹配,则它不用任何封装而将分组发送到TURN客户端,因为入站HLI将向TURN客户端独特地标识对等体地址。当TURN服务器接收到来自TURN客户端的分组时,它检查以查看分组数据是否匹配登记的出站HLI,以及如果其匹配,则分组被发送到对于该出站HLI被登记的对等体地址(通过NAT向TURN客户端分配公用地址,即客户端的“经过NAT的”的地址,其作为在TRUN服务器处接收的分组的源地址而被包括,并根据正常TURN行为,被转变为中继地址)。
HLI能够是其值和位置在数据被发送或接收之前就已知的任何字节数组。数组的长度和其偏移(即在传输层报头之后的多少字节HLI开始)能够在(由TURN客户端)向TURN服务器登记HLI时定义。例如,在UDP封装的ESP[RFC3948]的情况下,SPI值能够作为HLI来使用。如果TCP在UDP上进行隧道化并且通过TURN服务器来中继,则潜在HLI的另一个示例将是TCP端口号。实时传输协议(RTP)的同步源标识符是HLI的另一个示例。
TURN服务器用TURN封装将(从对等体)发送到中继地址的不匹配登记的HLI的分组转发到TURN客户端。从TURN客户端到达TRUN服务器的不包含对于任何登记的HLI的匹配的任何数据分组将被假定为是TURN封装的。这个行为允许包括新的功能性的TURN服务器与遗留TURN客户端兼容,且对于不包括可用HLI的业务是可用的。
如果与某一协议关联的数据仅仅需要在TURN客户端和单个对等体之间交换,则不同于其它并发中继协议的协议报头中的任何恒定字段都是足够的。例如,对于这个目的,协议版本号或神奇cookie(magic cookie)值能是足够的。“神奇cookie”值(在这个上下文中)是协议报头中的恒定值,用于在相同的流中区分某些协议消息和与其它协议关联的消息。例如,STUN【RFC5389】(TURN和ICE使用的协议)在所有消息中携带这个种类的标识符。
另一方面,如果TURN客户端与多个对等体交换使用相同协议的消息,则需要对于每个对等体都不同的标识符。许多协议在每个分组中都具有用于数据的源和/或目的地的某一标识符(例如,HIP发送方和接收方HIT或RTP同步源)。对其它协议,通过组合多个协议字段中的信息来生成HLI是必要的。
通常TURN客户端隐含地知道出站HLI的值,因为其是起始分组和生成更高层消息的实体。如果外部协议栈(例如操作***提供的IPsec)被使用并且栈生成用作HLI的值,则客户端可能需要从栈中查询或从发送的分组中查找该值。
如果TURN客户端事先知道对等体的HLI值(例如,其是恒定协议字段或某些对等体总是使用相同的值),则在TURN服务器登记HLI之前不需要附加信令。例如,在HIP信令业务的情况下,因为HLI是根据主机身份来计算的,所以甚至在彼此联系之前,主机就知道将在HIP报头中使用的主机身份标签(HIT)。因此,HIT能够用作HLI,而不用任何附加信令。然而如果HLI事先不为TURN客户端所知,则TURN客户端需要从协议信令中或自动地从第一接收的分组中学习HLI值。当然该信令(假定其通过TURN服务器并且不经由某一其它中继,例如SIP服务器或HIP中继服务器)或第一分组肯定是TURN封装的。作为示例,考虑使用IKE[RFC4306]或HIP设立的IPsec安全关联。主机协商将被***到每个加密的ESP分组的开始处的SPI值。因此,在发送任何数据之前,TURN客户端学习对等体的SPI值,其能够用作HLI。描述的方法不要求对等体中对于HLI的任何支持,或甚至是对正常TURN的支持。确实要求对等体中的HLI支持的备选方法涉及TURN客户端(使用例如新的STUN/TURN消息)向对等体显式询问HLI的值。
为了说明所建议的实现TURN而不一定要求TURN封装的方法,考虑UDP封装的ESP的情况。图1示意性地示出在NAT2之后的TURN客户端(主机A)1。对等体(主机B)3也在NAT4之后,并且希望使用UDP封装的ESP来与主机A通信。这通过使用TURN服务器(或中继)5来实现。图1示出在网络中的各种点处的分组中包括的示范源(src)和目的(dst)IP地址和端口号。图2示出与这个情形关联的信令。支持HLI扩展的TURN客户端首先使用标准TURN分配请求(步骤1)来在TURN服务器进行登记。客户端在请求消息中包括HLI-SUPPORTED参数,以测试TRUN服务器是否支持这个扩展。如果服务器支持HLI中继,则其用分配OK消息来响应(步骤2)。然而如果TURN服务器不支持HLI中继,则其拒绝请求并且客户端能够不用扩展而向服务器登记或尝试某一其它TURN服务器。HLI-SUPPORTED参数具有“要求理解”【RFC5389】的类型,使得如果(遗留)TURN服务不认识它,则其拒绝请求。图1中的主机中的一个或两个可位于多个NAT之后。这并不改变中继过程的原理。
接着,主机协商IPsec安全关联。为了这个目的,它们能够使用例如HIP或IKE。协商能够通过TURN服务器或者使用某一其它中继服务(例如HIP中继服务器【id-hip-nat-traversal:参见Basic HIPExtensions for Traversal of Network Address Translators.draft-ietf-hip-nat-traversal-06(进行中的工作).2009年3月】)或对等覆盖网络来进行。如果在IPsec信令中涉及TURN服务器,则信令消息在TURN服务器和客户端之间是TURN封装的,除非已经为信令协议设定HLI。
TURN客户端然后请求对等体的“准许”并且包括应该针对所有中继数据被检查的入站和出站HLI(步骤3)。TURN服务器用准许OK来响应(步骤4)。准许是正常TURN行为的一部分并且通过仅允许具有登记准许的对等体使用中继地址来增加安全。HLI登记被搭载于标准准许登记过程上。因为客户端将使用UDP封装的ESP,所以其登记(在地址198.76.28.5:6789处)对等体的SPI值作为HLI。在图1的示例中,入站SPI是‘0xA1B2C3D4”且出站SPI是“OxB2C3D4E5”。因为SPI总是在ESP包的前四个字节中,所以这两个参数都是四个字节长并且在UDP报头(HLI偏移是0)后立即开始。在TURN客户端,IPsec SA中的对等体地址被设定成TURN服务器的地址,使得IPsec栈将以该对等体为目的地的ESP分组发送到TURN服务器。图3示出ESP的分组格式。
图4示出在TURN客户端和对等体之间的ESP分组的交换(图中更低层的消息序列)并且其不要求TURN封装。当对等体发送不匹配登记的HLI的分组时(在这个示例中,除了ESP以外的东西,例如,NAT穿越连接性检查消息或信令协议消息),用TURN封装来将数据转发到客户端(图4中的上层序列)。客户端能够通过封装响应并且在封装元数据中用信号通知对等体的地址来答复消息。当TURN服务器中继响应时,它移除TURN封装。在接收响应之后,对等体发送UDP封装的ESP分组,其具有匹配登记的HLI的SPI。TURN服务器检测到匹配并且不用任何封装来转发分组。TURN客户端的IPsec栈接收数据并且相应地处理它。当使用IPsec的程序发送数据回对等体时,IPsec栈自动发送数据(仅具有UDP封装)到TURN服务器。TURN服务器检测到数据匹配登记的HLI并且将数据转发到其地址对于该HLI被登记的对等体。将容易明白的是,当利用这里描述的方法时,所交换的分组中的大部分不要求TURN封装。
虽然上述方法使用简单的字节数组来匹配数据到准许,但是能实现更复杂的转发规则。例如,能用字节掩码来扩大字节数组并且允许对复用连接进行比特级检查。同样,不是只是单一的转发规则,而是TURN客户端能添加都匹配某一对等体地址的多个规则。甚至考虑了数据中的多个字节/比特位置的逻辑运算也能用于选择规则。这会使得以下成为可能:例如,不用封装而转发所有的分组到TURN客户端,除了涉及NAT穿越连接性检查的分组(以及对于其实际发送方地址信息是必要的分组)。
图5示意性地示出配置成实现上面描述的方法的TURN服务器5和客户端终端1(或UE)(其中,在这些两个实体之间***有NAT)。在UE 1内,提供NAT穿越单元6,其任务是向TURN服务器登记UE,以便向UE分配中继地址。提供HLI确定单元7以确定对于朝向给定对等体的入站流和出站流二者都适当的HLI。一旦被确定,这些HLI将被传给HLI登记单元8,其向TURN服务器与对等体的地址相关联登记HLI。登记详情还被传给分组处理机9,其使用HLI以及对等体的地址来确定对于外出分组是否要求TURN封装,并且正确地路由进入分组到更高层。
图5还示出TURN服务器5。这包括客户端终端登记单元10以及关联存储器11,用于为UE 1登记HLI关联。入站分组检验器12配置成查验寻址到中继地址的分组以标识登记的入站HLI,并且不用TURN封装来转发这类分组到UE。出站分组检验器13配置成标识从UE接收的分组中的登记的出站HLI,并且相应地将分组路由到对等体的目的地地址。当然将领会的是,TURN服务器将并行为不同UE(并且也潜在地为相同的UE)处理多个HLI登记。
图6是示出基于HLI的分组处理过程中的主要步骤的流程图。过程在步骤100开始,且在步骤200,UE向TURN服务器登记自身以获得中继地址。这个登记可以在用户决定发起会话之前发生。假定情况如此,在步骤300用户经由UE发起与对等体的会话。这个步骤可以响应于从对等体接收会话发起消息(例如,使用TURN封装经由TURN服务器或经由某一其它中继服务器来接收)。在步骤400,UE然后确定会话的入站HLI和出站HLI,并且在步骤500向TURN服务器与对等体的地址关联登记这些。在这个登记步骤的完成之后,在步骤600和700,UE和TURN服务器处理数据(如所描述的),以避免UE和TURN服务器之间的TURN封装。并行执行步骤600和700。
以下小节示出HLI中继如何与除了ESP以外的某些示例协议一起使用。然而列举不是穷举的,并且本领域技术人员将领会所描述的方法适用于大量不同的协议。
实时传输协议(RTP)
RTP【RFC3550:RTP:A Transport Protocol for Real-TimeApplications.RFC3550.2003年7月】分组以固定报头开始,如图7中所示出的。用于标记来自不同源的流的SSRC字段包含随机数,要求该随机数在RTP会话内是全局独特的。当将RTP与HLI中继一起使用时,TURN客户端设定其出站HLI以匹配它自己的SSRC(其与某一对等体一起使用),并且设定其入站HLI来匹配对等体的SSRC。
主机身份协议(HIP)
HIP【RFC5201:Host Identity Protocol.RFC5201.2008年4月】分组报头逻辑上是IPV6扩展报头并且在图8中示出其格式。发送方和接收方主机身份标签(HIT)标识通信端点并且因此对于HLI是合适的。使用HLI中继的TURN客户端设定出站HLI以使“接收方的HIT”匹配对等体的HIT并且设置入站HLI以使“发送方的HIT”匹配对等体的HIT。
在TCP分组被封装在UDP中的情况下,TCP端口号还可以用作HLI。
根据上面的讨论将明白,基于HLI的中继移除或降低TURN客户端和服务器之间的TURN封装所造成的带宽开销。同样,因为不需要在TURN客户端和服务器处添加或移除封装报头,处理开销也降低了。此外,由于没有封装要求,所以原生(native)操作***栈能够用于处理中继数据。该解决方案与现有TURN客户端后向兼容并且不要求来自对等体的HLI支持。
这里描述的扩展TURN服务器不是协议有关的,并且基于HLI的中继对于通过UDP携带的并且包含能够用于复用连接的足够标记的任何协议都是能够被实现的。甚至在协议不提供这类标记的情况下,如果不要求复用多个连接(例如,使用通过TURN服务器的仅单一连接),则能够使用具有零长度的HLI以使得TURN封装是不必要的。
向TURN服务器登记的HLI可以更一般地被认为是规则集合。例如,在分组中不存在单个、独特的标识符的情况下,可指定例如“如果HLI_1在位置1处并且HLI_2在位置2中但是没有HLI_3在位置3中,则分组匹配中继规则/准许”的规则集合并且将其向TURN服务器登记。
本领域技术人员将领会,可对上面描述的实施例进行各种修改,而不背离本发明的范围。例如,本方法可以应用于除了TURN以外的中继协议(并且其使用中继分组的封装),例如SOCKS 5(IETF RFC
1928),并且实际上适用于例如目前指定的TURN协议的进一步增强。某些实施例可允许TURN服务器或者某一其它基于网络的节点来确定要用于会话的HLI。在这个情况下,该确定节点可将HLI发信号通知到TURN客户端,并且如果节点自身不是TURN服务器,则还发信号通知到TURN服务器。本领域技术人员还将领会的是,这里描述的中继机制不仅对于NAT穿越是适用的。它例如能适用于客户端利用中继服务器以便维持匿名的情形。本领域技术人员还将领会,通过将这个基于HLI的方法应用在入站方向和出站方向中的仅一个而不是两个中,就可以实现益处。

Claims (20)

1.一种用于在第一主机和第二主机之间中继分组的设备,所述设备包括:
存储器,用于为所述第一主机登记
所述第一主机的地址,
所述第一主机的中继地址,
所述第二主机的地址,以及
出站更高层标识符和/或入站更高层标识符;
以及以下检验器的一个或两个:
出站分组检验器,用于检验从所述第一主机接收的以及寻址到所述设备的地址的分组,以确定它们是否包含登记的出站更高层标识符,并且如果是,则用于转发所述分组到所述第二主机的所述地址;
入站分组检验器,用于检验从所述第二主机接收的以及寻址到所述中继地址的分组,以确定它们是否包含登记的入站更高层标识符,并且如果是,则用于转发所述分组到所述第一主机的所述地址。
2.根据权利要求1的设备,所述出站分组检验器配置成用所述中继地址来替换要被转发到所述第二主机的分组的源地址字段中的所述第一主机的地址。
3.根据权利要求1或2的设备,所述入站分组检验器配置成用所述第一主机的所述地址来替换要被转发到所述第一主机的分组的目的地地址字段中的所述中继地址,并且用所述设备的地址来替换那些分组的源地址字段中的所述第二主机的所述地址。
4.根据上述权利要求中任一项的设备,所述入站分组检验器配置成传递包含所述入站更高层标识符的分组到所述第一主机,而不用附加的中继封装。
5.根据上述权利要求中任一项的设备,其中,所述存储器配置成为所述第一主机附加地登记所述入站和出站更高层标识符或所述入站和出站更高层标识符中每个标识符的偏移位置,所述偏移位置标识分组内的关联更高层标识符的位置,并且所述出站和入站分组检验器配置成使用相应偏移位置来确定更高层标识符的存在。
6.根据上述权利要求中任一项的设备,其中,所述存储器以及所述入站分组检验器和所述出站分组检验器或所述入站分组检验器和所述出站分组检验器中的每个检测器配置成使用所述入站和出站更高层标识符中的一个或两个来附加地处理所述第一主机和一个或多个另外主机之间分组的中继。
7.根据上述权利要求中任一项的设备,其中,所述第一主机位于网络地址转换器之后,并且所述第一主机的所述地址是所述第一主机的经过NAT的地址。
8.根据权利要求7引用权利要求4时的设备,其中所述附加的中继封装是根据使用中继穿越绕行NAT协议的封装。
9.根据权利要求7或8的设备,还包括客户端终端登记单元,用于登记所述第一主机和任何另外主机,所述登记单元配置成使用所述使用中继穿越绕行NAT,TURN,协议。
10.一种配置成经由中继服务器与对等体终端交换分组的客户端终端,所述客户端终端包括:
中继单元,用于向所述中继服务器登记,以便被所述中继服务器分配中继地址;
标识确定单元,用于确定在与所述对等体终端交换的分组中要使用的入站更高层标识符;
标识符登记单元,用于连同所述中继地址、所述客户端终端的地址以及所述对等体终端的地址向所述中继服务器登记所述入站更高层标识符;
分组处理机,用于使用所述入站更高层标识符将从所述中继服务器接收的分组与所述对等体终端关联。
11.根据权利要求10的客户端终端,所述标识确定单元配置成确定要在与所述对等体终端交换的分组中使用的出站更高层标识符,以及所述标识符登记单元配置成连同所述入站更高层标识符向所述中继服务器登记所述出站更高层标识符。
12.根据权利要求9或10的客户端终端,所述标识确定单元配置成通过标识和使用以下协议参数中的一个参数来确定出站和/或入站更高层标识符:
主机身份标签,HIT;
同步源(SSRC)标识符;
安全参数索引(SPI);
TCP端口号。
13.根据权利要求10或12中任一项的客户端终端,所述中继单元配置成实现NAT穿越并且所述客户端终端的所述地址是经过NAT的地址。
14.根据权利要求13的客户端终端,所述中继单元和所述标识符登记单元配置成使用使用中继穿越绕行NAT,TURN,协议。
15.根据权利要求13或14的客户端终端,还包括另外的分组处理机,用于如果所述标识确定单元不能确定入站更高层标识符、以及可选的出站更高层标识符,或TURN封装的分组从所述中继服务器被接收,则使用使用中继穿越绕行NAT,TURN,封装来对于对等体终端发送和/或接收数据。
16.根据权利要求13到15中任一项的客户端终端,所述中继单元配置成确定中继服务器是否支持基于更高层标识符的中继方法,以及如果否,则使用中继封装来发起与所述对等体终端的分组路由。
17.一种在第一主机和第二主机之间发送分组的方法,所述方法包括:
代表所述第一主机在中继服务器进行登记
所述第一主机的地址,
所述第一主机的中继地址,
所述第二主机的地址,以及
出站更高层标识符和/或入站更高层标识符;
以及以下步骤中的一个或两个:
在所述中继服务器,检验从所述第一主机接收的以及寻址到所述中继服务器的地址的分组,以确定它们是否包含所述出站更高层标识符,以及如果是,则转发所述分组到所述第二主机的所述地址;
检验从所述第二主机接收的以及寻址到所述中继地址的分组,以确定它们是否包含所述入站更高层标识符,以及如果是,则转发所述分组到所述第一主机的所述地址。
18.根据权利要求17的方法,其中,所述第一主机位于网络地址转换器之后。
19.根据权利要求18的方法,使用使用中继穿越绕行NAT,TURN,协议来实行所述登记步骤。
20.根据权利要求19的方法,还包括如果从所述第二主机接收的分组不包含所述入站更高层标识符,则使用TURN封装来转发来自所述中继服务器的分组到所述第一主机。
CN200980160227.XA 2009-06-29 2009-06-29 用于中继分组的方法和设备 Active CN102484656B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/058129 WO2011000405A1 (en) 2009-06-29 2009-06-29 Method and apparatus for relaying packets

Publications (2)

Publication Number Publication Date
CN102484656A true CN102484656A (zh) 2012-05-30
CN102484656B CN102484656B (zh) 2015-07-15

Family

ID=41785758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980160227.XA Active CN102484656B (zh) 2009-06-29 2009-06-29 用于中继分组的方法和设备

Country Status (6)

Country Link
US (1) US8611354B2 (zh)
EP (1) EP2449749B1 (zh)
CN (1) CN102484656B (zh)
RU (1) RU2543304C2 (zh)
WO (1) WO2011000405A1 (zh)
ZA (1) ZA201108990B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137385B2 (en) 2006-11-02 2015-09-15 Digifonica (International) Limited Determining a time to permit a communications session to be conducted
US9143608B2 (en) 2006-11-29 2015-09-22 Digifonica (International) Limited Intercepting voice over IP communications and other data communications
US9154417B2 (en) 2009-09-17 2015-10-06 Digifonica (International) Limited Uninterrupted transmission of internet protocol transmissions during endpoint changes
US9565307B2 (en) 2007-03-26 2017-02-07 Voip-Pal.Com, Inc. Emergency assistance calling for voice over IP communications systems
CN107113342A (zh) * 2014-10-02 2017-08-29 微软技术许可有限责任公司 使用软件定义网络的中继优化
US10880721B2 (en) 2008-07-28 2020-12-29 Voip-Pal.Com, Inc. Mobile gateway

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904511B1 (en) * 2010-08-23 2014-12-02 Amazon Technologies, Inc. Virtual firewalls for multi-tenant distributed services
CN102652413B (zh) * 2010-10-07 2015-10-21 松下电器(美国)知识产权公司 通信装置、通信方法、集成电路以及程序
US8588233B1 (en) * 2010-12-31 2013-11-19 Akamai Technologies, Inc. Peer-to-peer connection establishment using TURN
CN103139209B (zh) * 2013-02-01 2016-01-13 杭州常春藤软件科技有限公司 媒体码流获取方法、unisaf服务器及软交换通信***
WO2014121514A1 (zh) * 2013-02-08 2014-08-14 华为技术有限公司 一种实现私网穿越的方法、装置和***
US9826044B2 (en) * 2013-10-23 2017-11-21 Qualcomm Incorporated Peer-to-peer communication for symmetric NAT
US10237236B2 (en) 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
CN106656431B (zh) 2015-09-21 2020-09-29 华为技术有限公司 一种报文传输方法及用户设备
CN110832824B (zh) * 2017-05-09 2022-05-03 网络下一代公司 节点路径上的双向数据包交换的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625907A (zh) * 2001-04-17 2005-06-08 诺基亚公司 分组模式语音通信
US20070093205A1 (en) * 2005-10-25 2007-04-26 Kinghood Technology Co., Ltd. Wireless networking communication system and communicating method for VOIP
CN101112077A (zh) * 2004-11-05 2008-01-23 韦尔里斯沃克斯国际有限公司 使用无线媒体来监视人的方法和***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373103B2 (en) * 2001-10-03 2008-05-13 Ntt Docomo, Inc. Relay terminal, base station, charging server, communication system, charging method, program computer data signal, and storage medium
US7684329B2 (en) * 2002-05-06 2010-03-23 Qualcomm Incorporated Method and apparatus for augmenting physical layer ARQ in a wireless data communication system
RU2231930C2 (ru) * 2002-07-30 2004-06-27 Общество с ограниченной ответственностью "Алгоритм" Способ передачи информации в гибридной сети и маршрутизатор гибридной сети
CN100399768C (zh) * 2003-12-24 2008-07-02 华为技术有限公司 实现网络地址转换穿越的方法、***
RU43114U1 (ru) * 2004-10-07 2004-12-27 Закрытое акционерное общество фирма "МАТЕК" Одноранговая кольцевая сеть передачи пакетов данных
JP4489008B2 (ja) * 2005-11-16 2010-06-23 株式会社東芝 通信装置、通信方法および通信プログラム
US8296437B2 (en) * 2005-12-29 2012-10-23 Logmein, Inc. Server-mediated setup and maintenance of peer-to-peer client computer communications
WO2009065996A1 (en) * 2007-11-22 2009-05-28 Nokia Corporation Virtual network interface for relayed nat traversal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625907A (zh) * 2001-04-17 2005-06-08 诺基亚公司 分组模式语音通信
CN101112077A (zh) * 2004-11-05 2008-01-23 韦尔里斯沃克斯国际有限公司 使用无线媒体来监视人的方法和***
US20070093205A1 (en) * 2005-10-25 2007-04-26 Kinghood Technology Co., Ltd. Wireless networking communication system and communicating method for VOIP

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CISCO SYSTEMS: "draft-ietf-behave-turn-tcp-03.txt,Tranversal Using Relays around NAT Extensions for TCP Allocations", 《INTERNET ENGINEERING TASK FORCE,IETF,STANDARD WORKING DRAFT》 *
R.MAHY: "traversal using relays around NAT:relay extensions to session traversal utilities for NAT;draft-ietf-behave-turn-07.txt", 《IETF STANDARD-WORKING-DRAFT,INTERNET ENGINEERING TASK FORCE,IEFT》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10218606B2 (en) 2006-11-02 2019-02-26 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US9935872B2 (en) 2006-11-02 2018-04-03 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US9998363B2 (en) 2006-11-02 2018-06-12 Voip-Pal.Com, Inc. Allocating charges for communications services
US9948549B2 (en) 2006-11-02 2018-04-17 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US11171864B2 (en) 2006-11-02 2021-11-09 Voip-Pal.Com, Inc. Determining a time to permit a communications session to be conducted
US9813330B2 (en) 2006-11-02 2017-11-07 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US9826002B2 (en) 2006-11-02 2017-11-21 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US9137385B2 (en) 2006-11-02 2015-09-15 Digifonica (International) Limited Determining a time to permit a communications session to be conducted
US9537762B2 (en) 2006-11-02 2017-01-03 Voip-Pal.Com, Inc. Producing routing messages for voice over IP communications
US9179005B2 (en) 2006-11-02 2015-11-03 Digifonica (International) Limited Producing routing messages for voice over IP communications
US10038779B2 (en) 2006-11-29 2018-07-31 Voip-Pal.Com, Inc. Intercepting voice over IP communications and other data communications
US9549071B2 (en) 2006-11-29 2017-01-17 Voip-Pal.Com, Inc. Intercepting voice over IP communications and other data communications
US9143608B2 (en) 2006-11-29 2015-09-22 Digifonica (International) Limited Intercepting voice over IP communications and other data communications
US9565307B2 (en) 2007-03-26 2017-02-07 Voip-Pal.Com, Inc. Emergency assistance calling for voice over IP communications systems
US11172064B2 (en) 2007-03-26 2021-11-09 Voip-Pal.Com, Inc. Emergency assistance calling for voice over IP communications systems
US10880721B2 (en) 2008-07-28 2020-12-29 Voip-Pal.Com, Inc. Mobile gateway
US10021729B2 (en) 2009-09-17 2018-07-10 Voip-Pal.Com, Inc. Uninterrupted transmission of internet protocol transmissions during endpoint changes
US9154417B2 (en) 2009-09-17 2015-10-06 Digifonica (International) Limited Uninterrupted transmission of internet protocol transmissions during endpoint changes
US10932317B2 (en) 2009-09-17 2021-02-23 VolP-Pal.com, Inc. Uninterrupted transmission of internet protocol transmissions during endpoint changes
CN107113342B (zh) * 2014-10-02 2020-06-16 微软技术许可有限责任公司 使用软件定义网络的中继优化
CN107113342A (zh) * 2014-10-02 2017-08-29 微软技术许可有限责任公司 使用软件定义网络的中继优化

Also Published As

Publication number Publication date
EP2449749A1 (en) 2012-05-09
RU2543304C2 (ru) 2015-02-27
CN102484656B (zh) 2015-07-15
ZA201108990B (en) 2013-02-27
EP2449749B1 (en) 2014-03-12
RU2012102911A (ru) 2013-08-10
WO2011000405A1 (en) 2011-01-06
US8611354B2 (en) 2013-12-17
US20120099599A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
CN102484656B (zh) 用于中继分组的方法和设备
US10079803B2 (en) Peer-to-peer connection establishment using TURN
US8396954B2 (en) Routing and service performance management in an application acceleration environment
JP4579934B2 (ja) レガシーノードとhipノード間のホストアイデンティティプロトコル(hip)接続を確立するためのアドレス指定方法及び装置
US7558249B2 (en) Communication terminal, and communication method
CN101800781B (zh) 一种穿越nat的隧道过渡方法及***
US8724630B2 (en) Method and system for implementing network intercommunication
JP5506932B2 (ja) 新たなネットワークとインターネットとの相互通信の実現方法、システム及び通信端
CN105659568A (zh) 用于对称nat的对等通信
WO2011035528A1 (zh) 用于通过中继方式进行nat穿越的方法、***和中继服务器
US9413590B2 (en) Method for management of a secured transfer session through an address translation device, corresponding server and computer program
CN104756462A (zh) 用于在限制性防火墙后进行tcp turn操作的方法和***
US9614816B2 (en) Dynamic encryption for tunneled real-time communications
Phelan et al. DCCP-UDP: A Datagram Congestion Control Protocol UDP Encapsulation for NAT Traversal
EP3364624A1 (en) A method of distributing a sub-flow associated with a session and a network apparatus
CN106506718B (zh) 基于多重NAT纯IPv6网络的IVI过渡方法及网络***
WO2013056999A1 (en) Method and system for enabling nat traversal for multi-homing protocols
KR20180007898A (ko) 가상 사설 클라우드망에서 테넌트 내 그룹 분리 방법
CN104518937B (zh) 虚拟局域网vlan多设备间通信的方法及装置
JP5810047B2 (ja) 通信システム、及びパケット通信方法
Phelan et al. RFC 6773: DCCP-UDP: A Datagram Congestion Control Protocol UDP Encapsulation for NAT Traversal
Phelan et al. DCCP-UDP: Datagram Congestion Control Protocol Encapsulation for NAT Traversal: DCCP-UDP
Perkins DCCP Working Group T. Phelan Internet-Draft Sonus Intended status: Standards Track G. Fairhurst Expires: December 27, 2012 University of Aberdeen
Komu et al. RFC 5770: Basic Host Identity Protocol (HIP) Extensions for Traversal of Network Address Translators
Perkins DCCP Working Group T. Phelan Internet-Draft Sonus Intended status: Standards Track G. Fairhurst Expires: January 14, 2012 University of Aberdeen

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant